:root {
  --teal: #245c52;
  --teal-dark: #174b43;
  --teal-soft: #6d9a8e;
  --cream: #f7f5f0;
  --sage: #dce6df;
  --sage-2: #edf3ef;
  --charcoal: #303231;
  --muted: #5e6762;
  --sand: #e8dfd2;
  --white: #ffffff;
  --line: rgba(36, 92, 82, 0.16);
  --shadow: 0 18px 50px rgba(32, 49, 44, 0.08);
  --radius-lg: 28px;
  --radius-md: 20px;
  --radius-sm: 14px;
  --shell: 1240px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  color: var(--charcoal);
  background: var(--cream);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.skip-link {
  position: fixed; left: 16px; top: 12px; z-index: 9999;
  padding: 10px 14px; background: var(--charcoal); color: white; border-radius: 8px;
  transform: translateY(-150%); transition: transform .18s ease;
}
.skip-link:focus { transform: translateY(0); }

.shell { width: min(var(--shell), calc(100% - 48px)); margin-inline: auto; }
.section { position: relative; padding: 92px 0; overflow: hidden; }
.section--white { background: var(--white); }
.section--cream { background: var(--cream); }
.section--hero { background: var(--cream); padding: 0; }

h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.08; letter-spacing: -0.035em; }
h1 { font-size: clamp(3rem, 5vw, 5.35rem); margin-bottom: 22px; max-width: 760px; }
h2 { font-size: clamp(2.3rem, 4vw, 4.2rem); margin-bottom: 20px; }
h3 { font-size: 1.35rem; margin-bottom: 12px; }
p { color: var(--muted); font-size: 1.05rem; }
.lead { font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.55; }
.eyebrow {
  color: var(--teal); font-size: .78rem; font-weight: 800; letter-spacing: .22em;
  text-transform: uppercase; margin-bottom: 16px;
}
.eyebrow--light { color: #bfdbd2; }
.card-kicker { font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--teal-soft); margin-bottom: 10px; }
.microcopy, .section-footnote { font-size: .84rem; color: #6f7974; }
.center { text-align: center; }

/* Header */
.site-header {
  position: sticky; top: 0; z-index: 1000; background: rgba(255,255,255,.95);
  border-bottom: 1px solid rgba(36,92,82,.08); backdrop-filter: blur(12px);
}
.header-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; text-decoration: none; }
.brand img { width: 78px; height: auto; object-fit: contain; }
.primary-nav { display: flex; align-items: center; gap: 34px; font-weight: 700; }
.primary-nav > a:not(.button), .nav-login { text-decoration: none; font-size: .96rem; }
.primary-nav > a:not(.button):hover { color: var(--teal); }
.nav-login { border: 0; background: transparent; color: var(--charcoal); padding: 8px 0; cursor: default; }
.menu-toggle { display: none; border: 0; background: transparent; padding: 10px; width: 46px; height: 46px; flex-direction: column; justify-content: center; gap: 6px; }
.menu-toggle span { display: block; height: 3px; border-radius: 4px; background: var(--charcoal); width: 100%; transition: .2s ease; }

.button {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 48px; padding: 13px 24px; border-radius: 999px; text-decoration: none;
  font-weight: 800; text-transform: uppercase; letter-spacing: .02em; font-size: .82rem;
  border: 2px solid transparent; transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(36,92,82,.16); }
.button:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #8cb9aa; outline-offset: 4px; }
.button--header, .button--primary { background: var(--teal); color: white; }
.button--header { min-height: 52px; padding-inline: 28px; }
.button--large { padding: 17px 28px; }
.button--wide { min-width: min(620px, 100%); }
.button--light { background: white; color: var(--teal); min-width: 290px; }

/* Hero */
.hero-grid { display: grid; grid-template-columns: 1.04fr .96fr; min-height: 720px; align-items: stretch; }
.hero-copy { padding: 88px 72px 68px 0; display: flex; flex-direction: column; justify-content: center; }
.hero-copy > p:not(.eyebrow):not(.microcopy) { max-width: 720px; }
.hero-lead { color: var(--teal); font-size: clamp(1.22rem, 2vw, 1.65rem)!important; font-weight: 800; }
.hero-actions { margin: 14px 0 16px; }
.hero-visual { position: relative; min-height: 620px; margin-right: calc((100vw - min(var(--shell), calc(100vw - 48px))) / -2); }
.hero-photo { width: 100%; height: 100%; object-fit: cover; object-position: 44% center; }
.hero-visual::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg, var(--cream) 0%, rgba(247,245,240,.72) 12%, transparent 36%); pointer-events:none; }
.assessment-card {
  position: absolute; z-index: 2; left: 50px; bottom: 42px; width: min(330px, calc(100% - 80px));
  padding: 26px; border-radius: 26px; background: rgba(255,255,255,.96); box-shadow: 0 24px 70px rgba(29,45,40,.18);
}
.assessment-card .mini-label { display:block; color:#7b8d86; font-size:.68rem; text-transform:uppercase; letter-spacing:.15em; font-weight:800; margin-bottom:8px; }
.assessment-card strong { display:block; font-size:1.35rem; line-height:1.08; }
.progress-dots { display:flex; gap:7px; margin:18px 0; }
.progress-dots i { height:4px; flex:1; border-radius:999px; background:#dae5df; }
.progress-dots i:first-child { background:var(--teal); }
.assessment-card ul { margin:0 0 18px; padding:0; list-style:none; display:grid; gap:9px; color:#4e5954; font-size:.87rem; }
.assessment-card li::before { content:"✓"; display:inline-grid; place-items:center; width:20px; height:20px; margin-right:8px; border-radius:50%; background:#e3eee8; color:var(--teal); font-weight:800; }
.assessment-card__cta { background:var(--teal); color:white; border-radius:12px; padding:12px 14px; display:flex; justify-content:space-between; align-items:center; font-size:.82rem; font-weight:800; }
.hero-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:white; }
.hero-strip__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding-top:25px; padding-bottom:25px; }
.hero-strip__grid > div { display:grid; grid-template-columns:42px 1fr; column-gap:14px; align-items:center; }
.hero-strip__grid b, .hero-strip__grid small { grid-column:2; }
.hero-strip__grid small { color:#738079; }
.line-icon { grid-row:1/3; font-size:2rem; color:var(--teal); }

/* shared intros */
.section-intro { margin-bottom: 34px; }
.section-intro--with-image { display:grid; grid-template-columns:1.05fr .95fr; gap:60px; align-items:center; }
.section-intro--with-image > div:first-child { max-width:760px; }
.intro-photo { width:100%; aspect-ratio: 16/8; object-fit:cover; border-radius:30px; box-shadow:var(--shadow); }
.fruit-panel { min-height:320px; border-radius:30px; background: linear-gradient(90deg, rgba(247,245,240,.95), rgba(247,245,240,.08)), url('/assets/img/meal-fruit.webp') center/cover no-repeat; }
.split-heading { display:grid; grid-template-columns:1.1fr .9fr; gap:70px; align-items:end; margin-bottom:36px; }
.split-heading > p { padding-bottom:10px; }
.center-heading { text-align:center; max-width:900px; margin:0 auto 52px; }

/* Different */
.statement-block { background:white; border-radius:var(--radius-lg); padding:32px; border:1px solid var(--line); display:grid; grid-template-columns:.85fr 1.15fr; gap:34px; align-items:center; margin:32px 0; }
.statement-block h3 { font-size:clamp(1.5rem,2.4vw,2.3rem); color:var(--teal); }
.pillars-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.pillar-card { background:white; padding:28px; border-radius:var(--radius-md); border:1px solid rgba(36,92,82,.12); box-shadow:0 10px 30px rgba(40,60,53,.04); }
.card-icon { width:48px; height:48px; border-radius:50%; background:var(--sage); color:var(--teal); display:inline-grid; place-items:center; font-size:1.25rem; font-weight:900; margin-bottom:18px; flex:0 0 auto; }
.why-note { margin-top:20px; padding:28px 32px; border-radius:var(--radius-md); background:var(--sand); display:grid; grid-template-columns:.8fr 1.2fr; gap:30px; align-items:center; }
.why-note strong { font-size:1.45rem; }
.why-note p:last-child { margin-bottom:0; }

/* Steps */
.steps-grid { margin:0; padding:0; list-style:none; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; counter-reset:steps; }
.step-card { position:relative; background:#fbfcfb; border:1px solid var(--line); border-radius:24px; padding:34px 28px 0; overflow:hidden; min-height:480px; box-shadow:0 14px 34px rgba(27,51,44,.05); }
.step-number { position:absolute; top:-18px; left:50%; transform:translateX(-50%); width:48px; height:48px; border-radius:50%; background:#d5e5df; color:var(--teal); display:grid; place-items:center; font-size:1.35rem; font-weight:900; }
.step-card .card-icon { margin-top:6px; }
.step-card h3 { font-size:1.3rem; }
.step-card p { font-size:.96rem; }
.step-photo, .step-visual { margin-top:24px; width:calc(100% + 56px); margin-left:-28px; height:190px; object-fit:cover; }
.step-visual { background:linear-gradient(135deg,#f3efe7,#dce9e2); display:flex; align-items:center; justify-content:center; gap:14px; color:var(--teal); }
.step-visual--assessment { flex-direction:column; align-items:stretch; padding:32px; }
.step-visual--assessment i { height:12px; border-radius:999px; background:white; box-shadow:inset 50px 0 var(--teal); }
.step-visual--assessment i:nth-child(2){ box-shadow:inset 115px 0 #7faa9d; }
.step-visual--assessment i:nth-child(3){ box-shadow:inset 85px 0 #a4bdb4; }
.step-visual--route { font-size:5rem; }
.step-visual--choice span { background:white; padding:22px 18px; border-radius:16px; border:1px solid var(--line); font-weight:800; }
.step-visual--calendar { flex-direction:column; font-size:1.2rem; }
.step-visual--signs { flex-direction:column; }
.step-visual--signs span { background:var(--teal); color:white; padding:10px 26px; border-radius:7px; min-width:160px; text-align:center; font-weight:800; }
.center-action { text-align:center; margin-top:34px; }

/* Food */
.notice-bar { margin:26px 0; background:var(--sage); border-radius:18px; padding:22px 26px; display:flex; gap:16px; align-items:center; color:var(--teal); }
.notice-bar > span { width:32px; height:32px; border-radius:50%; background:white; display:grid; place-items:center; flex:0 0 auto; font-weight:900; }
.notice-bar--left { align-items:flex-start; }
.notice-bar p { margin:5px 0 0; font-size:.96rem; }
.food-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.food-card { background:white; border-radius:24px; overflow:hidden; border:1px solid var(--line); box-shadow:0 10px 30px rgba(27,51,44,.04); }
.food-card > img, .food-pair { width:100%; height:310px; }
.food-card > img { object-fit:cover; }
.food-pair { display:grid; grid-template-columns:1.65fr 1fr; }
.food-pair img { width:100%; height:100%; object-fit:cover; }
.food-card > div:last-child { padding:24px 26px; }
.food-card h3 { font-size:1.55rem; }
.choose-meals { margin-top:22px; background:var(--sage-2); border-radius:18px; padding:22px 28px; display:flex; align-items:center; gap:18px; }
.choose-meals .card-icon { margin:0; background:transparent; }
.choose-meals h3, .choose-meals p { margin-bottom:4px; }
.section-footnote { text-align:center; margin:16px auto 0; max-width:900px; }

/* Classification */
.classification-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.classification-card { display:grid; grid-template-columns:40% 60%; min-height:245px; background:white; border-radius:24px; overflow:hidden; border:1px solid var(--line); box-shadow:0 10px 28px rgba(27,51,44,.04); }
.class-visual { position:relative; overflow:hidden; background:#e2ebe6; min-height:220px; }
.class-visual img { width:100%; height:100%; object-fit:cover; display:block; }
.class-copy { padding:30px; }
.class-copy h3 { font-size:1.65rem; }
.info-bar { margin-top:22px; border-radius:18px; padding:20px 26px; background:var(--sage); display:flex; gap:16px; align-items:flex-start; border:1px solid rgba(36,92,82,.09); }
.info-bar > span { width:36px; height:36px; border-radius:50%; border:2px solid var(--teal); color:var(--teal); display:grid; place-items:center; font-weight:900; flex:0 0 auto; }
.info-bar p { margin:0; }
.info-bar--white { background:white; }

/* Progress */
.progress-panel { background:var(--sage-2); border:1px solid var(--line); border-radius:28px; padding:28px; }
.progress-top { display:grid; grid-template-columns:1fr 42px 1fr 42px 1fr; align-items:center; gap:10px; }
.progress-top article { min-height:130px; background:white; border-radius:18px; padding:22px; display:flex; gap:16px; align-items:flex-start; border:1px solid var(--line); }
.progress-top .card-icon { margin:0; }
.progress-top h3 { margin:3px 0 8px; font-size:1.05rem; }
.progress-top p { font-size:.88rem; margin:0; }
.flow-arrow { text-align:center; color:var(--teal); font-size:2rem; }
.branch-line { height:72px; position:relative; max-width:78%; margin:0 auto; border-top:2px solid var(--teal); top:24px; }
.branch-line i { position:absolute; width:2px; height:42px; background:var(--teal); top:-2px; }
.branch-line i:nth-child(1){left:0}.branch-line i:nth-child(2){left:50%}.branch-line i:nth-child(3){right:0}
.progress-outcomes { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.progress-outcomes article { background:white; border:1px solid var(--line); border-radius:18px; padding:24px; }
.progress-outcomes .card-icon { margin-bottom:10px; }
.progress-outcomes h3 { font-size:1.1rem; }
.progress-outcomes p { font-size:.9rem; }
.progress-outcomes strong { display:block; background:#edf3ef; padding:11px 12px; border-radius:10px; text-align:center; color:var(--teal); font-size:.78rem; }

/* Included and purchase */
.included-hero { display:grid; grid-template-columns:.82fr 1.18fr; gap:40px; align-items:center; margin-bottom:34px; }
.guide-mockup { position:relative; min-height:280px; display:flex; align-items:center; justify-content:center; }
.guide-mockup img { width:100%; height:auto; object-fit:contain; filter:drop-shadow(0 18px 24px rgba(30,48,42,.12)); }
.book { width:150px; height:225px; border-radius:7px 7px 2px 2px; box-shadow:0 16px 28px rgba(30,48,42,.16); padding:18px 12px; background:linear-gradient(160deg,#fbfaf6,#dce8e1); color:var(--teal); border:1px solid rgba(36,92,82,.16); text-align:center; transform:rotate(-3deg); }
.book--2 { height:235px; background:linear-gradient(160deg,#faf7ee,#ece1cf); transform:rotate(1deg); }
.book--3 { height:220px; transform:rotate(3deg); }
.book span { font-size:.55rem; color:#6b7670; }
.book b { display:block; margin-top:22px; line-height:1.05; font-size:1rem; }
.tablet { width:250px; height:205px; background:#2c3230; padding:10px; border-radius:18px; box-shadow:0 18px 34px rgba(30,48,42,.2); transform:rotate(3deg); }
.tablet > span { display:block; background:white; padding:8px; font-size:.7rem; font-weight:800; color:var(--teal); }
.tablet-grid { height:150px; background:#f8f8f6; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(2,1fr); gap:7px; padding:9px; }
.tablet-grid i { background:linear-gradient(135deg,#dce8e1,#f4c58a); border-radius:50%; }
.resource-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.resource-card { min-height:210px; display:grid; grid-template-columns:42% 58%; border:1px solid var(--line); border-radius:20px; overflow:hidden; background:white; }
.resource-card > div:last-child { padding:22px; }
.resource-card h3 { font-size:1.2rem; }
.resource-card p { font-size:.9rem; }
.resource-art { min-height:100%; display:grid; place-items:center; background:var(--sage); color:var(--teal); font-size:3rem; }
.resource-art--meal { background:url('/assets/img/meal-salmon.webp') center/cover no-repeat; }
.resource-art--guides { background:var(--sand); }
.purchase-panel { margin-top:24px; padding:28px; background:linear-gradient(135deg,#e8f1ec,#f6f2e9); border:1px solid var(--line); border-radius:26px; }
.purchase-panel > h2 { font-size:clamp(2rem,3vw,3rem); }
.purchase-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.purchase-card { background:white; border:1px solid var(--line); border-radius:20px; padding:24px; display:flex; gap:18px; align-items:flex-start; }
.purchase-card .card-icon { margin:0; }
.purchase-card h3 { font-size:2rem; }
.purchase-note { text-align:center; font-size:.9rem; margin:18px 0 12px; }
.purchase-panel > .button { display:flex; margin:0 auto; }
.purchase-flow { margin-top:20px; background:rgba(255,255,255,.7); border-radius:16px; border:1px solid var(--line); padding:18px; display:grid; grid-template-columns:1fr 34px 1.15fr 34px 1.4fr 34px .9fr 34px 1.15fr; gap:8px; align-items:center; }
.purchase-flow > div { display:flex; align-items:center; gap:9px; font-size:.78rem; }
.purchase-flow > div span { width:30px;height:30px;border-radius:50%;background:var(--teal);color:white;display:grid;place-items:center;font-weight:900;flex:0 0 auto; }
.purchase-flow > i { font-style:normal;color:var(--teal);font-size:1.4rem;text-align:center; }

/* FAQ */
.split-heading--faq { align-items:center; }
.faq-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px 18px; background:linear-gradient(135deg,#edf1ec,#f0ede5); border:1px solid var(--line); border-radius:28px; padding:22px; }
.faq-item { background:white; border:1px solid rgba(36,92,82,.13); border-radius:18px; overflow:hidden; }
.faq-item[open] { border-color:#a9c7bd; box-shadow:0 8px 24px rgba(36,92,82,.06); }
.faq-item summary { list-style:none; cursor:pointer; display:grid; grid-template-columns:42px 1fr 34px; gap:10px; align-items:center; padding:19px 20px; min-height:76px; font-weight:800; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-num { color:#80a89b; font-size:.72rem; letter-spacing:.08em; }
.faq-plus { width:28px;height:28px;border-radius:50%;background:#e4eee9;position:relative;justify-self:end; }
.faq-plus::before, .faq-plus::after { content:""; position:absolute; left:50%;top:50%; width:10px;height:2px;background:var(--teal);transform:translate(-50%,-50%); }
.faq-plus::after { transform:translate(-50%,-50%) rotate(90deg); transition:.18s ease; }
.faq-item[open] .faq-plus::after { transform:translate(-50%,-50%) rotate(0); }
.faq-item > div { padding:0 24px 22px 72px; }
.faq-item > div p { font-size:.93rem; margin:0; }
.final-cta { margin-top:34px; border-radius:28px; background:var(--teal); color:white; padding:44px; display:flex; justify-content:space-between; gap:40px; align-items:center; overflow:hidden; position:relative; }
.final-cta::after { content:""; position:absolute; width:420px;height:420px;border-radius:50%;border:1px solid rgba(255,255,255,.08);right:12%;top:-160px; box-shadow:0 0 0 42px rgba(255,255,255,.03),0 0 0 86px rgba(255,255,255,.025); }
.final-cta > * { position:relative; z-index:1; }
.final-cta h2 { color:white; font-size:clamp(2rem,3.2vw,3.3rem); margin-bottom:10px; }
.final-cta p { color:#d8e6e0; margin:0; }
.final-cta > div:last-child { display:flex; flex-direction:column; align-items:center; gap:10px; }
.final-cta small { color:#bfd4cc; }

/* Footer */
.site-footer { background:#245f54; color:white; padding:72px 0 32px; }
.site-footer p, .site-footer a { color:#dce9e4; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:70px; }
.footer-brandline { display:flex; gap:18px; align-items:center; margin-bottom:24px; }
.footer-brandline img { width:96px; border-radius:15px; background:white; }
.footer-brandline h2 { color:white; font-size:2rem; margin:0 0 4px; }
.footer-brandline p { text-transform:uppercase; letter-spacing:.14em; font-weight:700; font-size:.82rem; margin:0; }
.site-footer h3 { color:#c0d7cf; font-size:.76rem; text-transform:uppercase; letter-spacing:.2em; margin-bottom:20px; }
.footer-links { list-style:none; padding:0; margin:0; display:grid; gap:13px; }
.footer-links a { text-decoration:none; }
.footer-links a:hover { color:white; text-decoration:underline; }
.footer-links--pending span { color:#dce9e4; opacity:.82; }
.footer-contact-title { margin-top:34px; }
.footer-disclaimer { border-top:1px solid rgba(255,255,255,.16); border-bottom:1px solid rgba(255,255,255,.16); padding-top:34px; padding-bottom:34px; margin-top:50px; }
.footer-disclaimer p { max-width:980px; }
.footer-bottom { display:flex; justify-content:space-between; gap:24px; padding-top:28px; }
.footer-bottom p { font-size:.88rem; margin:0; }

/* reveal progressive enhancement */
.js .reveal { opacity:0; transform:translateY(20px); transition:opacity .55s ease, transform .55s ease; }
.js .reveal.is-visible { opacity:1; transform:none; }

@media (max-width: 1080px) {
  .shell { width:min(100% - 36px, var(--shell)); }
  .header-inner { min-height:84px; }
  .primary-nav { gap:20px; }
  .hero-grid { grid-template-columns:1fr 1fr; }
  .hero-copy { padding-right:38px; }
  .pillars-grid { grid-template-columns:1fr 1fr; }
  .steps-grid { grid-template-columns:1fr 1fr; }
  .included-hero { grid-template-columns:1fr; }
  .guide-mockup { justify-content:center; }
  .resource-grid { grid-template-columns:1fr; }
  .resource-card { grid-template-columns:260px 1fr; }
  .purchase-flow { grid-template-columns:1fr; }
  .purchase-flow > i { transform:rotate(90deg); }
}

@media (max-width: 820px) {
  html { scroll-padding-top:84px; }
  .section { padding:70px 0; }
  .menu-toggle { display:flex; z-index:1002; }
  .primary-nav {
    position:fixed; top:84px; left:0; right:0; background:white; padding:22px 24px 30px;
    display:flex; flex-direction:column; align-items:stretch; gap:8px; border-bottom:1px solid var(--line);
    transform:translateY(-140%); opacity:0; visibility:hidden; transition:.22s ease; box-shadow:0 22px 40px rgba(30,48,42,.08);
  }
  .site-header.menu-open .primary-nav { transform:translateY(0); opacity:1; visibility:visible; }
  .primary-nav > a:not(.button), .nav-login { padding:13px 2px; text-align:left; }
  .button--header { width:100%; }
  .site-header.menu-open .menu-toggle span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
  .site-header.menu-open .menu-toggle span:nth-child(2){ opacity:0; }
  .site-header.menu-open .menu-toggle span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

  .hero-grid { grid-template-columns:1fr; min-height:0; }
  .hero-copy { padding:64px 0 40px; }
  .hero-visual { margin:0; min-height:520px; border-radius:28px 28px 0 0; overflow:hidden; }
  .hero-visual::after { background:linear-gradient(180deg,var(--cream) 0%, transparent 25%); }
  .assessment-card { left:24px; bottom:24px; }
  .hero-strip__grid { grid-template-columns:1fr 1fr; }
  .section-intro--with-image, .split-heading, .statement-block, .why-note, .included-hero, .footer-grid { grid-template-columns:1fr; gap:24px; }
  .section-intro--with-image { gap:30px; }
  .pillars-grid, .food-grid, .classification-grid, .purchase-grid, .faq-grid, .progress-outcomes { grid-template-columns:1fr; }
  .classification-card { grid-template-columns:34% 66%; }
  .progress-top { grid-template-columns:1fr; }
  .flow-arrow { transform:rotate(90deg); }
  .branch-line { display:none; }
  .progress-outcomes { margin-top:18px; }
  .final-cta { flex-direction:column; align-items:flex-start; }
  .final-cta > div:last-child { align-items:flex-start; width:100%; }
  .button--light { width:100%; }
  .footer-grid { gap:40px; }
}

@media (max-width: 600px) {
  .shell { width:min(100% - 28px, var(--shell)); }
  .section { padding:56px 0; }
  .header-inner { min-height:78px; }
  .brand img { width:68px; }
  .primary-nav { top:78px; }
  h1 { font-size:clamp(2.55rem,12vw,3.7rem); }
  h2 { font-size:clamp(2.05rem,10vw,3rem); }
  p, .lead { font-size:1rem; }
  .hero-copy { padding-top:48px; }
  .hero-actions .button { width:100%; }
  .hero-visual { min-height:460px; }
  .hero-photo { object-position:52% center; }
  .assessment-card { width:calc(100% - 32px); left:16px; bottom:16px; padding:20px; }
  .hero-strip__grid { grid-template-columns:1fr; gap:14px; }
  .hero-strip__grid > div { padding:8px 0; border-bottom:1px solid var(--line); }
  .hero-strip__grid > div:last-child { border-bottom:0; }
  .intro-photo, .fruit-panel { min-height:260px; aspect-ratio:auto; }
  .pillars-grid, .steps-grid { grid-template-columns:1fr; }
  .step-card { min-height:430px; }
  .food-card > img, .food-pair { height:245px; }
  .choose-meals { align-items:flex-start; }
  .classification-card { grid-template-columns:1fr; }
  .class-visual { min-height:180px; }
  .class-copy { padding:24px; }
  .progress-panel { padding:16px; }
  .progress-top article { min-height:0; }
  .guide-mockup { min-height:0; }
  .resource-card { grid-template-columns:1fr; }
  .resource-art { min-height:180px; }
  .purchase-panel { padding:18px; }
  .purchase-card { flex-direction:column; }
  .faq-grid { padding:12px; border-radius:20px; }
  .faq-item summary { grid-template-columns:34px 1fr 28px; padding:17px 14px; }
  .faq-item > div { padding:0 16px 18px 48px; }
  .final-cta { padding:28px; border-radius:22px; }
  .footer-brandline img { width:84px; }
  .footer-bottom { flex-direction:column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
  .js .reveal { opacity:1; transform:none; }
}
