:root{
  --paper: #E8EBE3;
  --surface: #F5F6F1;
  --ink: #1F2319;
  --ink-soft: #4B5242;
  --olive: #3E4A2C;
  --olive-hover: #2F3921;
  --on-olive: #F5F6F1;
  --sage: #9BAA8A;
  --line: rgba(31,35,25,.16);
  --blush: #E4B9AE;
  --ok: #3E6B3A;
  --err: #9A3B2A;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --paper: #171A13;
    --surface: #20241B;
    --ink: #E8EBE3;
    --ink-soft: #B3BAA6;
    --olive: #B9C99F;
    --olive-hover: #CFDBB9;
    --on-olive: #171A13;
    --sage: #6E7C60;
    --line: rgba(232,235,227,.16);
    --blush: #C98E80;
    --ok: #A9CFA0;
    --err: #E59B88;
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --paper: #171A13; --surface: #20241B; --ink: #E8EBE3; --ink-soft: #B3BAA6;
  --olive: #B9C99F; --olive-hover: #CFDBB9; --on-olive: #171A13; --sage: #6E7C60;
  --line: rgba(232,235,227,.16); --blush: #C98E80; --ok: #A9CFA0; --err: #E59B88;
  color-scheme: dark;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'Schibsted Grotesk', 'Helvetica Neue', Arial, sans-serif;
  font-size:1.0625rem;
  line-height:1.6;
}
img, video{ max-width:100%; display:block; }
a{ color:inherit; }
h1, h2, h3{
  font-family:'Young Serif', Georgia, serif;
  font-weight:400;
  line-height:1.12;
  margin:0;
  text-wrap:balance;
}
h2{ font-size:clamp(1.75rem, 4.2vw, 2.5rem); }
h3{ font-size:1.375rem; }
p{ margin:0; }
.wrap{ max-width:1120px; margin:0 auto; padding-inline:20px; }
.measure{ max-width:60ch; }
.soft{ color:var(--ink-soft); }

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  font:600 1rem/1 'Schibsted Grotesk', sans-serif;
  padding:16px 22px; border-radius:6px; border:0; cursor:pointer;
  background:var(--olive); color:var(--on-olive); text-decoration:none;
  transition:background-color .15s ease;
}
.btn:hover{ background:var(--olive-hover); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible{
  outline:2px solid var(--olive); outline-offset:3px;
}
.text-link{ font-weight:600; text-decoration:underline; text-decoration-color:var(--sage); text-underline-offset:4px; text-decoration-thickness:2px; }
.text-link:hover{ text-decoration-color:var(--olive); }

/* Header */
.site-header{ padding-block:14px; border-bottom:1px solid var(--line); }
.site-header .wrap{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 16px; }
.wordmark{ font-family:'Young Serif', Georgia, serif; font-size:1.25rem; text-decoration:none; }
.header-link{ font-weight:600; font-size:.95rem; }
.mode-switch{
  order:3; width:100%;
  display:flex; gap:4px; padding:4px;
  background:var(--surface); border:1px solid var(--line); border-radius:8px;
}
.mode-switch a{
  flex:1; text-align:center; padding:9px 10px; border-radius:5px;
  text-decoration:none; font-weight:600; font-size:.9375rem; color:var(--ink-soft);
}
.mode-switch a:hover{ color:var(--ink); }
.mode-switch a[aria-current="page"]{ background:var(--olive); color:var(--on-olive); }
@media (min-width:760px){
  .mode-switch{ order:0; width:auto; }
  .mode-switch a{ flex:none; padding:8px 16px; }
}

/* Hero */
.hero{ padding-block:40px 56px; }
.hero .wrap{ display:grid; gap:32px; }
.hero h1{ font-size:clamp(2.4rem, 7vw, 4rem); }
.hero-copy{ display:grid; gap:22px; align-content:center; }
.hero-copy .lede{ font-size:1.1875rem; max-width:44ch; }
.hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:14px 24px; }
.hero-creds{ font-size:.9375rem; color:var(--ink-soft); max-width:52ch; padding-top:18px; border-top:1px solid var(--line); }
.hero-photo{ border-radius:4px; overflow:hidden; aspect-ratio:4/5; background:var(--surface); }
.hero-photo img{ width:100%; height:100%; object-fit:cover; }
@media (min-width:900px){
  .hero{ padding-block:64px 88px; }
  .hero .wrap{ grid-template-columns:7fr 5fr; gap:56px; }
}

section{ padding-block:64px; }
@media (min-width:900px){ section{ padding-block:96px; } }
.band{ background:var(--surface); border-block:1px solid var(--line); }
.section-head{ display:grid; gap:14px; margin-bottom:40px; }

/* Stage / style track (timeline on pregnancy page, intensity scale on training page) */
.stages{ list-style:none; margin:0; padding:0; display:grid; gap:0; }
.stage{ position:relative; padding:0 0 32px 28px; border-left:2px solid var(--sage); }
.stage:last-child{ padding-bottom:0; }
.stage::before{
  content:""; position:absolute; left:-7px; top:10px; width:12px; height:12px;
  border-radius:50%; background:var(--sage); border:2px solid var(--surface);
}
.stage.after{ border-left-color:var(--blush); }
.stage.after::before{ background:var(--blush); }
.weeks{ display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 10px; margin-bottom:10px; }
.weeks .num{ font-family:'Young Serif', Georgia, serif; font-size:clamp(2.25rem, 6vw, 3.25rem); line-height:1; font-variant-numeric:tabular-nums; white-space:nowrap; }
.unit{ font-weight:600; color:var(--ink-soft); }
.stage h3{ margin-bottom:8px; }
.stage p{ color:var(--ink-soft); max-width:40ch; }
.stage .style-name{ font-size:clamp(1.75rem, 4.5vw, 2.25rem); margin-bottom:10px; }
.pace{ display:flex; align-items:center; gap:10px; margin-bottom:12px; font-size:.9375rem; }
.meter{ display:inline-flex; gap:4px; }
.meter i{ width:20px; height:6px; border-radius:3px; background:var(--line); }
.meter i.on{ background:var(--olive); }
.track-note{ margin-top:40px; font-size:.9375rem; color:var(--ink-soft); max-width:60ch; }
@media (min-width:900px){
  .stages{ grid-template-columns:repeat(4, 1fr); gap:32px; }
  .stage{ border-left:0; border-top:2px solid var(--sage); padding:28px 0 0; }
  .stage.after{ border-top-color:var(--blush); }
  .stage::before{ left:0; top:-7px; }
  .weeks .num{ font-size:clamp(2rem, 3.4vw, 2.75rem); }
}

/* Photo + copy split */
.split .wrap{ display:grid; gap:32px; align-items:center; }
.split-photo{ border-radius:4px; overflow:hidden; aspect-ratio:16/10; background:var(--surface); }
.split-photo img{ width:100%; height:100%; object-fit:cover; }
.split-copy{ display:grid; gap:18px; }
.plain-list{ margin:0; padding-left:1.1em; display:grid; gap:6px; color:var(--ink-soft); }
.plain-list li::marker{ color:var(--sage); }
@media (min-width:900px){ .split .wrap{ grid-template-columns:5fr 6fr; gap:64px; } }

/* Formats (training page) */
.formats{ display:grid; gap:32px; }
.format{ display:grid; gap:12px; align-content:start; padding-top:24px; border-top:2px solid var(--sage); }
.format p{ color:var(--ink-soft); max-width:48ch; }
.formats-foot{ margin-top:36px; }
@media (min-width:900px){ .formats{ grid-template-columns:1fr 1fr; gap:56px; } }

/* Trial + booking */
.book .wrap{ display:grid; gap:48px; }
.steps{ list-style:none; margin:28px 0 0; padding:0; display:grid; gap:24px; counter-reset:step; }
.steps li{ display:grid; grid-template-columns:40px 1fr; gap:16px; counter-increment:step; }
.steps li::before{
  content:counter(step);
  font-family:'Young Serif', Georgia, serif; font-size:1.25rem;
  width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; border:1.5px solid var(--sage);
}
.steps h3{ font-family:'Schibsted Grotesk', sans-serif; font-weight:700; font-size:1.0625rem; margin:6px 0 4px; }
.steps p{ color:var(--ink-soft); }

.form-card{ background:var(--surface); border:1px solid var(--line); border-radius:6px; padding:28px 22px; }
.form-card h3{ margin-bottom:6px; }
.form-card > p{ color:var(--ink-soft); margin-bottom:22px; }
form{ display:grid; gap:18px; }
.field{ display:grid; gap:6px; }
.field label{ font-weight:600; font-size:.9375rem; }
.field .hint{ font-weight:400; color:var(--ink-soft); }
.field input, .field select, .field textarea{
  font:inherit; font-size:1rem; color:var(--ink);
  background:var(--paper); border:1px solid var(--line); border-radius:6px;
  padding:13px 14px; width:100%;
}
.field textarea{ min-height:96px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:2px solid var(--olive); outline-offset:1px; }
form .btn{ width:100%; }
.form-msg{ font-size:.9375rem; }
.form-msg:empty{ display:none; }
.form-msg.ok{ color:var(--ok); }
.form-msg.err{ color:var(--err); }
.form-alt{ margin-top:18px; font-size:.9375rem; color:var(--ink-soft); }
@media (min-width:900px){
  .book .wrap{ grid-template-columns:5fr 6fr; gap:72px; align-items:start; }
  .form-card{ padding:36px; }
}

/* About */
.about .wrap{ display:grid; gap:32px; }
.about-video{ border-radius:4px; overflow:hidden; aspect-ratio:4/5; background:var(--surface); max-width:420px; }
.about-video video{ width:100%; height:100%; object-fit:cover; }
.about-copy{ display:grid; gap:18px; align-content:center; }
.about-copy p{ max-width:58ch; }
@media (min-width:900px){ .about .wrap{ grid-template-columns:5fr 7fr; gap:72px; } }

/* Cohort */
.cohort .wrap{ display:grid; gap:20px; }
.facts{ display:grid; margin:12px 0 8px; border-top:1px solid var(--line); max-width:640px; }
.facts div{ display:grid; grid-template-columns:130px 1fr; gap:16px; padding-block:14px; border-bottom:1px solid var(--line); }
.facts dt{ font-weight:600; }
.facts dd{ margin:0; color:var(--ink-soft); }

/* Instagram */
.ig-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 24px; margin-bottom:28px; }
.ig-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, 1fr); gap:8px; }
.ig-grid a{ display:block; border-radius:4px; overflow:hidden; aspect-ratio:4/5; background:var(--surface); }
.ig-grid img{ width:100%; height:100%; object-fit:cover; transition:opacity .2s ease; }
.ig-grid a:hover img{ opacity:.85; }
@media (min-width:760px){ .ig-grid{ grid-template-columns:repeat(4, 1fr); gap:12px; } }

/* Spam protection: a field real visitors never see, only bots fill it in */
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-privacy{ font-size:.875rem; color:var(--ink-soft); }

/* Cross-link between the two programs */
.crosslink{ padding-block:40px; }
.crosslink .wrap{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px 32px; }
.crosslink p{ max-width:56ch; }
.crosslink strong{ font-family:'Young Serif', Georgia, serif; font-weight:400; font-size:1.25rem; }

/* FAQ */
.faq-list{ max-width:720px; margin-top:28px; border-top:1px solid var(--line); }
.faq-list details{ border-bottom:1px solid var(--line); }
.faq-list summary{
  cursor:pointer; list-style:none; padding:20px 36px 20px 0; position:relative;
  font-weight:600; font-size:1.0625rem;
}
.faq-list summary::-webkit-details-marker{ display:none; }
.faq-list summary::after{
  content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%);
  font-family:'Young Serif', Georgia, serif; font-size:1.5rem; color:var(--olive);
}
.faq-list details[open] summary::after{ content:"−"; }
.faq-list details p{ padding:0 0 20px; color:var(--ink-soft); max-width:60ch; }

/* Closing */
.closing{ background:var(--olive); color:var(--on-olive); }
.closing .wrap{ display:grid; gap:20px; justify-items:start; }
.closing p{ max-width:48ch; opacity:.85; }
.closing .btn{ background:var(--on-olive); color:var(--olive); }
.closing .btn:hover{ background:var(--paper); }

footer{ padding-block:28px 110px; font-size:.9375rem; color:var(--ink-soft); }
@media (min-width:900px){ footer{ padding-block:32px; } }

/* Mobile sticky booking bar */
.sticky-cta{
  position:fixed; left:0; right:0; bottom:0; z-index:10;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  background:var(--surface); border-top:1px solid var(--line);
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  transform:translateY(110%); transition:transform .25s ease;
}
.sticky-cta.show{ transform:none; }
.sticky-cta span{ font-size:.9375rem; font-weight:600; }
.sticky-cta .btn{ padding:13px 18px; }
@media (prefers-reduced-motion: reduce){ .sticky-cta{ transition:none; } }
@media (min-width:900px){ .sticky-cta{ display:none; } }
