/*
 * Per-page CSS from the 2026 redesign template. GENERATED — do not
 * hand-edit; regenerate with scratchpad/extract_page_css.py after any
 * template change. Each page's block is scoped by its body class, so
 * concatenating them is equivalent to the template's inline <style>.
 */

/* ---- index-redesign.html  (body: page-home) ---- */
body.page-home .bg-green .uh-dot { background:rgba(244,234,214,.45); }
body.page-home .bg-green .uh-dot.is-active { background:#F5A00B; }
/* CSS-NEEDED: dc's helpDots (M5 "Help that fits" carousel) use a grey/navy pair,
   distinct from the warm/teal default used by the M4 feature carousel */
body.page-home .uh-section.bg-white .uh-dot { background:#C4CDD3; }
body.page-home .uh-section.bg-white .uh-dot.is-active { background:#123A47; }
/* CSS-NEEDED: dc gives desktop testimonial cards a lifted shadow the shared
   .uh-quote component doesn't carry */
@media (min-width:900px){
  body.page-home .bg-green .uh-quote { box-shadow:0 24px 44px -30px rgba(0,0,0,.5); }
}


/* ---- programmes.html  (body: pg-programmes) ---- */
/* Page-scoped fidelity fixes to match James's Programmes dc design (teal card titles, mobile gutters, warm labels, dc dot/step colours, no underline on refcard links). */
body.pg-programmes .univa-programmes .uh-prog > h3{color:var(--teal);}
body.pg-programmes .vp-mobile .uh-section .uh-wrap{padding:0 18px;}
body.pg-programmes .vp-mobile #programmes .uh-wrap{padding:0;}
body.pg-programmes .vp-mobile #programmes .uh-hscroll{padding:2px 18px 8px;}
body.pg-programmes .uh-prog__label{color:var(--label-warm,#8A7F6B);}
body.pg-programmes .vp-mobile .uh-prog__price span{color:var(--label-warm,#8A7F6B);font-weight:700;}
body.pg-programmes .uh-dots > .uh-dot{background:#C4CDD3;}
body.pg-programmes .uh-dots > .uh-dot.is-active{background:#123A47;}
body.pg-programmes .vp-mobile .uh-nstep__n{background:#123A47;color:#F4EAD6;font-size:13px;}
body.pg-programmes .uh-refcard a.uh-link{text-decoration:none;}
/* CSS-NEEDED: reserve 2-line height for the desktop programme-card sub-line so a longer
   sub-line (e.g. "Returning home") doesn't wrap to an extra line and push that card's
   WHAT'S INSIDE divider out of alignment with its row neighbour (July review). */
body.pg-programmes .vp-desktop .uh-prog__sub{min-height:39px;}
/* CSS-NEEDED: the FORMAT value directly above the WHAT'S INSIDE divider varies in
   line count per card (Anorexia's is longest, 3 lines); reserve that height on every
   card so the divider lines up across the row (July review). */
body.pg-programmes .vp-desktop .uh-prog__val:has(+ .uh-prog__inside){min-height:63px;}


/* ---- our-story.html  (body: pg-story) ---- */
/* pg-story only: mobile "How we build" cards stack title above body (per dc mock); evidence/advisors/lived carousels use ice-blue inactive dots (dc dots()), beliefs keeps the tan default */
body.pg-story .vp-mobile .uh-option { display:block; }
body.pg-story .vp-mobile .bg-white .uh-dots .uh-dot,
body.pg-story .vp-mobile .bg-ice .uh-dots .uh-dot { background:#C9D6E2; }
body.pg-story .vp-mobile .bg-white .uh-dots .uh-dot.is-active,
body.pg-story .vp-mobile .bg-ice .uh-dots .uh-dot.is-active { background:var(--teal); }
/* CSS-NEEDED: hero photo's cover-crop was centred, cutting off the dad's face (he sits in the top third of the source image) */
body.pg-story .uh-hero__photo { object-position:50% 31%; }
@media (min-width:900px){ body.pg-story .uh-hero--cover .uh-hero__photo { object-position:50% 26%; } }


/* ---- healthcare-professionals.html  (body: hcp) ---- */
/* hcp page: carousel inactive dots are cool blue-grey per design (active stays teal) */
body.hcp .uh-dot:not(.is-active) { background:#C9D6E2; }
/* hcp page: intro band paragraph sits on the design's 1040px measure (inner padding is 40px/side) */
body.hcp .uh-band--intro .uh-band__inner { max-width:1120px; }
/* CSS-NEEDED: shift hero cover-crop up slightly so more of the mother's face shows */
body.hcp .uh-hero__photo { object-position:50% 30%; }


/* ---- eating-difficulties.html  (body: cond-eating) ---- */
/* 2026-08-05: page-scoped — ref gives the "Two patterns" carousel ice-blue idle dots (#B9CFE2), unlike the tan default */
body.cond-eating .vp-mobile .bg-ice [data-carousel] .uh-dot:not(.is-active) { background:#B9CFE2; }
/* 2026-08-05 July-review fix #1: hero photo was cropped too high, hiding the father's face — shift the visible crop window down (mobile stack + desktop cover). */
body.cond-eating .uh-hero--stack .uh-hero__photo,
body.cond-eating .uh-hero--cover .uh-hero__photo { object-position:50% 22%; }
/* 2026-08-05 July-review fix #2: "Not all eating difficulties"/"Two patterns" card body copy rendered smaller than the rest of the page's card body text — bring it up to the .uh-lead sizing used elsewhere for this weight of copy. */
body.cond-eating #two-patterns-m .uh-card p,
body.cond-eating #not-all-same-d .uh-card p { font-size:14px; }
@media (min-width:900px){
  body.cond-eating #not-all-same-d .uh-card p { font-size:15px; }
}
/* 2026-08-05 July-review fix #3: app-showcase screenshots need consistent, slightly more generous space before the title (both blocks), title+body already sit in an aligned column per screenshot. */
body.cond-eating .uh-shot__title { margin-top:20px; }
@media (min-width:900px){
  body.cond-eating .uh-shot__title { margin-top:22px; }
}


/* ---- anorexia.html  (body: cond-anorexia) ---- */
/* Page-scoped fidelity fixes vs "[3] Anorexia.dc.html" (dc ground truth) */
body.cond-anorexia .uh-car--evidence .uh-dot.is-active { background:#2B6103; } /* evidence dots: active green (idle keeps default tan #D8C7A8) */
body.cond-anorexia .uh-car--stories .uh-dot { background:#C4CDD3; } /* testimonial dots: idle blue-grey per dc qDots */
body.cond-anorexia .uh-car--stories .uh-dot.is-active { background:#2B6103; } /* testimonial dots: active green */
body.cond-anorexia .uh-shot__title, body.cond-anorexia .uh-shot__body { text-align:center; } /* dc centres the phone captions in "What you'll have in your pocket" */
body.cond-anorexia .uh-shot { align-items:stretch; } /* "What you'll have in your pocket": columns share height so captions line up row-by-row */
body.cond-anorexia .uh-shot__title { margin-top:14px; } /* .univa-2026 p (0,1,1) was beating .uh-shot__title's margin-top (0,1,0), collapsing the gap below the screenshot */
body.cond-anorexia .uh-shot__body { margin-top:6px; } /* same specificity fix, kept in sync with redesign.css's intended .uh-shot__body margin-top */
body.cond-anorexia .uh-safety.vp-mobile .uh-wrap { padding:0 18px; } /* dc mobile safety strip has 14px 18px padding; shared rule expects .vp-mobile as ancestor */


/* ---- arfid.html  (body: cond-arfid) ---- */
/* Page-scoped fidelity fixes vs dc ref [4] ARFID: hero H1 size (dc keeps the default 600px hero__over, no width override needed); navy/grey carousel dots */
body.cond-arfid .vp-desktop .uh-hero--cover h1{font-size:42px;}
body.cond-arfid .uh-dots > .uh-dot{background:#C4CDD3;}
body.cond-arfid .uh-dots > .uh-dot.is-active{background:#1F5C8B;}
/* CSS-NEEDED: "What you'll have in your pocket" app-shot columns — titles of
   varying line-count push each column's paragraph to a different baseline;
   reserve a fixed-height title row (2 lines) so the space below every
   screenshot and the title/paragraph block stay aligned column-by-column. */
body.cond-arfid .uh-shot__title{margin-top:14px;min-height:2.5em;display:flex;align-items:flex-start;margin-bottom:0;}


/* ---- referred-by-your-care-team.html  (body: cond-referred) ---- */

/* ---- membership-registration.html  (body: page-registration) ---- */
/* dc [9]: on mobile every card sits inside an 18px page gutter (design section padding:18px) */
body.page-registration .univa-registration.vp-mobile .uh-section .uh-wrap { padding:0 18px; }

/* Stripe wordmark inside the pay button: optically aligned, white, and never
   larger than the button's own label. Swap the span's contents for the official
   SVG and it inherits these bounds. */
.page-registration .uh-stripe-mark { display:inline-flex; align-items:center; margin-left:2px; }
.page-registration .uh-stripe-mark svg { display:block; height:15px; width:auto; fill:#F4EAD6; }


/* ---- membership-confirmation.html  (body: page-confirmation) ---- */
/* Page-scoped: dc desktop section rhythm (cream hero 38/40, white 44/52) — base .uh-section clamp is ~88px at 1440 */
.page-confirmation .vp-desktop .uh-section.bg-cream { padding: 38px 0 40px; }
.page-confirmation .vp-desktop .uh-section.bg-white { padding: 44px 0 52px; }

