.meal-hero { background: var(--theme-bg-f7f0e8, #f7f0e8); }
.meal-breadcrumb { display: flex; flex-wrap: wrap; gap: 10px; padding-top: 23px; font-size: 13px; color: var(--muted); }
.meal-breadcrumb>a { text-decoration: underline; text-underline-offset: 4px; }
.meal-hero-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 70px; padding-block: 29px 38px; align-items: center; }
.meal-hero-copy .eyebrow { margin-bottom: 18px; }
.meal-hero-copy h1 { font-size: clamp(49px,4.6vw,68px); letter-spacing: -3px; line-height: 1.08; }
.meal-hero-copy h1 em { font-size: 1.14em; }
.meal-hero-copy>p:not(.eyebrow) { font-size: 16px; line-height: 1.85; color: var(--muted); margin-top: 19px; max-width: 520px; }
.meal-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; margin-top: 25px; }
.meal-hero-actions .button { font-size: 14px; gap: 22px; }
.meal-hero-actions .text-link { font-size: 13px; }
.meal-price { display: flex; align-items: center; gap: 17px; margin-top: 24px; }
.meal-price>strong { font-size: 24px; font-weight: 500; letter-spacing: -.7px; }
.meal-price>span { font-size: 12px; line-height: 1.8; color: var(--muted); border-left: 1px solid var(--theme-edge-d0c1b9, #d0c1b9); padding-left: 17px; }
.meal-hero-visual { position: relative; height: 410px; overflow: hidden; border-radius: 6px; }
.meal-hero-visual>img { position: absolute; right: 0; width: 190%; max-width: none; height: 100%; object-fit: cover; object-position: right center; }
.meal-visual-note { display: flex; align-items: center; gap: 13px; position: absolute; bottom: 18px; left: 18px; right: 18px; padding: 15px 19px; background: var(--theme-bg-fffdf8ed, #fffdf8ed); border-radius: 4px; font-size: 12px; color: var(--muted); }
.meal-visual-note>.icon { color: var(--rose); width: 26px; height: 26px; }
.meal-visual-note strong { color: var(--ink); font-weight: 550; font-size: 14px; }
.meal-promises { display: grid; grid-template-columns: repeat(3,1fr); padding-block: 23px; gap: 28px; border-bottom: 1px solid var(--line); }
.meal-promises>div { display: flex; align-items: center; gap: 14px; }
.meal-promises .icon { width: 25px; height: 25px; color: var(--rose); }
.meal-promises span { font-size: 12px; color: var(--muted); }
.meal-promises strong { display: block; font-size: 14px; color: var(--ink); font-weight: 550; }
.meal-routine { display: grid; grid-template-columns: .9fr 1.1fr; gap: 67px; align-items: center; padding-block: 48px; scroll-margin-top: 95px; }
.meal-routine-visual { height: 435px; position: relative; border-radius: 5px; overflow: hidden; background: var(--theme-bg-e9e1d7, #e9e1d7); }
.meal-routine-visual>img { position: absolute; right: 0; width: 190%; max-width: none; height: 100%; object-fit: cover; object-position: right center; transition: opacity .25s; }
.meal-routine-visual[data-scene=move]>img, .meal-routine-visual[data-scene=belt]>img { width: 100%; object-position: center 50%; }
.meal-routine-visual>span { position: absolute; bottom: 17px; left: 17px; right: 17px; padding: 9px 13px; background: var(--theme-bg-fffdf9ed, #fffdf9ed); font-size: 12px; color: var(--ink); border-radius: 3px; letter-spacing: .6px; }
.meal-routine-copy>.eyebrow { margin-bottom: 13px; }
.meal-routine h2 { font-size: 40px; max-width: 490px; }
.meal-lead { font-size: 15px; line-height: 1.85; color: var(--muted); margin-top: 17px; }
.routine-tabs { display: flex; margin-top: 22px; border-bottom: 1px solid var(--theme-edge-d8c7ce, #d8c7ce); }
.routine-tabs button { flex: 1; background: transparent; padding: 12px 10px; color: var(--muted); font-size: 14px; border-bottom: 2px solid transparent; }
.routine-tabs button[aria-selected=true] { color: var(--rose); border-color: var(--rose); }
.routine-panel { padding-top: 19px; min-height: 173px; }
.routine-panel h3 { font-size: 19px; line-height: 1.5; }
.routine-panel>p { color: var(--muted); font-size: 14px; line-height: 1.85; margin-block: 10px 14px; }
.routine-panel .text-link { font-size: 13px; }
.meal-evidence { font-size: 12px; line-height: 1.75; color: var(--muted); border-top: 1px solid var(--line); padding-top: 15px; margin-top: 15px; }
.meal-process { display: grid; grid-template-columns: .7fr 1.3fr; gap: 55px; padding-bottom: 48px; }
.meal-process .eyebrow { margin-bottom: 13px; }
.meal-process h2 { font-size: 38px; }
.meal-process ol { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 23px; }
.meal-process li { border-top: 1px solid var(--theme-edge-d6c9c9, #d6c9c9); padding-top: 17px; }
.meal-process li>span { color: var(--rose); font: 29px/1 var(--serif); }
.meal-process h3 { font-size: 16px; line-height: 1.5; margin-top: 13px; }
.meal-process li p { font-size: 13px; line-height: 1.85; color: var(--muted); margin-top: 7px; }
.meal-intake { background: var(--theme-bg-f7f2f1, #f7f2f1); padding-block: 52px; scroll-margin-top: 85px; }
.intake-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: 65px; align-items: start; }
.intake-aside { position: sticky; top: 110px; }
.intake-aside>.eyebrow { margin-bottom: 14px; }
.intake-aside h2 { font-size: 43px; }
.intake-aside>p:not(.eyebrow):not(.intake-care-note) { color: var(--muted); font-size: 15px; line-height: 1.85; margin-top: 17px; max-width: 360px; }
.intake-steps { list-style: none; padding: 0; margin: 25px 0; display: grid; gap: 8px; }
.intake-steps button { display: flex; align-items: center; gap: 13px; font-size: 14px; padding: 10px 0; background: transparent; text-align: left; }
.intake-steps button>span { width: 31px; height: 31px; border: 1px solid var(--theme-edge-cfbfc5, #cfbfc5); display: grid; place-items: center; border-radius: 50%; font-size: 11px; }
.intake-steps button[aria-current=step] { color: var(--rose); font-weight: 600; }
.intake-steps button[aria-current=step]>span { background: var(--strong-bg, var(--theme-bg-342a2c, #342a2c)); border-color: var(--ink); color: var(--theme-fg-ffffff, #ffffff); }
.intake-steps button:disabled { color: var(--theme-fg-73666c, #73666c); cursor: default; }
.intake-person { display: flex; align-items: center; gap: 14px; border-top: 1px solid var(--theme-edge-e1d6d8, #e1d6d8); padding-top: 20px; }
.intake-person>img { width: 56px; height: 56px; object-fit: cover; object-position: center 18%; border-radius: 50%; }
.intake-person strong { font-size: 14px; font-weight: 550; display: block; }
.intake-person span, .intake-person a { display: block; color: var(--muted); font-size: 12px; line-height: 1.8; }
.intake-person a { color: var(--rose); text-decoration: underline; text-underline-offset: 4px; margin-top: 4px; }
.intake-aside .intake-care-note { font-size: 12px; color: var(--muted); line-height: 1.85; margin-top: 20px; max-width: 365px; }
.intake-card { background: var(--theme-bg-fffdfb, #fffdfb); border: 1px solid var(--theme-edge-e6dcde, #e6dcde); border-radius: 7px; padding: 30px 32px; min-width: 0; scroll-margin-top: 105px; }
.intake-topline { display: flex; justify-content: space-between; align-items: center; gap: 15px; flex-wrap: wrap; font-size: 12px; color: var(--muted); }
.intake-topline>span:first-child { font-weight: 550; color: var(--ink); }
.local-form-note { background: var(--theme-bg-f0e8e7, #f0e8e7); border-radius: 3px; padding: 4px 8px; font-size: 11px; }
.intake-progress { height: 3px; background: var(--theme-bg-eee6e6, #eee6e6); margin-block: 17px 27px; overflow: hidden; }
.intake-progress>span { display: block; height: 100%; width: 25%; background: var(--rose); transition: width .25s; }
.intake-step { margin: 0; padding: 0; border: 0; min-width: 0; }
.intake-step[hidden], .intake-summary[hidden], .conditional-field[hidden] { display: none; }
.step-title { font-size: 26px; letter-spacing: -.6px; line-height: 1.35; }
.step-intro { color: var(--muted); font-size: 14px; line-height: 1.8; margin: 11px 0 24px; }
.intake-step>label, .form-grid>label, .conditional-field label { display: grid; gap: 8px; font-size: 14px; line-height: 1.6; font-weight: 500; }
.intake-step>label, .form-grid, .question-group { margin-top: 21px; }
.intake-step input:not([type=radio]):not([type=checkbox]), .intake-step select, .intake-step textarea { width: 100%; min-width: 0; border: 1px solid var(--theme-edge-c9bec2, #c9bec2); border-radius: 4px; padding: 11px 12px; background: var(--theme-bg-fff, #fff); font: 15px/1.65 var(--font); color: var(--ink); }
.intake-step input:not([type=radio]):not([type=checkbox]), .intake-step select { min-height: 48px; }
.intake-step textarea { resize: vertical; }
.intake-step textarea::placeholder { color: var(--theme-fg-796b72, #796b72); opacity: 1; font-weight: 400; }
.intake-step input:focus-visible, .intake-step select:focus-visible, .intake-step textarea:focus-visible { outline: 2px solid var(--rose); outline-offset: 2px; }
.intake-step [aria-invalid=true] { border-color: var(--theme-edge-9c3b4c, #9c3b4c) !important; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.question-group { border: 0; padding: 0; min-width: 0; }
.question-group>legend { padding: 0; margin-bottom: 11px; font-size: 15px; font-weight: 550; line-height: 1.6; }
.goal-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.goal-options label { display: flex; align-items: flex-start; gap: 9px; padding: 13px 12px; border: 1px solid var(--theme-edge-d5c8ce, #d5c8ce); border-radius: 4px; cursor: pointer; background: var(--theme-bg-fff, #fff); }
.goal-options label:has(input:checked) { background: var(--theme-bg-f3e8ed, #f3e8ed); border-color: var(--rose); }
.goal-options input { margin-top: 4px; accent-color: var(--rose); width: 15px; height: 15px; flex-shrink: 0; }
.goal-options span { font-size: 14px; font-weight: 500; line-height: 1.5; }
.goal-options small { display: block; font-size: 12px; font-weight: 400; line-height: 1.6; color: var(--muted); margin-top: 4px; }
.choice-row { display: flex; gap: 9px; flex-wrap: wrap; }
.choice-row label { display: flex; align-items: center; gap: 7px; background: var(--theme-bg-ffffff, #ffffff); padding: 9px 12px; border: 1px solid var(--theme-edge-d5c8ce, #d5c8ce); border-radius: 4px; font-size: 13px; cursor: pointer; }
.choice-row label:has(input:checked) { border-color: var(--rose); background: var(--theme-bg-f3e8ed, #f3e8ed); }
.choice-row input { accent-color: var(--rose); width: 15px; height: 15px; margin: 0; }
.conditional-field { margin-top: 14px; padding: 15px; background: var(--theme-bg-f6eeef, #f6eeef); border-left: 2px solid var(--rose); border-radius: 2px; }
.form-care { display: flex; gap: 12px; font-size: 12px; line-height: 1.85; color: var(--muted); background: var(--theme-bg-f3efea, #f3efea); padding: 16px; border-radius: 4px; margin-top: 23px; }
.form-care>.icon { width: 21px; height: 21px; color: var(--rose); margin-top: 3px; }
.intake-step .form-ack { display: flex; align-items: flex-start; gap: 11px; font-weight: 400; font-size: 13px; line-height: 1.85; }
.form-ack input { accent-color: var(--rose); width: 17px; height: 17px; flex-shrink: 0; margin-top: 4px; }
.form-privacy { color: var(--muted); font-size: 12px; line-height: 1.85; margin-top: 18px; }
.form-error { color: var(--theme-fg-8d2c40, #8d2c40); background: var(--theme-bg-fbecef, #fbecef); border-left: 2px solid var(--theme-edge-8d2c40, #8d2c40); font-size: 14px; padding: 11px 14px; border-radius: 3px; margin-top: 20px; }
.form-error[hidden] { display: none; }
.intake-actions { display: flex; align-items: center; justify-content: space-between; gap: 18px; border-top: 1px solid var(--line); padding-top: 23px; margin-top: 28px; }
.intake-actions #intake-back { background: transparent; }
.intake-actions #intake-back[hidden] { display: none; }
.intake-actions .button { margin-left: auto; font-size: 14px; }
.intake-summary>h3 { font-size: 30px; letter-spacing: -1px; }
.intake-summary>h3 em { font-size: 1.2em; }
.intake-summary>p:not(.eyebrow) { font-size: 14px; color: var(--muted); line-height: 1.85; margin-top: 15px; }
.intake-summary dl { margin-block: 22px; }
.intake-summary dt { font-size: 12px; font-weight: 550; color: var(--muted); margin-top: 17px; }
.intake-summary dd { margin: 5px 0 0; font-size: 15px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.summary-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.summary-actions .button { font-size: 13px; gap: 15px; }
#clear-intake { background: transparent; font-size: 13px; margin-top: 21px; }
.meal-faq { padding-block: 48px; display: grid; grid-template-columns: .7fr 1.3fr; gap: 50px; }
.meal-faq h2 { font-size: 37px; }
.meal-faq>div:last-child { border-top: 1px solid var(--line); }
.meal-faq summary { font-size: 15px; }
.meal-page .navigation>a[aria-current=page] { color: var(--rose); }
.meal-hero-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; }
.meal-pair-belt, .meal-pair-food { position: relative; overflow: hidden; background: var(--theme-bg-eee6df, #eee6df); }
.meal-pair-belt>img { width: 100%; height: 100%; object-fit: cover; object-position: center 44%; }
.meal-pair-food>img { position: absolute; right: 0; width: 280%; max-width: none; height: 100%; object-fit: cover; object-position: right center; }
.meal-pair-belt>span, .meal-pair-food>span { position: absolute; left: 10px; right: 10px; top: 13px; padding: 7px 8px; background: var(--theme-bg-fffdf9f0, #fffdf9f0); color: var(--ink); border-radius: 3px; text-align: center; font-size: 11px; font-weight: 550; letter-spacing: .6px; }
.meal-pair-plus { position: absolute; z-index: 2; left: 50%; top: 44%; transform: translate(-50%,-50%); display: grid; place-items: center; width: 48px; height: 48px; background: var(--theme-bg-3c2d33, #3c2d33); color: var(--theme-fg-fff6f6, #fff6f6); border: 4px solid var(--theme-edge-f7f0e8, #f7f0e8); border-radius: 50%; font-size: 29px; line-height: 1; }
.meal-hero-pair .meal-visual-note { z-index: 3; }
@media (max-width: 1100px) {
  .meal-hero-grid { gap: 35px; }
  .meal-hero-copy h1 { font-size: 52px; }
  .meal-hero-visual { height: 430px; }
  .meal-hero-actions { gap: 18px; }
  .meal-hero-actions .button { font-size: 13px; gap: 15px; }
  .meal-promises { gap: 18px; }
  .meal-routine { gap: 40px; }
  .meal-routine-visual { height: 475px; }
  .meal-routine h2 { font-size: 36px; }
  .meal-process { grid-template-columns: 1fr; gap: 27px; }
  .intake-layout { grid-template-columns: .65fr 1.35fr; gap: 33px; }
  .intake-card { padding: 26px; }
  .intake-aside h2 { font-size: 37px; }
  .goal-options { grid-template-columns: 1fr; }
}
@media (max-width: 750px) {
  .intake-layout { grid-template-columns: 1fr; gap: 28px; }
  .intake-aside { position: static; }
  .intake-aside>p:not(.eyebrow):not(.intake-care-note) { max-width: none; }
  .intake-steps { display: flex; flex-wrap: wrap; gap: 9px; margin-block: 19px 0; }
  .intake-steps li { flex: 1 1 calc(50% - 9px); }
  .intake-steps button { font-size: 13px; gap: 9px; }
  .intake-person, .intake-aside .intake-care-note { display: none; }
}
@media (max-width: 650px) {
  .meal-breadcrumb { font-size: 12px; padding-top: 19px; gap: 8px; }
  .meal-hero-grid { grid-template-columns: 1fr; gap: 25px; padding-block: 23px 25px; }
  .meal-hero-copy h1 { font-size: clamp(39px,10.5vw,55px); line-height: 1.12; letter-spacing: -2px; }
  .meal-hero-copy .eyebrow { font-size: 11px; margin-bottom: 14px; }
  .meal-hero-copy>p:not(.eyebrow) { font-size: 15px; margin-top: 17px; }
  .meal-hero-actions { margin-top: 21px; gap: 17px; }
  .meal-hero-actions .button { font-size: 13px; gap: 16px; padding-inline: 16px; }
  .meal-price { margin-top: 20px; gap: 14px; }
  .meal-price strong { font-size: 23px; white-space: nowrap; }
  .meal-price>span { font-size: 12px; padding-left: 14px; }
  .meal-hero-visual { height: 290px; }
  .meal-hero-visual>img { width: 190%; }
  .meal-pair-belt>span, .meal-pair-food>span { font-size: 11px; left: 7px; right: 7px; top: 10px; letter-spacing: .2px; padding-inline: 5px; }
  .meal-pair-plus { width: 42px; height: 42px; font-size: 26px; }
  .meal-visual-note { padding: 12px 15px; bottom: 13px; left: 13px; right: 13px; }
  .meal-promises { grid-template-columns: 1fr; padding-block: 20px; gap: 17px; }
  .meal-promises strong { font-size: 15px; }
  .meal-promises span { font-size: 13px; }
  .meal-routine { grid-template-columns: 1fr; gap: 25px; padding-block: 31px; }
  .meal-routine-visual { height: 300px; }
  .meal-routine h2 { font-size: 34px; }
  .meal-routine-copy .eyebrow { font-size: 11px; }
  .meal-lead { font-size: 15px; }
  .routine-tabs { margin-top: 18px; }
  .routine-tabs button { font-size: 13px; padding-inline: 7px; }
  .routine-panel { min-height: 0; padding-top: 17px; }
  .routine-panel h3 { font-size: 19px; }
  .routine-panel>p { font-size: 15px; }
  .meal-process { gap: 23px; padding-bottom: 31px; }
  .meal-process h2 { font-size: 33px; }
  .meal-process ol { grid-template-columns: 1fr; gap: 17px; }
  .meal-process li { display: flex; gap: 17px; padding-top: 15px; }
  .meal-process li>span { min-width: 28px; margin-top: 3px; }
  .meal-process h3 { margin-top: 0; font-size: 16px; }
  .meal-process li p { font-size: 14px; margin-top: 5px; }
  .meal-intake { padding-block: 31px; scroll-margin-top: 75px; }
  .intake-layout { gap: 23px; }
  .intake-aside h2 { font-size: 36px; }
  .intake-card { padding: 23px 19px; }
  .intake-topline { gap: 10px; }
  .local-form-note { font-size: 11px; }
  .intake-progress { margin-block: 16px 23px; }
  .step-title { font-size: 24px; }
  .step-intro { font-size: 14px; margin-bottom: 20px; }
  .goal-options { grid-template-columns: 1fr; }
  .goal-options label { padding: 13px; }
  .goal-options span { font-size: 15px; }
  .goal-options small { font-size: 13px; }
  .form-grid { grid-template-columns: 1fr; gap: 18px; }
  .form-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }
  .form-grid.three>label { font-size: 12px; }
  .intake-step input:not([type=radio]):not([type=checkbox]), .intake-step select, .intake-step textarea { font-size: 16px; padding-inline: 10px; }
  .intake-step>label, .form-grid>label, .conditional-field label { font-size: 14px; }
  .question-group>legend { font-size: 15px; }
  .choice-row { gap: 8px; }
  .choice-row label { font-size: 13px; }
  .conditional-field { padding: 13px; }
  .form-care { padding: 14px; font-size: 12px; }
  .intake-actions { gap: 13px; }
  .intake-actions .button { font-size: 13px; gap: 15px; padding-inline: 17px; }
  .intake-actions .text-link { font-size: 13px; }
  .intake-summary>h3 { font-size: 28px; }
  .summary-actions .button { width: 100%; }
  .meal-faq { padding-block: 33px; grid-template-columns: 1fr; gap: 24px; }
  .meal-faq h2 { font-size: 33px; }
  .meal-faq summary { font-size: 15px; }
}

/* Give the questionnaire comfortable columns on portrait tablets. */
@media (min-width: 651px) and (max-width: 900px) {
  .intake-layout { grid-template-columns: minmax(0,1fr); gap: 25px; }
  .intake-aside { position: static; }
  .intake-aside>p:not(.eyebrow):not(.intake-care-note) { max-width: 610px; }
  .intake-steps { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 20px; margin-block: 20px 0; }
  .intake-person, .intake-aside .intake-care-note { display: none; }
  .goal-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
