/* ==========================================================================
   beale horton — homepage, Elderhaven pattern, warm greens & naturals
   Tokens are driven by the Tweaks panel (palette presets set these vars).
   ========================================================================== */

/* ==========================================================================
   CONTENTS

   This file is the shared foundation: tokens, nav, buttons, footer, and the
   homepage sections. Page-specific rules live in assets/css/pages/<page>.css,
   which each page links after this one.

   It has grown by appending, so the blocks below roughly follow the order the
   work happened rather than the order of the page. Later blocks deliberately
   override earlier ones — .proof__title h2, for instance, is declared several
   times and the last one wins. Reordering would change which rule applies, so
   the sequence is left alone and mapped here instead.

     - buttons
     - hero (split, Elderhaven-style)
     - hero stage: child cutout with worker circles arced behind
     - audience doors
     - partners
     - member voice / testimonials — light whisper-blue slider
     - sliders (tiles)
     - know your exposures — badge panel
     - get to know us — staggered photo cards
     - testimonials
     - founder — Cityblock-style split quote
     - care team — Cityblock band
     - closing split
     - footer — bright blue, Cityblock pattern
     - reveal
     - section toggles (tweaks)
     - small-screen hero stage
     - our mission — exposure → hub → outcomes
     - mission diagram choreographed entrance
     - mission diagram flowing dots: converge → merge ball → through hub → split
     - how it works — numbered steps
     - proven results — impact card (heading + image left, copy + stats right)
     - awards & stories — staggered columns
     - our mission — parents & children
     - section rhythm: more breathing room between sections
     - section rhythm v2
     - proof + mission fixes
     - ORBIT (how it works, oval)
     - OUR MISSION (photo + table)
     - proof headline: bigger, broken before "for exposure-informed care.",
     - ORBIT — three-stage variant (homepage)
     - THE PROBLEM / THE SOLUTION / CARE MODEL
     - The problem
     - The solution
     - Care model: cream on the homepage, so it separates from the white
     - HERO: free-care line (replaces the old subtext)
     - SOLUTION: photo + who-we-care-for table
     - FOUNDER: a photo either side of the quote
     - BEFORE / WITH BEALE HORTON comparison
     - MOBILE CORRECTIONS
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@500;700&family=Red+Hat+Text:wght@400;500&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');

:root{
  /* bealehorton design system — warm, gentle, royal-blue accent */
  --paper:      #ffffff;   /* cards only */
  --cream:      #faf7f2;   /* warm cream — default surface */
  --tint:       #eef3fd;   /* whisper blue — alt sections */
  --soft-blue:  #d9e4fa;   /* badges / pills */
  --peach:      #f9e9dd;   /* warm human/community accent */
  --peach-text: #8a4a2b;
  --line:       #e4e2dc;
  --ink:        #1c2957;   /* navy — anchor color */
  --ink-soft:   #4a5578;   /* slate — body text */
  --white:      #ffffff;
  --deep:       #1c2957;   /* dark section / nav / footer bg = navy */
  --deep-2:     #35437a;
  --accent:     #2f5fe3;   /* royal blue — primary action */
  --accent-dark:#244bc0;
  --gold:       #aabbe8;   /* on-navy accent (periwinkle) */
  --deep-tint:  rgba(255,255,255,.80);
  --deep-hair:  #35437a;

  --font-display: 'Red Hat Display', system-ui, -apple-system, Arial, sans-serif;
  --font-body: 'Red Hat Text', system-ui, -apple-system, Arial, sans-serif;
  --type-scale: 1;

  --content-max: 1440px;
  --page-margin: 64px;
  --section-y: 100px;
  --nav-height: 78px;
  --r-card: 16px;
  --r-pill: 999px;
}

*, *::before, *::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:calc(16px * var(--type-scale));
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; height:auto; display:block; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--accent-dark); }
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:700; line-height:1.12; margin:0; letter-spacing:-.01em; color:var(--ink); }
/* Headline convention across the site: the closing phrase, or the words the
   sentence turns on, sit in the accent. Mark that span with <em> — several
   sections used to re-declare this locally and a few pages had the <em> with
   no rule behind it at all. */
h1 em, h2 em{ font-style:normal; color:var(--accent); }
h1 a, h2 a, h3 a{ color:inherit; }
p{ margin:0; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; }
em, i{ font-style:normal; }

.wrap{ max-width:var(--content-max); margin:0 auto; padding-left:var(--page-margin); padding-right:var(--page-margin); }
section{ padding:var(--section-y) 0; }
@media (max-width:768px){
  :root{ --page-margin:20px; --section-y:60px; }
}

.label{
  display:block; font-family:var(--font-display); font-size:12px; font-weight:500; letter-spacing:.06em;
  text-transform:uppercase; color:var(--accent);
}
.label--on-dark{ color:var(--gold); }
.label--pill{
  display:inline-block; background:#eef3fd; color:var(--accent);
  padding:10px 22px; border-radius:999px; font-weight:700; letter-spacing:.1em;
}
.eyebrow-gap{ margin-top:14px; }
h2{ font-size:calc(clamp(30px, 3.6vw, 44px) * var(--type-scale)); }

.section-border{ border-bottom:1px solid var(--line); }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-body);
  padding:14px 30px; border-radius:999px;
  font-size:15px; font-weight:600; border:1.5px solid transparent; white-space:nowrap;
  cursor:pointer; transition:background-color .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}
.btn{ font-weight:700; font-family:var(--font-display); }
.btn--primary{ background:var(--accent); color:var(--white); }
.btn--primary:hover{ background:var(--accent-dark); color:var(--white); }
.btn--lime{ background:var(--peach); color:var(--peach-text); }
.btn--lime:hover{ background:#f2dcca; color:var(--peach-text); }
.btn--secondary{ background:var(--peach); color:var(--peach-text); }
.btn--secondary:hover{ background:#f2dcca; color:var(--peach-text); }
.btn--ghost{ background:transparent; color:var(--ink); border-color:var(--ink); }
.btn--ghost:hover{ border-color:var(--ink-soft); background:var(--tint); color:var(--ink); }
.btn--on-dark{ background:var(--accent); color:var(--white); }
.btn--on-dark:hover{ background:var(--accent-dark); color:var(--white); }
.btn--ghost-dark{ background:transparent; color:var(--white); border-color:var(--deep-hair); }
.btn--ghost-dark:hover{ border-color:rgba(255,255,255,.45); color:var(--white); }
.btn--sm{ padding:10px 22px; font-size:13.5px; }

.text-link{ font-weight:600; color:var(--accent); border-bottom:1px solid transparent; }
.text-link:hover{ border-bottom-color:currentColor; }
.text-link--on-dark{ color:var(--gold); }
.text-link--on-dark:hover{ color:var(--gold); }

/* ---------- announcement bar ----------
   Sits above the sticky nav as a sibling, so it scrolls away while the nav
   stays pinned. Full-bleed navy: it has to read as a banner, not a nav row. */
.site-ann{
  display:flex; align-items:center; justify-content:center;
  gap:14px; flex-wrap:wrap;
  padding:11px 24px; background:var(--soft-blue); color:var(--ink);
  font-size:14px; line-height:1.45; text-align:center; text-decoration:none;
}
.site-ann:hover{ color:var(--accent); }
.site-ann__tag{
  flex:none; border:1px solid rgba(47,95,227,.3); border-radius:999px;
  padding:3px 11px; font-size:11.5px; font-weight:700;
  letter-spacing:.09em; text-transform:uppercase; color:var(--accent);
}
.site-ann__txt{ text-wrap:balance; }
.site-ann__arrow{ flex:none; transition:transform .2s ease; }
.site-ann:hover .site-ann__arrow{ transform:translateX(4px); }
/* Flex wrapping strands the arrow on a line of its own once the sentence
   breaks, so narrow screens run the whole thing as one inline paragraph. */
@media (max-width:640px){
  .site-ann{ display:block; padding:10px 18px; font-size:13px; }
  .site-ann__tag{ display:inline-block; margin-right:8px; vertical-align:1px; font-size:10.5px; padding:2px 9px; }
  .site-ann__arrow{ display:inline-block; margin-left:6px; }
}

/* ---------- nav ---------- */
.site-nav{
  position:sticky; top:0; z-index:40;
  background:var(--cream);
  border-bottom:1px solid var(--line);
}
.site-nav .wrap{ height:var(--nav-height); display:flex; align-items:center; gap:44px; }
.site-nav__mark{ display:flex; align-items:center; white-space:nowrap; flex-shrink:0; }
.site-nav__logo{ height:30px; width:auto; display:block; }
.site-nav__links{ display:flex; align-items:center; justify-content:center; gap:30px; font-size:14.5px; font-weight:500; color:var(--ink); flex:1; }
.site-nav__item{ position:relative; }
.site-nav__item > button{
  display:flex; align-items:center; gap:4px; background:none; border:none;
  color:inherit; font:inherit; padding:0; cursor:pointer;
}
.site-nav__item > button:hover{ color:var(--accent); }
.site-nav__caret{ font-size:10px; transform:translateY(1px); }
.site-nav__dropdown{
  position:absolute; top:calc(100% + 14px); left:-14px; min-width:250px;
  background:var(--white); border:1px solid var(--line); border-radius:12px;
  box-shadow:0 12px 28px rgba(31,42,34,.1); padding:12px;
  display:none; flex-direction:column; gap:2px;
}
.site-nav__item.is-open .site-nav__dropdown{ display:flex; }
.site-nav__dropdown a{ display:block; padding:10px 12px; border-radius:8px; font-size:14px; color:var(--ink); }
.site-nav__dropdown a:hover{ background:var(--cream); color:var(--ink); }
.site-nav__dropdown a span{ display:block; font-size:12px; color:var(--ink-soft); font-weight:400; margin-top:1px; }
.site-nav__utils{ display:flex; align-items:center; gap:20px; }
.site-nav__phone{ font-size:14px; font-weight:600; color:var(--ink); white-space:nowrap; }
.site-nav__toggle{ display:none; margin-left:auto; background:none; border:1px solid var(--ink); border-radius:8px; padding:8px 12px; font-size:13px; color:var(--ink); cursor:pointer; }
@media (max-width:480px){ .site-nav__utils .btn--ghost{ display:none; } }
@media (max-width:960px){
  .site-nav__links, .site-nav__phone, .site-nav__utils{ display:none; }
  .site-nav__toggle{ margin-left:auto; }
  .site-nav__toggle{ display:block; }
  .site-nav.is-open .site-nav__links{
    display:flex; flex-direction:column; align-items:flex-start; gap:16px;
    position:absolute; top:var(--nav-height); left:0; right:0;
    background:var(--cream); border-bottom:1px solid var(--line);
    padding:24px var(--page-margin) 32px;
  }
  .site-nav.is-open .site-nav__dropdown{ position:static; box-shadow:none; margin-top:6px; width:100%; }
}

.site-nav__link{ color:inherit; text-decoration:none; }
.site-nav__link[aria-current="page"], .site-nav__item button.is-active{ color:var(--accent); text-decoration:none; }
.site-nav__link:hover{ color:var(--accent); }

/* ---------- hero (split, Elderhaven-style) ---------- */
.hero{ padding-top:64px; padding-bottom:84px; overflow:hidden; min-height:calc(100vh - var(--nav-height)); display:flex; align-items:center; }
.hero .wrap{ width:100%; display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.hero__badge{
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid var(--line); background:var(--white); border-radius:var(--r-pill);
  padding:7px 18px; font-size:13px; font-weight:500; color:var(--ink-soft);
}
.hero__badge::before{ content:''; width:7px; height:7px; border-radius:50%; background:var(--accent); }
.hero h1{
  margin-top:26px;
  font-size:calc(clamp(40px, 4.6vw, 62px) * var(--type-scale));
  line-height:1.08;
}
.hero h1 em{ font-style:normal; }
.hero__hl{ color:var(--accent); }
.hero__sub{ margin-top:18px; max-width:540px; font-size:18px; line-height:1.6; color:var(--ink-soft); }
.hero__ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-top:44px; }
.hero__trust{ display:flex; align-items:center; gap:14px; margin-top:38px; max-width:480px; font-size:13.5px; color:var(--ink-soft); line-height:1.5; }
.hero__avatars{ display:flex; }
.hero__avatars img{ width:40px; height:40px; border-radius:50%; object-fit:cover; border:2px solid var(--paper); }
.hero__avatars img + img{ margin-left:-12px; }

.hero__media{ position:relative; }
.hero__family{ display:block; width:100%; height:min(70vh, 620px); object-fit:cover; border-radius:18px; }
.hero__pills{ display:flex; flex-wrap:wrap; gap:7px; margin-top:20px; max-width:560px; }
.hero__pills-label{ display:block; margin-top:26px; font-size:12.5px; font-weight:600; color:var(--ink-soft); }
.hero__pills span{ display:inline-flex; align-items:center; padding:7px 16px; background:transparent; border:1px solid #c6d3ef; border-radius:999px; font-size:14px; font-weight:500; color:var(--ink-soft); font-family:var(--font-display); }
.hero__pills + .hero__ctas{ margin-top:30px; }
@media (max-width:900px){ .hero__family{ height:420px; } }

/* ---- hero stage: child cutout with worker circles arced behind ---- */
.hero__stage{
  position:relative;
  display:flex; justify-content:center; align-items:flex-end;
  min-height:720px;
}
.hero__child{
  position:relative; z-index:3;
  width:auto; height:720px; max-width:none;
  object-fit:contain; object-position:bottom center;
  filter:drop-shadow(0 30px 50px rgba(31,42,34,.20));
  -webkit-mask-image:linear-gradient(to bottom, #000 62%, transparent 100%);
          mask-image:linear-gradient(to bottom, #000 62%, transparent 100%);
}
.hero__orbit{ position:absolute; inset:0; z-index:1; }
.hero__worker{
  position:absolute; margin:0;
  width:170px; height:170px; border-radius:50%;
  overflow:hidden; background:var(--sage-faint);
  border:6px solid var(--white);
  box-shadow:0 18px 40px rgba(31,42,34,.20);
}
.hero__worker img{ width:100%; height:100%; object-fit:cover; display:block; }
.hero__worker--left img{ object-position:45% 8%; }
/* the arc: left low → middle high → right low */
.hero__worker--left{  top:32%; left:-4%;  width:150px; height:150px; animation:heroFloat 7s ease-in-out infinite; }
.hero__worker--mid{   top:0;  left:20%; width:158px; height:158px; animation:heroFloat 7s ease-in-out infinite; }
.hero__worker--mid2{  top:0;  right:20%; width:158px; height:158px; animation:heroFloat 7s ease-in-out infinite; }
.hero__worker--mid img{ object-position:72% 30%; }
.hero__worker--mid2 img{ object-position:32% 20%; }
.hero__worker--right{ top:32%; right:-4%; width:150px; height:150px; animation:heroFloat 7s ease-in-out infinite; }
@keyframes heroFloat{ 0%,100%{ translate:0 0; } 50%{ translate:0 -14px; } }
@media (prefers-reduced-motion: reduce){ .hero__worker{ animation:none !important; } }


.hero__photo{ border-radius:24px; overflow:hidden; box-shadow:0 24px 60px rgba(31,42,34,.18); }
.hero__photo img{ width:100%; height:560px; object-fit:cover; }
.float-card{
  position:absolute; display:flex; align-items:center; gap:12px;
  background:var(--white); border:1px solid var(--line); border-radius:14px;
  padding:14px 18px; box-shadow:0 14px 34px rgba(31,42,34,.14);
  font-size:13px; line-height:1.35; color:var(--ink-soft); max-width:280px;
}
.float-card b{ display:block; font-size:14px; color:var(--ink); }
.float-card--flag{ top:34px; left:-34px; }
.float-card--school{ bottom:40px; right:-24px; }
.float-card__dot{
  flex:none; width:40px; height:40px; border-radius:12px;
  display:grid; place-items:center; color:var(--white);
}
.float-card__dot svg{ width:20px; height:20px; }
.float-card__dot--accent{ background:var(--accent); }
.float-card__dot--deep{ background:var(--deep); }

/* full-bleed hero variant (Elderhaven default) */
body[data-hero="fullbleed"] .hero{ padding:0; position:relative; }
body[data-hero="fullbleed"] .hero .wrap{
  display:block; max-width:none; padding:0; position:relative;
  min-height:max(calc(100vh - var(--nav-height)), 640px);
}
body[data-hero="fullbleed"] .hero__media{ position:static; }
body[data-hero="fullbleed"] .hero__photo{ position:absolute; inset:0; border-radius:0; box-shadow:none; }
body[data-hero="fullbleed"] .hero__photo img{ width:100%; height:100%; object-fit:cover; }
body[data-hero="fullbleed"] .hero__photo::after{
  content:''; position:absolute; inset:0;
  --scrim: color-mix(in srgb, var(--deep) 35%, #070d18);
  background:linear-gradient(0deg, color-mix(in srgb, var(--scrim) 88%, transparent) 0%, color-mix(in srgb, var(--scrim) 48%, transparent) 30%, transparent 60%);
}
body[data-hero="fullbleed"] .hero__copy{
  position:absolute; z-index:2; left:0; right:0; bottom:0;
  max-width:var(--content-max); margin:0 auto;
  padding:0 var(--page-margin) 90px;
}
body[data-hero="fullbleed"] .hero__copy h1{ color:var(--white); max-width:none; margin-top:30px; }
body[data-hero="fullbleed"] .hero__sub{ color:rgba(255,255,255,.88); max-width:none; }
body[data-hero="fullbleed"] .hero__badge{ background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.28); color:rgba(255,255,255,.92); backdrop-filter:blur(8px); }
body[data-hero="fullbleed"] .hero__badge::before{ background:var(--gold); }
body[data-hero="fullbleed"] .hero__trust{ display:none; }
body[data-hero="fullbleed"] .hero__ctas{ margin-top:36px; }
body[data-hero="fullbleed"] .hero__ctas .btn--ghost{ background:var(--white); color:var(--ink); border-color:var(--white); }
body[data-hero="fullbleed"] .hero__ctas .btn--ghost:hover{ background:rgba(255,255,255,.88); }
/* frosted glass cards, Elderhaven style */
body[data-hero="fullbleed"] .float-card{
  z-index:2; flex-direction:column; align-items:flex-start; gap:56px;
  width:290px; max-width:290px; padding:22px 22px 24px;
  background:rgba(24,32,26,.30); border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-radius:18px; box-shadow:none;
  color:rgba(255,255,255,.85); font-size:14px; line-height:1.55;
}
body[data-hero="fullbleed"] .float-card b{ color:var(--white); font-size:19px; font-family:var(--font-display); font-weight:500; margin-bottom:6px; }
body[data-hero="fullbleed"] .float-card small{ font-size:14px; }
body[data-hero="fullbleed"] .float-card__dot{ background:transparent; border:1px solid rgba(255,255,255,.35); border-radius:10px; color:var(--white); }
body[data-hero="fullbleed"] .float-card--flag{ top:auto; left:auto; bottom:70px; right:390px; }
body[data-hero="fullbleed"] .float-card--school{ top:auto; bottom:210px; right:60px; }
@media (max-width:1200px){
  body[data-hero="fullbleed"] .float-card--flag{ display:none; }
  body[data-hero="fullbleed"] .float-card--school{ bottom:80px; right:var(--page-margin); }
}
@media (max-width:900px){
  .hero .wrap{ grid-template-columns:1fr; gap:40px; }
  .hero__photo img{ height:420px; }
  .hero__stage{ min-height:560px; }
  .hero__child{ height:560px; }
  .hero__worker--left{ width:112px; height:112px; left:2%; }
  .hero__worker--mid{ width:120px; height:120px; left:16%; }
  .hero__worker--mid2{ width:120px; height:120px; right:16%; }
  .hero__worker--right{ width:112px; height:112px; right:2%; }
  .float-card--flag{ left:12px; }
  .float-card--school{ right:12px; }
  body[data-hero="fullbleed"] .float-card{ display:none; }
}

/* ---------- audience doors ---------- */
.doors4{ padding:72px 0; border-bottom:1px solid var(--line); background:var(--cream); }
.doors4 .wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:56px; height:100%; align-items:start; }
.doors4 a{
  padding:0; color:inherit;
  display:flex; flex-direction:column; align-items:flex-start; text-align:left;
}
.doors4 .door-head{ display:flex; align-items:flex-start; gap:14px; }
.doors4 .door-icon{
  flex:none; width:30px; height:30px;
  display:grid; place-items:center; color:var(--accent); margin-top:2px;
}
.doors4 .door-icon svg{ width:28px; height:28px; }
.doors4 a:hover h3{ color:var(--accent-dark); }
.doors4 a:nth-child(1) h3, .doors4 a:nth-child(1) .door-icon, .doors4 a:nth-child(1) .arr{ color:#0f8a7a; }
.doors4 a:nth-child(2) h3, .doors4 a:nth-child(2) .door-icon, .doors4 a:nth-child(2) .arr{ color:#c77414; }
.doors4 a:nth-child(3) h3, .doors4 a:nth-child(3) .door-icon, .doors4 a:nth-child(3) .arr{ color:#7a4bd6; }
.doors4 a:nth-child(4) h3, .doors4 a:nth-child(4) .door-icon, .doors4 a:nth-child(4) .arr{ color:#d24b6a; }
.doors4 a:nth-child(1):hover h3, .doors4 a:nth-child(1):hover .door-icon, .doors4 a:nth-child(1):hover .arr{ color:#0c6f62; }
.doors4 a:nth-child(2):hover h3, .doors4 a:nth-child(2):hover .door-icon, .doors4 a:nth-child(2):hover .arr{ color:#a75f10; }
.doors4 a:nth-child(3):hover h3, .doors4 a:nth-child(3):hover .door-icon, .doors4 a:nth-child(3):hover .arr{ color:#6339b5; }
.doors4 a:nth-child(4):hover h3, .doors4 a:nth-child(4):hover .door-icon, .doors4 a:nth-child(4):hover .arr{ color:#b53a56; }
.doors4 h3{ font-size:20px; color:var(--accent-dark); display:flex; align-items:baseline; gap:8px; white-space:nowrap; }
.doors4 .arr{ font-family:var(--font-body); font-size:16px; color:var(--accent); transition:transform .18s ease; }
.doors4 a:hover .arr{ transform:translateX(4px); }
.doors4 p{ margin-top:14px; font-size:15px; line-height:1.65; color:var(--ink-soft); }
@media (max-width:1020px){
  .doors4 h3{ white-space:normal; }
}
@media (max-width:900px){
  .doors4 .wrap{ grid-template-columns:1fr 1fr; gap:40px; }
}
@media (max-width:560px){
  .doors4 .wrap{ grid-template-columns:1fr; }
}

/* ---------- partners ---------- */
.partners{ background:var(--cream); }
.partners__head{ display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:end; margin-bottom:56px; }
.partners__head p{ font-size:15.5px; line-height:1.75; color:var(--ink-soft); }
@media (max-width:820px){ .partners__head{ grid-template-columns:1fr; gap:20px; } }
.marquee{ overflow:hidden; position:relative; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee__track{
  display:flex; align-items:center; gap:64px; width:max-content;
  animation:marquee 30s linear infinite;
  font-family:var(--font-display); font-size:30px; font-weight:500; color:var(--ink-soft);
}
.marquee__track > span{ display:flex; align-items:center; gap:64px; white-space:nowrap; }
.marquee__track > span::after{ content:'✳'; font-style:normal; font-size:16px; color:var(--accent); }
@keyframes marquee{ to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .marquee__track{ animation:none; } }

/* ---------- member voice / testimonials — light whisper-blue slider ---------- */
.voice{ background:var(--tint); color:var(--ink-soft); }
.voice__title{ color:var(--ink); }
.voice .label--pill{ background:var(--white); }
.voice .slider__btn{ background:var(--accent); color:var(--white); border:none; }
.voice .slider__btn:hover:not(:disabled){ background:var(--accent-dark); color:var(--white); }
.vcard{
  width:min(520px, 84vw); background:var(--white); border-radius:16px;
  padding:28px; display:flex; gap:22px; align-items:flex-start;
}
.vcard__photo{ flex:none; width:132px; height:132px; border-radius:14px; object-fit:cover; }
.vcard__ph{ display:grid; place-items:center; background:var(--tint); color:var(--accent-dark); font-size:32px; font-weight:700; }
.vcard__body{ display:flex; flex-direction:column; gap:12px; min-height:132px; }
.vcard__aud{
  align-self:flex-start; font-size:11.5px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent-dark);
  background:var(--tint); border-radius:999px; padding:4px 12px;
}
.vcard blockquote{ margin:0; font-size:15.5px; line-height:1.55; color:var(--ink); flex:1; }
.vcard__who{ font-size:13px; color:var(--ink-soft); }
.vcard__who b{ color:var(--ink); font-size:14px; margin-right:8px; }
@media (max-width:560px){
  .vcard{ flex-direction:column; }
  .vcard__body{ min-height:0; }
}

/* ---------- sliders (tiles) ---------- */
.tiles{ background:var(--cream); }
.tiles__title{ color:var(--accent); font-size:calc(clamp(34px, 4vw, 52px) * var(--type-scale)); }
.tiles__sub{ margin-top:14px; font-size:16px; color:var(--ink-soft); max-width:560px; }
.wrap--head{ display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:48px; }
.slider__nav{ display:flex; gap:10px; flex:none; }
.slider__btn{
  width:52px; height:52px; border-radius:50%;
  border:none; background:var(--accent); color:var(--white);
  font-size:18px; cursor:pointer; transition:background-color .16s ease;
}
.slider__btn:hover:not(:disabled){ background:var(--accent-dark); }
.slider__btn[data-prev]{ background:color-mix(in srgb, var(--accent) 42%, #fff); }
.slider__btn[data-prev]:hover:not(:disabled){ background:color-mix(in srgb, var(--accent) 55%, #fff); }
.slider__btn:disabled{ opacity:.35; cursor:default; }
.slider{ overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scrollbar-width:none; cursor:grab; padding:10px calc((100vw - var(--content-max)) / 2 + var(--page-margin)); }
.slider::-webkit-scrollbar{ display:none; }
.slider.is-dragging{ cursor:grabbing; }
@media (max-width:1260px){ .slider{ padding:10px var(--page-margin); } }
.slider__track{ display:flex; gap:22px; width:max-content; }

/* care model infographic tile — circular cycle */
.tile__art--cm{ background:linear-gradient(160deg, var(--soft-blue) 0%, #b7c6ee 55%, var(--gold) 100%); }
/* ---------- know your exposures — badge panel ---------- */
.knowexp{ background:var(--cream); padding:96px 0; }
.knowexp__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:72px; align-items:center; }
.knowexp .orton-stage{ position:relative; aspect-ratio:1/1; background:transparent; overflow:visible; }
.knowexp .orton-stage>img{ position:absolute; inset:0; margin:auto; width:82%; height:auto; max-height:100%; object-fit:contain; }
.knowexp .bizw{ position:absolute; z-index:2; background:#fff; border:1px solid #e2e6df; border-radius:12px; box-shadow:0 14px 32px rgba(15,20,16,.13); padding:11px 13px 10px; --bac:#1f8a5b; }
.knowexp .bizw__hd{ display:flex; align-items:center; gap:6px; font-size:11px; font-weight:600; color:#17211b; }
.knowexp .bizw__hd .d{ width:7px; height:7px; border-radius:50%; background:var(--bac); flex:0 0 auto; }
.knowexp .bizw__hd .tag{ margin-left:auto; font-size:8px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--bac); display:inline-flex; align-items:center; gap:3px; }
.knowexp .bizw--trend{ top:0; left:34%; width:210px; }
.knowexp .bizw__chart{ position:relative; margin:9px 0 8px; }
.knowexp .bizw__chart svg{ width:100%; height:52px; display:block; overflow:visible; }
.knowexp .bizw__chart .grid{ stroke:rgba(15,20,16,.07); stroke-width:1; }
.knowexp .bizw__chart .line{ fill:none; stroke:var(--bac); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.knowexp .bizw__chart .glow{ fill:none; stroke:var(--bac); stroke-width:6; opacity:.12; stroke-linecap:round; stroke-linejoin:round; }
.knowexp .bizw__chart .halo{ fill:rgba(31,138,91,.16); }
.knowexp .bizw__chart .dot-o{ fill:#fff; stroke:var(--bac); stroke-width:2.5; }
.knowexp .bizw__foot{ display:flex; align-items:baseline; gap:6px; font-size:10.5px; color:#68726a; }
.knowexp .bizw__delta{ font-family:var(--font-display); font-size:18px; line-height:1; color:var(--bac); }
.knowexp .bizw--cohort{ top:38%; left:0; width:172px; }
.knowexp .bizw__bars{ display:flex; align-items:flex-end; gap:5px; height:48px; margin:10px 0 7px; }
.knowexp .bizw__bar{ flex:1; height:100%; background:#edf1ea; border-radius:3px 3px 2px 2px; position:relative; overflow:hidden; }
.knowexp .bizw__bar>span{ position:absolute; left:0; right:0; bottom:0; border-radius:3px 3px 0 0; background:linear-gradient(180deg,#35a774,#1f8a5b); }
.knowexp .bizw__bar.hi>span{ background:linear-gradient(180deg,#f0b73f,#d99a2b); }
.knowexp .bizw__legend{ display:flex; justify-content:space-between; font-size:9.5px; color:#68726a; }
.knowexp .bizw--ring{ bottom:12%; right:10%; width:200px; }
.knowexp .bizw__ringrow{ display:flex; align-items:center; gap:12px; margin-top:9px; }
.knowexp .bizw__ringrow>svg{ width:54px; height:54px; flex:none; }
.knowexp .bizw__ringtxt b{ display:flex; align-items:center; gap:6px; font-size:13px; color:#17211b; }
.knowexp .bizw__ringtxt b .d{ width:7px; height:7px; border-radius:50%; background:var(--bac); }
.knowexp .bizw__ringtxt>span,.knowexp .bizw__ringtxt span:last-child{ display:block; font-size:10.5px; color:#68726a; margin-top:3px; }
.knowexp__copy h2{ font-size:calc(clamp(34px, 3.6vw, 48px) * var(--type-scale)); line-height:1.12; }
.knowexp__sub{ margin-top:18px; font-size:17px; line-height:1.65; color:var(--ink-soft); max-width:520px; }
.knowexp__list{ list-style:none; margin:34px 0 40px; padding:0; }
.knowexp__list li{ display:flex; align-items:flex-start; gap:14px; padding:15px 0; border-bottom:1px solid #dfe5f2; font-size:16px; font-weight:500; color:var(--ink); }
.knowexp__list li::before{ content:''; flex:none; width:22px; height:22px; margin-top:1px; border-radius:50%; background:var(--soft-blue) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232f5fe3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 13l4 4 10-10"/></svg>') center/12px no-repeat; }
@media (max-width:900px){ .knowexp__grid{ grid-template-columns:1fr; gap:48px; } .knowexp .bizw--trend{ left:14%; } }
@media (max-width:600px){
  .knowexp .orton-stage{ aspect-ratio:auto; min-height:280px; }
  .knowexp .bizw{ position:static; width:auto !important; max-width:320px; margin:0 auto 14px; }
  .knowexp .orton-stage>img{ position:static; width:70%; margin:0 auto 18px; }
  .knowexp .bizw--trend,.knowexp .bizw--cohort,.knowexp .bizw--visits{ inset:auto; }
}
.tile__art:not(.tile__art--cm):not(.tile__art--noovl)::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(28,41,87,.18) 0%, rgba(28,41,87,.32) 100%); mix-blend-mode:multiply; pointer-events:none; z-index:2; border-radius:inherit; }
.cmviz{ position:relative; width:100%; height:100%; display:grid; place-items:center; }
.cmviz__sq{ position:relative; height:100%; aspect-ratio:1/1; }
.cmviz__ring{ position:absolute; inset:0; width:100%; height:100%; }
.cmviz__hub{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:92px; height:92px; background:#fff; border-radius:50%; box-shadow:0 10px 26px rgba(28,41,87,.16); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; text-align:center; }
.cmviz__hub img{ width:37px; height:45px; object-fit:cover; object-position:left; }
.cmviz__hub span{ font-family:var(--font-display); font-weight:700; font-size:11.5px; line-height:1.1; color:var(--ink); }
.cmviz__node{ position:absolute; display:flex; flex-direction:column; align-items:center; gap:6px; transform:translate(-50%,-50%); }
.cmviz__node b{ font-family:var(--font-display); font-size:12px; color:var(--ink); background:#fff; padding:2px 10px; border-radius:999px; box-shadow:0 4px 12px rgba(28,41,87,.12); white-space:nowrap; }
.cmviz__ic{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; box-shadow:0 8px 20px rgba(28,41,87,.2); }
.cmviz__ic svg{ width:24px; height:24px; }
.cmviz__node--n{ left:50%; top:14%; }
.cmviz__node--e{ left:86%; top:50%; }
.cmviz__node--s{ left:50%; top:86%; }
.cmviz__node--w{ left:14%; top:50%; }

.tile{
  width:420px; background:transparent; border:none;
  border-radius:0; padding:0; overflow:visible;
  display:flex; flex-direction:column; align-items:stretch;
  box-shadow:none;
}
.tile__art{
  width:100%; height:340px; background:var(--paper);
  overflow:hidden; flex:none; border-radius:16px; position:relative;
}
.tile h3{ padding:24px 2px 0; }
.tile p{ padding:10px 2px 0; }
.tile .tile__btn{ width:100%; align-self:stretch; margin:22px 0 0; padding:16px 22px; border-radius:14px; font-size:15px; font-weight:700; }
.tile__art image-slot{ display:block; width:100%; height:100%; }
.tile h3{ font-size:23px; }
.tile p{ font-size:15px; line-height:1.65; color:var(--ink-soft); flex:1; }
.tile__btn{ width:100%; margin-top:10px; }
.tile--cta{ background:var(--accent); border-radius:18px; justify-content:center; }
.tile--cta .tile__cta-panel{ padding:40px 32px; display:flex; flex-direction:column; height:100%; justify-content:center; }
.tile--cta h3{ color:var(--white); font-size:26px; }
.tile--cta p{ color:rgba(255,255,255,.85); margin-top:10px; }
.tile--cta .tile__btn{ margin-top:22px; background:var(--white); color:var(--accent); }
.tile--cta .tile__btn:hover{ background:var(--cream); color:var(--accent-dark); }

/* ---------- get to know us — staggered photo cards ---------- */
.tiles__stagger{
  display:grid; grid-template-columns:1fr 1fr; gap:28px;
  align-items:start;
}
.tiles__col{ display:flex; flex-direction:column; gap:28px; }
.tiles__col--offset{ margin-top:80px; }
.ztile{ border-radius:18px; overflow:hidden; background:var(--white); box-shadow:0 10px 34px rgba(31,42,34,.08); }
.ztile__img{ height:420px; }
.ztile__img image-slot{ display:block; width:100%; height:100%; }
.ztile__panel{ padding:26px 28px 30px; }
.ztile__panel h3{ font-size:22px; font-weight:700; color:var(--ink); }
.ztile__panel p{ margin-top:10px; font-size:15px; line-height:1.7; color:var(--ink-soft); }
.ztile__link{ display:inline-block; margin-top:16px; font-weight:700; font-size:15px; color:var(--accent); }
.ztile__link:hover{ color:var(--accent-dark); }
.ztile--cta{ background:var(--accent); }
.ztile--cta .ztile__panel{ padding:44px 40px 48px; }
.ztile--cta h3{ color:var(--white); font-size:26px; }
.ztile--cta p{ color:rgba(255,255,255,.85); }
.ztile__btn{ margin-top:22px; background:var(--white); color:var(--accent); }
.ztile__btn:hover{ background:var(--cream); color:var(--accent-dark); }
@media (max-width:900px){
  .tiles__stagger{ grid-template-columns:1fr; gap:28px; }
  .tiles__col{ gap:28px; }
  .tiles__col--offset{ margin-top:0; }
  .ztile__img{ height:260px; }
}
.journey__intro{ max-width:620px; margin:0 auto 84px; text-align:center; }
.journey__intro p{ margin-top:18px; font-size:15.5px; line-height:1.75; color:var(--ink-soft); }

/* steps — FAQ-style cards, centered section */
.journey__intro{ max-width:620px; margin:0 auto 64px; text-align:center; }
.steps{ display:flex; flex-direction:column; gap:16px; max-width:760px; margin:0 auto; }
.step{
  background:var(--paper); border:1px solid var(--line); border-radius:16px;
  transition:box-shadow .2s ease, border-color .2s ease;
}
.step:hover{ border-color:var(--accent); box-shadow:0 8px 26px rgba(31,42,34,.08); }
.step summary{
  list-style:none; display:flex; align-items:center; gap:18px;
  padding:22px 28px; cursor:pointer; user-select:none;
}
.step summary::-webkit-details-marker{ display:none; }
.step--1{ --c:#0f8a7a; }
.step--2{ --c:#c77414; }
.step--3{ --c:#7a4bd6; }
.step--4{ --c:#d24b6a; }
.step__dot{
  flex:none; width:36px; height:36px; border-radius:50%;
  display:grid; place-items:center; background:var(--c); color:var(--white);
}
.step__dot b{ font-size:13px; font-weight:700; }
.step summary h3{ font-size:20px; font-weight:700; color:var(--c); margin:0; flex:1; }
.step__body{
  margin:0; padding:0 28px 24px 82px;
  font-size:15.5px; line-height:1.75; color:var(--ink-soft);
}

/* ---------- testimonials ---------- */
.tstm{ background:var(--cream); }
.tstm__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
@media (max-width:760px){ .tstm__grid{ grid-template-columns:1fr; } }
.tcard{
  background:var(--white); border:1px solid var(--line); border-radius:var(--r-card);
  padding:34px 32px 30px; display:flex; flex-direction:column; gap:20px;
}
.tcard__aud{
  align-self:flex-start; font-size:12px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--accent-dark);
  background:var(--tint); border-radius:var(--r-pill); padding:5px 14px;
}
.tcard blockquote{ margin:0; font-family:var(--font-display); font-size:20px; line-height:1.45; color:var(--ink); flex:1; }
.tcard__who{ display:flex; align-items:center; gap:12px; font-size:13px; color:var(--ink-soft); }
.tcard__who img, .tcard__who .ph{ width:44px; height:44px; border-radius:50%; object-fit:cover; }
.tcard__who .ph{ display:grid; place-items:center; background:var(--tint); color:var(--accent-dark); font-weight:600; font-size:14px; }
.tcard__who b{ display:block; color:var(--ink); font-size:14px; }

/* ---------- founder — Cityblock-style split quote ---------- */
.fndr{
  padding:96px 0 120px;
  background:var(--tint);
}
.fndr__grid{
  display:grid; grid-template-columns:1fr 1.35fr; align-items:start;
  max-width:var(--content-max); margin:0 auto; padding:0 var(--page-margin);
}
.fndr__photo-panel{
  background:var(--peach); padding:48px 0 0 48px;
  align-self:stretch;
}
.fndr__photo{ margin:0; position:relative; transform:translateY(48px); height:440px; overflow:hidden; }
.fndr__photo image-slot{ display:block; width:100%; height:530px; }
.fndr__name{
  position:absolute; left:-24px; bottom:76px;
  background:var(--tint); color:var(--accent); font-weight:700; font-size:22px;
  padding:8px 18px;
}
.fndr__role{
  position:absolute; left:-24px; bottom:28px;
  background:var(--accent); color:var(--white); font-weight:600; font-size:14px;
  padding:8px 16px;
}
.fndr__quote{ background:var(--ink); color:var(--accent); padding:88px 80px 96px; }
.fndr__quote h2{ color:var(--cream); font-weight:700; max-width:560px; }
.fndr__cont{ margin-top:28px; font-size:16px; line-height:1.7; max-width:540px; color:#d7deef; }
.fndr__attr{ margin-top:20px; font-size:15px; line-height:1.7; max-width:540px; color:#aabbe8; }
.fndr__btn{ margin-top:36px; background:var(--accent); color:var(--white); border-radius:10px; font-weight:700; }
.fndr__btn:hover{ background:var(--accent-dark); color:var(--white); }
@media (max-width:900px){
  .fndr__grid{ grid-template-columns:1fr; }
  .fndr__photo-panel{ padding:32px 32px 0; }
  .fndr__photo{ transform:translateY(32px); }
  .fndr__name{ left:-12px; }
  .fndr__role{ left:-12px; }
  .fndr__quote{ padding:80px 32px 64px; }
}

/* ---------- care team — Cityblock band ---------- */
.cteam{ padding:96px 0 0; }
.cteam__intro{ max-width:820px; margin:0 auto 140px; text-align:center; }
.cteam__intro h2{ color:var(--accent); font-weight:700; font-size:calc(clamp(34px, 4vw, 52px) * var(--type-scale)); white-space:nowrap; }
.cteam__intro p{ margin-top:18px; font-size:16px; line-height:1.7; color:var(--ink-soft); max-width:640px; margin-left:auto; margin-right:auto; }
.cteam__band{ background:var(--accent); padding:0 0 88px; }
.cteam__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.cmember__photo{
  height:300px; background:var(--cream); margin-top:-80px; overflow:hidden; position:relative;
}
.cmember__photo::after{ content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg, rgba(0,81,69,.05) 0%, rgba(0,81,69,0) 30%, rgba(0,81,69,.10) 100%); mix-blend-mode:multiply; }
.cmember__photo image-slot, .cmember__photo img{ filter:saturate(.9) contrast(1.03) brightness(1.01); }
.cmember__photo image-slot{ display:block; width:100%; height:100%; }
/* cteam 2-up */
@media (max-width:1024px){ .cteam__grid{ grid-template-columns:repeat(2,1fr); gap:36px; } .cteam__band{ padding-top:48px; } .cmember__photo{ margin-top:0; } }
.cmember__photo image-slot{ display:block; width:100%; height:100%; }
/* Cee — iPhone mockup with WhatsApp-style chat */
.cmember__photo--phone{ display:flex; justify-content:center; align-items:flex-end; overflow:hidden; }
.phone{
  width:210px; height:330px; margin:0 0 -50px;
  background:#101214; border-radius:30px; padding:8px;
  box-shadow:0 18px 40px rgba(0,0,0,.28);
  position:relative;
}
.phone::before{
  content:''; position:absolute; top:13px; left:50%; transform:translateX(-50%);
  width:64px; height:14px; border-radius:999px; background:#101214; z-index:2;
}
.phone__screen{
  height:100%; border-radius:22px; overflow:hidden;
  background:#efe7dd; display:flex; flex-direction:column;
}
.phone__hdr{
  display:flex; align-items:center; gap:8px;
  background:#075e54; color:#fff; padding:22px 12px 8px;
}
.phone__avatar{
  width:26px; height:26px; border-radius:50%; background:#25d366; color:#fff;
  display:grid; place-items:center; font-size:12px; font-weight:700; flex:none;
}
.phone__who{ display:flex; flex-direction:column; line-height:1.15; }
.phone__who b{ font-size:12.5px; }
.phone__who small{ font-size:9.5px; opacity:.75; }
.phone__chat{ padding:10px 8px; display:flex; flex-direction:column; gap:7px; }
.msg{
  max-width:88%; padding:6px 9px; border-radius:10px;
  font-size:9.5px; line-height:1.4; color:#1f2a22;
  box-shadow:0 1px 1px rgba(0,0,0,.08);
}
.msg--in{ background:#ffffff; align-self:flex-start; border-top-left-radius:2px; }
.msg--out{ background:#d9fdd3; align-self:flex-end; border-top-right-radius:2px; }
.msg .ticks{ color:#34b7f1; font-size:9px; margin-left:4px; }
.cmember h3{ margin-top:26px; color:var(--white); font-weight:700; font-size:22px; }
.cmember p{ margin-top:12px; font-size:14.5px; line-height:1.7; color:rgba(255,255,255,.88); }
@media (max-width:860px){
  .cteam__intro{ margin-bottom:56px; }
  .cteam__intro h2{ white-space:normal; }
  .cteam__grid{ grid-template-columns:1fr; gap:56px; }
  .cteam__grid{ grid-template-columns:1fr; }
  .cteam__band{ padding-top:56px; }
  .cmember__photo{ margin-top:0; }
}

/* ---------- closing split ---------- */
.closing{ padding:0; }
.closing .split{ display:grid; grid-template-columns:1fr 1fr; }
.closing .half{ padding:96px var(--page-margin); display:flex; align-items:center; }
.closing .half > div{ max-width:560px; margin:0 auto; text-align:center; }
.half--careers{ background:var(--peach); }
.half--careers h2{ color:var(--peach-text); }
.half--careers .label{ color:var(--peach-text); }
.half--careers .btn--ghost{ border-color:var(--ink); color:var(--ink); }
.half--contact{ background:var(--tint); color:var(--ink-soft); }
.half--contact h2{ color:var(--ink); }
.half--careers p, .half--contact p{ margin-top:16px; font-size:15.5px; line-height:1.75; }
.half--careers p{ color:var(--ink-soft); }
@media (max-width:820px){ .closing .split{ grid-template-columns:1fr; } .closing .half{ padding:64px var(--page-margin); } }

/* ---------- footer — bright blue, Cityblock pattern ---------- */
.site-footer{ background:var(--deep); color:var(--gold); padding:96px 0 56px; }
.site-footer a{ color:var(--gold); text-decoration:none; }
.site-footer a:hover{ color:var(--cream); opacity:1; }
.site-footer__grid{
  display:grid; grid-template-columns:1.2fr 2fr; gap:64px; align-items:start;
}
.site-footer__logo{ height:36px; width:auto; display:block; }
.site-footer__word{
  margin-top:110px; font-size:18.9vw; font-weight:700;
  letter-spacing:-.045em; line-height:.95; color:var(--cream);
  white-space:nowrap; text-align:center;
  width:100vw; margin-left:calc(50% - 50vw);
}
.site-footer__addr{ margin-top:18px; font-size:15px; color:var(--gold); }
.site-footer__addr + .site-footer__addr{ margin-top:6px; }
.site-footer__email{ color:var(--cream); border-bottom:1px solid rgba(250,247,242,.35); }
.site-footer__email:hover{ color:var(--white); border-bottom-color:currentColor; }
.site-footer__cols{ display:grid; grid-template-columns:repeat(4, minmax(130px, 1fr)); gap:40px 40px; }
.site-footer__col h4{
  font-family:var(--font-body); font-size:16px; font-weight:700;
  color:var(--cream); margin-bottom:24px;
}
.site-footer__col ul{ display:flex; flex-direction:column; gap:18px; font-size:15px; font-weight:400; }
.site-footer__legal{
  display:flex; flex-wrap:wrap; gap:32px; margin-top:40px;
  font-size:14.5px; font-weight:400;
}
/* Both accreditation marks are drawn in navy ink, so they disappear straight
   into the navy footer. Each one sits on its own white tile. */
.site-footer__accred{ margin-top:36px; }
.site-footer__accred h4{
  font-family:var(--font-body); font-size:13px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; color:var(--gold);
  margin-bottom:16px;
}
.faccred{ display:flex; flex-wrap:wrap; align-items:flex-start; gap:16px; }
.faccred__item{ display:flex; flex-direction:column; align-items:center; gap:7px; }
.faccred__mark{
  display:grid; place-items:center; width:86px; height:86px;
  background:var(--white); border-radius:14px; padding:9px; box-sizing:border-box;
}
.faccred__mark img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
.faccred__cap{ font-size:12.5px; line-height:1.35; color:var(--gold); text-align:center; }
@media (max-width:820px){
  .site-footer__grid{ grid-template-columns:1fr; }
  .site-footer__word{ margin-top:48px; }
  .site-footer__cols{ grid-template-columns:1fr 1fr; }
}

@media (max-width:900px){
  .doors4{ height:auto !important; }
  .journey{ height:auto !important; }
  .doors4 .wrap{ margin-top:0 !important; }
}

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .6s ease var(--d, 0s), transform .6s ease var(--d, 0s); }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- section toggles (tweaks) ---------- */
body[data-hide-partners="1"] .partners,
body[data-hide-voice="1"] .voice,
body[data-hide-tiles="1"] .tiles,
body[data-hide-testimonials="1"] .tstm,
body[data-hide-founder="1"] .fndr{ display:none; }

#bh-tweaks-mount{ position:relative; z-index:60; }


/* ---------- small-screen hero stage ---------- */
@media (max-width:560px){
  .hero__stage{ min-height:380px; }
  .hero__child{ height:360px; }
  .hero__worker--left{ width:84px; height:84px; left:0; top:26%; }
  .hero__worker--mid{ width:90px; height:90px; top:0; left:14%; }
  .hero__worker--mid2{ width:90px; height:90px; top:0; right:14%; }
  .hero__worker--right{ width:84px; height:84px; right:0; top:26%; }
  .hero__worker{ border-width:4px; }
  h1{ overflow-wrap:break-word; }
}
/* generic mobile guards */
@media (max-width:768px){
  html, body{ overflow-x:clip; }
  img, image-slot{ max-width:100%; }
  .wrap{ min-width:0; }
}

/* ---------- our mission — exposure → hub → outcomes ---------- */
.mission{ background:linear-gradient(180deg,#ffffff 0%, #f2f6fe 100%); color:var(--ink); }
.mission__head{ max-width:1000px; margin:0 auto; text-align:center; }
.mission__eyebrow{ display:inline-block; font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:.16em; text-transform:uppercase; color:var(--accent); margin-bottom:20px; }
.mission__head h2{ font-size:calc(clamp(30px,3.6vw,50px) * var(--type-scale)); line-height:1.12; color:var(--ink); }
.mission__head h2 .hl-green{ color:var(--accent); }
.mission__head p{ margin:22px auto 0; max-width:820px; font-size:17px; line-height:1.6; color:var(--ink-soft); }
.mission__head p .hl-orange{ color:var(--peach-text); font-style:italic; }
.mission__diagram{ position:relative; display:grid; grid-template-columns:24% 1fr 24%; column-gap:0; align-items:center; height:600px; max-width:1080px; margin:56px auto 0; }
.mission__wires{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:0; }
.mission__col{ display:flex; flex-direction:column; justify-content:space-between; height:100%; position:relative; z-index:1; }
.mnode{ display:flex; align-items:center; gap:13px; border-radius:14px; padding:0 16px; border:1px solid var(--line); background:var(--white); box-shadow:0 8px 22px rgba(28,41,87,.07); }
.mission__col--in .mnode{ height:94px; }
.mission__col--out .mnode{ height:60px; flex-direction:row-reverse; }
.mnode__ic{ width:38px; height:38px; flex:none; border-radius:10px; background:var(--tint); color:var(--accent); display:grid; place-items:center; }
.mnode__ic svg{ width:21px; height:21px; }
.mnode__tx{ min-width:0; }
.mnode h3{ font-family:var(--font-display); font-weight:700; font-size:15px; line-height:1.12; color:var(--ink); text-wrap:pretty; }
.mnode p{ margin-top:3px; font-size:12px; line-height:1.25; color:var(--ink-soft); text-wrap:pretty; }
.mnode--good{ background:#eaf6ee; border-color:#bfe3cc; }
.mnode--good .mnode__ic{ background:#d6efdd; color:#2f8f5e; }
.mnode--good h3{ color:#217a4b; flex:1; text-align:right; }
.mission__hub{ position:relative; z-index:1; width:190px; height:190px; margin:0 auto; background:linear-gradient(160deg,var(--accent),var(--accent-dark)); color:#fff; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:11px; box-shadow:0 18px 44px rgba(47,95,227,.34); }
.mission__hub img{ width:128px; height:auto; }
.mission__hub span{ font-size:12px; font-weight:600; color:#d9e4fa; white-space:nowrap; }
.mission__cta{ margin-top:48px; text-align:center; }
.mission__cta .mission__btn{ background:var(--accent); color:#fff; }
.mission__cta .mission__btn:hover{ background:var(--accent-dark); color:#fff; }
@media (max-width:900px){
  .mission__diagram{ grid-template-columns:1fr; gap:12px; height:auto; margin-top:40px; }
  .mission__wires{ display:none; }
  .mission__col{ height:auto; gap:12px; }
  .mission__col--in .mnode, .mission__col--out .mnode{ height:64px; }
  .mission__hub{ order:0; margin:10px auto; }
  .mnode--good{ flex-direction:row; }
  .mnode--good h3{ text-align:left; }
}

/* ---- mission diagram choreographed entrance ---- */
.mission__diagram.js-anim .mnode{opacity:0;transition:opacity .45s ease,transform .45s ease}
.mission__diagram.js-anim .mission__col--in .mnode{transform:translateX(-26px)}
.mission__diagram.js-anim .mission__col--out .mnode{transform:translateX(26px)}
.mission__diagram.js-anim .mission__hub{opacity:0;transform:scale(.2);transition:opacity .5s ease,transform .55s cubic-bezier(.34,1.56,.64,1)}
.mission__diagram.js-anim .mission__wires path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .55s ease}
.mission__diagram.p-cards .mission__col--in .mnode{opacity:1;transform:none}
.mission__diagram.p-left .mission__wires g:first-child path{stroke-dashoffset:0}
.mission__diagram.p-hub .mission__hub{opacity:1;transform:none}
.mission__diagram.p-right .mission__wires g:nth-child(2) path{stroke-dashoffset:0}
.mission__diagram.p-out .mission__col--out .mnode{opacity:1;transform:none}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(1){transition-delay:0s}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(2){transition-delay:0.11s}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(3){transition-delay:0.22s}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(4){transition-delay:0.33s}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(5){transition-delay:0.44s}
.mission__diagram.p-cards .mission__col--in .mnode:nth-child(6){transition-delay:0.55s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(1){transition-delay:0s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(2){transition-delay:0.07s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(3){transition-delay:0.14s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(4){transition-delay:0.21s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(5){transition-delay:0.28s}
.mission__diagram.p-left .mission__wires g:first-child path:nth-child(6){transition-delay:0.35s}
.mission__diagram.p-right .mission__wires g:nth-child(2) path:nth-child(1){transition-delay:0s}
.mission__diagram.p-right .mission__wires g:nth-child(2) path:nth-child(2){transition-delay:0.16s}
.mission__diagram.p-right .mission__wires g:nth-child(2) path:nth-child(3){transition-delay:0.32s}
.mission__diagram.p-right .mission__wires g:nth-child(2) path:nth-child(4){transition-delay:0.48s}
.mission__diagram.p-right .mission__wires g:nth-child(2) path:nth-child(5){transition-delay:0.64s}
.mission__diagram.p-out .mission__col--out .mnode:nth-child(1){transition-delay:0s}
.mission__diagram.p-out .mission__col--out .mnode:nth-child(2){transition-delay:0.16s}
.mission__diagram.p-out .mission__col--out .mnode:nth-child(3){transition-delay:0.32s}
.mission__diagram.p-out .mission__col--out .mnode:nth-child(4){transition-delay:0.48s}
.mission__diagram.p-out .mission__col--out .mnode:nth-child(5){transition-delay:0.64s}
@media (prefers-reduced-motion:reduce){.mission__diagram .mnode,.mission__diagram .mission__hub{opacity:1!important;transform:none!important}.mission__diagram .mission__wires path{stroke-dashoffset:0!important}}

/* ---- mission diagram flowing dots: converge → merge ball → through hub → split ---- */
.mission__dots circle{opacity:0;offset-rotate:0deg}
.mdot--in{filter:drop-shadow(0 0 4px rgba(47,95,227,.75))}
.mdot--out{filter:drop-shadow(0 0 4px rgba(47,143,94,.75))}
.mball{filter:drop-shadow(0 0 11px rgba(47,95,227,.95)) drop-shadow(0 0 5px #ffffff)}
.mspark{transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 9px rgba(47,95,227,.9))}
.mspark--r{filter:drop-shadow(0 0 9px rgba(47,143,94,.9))}
.mission__diagram.flow .mdot--in{animation:mdotIn 5s linear infinite}
.mission__diagram.flow .mdot--out{animation:mdotOut 5s linear infinite}
.mission__diagram.flow .mball{animation:mball 5s linear infinite}
.mission__diagram.flow .mspark--l{animation:mSparkL 5s ease-out infinite}
.mission__diagram.flow .mspark--r{animation:mSparkR 5s ease-out infinite}
.mission__diagram.flow .mission__hub{animation:mHubGlow 5s ease-in-out infinite}
@keyframes mdotIn{0%{offset-distance:0%;opacity:0}4%{opacity:1}26%{offset-distance:100%;opacity:1}31%{offset-distance:100%;opacity:0}100%{offset-distance:100%;opacity:0}}
@keyframes mball{0%,29%{offset-distance:0%;opacity:0}33%{opacity:1}52%{offset-distance:100%;opacity:1}56%{offset-distance:100%;opacity:0}100%{opacity:0}}
@keyframes mdotOut{0%,55%{offset-distance:0%;opacity:0}59%{opacity:1}86%{offset-distance:100%;opacity:1}90%{offset-distance:100%;opacity:0}100%{opacity:0}}
@keyframes mSparkL{0%,21%{opacity:0;transform:scale(.2)}29%{opacity:.95;transform:scale(1.5)}41%{opacity:0;transform:scale(2.1)}100%{opacity:0}}
@keyframes mSparkR{0%,49%{opacity:0;transform:scale(.2)}56%{opacity:.95;transform:scale(1.5)}68%{opacity:0;transform:scale(2.1)}100%{opacity:0}}
@keyframes mHubGlow{0%,30%{box-shadow:0 18px 44px rgba(47,95,227,.34)}45%{box-shadow:0 0 0 8px rgba(47,95,227,.16),0 0 55px 12px rgba(47,95,227,.72),0 18px 44px rgba(47,95,227,.4)}58%,100%{box-shadow:0 18px 44px rgba(47,95,227,.34)}}
@media (prefers-reduced-motion:reduce){.mission__dots{display:none}}

/* ---- how it works — numbered steps ---- */
.howit{ background:var(--cream); }
.howit__head{ max-width:940px; }
.howit__head h2{ font-size:calc(clamp(30px,3.4vw,48px) * var(--type-scale)); line-height:1.12; color:var(--ink); }
.howit__head p{ margin-top:16px; max-width:720px; font-size:17px; line-height:1.6; color:var(--ink-soft); }
.howit__grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin-top:52px; }
.howit__card{ display:flex; flex-direction:column; }
.howit__art{ position:relative; border-radius:18px; overflow:hidden; aspect-ratio:1/1; }
.howit__art image-slot{ display:block; width:100%; height:100%; }
.howit__art--a{ background:var(--peach); }
.howit__art--b{ background:var(--tint); }
.howit__art--c{ background:var(--soft-blue); }
.howit__art--d{ background:var(--peach); }
.howit__art--phone{ display:flex; justify-content:center; align-items:flex-start; padding-top:22px; background:linear-gradient(160deg, #ffffff 0%, var(--tint) 45%, var(--soft-blue) 100%); }
.iphone--howit{ position:relative; width:230px; flex:none; filter:drop-shadow(0 18px 40px rgba(28,41,87,.3)); }
.iphone__frame{ display:block; width:100%; height:auto; }
.iphone__app{ position:absolute; left:5.5%; right:5.5%; top:7.6%; bottom:2.4%; background:#efe7dd; display:flex; flex-direction:column; overflow:hidden; }
.iphone--howit .phone__hdr{ padding:8px 12px 8px; }
.howit__art--grad1{ background:linear-gradient(160deg, var(--soft-blue) 0%, var(--tint) 40%, #ffffff 100%) !important; }
.howit__art--grad3{ background:linear-gradient(160deg, #dfe9fb 0%, var(--soft-blue) 55%, #aabbe8 100%); }
.fwidget{ position:absolute; background:#fff; border-radius:14px; box-shadow:0 10px 26px rgba(28,41,87,.22); font-family:var(--font-body); z-index:3; }
.fwidget--score{ top:16%; right:-34px; display:flex; align-items:center; gap:9px; padding:10px 14px; }
.fwidget--score b{ width:38px; height:38px; flex:none; border-radius:50%; background:#2f8f5e; color:#fff; display:grid; place-items:center; font-family:var(--font-display); font-size:15px; }
.fwidget--score span{ font-size:10.5px; line-height:1.35; color:var(--ink-soft); }
.fwidget--chip{ bottom:24%; left:auto; right:-26px; padding:8px 14px; font-size:11px; font-weight:600; color:var(--ink); border-radius:999px; }
.fwidget--top{ bottom:auto; top:13%; right:auto; left:-30px; }
.fwidget--visit{ bottom:20%; right:-30px; display:flex; flex-direction:column; gap:1px; padding:10px 14px; }
.fwidget--visit b{ font-size:11.5px; color:var(--ink); }
.fwidget--visit span{ font-size:10.5px; color:var(--ink-soft); }
.iphone__app--quiz, .iphone__app--care{ background:#fff; padding:0 0 10px; }
.quiz__hdr{ display:flex; align-items:center; justify-content:space-between; gap:8px; background:var(--tint); padding:10px 12px; }
.quiz__hdr b{ font-family:var(--font-display); font-size:11px; color:var(--ink); }
.quiz__bar{ flex:1; max-width:56px; height:5px; border-radius:999px; background:#d7e0f5; overflow:hidden; }
.quiz__bar i{ display:block; width:40%; height:100%; background:var(--accent); border-radius:999px; }
.quiz__q{ padding:14px 12px 10px; font-size:12px; font-weight:600; line-height:1.45; color:var(--ink); }
.quiz__opts{ display:flex; flex-direction:column; gap:7px; padding:0 12px; }
.quiz__opt{ border:1.5px solid var(--line); border-radius:10px; padding:8px 10px; font-size:10.5px; color:var(--ink-soft); }
.quiz__opt.is-picked{ border-color:var(--accent); background:var(--tint); color:var(--ink); font-weight:600; }
.care__rows{ display:flex; flex-direction:column; gap:7px; padding:12px; }
.care__row{ display:flex; justify-content:space-between; align-items:baseline; background:var(--cream); border-radius:10px; padding:8px 10px; }
.care__row span{ font-size:10px; color:var(--ink-soft); }
.care__row b{ font-size:10.5px; color:var(--ink); }
.care__note{ margin:0 12px; padding:9px 10px; background:var(--tint); border-radius:10px; font-size:10.5px; line-height:1.45; color:var(--ink); }
.howit__num{ position:absolute; left:16px; bottom:16px; width:46px; height:46px; background:var(--cream); border-radius:13px; display:grid; place-items:center; font-family:var(--font-display); font-weight:700; font-size:21px; color:var(--ink); box-shadow:0 4px 14px rgba(28,41,87,.14); }
.howit__card h3{ margin-top:22px; font-size:20px; line-height:1.25; color:var(--ink); }
.howit__card p{ margin-top:10px; font-size:15px; line-height:1.6; color:var(--ink-soft); }
.howit__toggle{ margin-top:22px; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; width:100%; padding:0 0 14px; background:none; border:0; border-bottom:1px solid var(--line); font:inherit; color:inherit; text-align:left; cursor:pointer; }
.howit__toggle h3{ margin-top:0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; min-height:calc(2 * 1.25em); }
.phone__avatar--ph{ overflow:hidden; padding:0; }
.phone__avatar--ph img{ width:100%; height:100%; object-fit:cover; object-position:50% 8%; display:block; }
.howit__chev{ width:17px; height:17px; flex:none; margin-top:5px; transition:transform .3s ease; }
.howit__toggle[aria-expanded="false"] .howit__chev{ transform:rotate(180deg); }
.howit__body{ display:grid; grid-template-rows:1fr; overflow:hidden; transition:grid-template-rows .32s ease; }
.howit__toggle[aria-expanded="false"] + .howit__body{ grid-template-rows:0fr; }
.howit__body > p{ min-height:0; margin-top:20px; }
.howit__cta{ margin-top:48px; }
@media (max-width:1000px){ .howit__grid{ grid-template-columns:repeat(2,1fr); gap:32px 24px; } }
@media (max-width:560px){ .howit__grid{ grid-template-columns:1fr; } }

/* ---- proven results — impact card (heading + image left, copy + stats right) ---- */
.proof__card{ background:var(--paper); border-radius:34px; padding:clamp(36px,5vw,72px); display:grid; grid-template-columns:minmax(0,.85fr) 1fr; gap:clamp(36px,5vw,80px); }
.proof__left{ display:flex; flex-direction:column; }
.proof__left h2{ font-size:calc(clamp(30px,3.2vw,46px) * var(--type-scale)); line-height:1.1; color:var(--ink); }
.proof__media{ margin-top:34px; border-radius:22px; overflow:hidden; flex:1; min-height:300px; position:relative; display:flex; align-items:flex-end; justify-content:center; }
.proof__map{ position:relative; width:100%; aspect-ratio:3992/2992; border-radius:22px; overflow:hidden; }
.proof__map image-slot{ display:block; width:100%; height:100%; }
.mappin{ position:absolute; transform:translate(-50%,-100%); display:flex; flex-direction:column; align-items:center; gap:2px; z-index:2; }
.mappin svg{ width:24px; height:24px; filter:drop-shadow(0 3px 6px rgba(0,0,0,.35)); }
.mappin b{ order:-1; font-family:var(--font-display); font-size:10.5px; font-weight:700; color:var(--ink); background:rgba(255,255,255,.92); padding:2px 9px; border-radius:999px; box-shadow:0 4px 10px rgba(28,41,87,.2); white-space:nowrap; }
.proof__media image-slot{ display:block; width:100%; height:100%; }
.proof__intro{ max-width:52ch; font-size:15px; line-height:1.7; color:var(--ink-soft); }
.proof__grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:38px 28px; margin-top:44px; }
.proof__stat{ display:flex; flex-direction:column; }
.proof__num{ font-family:var(--font-display); font-weight:700; font-size:clamp(38px,3.8vw,56px); line-height:1; color:#5379e8; letter-spacing:-.02em; }
.proof__label{ display:block; margin-top:10px; font-size:15px; font-weight:500; line-height:1.35; color:var(--ink-soft); }
.proof__sub{ display:block; margin-top:3px; font-size:13px; font-weight:400; color:var(--ink-soft); opacity:.75; }
.proof__cta{ margin-top:44px; }
@media (max-width:860px){ .proof__card{ grid-template-columns:minmax(0,1fr); gap:36px; } .proof__media{ flex:none; aspect-ratio:16/10; max-height:420px; min-height:0; } .proof__left, .proof__right{ min-width:0; } }
@media (max-width:460px){ .proof__grid{ grid-template-columns:1fr; gap:26px; } }

/* ---- awards & stories — staggered columns ---- */
.awards{ background:var(--white); }
.awards__title{ text-align:center; color:var(--ink); font-size:calc(clamp(28px,3.2vw,44px) * var(--type-scale)); line-height:1.12; }
.awards__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:44px; align-items:stretch; }
.awards__col{ display:flex; flex-direction:column; gap:18px; }
.awards__col--down{ margin-top:0; }
.acard{ border-radius:16px; overflow:hidden; }
.acard--photo{ position:relative; background:var(--ink); flex:1; min-height:340px; }
.acard--photo.acard--tall{ aspect-ratio:auto; }
.acard--photo.acard--sq{ aspect-ratio:1/1; }
.acard--photo image-slot{ display:block; width:100%; height:100%; }
.acard--photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(12,17,28,.9),rgba(12,17,28,.12) 52%,rgba(12,17,28,0) 70%); pointer-events:none; z-index:1; }
.acard--photo::before{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(28,41,87,.18) 0%, rgba(28,41,87,.32) 100%); mix-blend-mode:multiply; pointer-events:none; z-index:1; }
.acard__cap{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:16px; color:#fff; }
.acard__quote{ font-size:13.5px; line-height:1.4; }
.acard__name{ margin-top:10px; font-family:var(--font-display); font-weight:700; font-size:14.5px; line-height:1.25; }
.acard__name span{ display:block; font-family:var(--font-body); font-weight:400; font-size:12px; color:rgba(255,255,255,.82); margin-top:2px; }
.acard--logo{ background:var(--cream); display:grid; place-items:center; padding:26px 22px; flex:none; height:180px; }
.acard--logo image-slot{ display:block; width:92%; height:110px; max-height:100%; }
@media (max-width:900px){ .awards__grid{ grid-template-columns:repeat(2,1fr); } .awards__col--down{ margin-top:0; } }
@media (max-width:560px){ .awards__grid{ grid-template-columns:1fr; } }


.knowexp .bizw--visits{ bottom:12%; right:8%; width:232px; }
.knowexp .bizw__cegrow{ display:flex; align-items:center; gap:10px; margin-top:10px; }
.knowexp .bizw__cal{ width:26px; height:26px; flex:none; color:#1f8a5b; }
.knowexp .bizw__cegimg{ position:static !important; width:40px !important; height:40px; border-radius:50%; object-fit:cover; flex:none; margin:0 !important; background:#eef2ee; }
.knowexp .bizw__cegtxt{ display:flex; flex-direction:column; font-size:11px; line-height:1.25; color:#4a554d; }
.knowexp .bizw__cegtxt b{ font-size:13px; color:#17211b; }
.knowexp .bizw__appt{ display:flex; align-items:center; gap:7px; margin-top:10px; padding-top:9px; border-top:1px solid #e6ede7; font-size:11px; font-weight:600; color:#1f8a5b; }
.knowexp .bizw__appt svg{ width:15px; height:15px; flex:none; }

/* ---------- our mission — parents & children ---------- */
.misn{ background:linear-gradient(180deg,#ffffff 0%, #f2f6fe 100%); color:var(--ink); }
.misn__grid{ display:grid; grid-template-columns:1.02fr .98fr; gap:72px; align-items:center; }
.misn__copy h2{ font-size:calc(clamp(30px,3.4vw,46px) * var(--type-scale)); line-height:1.12; color:var(--ink); text-wrap:pretty; }
.misn__copy h2 .hl-green{ color:var(--accent); }
.misn__lede{ margin-top:20px; max-width:54ch; font-size:17px; line-height:1.6; color:var(--ink-soft); }
.misn__cols{ display:grid; grid-template-columns:1fr 1fr; gap:38px; margin-top:34px; padding-top:30px; border-top:1px solid var(--line); }
.misn__colhd{ display:flex; align-items:center; gap:12px; }
.misn__ic{ width:40px; height:40px; flex:none; border-radius:50%; background:var(--tint); color:var(--accent); display:grid; place-items:center; }
.misn__ic svg{ width:20px; height:20px; }
.misn__colhd h3{ font-family:var(--font-display); font-weight:700; font-size:20px; color:var(--ink); }
.misn__col dl{ margin-top:18px; display:grid; gap:16px; }
.misn__col dt{ font-family:var(--font-display); font-weight:700; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); }
.misn__col dd{ margin:5px 0 0; font-size:14.5px; line-height:1.5; color:var(--ink-soft); }
.misn__link{ display:inline-flex; align-items:center; gap:10px; margin-top:34px; font-family:var(--font-display); font-weight:700; font-size:12.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); border-bottom:1px solid var(--ink); padding-bottom:6px; }
.misn__link:hover{ color:var(--accent); border-bottom-color:var(--accent); }
.misn__media image-slot{ display:block; width:100%; aspect-ratio:4/5; border-radius:26px; overflow:hidden; box-shadow:0 30px 70px rgba(15,25,55,.18); }
@media (max-width:900px){
  .misn__grid{ grid-template-columns:1fr; gap:34px; }
  .misn__cols{ grid-template-columns:1fr; gap:26px; }
  .misn__media image-slot{ aspect-ratio:4/3; }
}

.misn__grid{ grid-template-columns:.98fr 1.02fr; }
.misn__copy{ order:2; }
.misn__media{ order:1; }
@media (max-width:900px){ .misn__copy{ order:1; } .misn__media{ order:2; } }

.misn{ background:#fff; }
.misn__matrix{ margin-top:34px; padding-top:26px; border-top:1px solid var(--line); display:grid; gap:0; }
.misn__mrow{ display:grid; grid-template-columns:86px 1fr 1fr; gap:28px; align-items:start; padding:16px 0; border-bottom:1px solid var(--line); }
.misn__mrow--head{ padding-top:0; }
.misn__mrow--head h3{ font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--ink); }
.misn__lbl{ font-family:var(--font-display); font-weight:700; font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); padding-top:3px; }
.misn__mrow p{ font-size:14.5px; line-height:1.5; color:var(--ink-soft); text-wrap:pretty; }
.misn__btn{ margin-top:32px; }
@media (max-width:900px){
  .misn__mrow{ grid-template-columns:1fr; gap:8px; }
  .misn__mrow--head{ display:none; }
  .misn__mrow p:first-of-type::before{ content:'For Parents — '; color:var(--ink); font-weight:600; }
  .misn__mrow p:last-of-type::before{ content:'For Children — '; color:var(--ink); font-weight:600; }
}

.misn__grid{ align-items:stretch; }
.misn__media{ display:flex; }
.misn .misn__media image-slot{ height:auto !important; min-height:520px; aspect-ratio:auto; flex:1; }
@media (max-width:900px){ .misn .misn__media image-slot{ min-height:320px; } }

.misn__matrix{ border-top:0; margin-top:30px; padding:22px 26px 8px; background:var(--tint,#f5f8ff); border:1px solid var(--line); border-radius:22px; }
.misn__matrix .misn__mrow:last-child{ border-bottom:0; }
.misn__matrix .misn__mrow--head{ border-bottom:1px solid var(--line); padding-bottom:14px; }

.misn__matrix{ max-width:520px; padding:26px 26px 14px; }
.misn__matrix .misn__mrow{ grid-template-columns:74px 1fr 1fr; gap:20px; padding:20px 0; }
.misn__matrix .misn__mrow p{ font-size:14px; }
@media (max-width:900px){ .misn__matrix{ max-width:none; } }

.misn__matrix{ background:#faf7f2; border-color:#e6ded2; }
.misn__matrix .misn__mrow{ border-bottom-color:#e6ded2; }
.misn__matrix .misn__mrow--head{ border-bottom-color:#e6ded2; }
.misn__matrix .misn__mrow p{ color:#3a4256; }
.misn__matrix .misn__lbl{ color:#1C2957; }

.proof__left h2{ font-size:calc(clamp(24px,2.2vw,34px) * var(--type-scale)); text-wrap:balance; }


.proof__title{ grid-column:1/-1; margin-bottom:8px; }
.proof__title h2{ font-size:calc(clamp(26px,2.6vw,40px) * var(--type-scale)); line-height:1.1; color:var(--ink); white-space:nowrap; }
@media (max-width:1000px){ .proof__title h2{ white-space:normal; font-size:calc(clamp(26px,4vw,34px) * var(--type-scale)); } }

.proof__title h2{ white-space:normal; text-wrap:balance; max-width:26ch; }

.proof__title h2{ max-width:none; white-space:nowrap; font-size:clamp(15px,1.75vw,28px); }
@media (max-width:820px){ .proof__title h2{ white-space:normal; font-size:clamp(22px,4.6vw,30px); } }

/* ---- section rhythm: more breathing room between sections ---- */
:root{ --section-y:140px; }
@media (max-width:1100px){ :root{ --section-y:110px; } }
@media (max-width:768px){ :root{ --section-y:76px; } }
.doors4{ padding:96px 0; }
.misn{ padding-top:calc(var(--section-y) + 12px); padding-bottom:calc(var(--section-y) + 12px); }
.mission__head + .mission__diagram{ margin-top:64px; }

/* ---- section rhythm v2 ---- */
:root{ --section-y:160px; }
@media (max-width:1100px){ :root{ --section-y:120px; } }
@media (max-width:768px){ :root{ --section-y:80px; } }
body > main > section{ padding-top:var(--section-y); padding-bottom:var(--section-y); }
.knowexp{ padding:var(--section-y) 0; }
.cteam{ padding:var(--section-y) 0 0; }
.doors4{ padding:calc(var(--section-y) * .7) 0; }
.hero{ padding-bottom:var(--section-y); }
.closing{ padding:0; }

/* ---- proof + mission fixes ---- */
.proof__title h2{ font-size:clamp(24px,2.4vw,38px); white-space:normal; text-wrap:balance; max-width:none; }
@media (min-width:1360px){ .proof__title h2{ white-space:nowrap; } }
.proof__card .proof__media{ margin-top:0; }
.misn__matrix .misn__mrow--head h3{ font-size:17px; text-wrap:nowrap; }
@media (max-width:1240px){ .misn__matrix .misn__mrow{ grid-template-columns:60px 1fr 1fr; gap:16px; } .misn__matrix .misn__mrow--head h3{ font-size:15.5px; } }

.proof__title h2{ font-size:30.62px; }
@media (max-width:820px){ .proof__title h2{ font-size:clamp(22px,4.6vw,30px); } }

/* hero: copy column spans image height, CTAs align to image bottom */
body[data-hero="split"] .hero .wrap{ align-items:stretch; }
body[data-hero="split"] .hero__copy{ display:flex; flex-direction:column; justify-content:space-between; height:100%; }
body[data-hero="split"] .hero__copy .hero__ctas{ margin-top:auto; padding-top:36px; }
@media (max-width:900px){ body[data-hero="split"] .hero__copy{ display:block; height:auto; } body[data-hero="split"] .hero__copy .hero__ctas{ padding-top:28px; } }

body[data-hero="split"] .hero .wrap{ align-items:center; }
body[data-hero="split"] .hero__copy{ display:flex; flex-direction:column; justify-content:center; height:auto; }
body[data-hero="split"] .hero__copy .hero__sub{ margin-top:20px; }
body[data-hero="split"] .hero__copy .hero__ctas{ margin-top:32px; padding-top:0; }

/* hero: image matches the copy block height, tops and bottoms flush */
body[data-hero="split"] .hero .wrap{ align-items:stretch; }
body[data-hero="split"] .hero__copy{ justify-content:center; }
body[data-hero="split"] .hero__media, body[data-hero="split"] .hero__photo, body[data-hero="split"] .hero__stage{ height:100%; }
body[data-hero="split"] .hero__photo img, body[data-hero="split"] .hero__media img{ height:100%; width:100%; object-fit:cover; }
@media (max-width:900px){ body[data-hero="split"] .hero .wrap{ align-items:start; } body[data-hero="split"] .hero__photo img{ height:420px; } }

body[data-hero="split"] .hero__rotator{ height:100%; aspect-ratio:auto; min-height:420px; }
body[data-hero="split"] .hero__slide img{ height:100%; width:100%; object-fit:cover; }
@media (max-width:900px){ body[data-hero="split"] .hero__rotator{ aspect-ratio:13/10; height:auto; min-height:0; } }

.proof__card .proof__media{ align-items:stretch; min-height:0; }
.proof__card .proof__map{ height:100%; aspect-ratio:auto; min-height:300px; }
.proof__card .proof__map image-slot, .proof__card .proof__map img{ width:100%; height:100%; object-fit:cover; }
@media (max-width:860px){ .proof__card .proof__map{ aspect-ratio:3992/2992; height:auto; min-height:0; } }

.hs-checks{ list-style:none; margin:26px 0 30px; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 26px; max-width:520px; }
.hs-checks li{ display:flex; align-items:center; gap:10px; font-size:15.5px; font-weight:600; color:var(--ink); }
.hs-checks li::before{ content:''; flex:none; width:20px; height:20px; border-radius:50%; background:var(--soft-blue) url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%232f5fe3" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M5 13l4 4L19 7"/></svg>') center/12px no-repeat; }
@media (max-width:600px){ .hs-checks{ grid-template-columns:1fr; } }

.hs-checks--gain{ max-width:none; grid-template-columns:repeat(4,minmax(0,1fr)); margin:22px 0 34px; gap:14px 28px; }
@media (max-width:820px){ .hs-checks--gain{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .hs-checks--gain{ grid-template-columns:1fr; } }

.hs-checks li::before{ width:7px; height:7px; background:var(--accent); border-radius:50%; }
.hs-checks--gain{ display:flex; flex-wrap:wrap; gap:10px 26px; margin:18px 0 30px; }
.hs-checks--gain li{ gap:8px; font-size:15px; }

.hs-gain .hs-checks--gain{ margin:34px 0 0; justify-content:flex-start; }

.hs-gain .hs-checks--gain{ justify-content:center; text-align:center; }

.mission__diagram{ position:relative; }
.mission__cutout{ position:absolute; z-index:2; left:50%; top:50%; width:250px; height:auto; transform:translate(-6%, 34px); pointer-events:none; filter:drop-shadow(0 18px 34px rgba(15,25,55,.22)); }
@media (max-width:1100px){ .mission__cutout{ width:200px; } }
@media (max-width:900px){ .mission__cutout{ display:none; } }

.mission__cutout{ aspect-ratio:2048/1168; }

.mission__cutout{ transform:none; }

/* Blue CTA in the nav utils that opens a dropdown. Needs to beat
   `.site-nav__item > button`, which zeroes out background/border/padding —
   same specificity, so these rules must stay after it in the file. */
.site-nav__item--cta > button{
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background:var(--accent); color:var(--white);
  border:1.5px solid transparent; border-radius:999px;
  padding:10px 22px; font-size:13.5px; font-weight:700;
  font-family:var(--font-display); white-space:nowrap; cursor:pointer;
  transition:background-color .16s ease, color .16s ease;
}
.site-nav__item--cta > button:hover{ background:var(--accent-dark); color:var(--white); }
/* Right-align the panel so it cannot overflow the viewport edge. */
.site-nav__item--cta .site-nav__dropdown{ left:auto; right:0; }


/* The CTA lives inside .site-nav__links (not __utils) so it survives into the
   mobile menu — __utils is display:none below 960px.
   Auto margins on BOTH sides of the link group split the free space evenly, so
   the links stay optically centred (as they were when the CTA sat in __utils)
   while the CTA is pinned hard right. A single auto margin on the CTA alone
   would collapse the links against the logo. */
.site-nav__links > *:first-child{ margin-left:auto; }
.site-nav__item--cta{ margin-left:auto; }
@media (max-width:960px){
  /* Stacked mobile menu: no auto margins, each row full width. */
  .site-nav__links > *:first-child{ margin-left:0; }
  .site-nav__item--cta{ margin-left:0; width:100%; }
  .site-nav__item--cta > button{ width:100%; justify-content:center; }
  .site-nav__item--cta .site-nav__dropdown{ left:auto; right:auto; }
}
/* Partner With Us is the ONLY button in the header, on every page. Per-page CTAs
   ("Book a call", "Join the network") were removed from the nav — two primary
   buttons side by side competed for the same click and made the header read as
   having no single next step. Those CTAs still exist in each page's hero and
   closing sections, which is where they convert. */

/* ============ ORBIT (how it works, oval) ============ */
.orbit{padding:110px 0 120px;background:#fff;overflow:hidden}
.orbit__title{font-family:var(--font-display);font-size:clamp(32px,3.6vw,48px);line-height:1.1;letter-spacing:-.01em;color:#1C2957;text-align:center;max-width:720px;margin:0 auto;text-wrap:balance}
.orbit__title em{font-style:normal;color:#2f5fe3}
.orbit__stage{position:relative;height:720px;margin-top:56px}
.orbit__ring{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.orbit__ring path{fill:none;stroke:#c0d1f1;stroke-width:1.8;stroke-linecap:round}
.orbit__center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:350px;height:350px;transition:opacity .4s ease}
.orbit__stage.is-noart .orbit__center{opacity:0}
.orbit__center .oart{position:absolute;inset:0;transition:opacity .5s ease,transform .5s cubic-bezier(.22,.9,.3,1);pointer-events:none}
.orbit__center .oart:not(.is-on){opacity:0 !important;visibility:hidden;transform:scale(.95)}
.orbit__center .oart.is-on{opacity:1;transform:scale(1)}
.orbit__center .oart.howit__art{aspect-ratio:auto;border-radius:26px}
/* Step 1 pairs the Guide with the screening she runs, so its card widens past
   the 350px orbit centre to hold both at full size. -68px keeps the right edge
   clear of step 2, which starts at left:88% of the wrap. The phone still runs
   off the bottom edge, the way it does on its own. */
.orbit__center .oart.howit__art--duo{inset:0 -80px;display:flex;align-items:flex-end;justify-content:center;gap:0;padding:22px 6px 0}
/* The source is a square bust, so `contain` sizes it off the width — hence a
   width big enough to read beside the phone rather than a height. */
.howit__art--duo .oduo__guide{flex:none;display:block;width:252px;height:100%;margin-right:-26px}
.howit__art--duo .iphone--howit{width:208px;align-self:flex-start}
/* Steps 2 and 3 sit at left:88%/73% of the stage, so the extra width has to
   come back in as the stage narrows or the card runs under their titles. */
@media (min-width:961px) and (max-width:1300px){
  .orbit__center .oart.howit__art--duo{inset:0 -46px;padding:22px 4px 0}
  .howit__art--duo .oduo__guide{width:222px;margin-right:-24px}
  .howit__art--duo .iphone--howit{width:186px}
}
@media (min-width:961px) and (max-width:1100px){
  .orbit__center .oart.howit__art--duo{inset:0 -20px;padding:20px 2px 0}
  .howit__art--duo .oduo__guide{width:196px;margin-right:-20px}
  .howit__art--duo .iphone--howit{width:166px}
}
.orbit__stage .ostep{position:absolute;transform:translate(-50%,-50%);text-align:center;background:#fff;padding:14px 22px;max-width:290px;transition:opacity .4s ease,filter .4s ease}
.orbit__stage .ostep__num{display:grid;place-items:center;width:37px;height:37px;margin:0 auto 9px;border-radius:50%;background:#2f5fe3;color:#fff;font-family:var(--font-display);font-size:16px;font-weight:700;box-shadow:0 0 0 5px #fff,0 6px 16px rgba(47,95,227,.28);transition:background .25s ease,transform .25s ease}
.orbit__stage .ostep.is-on .ostep__num{background:#1C2957;transform:scale(1.08)}
.orbit__stage .ostep__phase{display:block;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#98a1b8;margin-bottom:5px}
.orbit__stage .ostep h3{margin:0 auto;max-width:210px;font-family:var(--font-display);font-size:20px;line-height:1.25;letter-spacing:-.005em;color:#2f5fe3;text-wrap:balance;transition:color .2s ease}
.orbit__stage .ostep--1 h3{max-width:320px}
.ostep--1{left:50%;top:8.5%}
.ostep--2{left:88%;top:37%}
.ostep--2 h3{width:206px}
.ostep--3{left:73%;top:84%}
.ostep--4{left:27%;top:84%}
.ostep--5{left:12%;top:37%}
.orbit__stage .ostep p{position:absolute;top:50%;width:230px;margin:0;font-size:13.5px;line-height:1.6;color:#4a5468;opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.orbit__stage .ostep--pr p{left:calc(100% + 18px);text-align:left;transform:translateY(-50%) translateX(-10px)}
.orbit__stage .ostep--pl p{right:calc(100% + 18px);text-align:left;transform:translateY(-50%) translateX(10px)}
.orbit__stage .ostep.is-on p{opacity:1;transform:translateY(-50%) translateX(0)}
.orbit__stage .ostep--1 p{left:50%;right:auto;top:calc(100% + 6px);width:280px;text-align:center;transform:translate(-50%,-8px)}
.orbit__stage .ostep--1.is-on p{opacity:1;transform:translate(-50%,0)}
.orbit__stage[data-active] .ostep{opacity:.26;filter:blur(1.5px)}
.orbit__stage[data-active] .ostep.is-on{opacity:1;filter:none}
.orbit__stage .ostep.is-on h3{color:#1C2957}
@media(max-width:960px){
.orbit{padding:70px 0 60px}
.orbit__stage{height:auto;display:flex;flex-direction:column;gap:36px;margin-top:34px}
.orbit__ring{display:none}
.orbit__center{display:none}
.orbit__stage .ostep{position:static;max-width:none;transform:none;padding:0;opacity:1 !important;filter:none !important;text-align:left}
.orbit__stage .ostep__num{display:grid;margin:0 0 8px;box-shadow:none}
.orbit__stage .ostep__phase{display:block;margin:0 0 5px}
.orbit__stage .ostep h3{margin:0;max-width:none;width:auto}
.orbit .ostep h3.ar,.orbit .ostep p.ar{opacity:1;transform:none;transition:none}
.orbit__stage .ostep p{position:static;width:auto;max-width:480px;opacity:1;transform:none;margin-top:10px;padding:0;border:0;box-shadow:none;text-align:left !important;pointer-events:auto}
.orbit__stage .ostep.is-on .ostep__num{background:#2f5fe3;transform:none}
.orbit__stage .ostep.is-on h3{color:#2f5fe3}
}

/* Fallback for the oval's side steps (2 and 5). Their body copy sits beside the
   title at left:calc(100% + 18px) + 230px, which only clears the viewport at
   ~1920px: measured clipping is 142px at 1440 and 106px at 1512. Below 1700px
   those two steps stack their body under the title, the way step 1 already does.
   Remove this block if the oval itself is reworked to make side room. */
@media (min-width:961px) and (max-width:1700px){
.orbit__stage .ostep--2 p,.orbit__stage .ostep--5 p{left:50%;right:auto;top:calc(100% + 6px);width:250px;text-align:center;transform:translate(-50%,-8px)}
.orbit__stage .ostep--2.is-on p,.orbit__stage .ostep--5.is-on p{opacity:1;transform:translate(-50%,0)}
}

/* ============ OUR MISSION (photo + table) ============ */
.msn{background:#fff;padding:110px 0}
.msn__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:stretch;margin-top:56px}
.msn__copy{display:flex}
.msn__cta{text-align:center;margin-top:48px}
.msn__head{text-align:center;max-width:1000px;margin:0 auto}
.msn__head h2{margin:0 auto}
.msn__head .msn__lede{margin-left:auto;margin-right:auto}
.msn__photo{border-radius:22px;overflow:hidden;aspect-ratio:1472/913;box-shadow:0 24px 60px rgba(20,30,60,.12)}
.msn__photo image-slot{display:block;width:100%;height:100%}
.msn__eyebrow{display:block;font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#2f5fe3;margin-bottom:18px}
.msn__copy h2,.msn__head h2{font-family:var(--font-display);font-size:clamp(32px,3.4vw,46px);line-height:1.12;letter-spacing:-.01em;color:#1C2957;max-width:none;text-wrap:balance}
.msn__copy h2 em,.msn__head h2 em{font-style:normal;color:#2f5fe3}
.msn__lede{margin-top:20px;max-width:860px;font-size:16.5px;line-height:1.7;color:#4a5468}
.msn__stack{display:none}
.msn__table{margin-top:0;background:#fff;border:1px solid #dde3ef;border-radius:18px;padding:0 0 12px;flex:1;display:flex;flex-direction:column;overflow:hidden}
.msn__table .msn__row:not(.msn__row--head){flex:1;align-content:center}
.msn__row{display:grid;grid-template-columns:88px 1fr 1fr;gap:20px;padding:14px 0;margin:0 28px;border-bottom:1px solid #e6ebf5}
.msn__row:last-child{border-bottom:0;padding-bottom:8px}
.msn__row--head{background:#2f5fe3;margin:0;padding:16px 28px;font-family:var(--font-display)}
.msn__row--head b{font-size:19px;font-weight:700;color:#fff}
.msn__label{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1C2957;padding-top:3px}
.msn__row p{margin:0;font-size:14.5px;line-height:1.6;color:#4a5468}
.msn__btn{background:#2f5fe3;color:#fff;border-radius:999px;padding:16px 30px;font-weight:700}
.msn__btn:hover{background:#1C2957;color:#fff}
@media(max-width:960px){
.msn{padding:64px 0}
.msn__grid{grid-template-columns:1fr;gap:36px}
.msn__table{padding:0 0 10px}
.msn__row{grid-template-columns:64px 1fr 1fr;gap:12px;margin:0 16px}
.msn__row--head{margin:0;padding:14px 16px}
.msn__table{display:none}
.msn__stack{display:flex;flex-direction:column;gap:16px;flex:1}
.msn__stack-card{background:#fff;border:1px solid #dde3ef;border-radius:16px;overflow:hidden;padding-bottom:16px}
.msn__stack-title{display:block;background:#2f5fe3;color:#fff;font-family:var(--font-display);font-size:17px;font-weight:700;padding:12px 18px}
.msn__stack-cell{padding:12px 18px 0}
.msn__stack-cell .msn__label{display:block;margin-bottom:4px;color:#2f5fe3}
.msn__stack-cell p{margin:0;font-size:14.5px;line-height:1.6;color:#4a5468}
}
@media(max-width:560px){
.msn__row{grid-template-columns:1fr;gap:8px}
.msn__row--head span{display:none}
}

/* ---- proof headline: bigger, broken before "for exposure-informed care.",
        with "Proven for a decade in Ghana." moved above the stat numbers at
        the headline's previous size ---- */
.proof__title h2{ font-size:clamp(30px,3.3vw,48px); white-space:normal; }
.proof__kicker{ font-family:var(--font-display); font-weight:700; font-size:30.62px; line-height:1.15;
  letter-spacing:-.01em; color:var(--ink); text-wrap:balance; }
.proof__kicker + .proof__grid{ margin-top:22px; }
@media (max-width:820px){
  .proof__title h2{ font-size:clamp(24px,5vw,34px); }
  .proof__kicker{ font-size:clamp(22px,4.6vw,30px); }
}

/* ============ ORBIT — three-stage variant (homepage) ============
   The homepage runs the condensed Unmask → Connect → Keep-on-track loop, while
   the Care Model page keeps the full five-stage Before/During/After journey on
   the unmodified .orbit rules above. Three points sit on the ellipse at 120°
   intervals: top, then lower-right and lower-left. Body copy stacks under every
   title here rather than beside it, which is what the side steps already fell
   back to below 1700px anyway. */
.orbit--tri .orbit__stage .ostep--1{left:50%;top:8.5%}
.orbit--tri .orbit__stage .ostep--2{left:84%;top:70%}
.orbit--tri .orbit__stage .ostep--3{left:16%;top:70%}
.orbit--tri .orbit__stage .ostep h3{max-width:250px}
.orbit--tri .orbit__stage .ostep p{left:50%;right:auto;top:calc(100% + 6px);width:266px;text-align:center;transform:translate(-50%,-8px)}
.orbit--tri .orbit__stage .ostep.is-on p{opacity:1;transform:translate(-50%,0)}
@media(max-width:960px){
  .orbit--tri .orbit__stage .ostep p{width:auto;transform:none}
}

/* ============ THE PROBLEM / THE SOLUTION / CARE MODEL ============
   These three ran back-to-back on near-identical backgrounds, so the flow read
   as one long stretch. They now band cream -> whisper-blue -> white -> cream,
   and each opens with a ruled eyebrow so the reader can tell where they are.
   The problem's proof points sit in navy cards, which is the heaviest element
   on the page — deliberately, since the crisis is the argument. */

.sec-eyebrow{display:inline-block;font-size:12.5px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--accent);padding-bottom:7px;
  border-bottom:1px solid rgba(47,95,227,.35)}

/* ---- The problem ---- */
.prob{background:var(--tint);padding:var(--section-y) 0}
.prob__head{max-width:880px;margin:0 auto;text-align:center}
.prob__head h2{margin-top:18px;font-family:var(--font-display);font-size:clamp(32px,4vw,54px);
  line-height:1.08;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.prob__head h2 em{font-style:normal;color:var(--accent);display:block}
.prob__lede{margin:20px auto 0;max-width:70ch;font-size:17.5px;line-height:1.7;
  color:var(--ink-soft);text-wrap:pretty}
.prob__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
.prob__stat{display:flex;flex-direction:column-reverse;justify-content:space-between;gap:36px;
  min-height:280px;padding:26px 26px 28px;border-radius:22px;background:#2f5fe3;
  box-shadow:0 22px 50px rgba(20,32,72,.18)}
.prob__cap{margin:0;font-size:15.5px;line-height:1.5;color:rgba(255,255,255,.82);text-wrap:pretty}
.prob__cap sup{font-size:.65em;padding-left:2px}
.prob__num{display:block;font-family:var(--font-display);font-weight:700;
  font-size:clamp(38px,4.4vw,60px);line-height:1;letter-spacing:-.03em;
  color:#fff;font-variant-numeric:tabular-nums}
.prob__notes{margin:26px 0 0;text-align:center;font-size:12.5px;line-height:1.6;color:var(--ink-soft)}
.prob__notes sup{padding-right:3px}
@media(max-width:900px){
  .prob__grid{grid-template-columns:1fr;gap:14px;margin-top:40px}
  .prob__stat{min-height:0;gap:20px;padding:22px}
  .prob__lede{font-size:16.5px}
}

/* ---- The solution ---- */
.soln{background:#fff;padding:var(--section-y) 0;text-align:center}
.soln__inner{max-width:820px;margin:0 auto}
.soln__inner h2{margin-top:18px;font-family:var(--font-display);
  font-size:clamp(30px,3.8vw,50px);line-height:1.1;letter-spacing:-.02em;
  color:var(--ink);text-wrap:balance}
.soln__inner h2 em{font-style:normal;color:var(--accent)}
.soln__inner p{margin:20px auto 0;max-width:64ch;font-size:17.5px;line-height:1.7;
  color:var(--ink-soft);text-wrap:pretty}
@media(max-width:900px){ .soln__inner p{font-size:16.5px} }

/* ---- Care model: cream on the homepage, so it separates from the white
   solution above. Scoped to --tri: the Care Model page's own orbit sits under a
   cream section and needs to stay white. The step blocks and the ring around
   each number carry a background to mask the oval behind them, so they follow
   the section colour or they read as floating white cards. ---- */
.orbit--tri{background:var(--cream)}
.orbit--tri .orbit__stage .ostep{background:var(--cream)}
.orbit--tri .orbit__stage .ostep__num{box-shadow:0 0 0 5px var(--cream),0 6px 16px rgba(47,95,227,.28)}
.orbit__head{text-align:center}
.orbit__head .orbit__title{margin-top:18px}

/* The eligibility table now also runs standalone on Target Conditions, without
   the mission grid that used to stretch it to the photo's height. Left as-is,
   .msn__table's flex:1 + overflow:hidden clipped the final row. */
#who-we-care-for .msn__copy{display:block}
#who-we-care-for .msn__head{margin-bottom:34px}
#who-we-care-for .msn__table{flex:none;overflow:visible}
#who-we-care-for .msn__table .msn__row:not(.msn__row--head){flex:none;align-content:start}

/* ============ HERO: free-care line (replaces the old subtext) ============ */
.hero__free{margin-top:10px;font-family:var(--font-body);font-size:12px;
  font-weight:400;letter-spacing:-.005em;color:var(--ink-soft);text-align:center}
.hero__pills{margin-top:22px}

/* ============ SOLUTION: photo + who-we-care-for table ============ */
.soln__grid{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;
  align-items:stretch;margin-top:56px;text-align:left}
.soln__photo{border-radius:22px;overflow:hidden;aspect-ratio:1472/913;
  box-shadow:0 24px 60px rgba(20,30,60,.12)}
.soln__photo image-slot{display:block;width:100%;height:100%}
.soln__who{display:flex}
@media(max-width:960px){
  .soln__grid{grid-template-columns:1fr;gap:32px;margin-top:40px}
}

/* ============ FOUNDER: a photo either side of the quote ============
   Two photos were asked for — the farm with his parents, and the white coat —
   so the panel splits in two and the quote sits between them. */
.fndr__grid--duo{grid-template-columns:.82fr 1.6fr .82fr}
.fndr__grid--duo .fndr__quote{padding:76px 56px 84px}
.fndr__grid--duo .fndr__quote h2{max-width:none}
.fndr__grid--duo .fndr__cont,.fndr__grid--duo .fndr__attr{max-width:none}
.fndr__photo-panel--right{background:var(--soft-blue);padding:0}
.fndr__photo-panel--right .fndr__photo{transform:none;height:100%}
.fndr__photo-panel--right .fndr__photo image-slot{height:100%}
.fndr__grid--duo .fndr__name{left:16px;right:auto;bottom:74px}
.fndr__grid--duo .fndr__role{left:16px;right:auto;bottom:30px}
.fndr__cap{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 12px;
  font-size:12.5px;font-weight:600;color:#fff;
  background:linear-gradient(to top,rgba(16,24,48,.72),rgba(16,24,48,0))}
@media (max-width:1100px){
  .fndr__grid--duo{grid-template-columns:1fr}
  .fndr__grid--duo .fndr__quote{padding:56px 28px 64px}
  /* both photos take the full content width once stacked */
  .fndr__grid--duo .fndr__photo-panel,
  .fndr__photo-panel--right{display:block;padding:0}
  .fndr__grid--duo .fndr__photo{transform:none;height:auto}
  .fndr__grid--duo .fndr__photo image-slot{height:420px}
  /* the right figure carries height:100% for the desktop grid row; stacked,
     there is no panel height for that to resolve against and it collapsed */
  .fndr__photo-panel--right .fndr__photo{height:auto}
  .fndr__photo-panel--right .fndr__photo image-slot{height:400px}
  /* .fndr__photo clips its overflow, so a negative offset cuts the labels */
  .fndr__grid--duo .fndr__name{right:auto;left:16px;bottom:74px;text-align:left}
  .fndr__grid--duo .fndr__role{right:auto;left:16px;bottom:30px;text-align:left}
}

/* ============ BEFORE / WITH BEALE HORTON comparison ============
   Shared by the three partner pages, which each replaced a geographic
   care-parity graphic with a plain two-column before/after read. Stays two
   columns on small screens — the cells are two or three words, and stacking
   them would break the pairing that carries the meaning. */
.bwt{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border:1px solid #dde3ef;
  border-radius:18px;overflow:hidden;background:#fff}
.bwt__head{padding:15px 24px;font-family:var(--font-display);font-weight:700;font-size:16.5px}
.bwt__head--before{background:#eef1f7;color:var(--ink-soft)}
.bwt__head--after{background:var(--accent);color:#fff}
.bwt__cell{padding:14px 24px;font-size:15.5px;line-height:1.45;border-top:1px solid #e6ebf5}
.bwt__cell--before{color:var(--ink-soft)}
.bwt__cell--after{background:#f7faff;color:var(--ink);font-weight:600}
.bwt__note{margin-top:14px;font-size:12.5px;line-height:1.6;color:var(--ink-soft)}
@media (max-width:700px){
  .bwt__head{padding:12px 14px;font-size:14px}
  .bwt__cell{padding:12px 14px;font-size:14px}
}

/* Illustrative dashboard figures on the partner pages */
.pdash{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.pdash__item{background:#fff;border:1px solid #dde3ef;border-radius:16px;padding:20px 22px}
.pdash__num{display:block;font-family:var(--font-display);font-weight:700;
  font-size:clamp(26px,2.6vw,34px);line-height:1;color:var(--accent);letter-spacing:-.02em}
.pdash__lbl{display:block;margin-top:9px;font-size:14px;line-height:1.45;color:var(--ink-soft)}
.pdash__note{margin-top:14px;font-size:12.5px;color:var(--ink-soft)}
@media (max-width:900px){ .pdash{grid-template-columns:repeat(2,1fr);gap:14px} }

/* ============ MOBILE CORRECTIONS ============ */

/* The hero headline broke as "the world. You" / "deserve", orphaning "You"
   from the verb it belongs to. This break only exists below the fold-over. */
.br-m{display:none}
@media (max-width:760px){ .br-m{display:inline} }

/* Sector pills: all four belong on one line. The type scales with the
   viewport so they still fit at 320px, where wrapping stays the safety net. */
@media (max-width:760px){
  .hero__pills{gap:5px}
  .hero__pills span{font-size:clamp(10px,2.9vw,12.5px);padding:5px 9px}
}

/* The "Get to know" cards are a fixed 420px, so on a 390px screen the card
   and its button ran past the right edge. Match the page margin on both
   sides instead. */
@media (max-width:520px){
  .tiles .tile{width:calc(100vw - (var(--page-margin) * 2))}
  .tiles .tile__art{height:300px}
}

/* Care model: centre the stacked steps on mobile. */
@media (max-width:960px){
  .orbit--tri .orbit__stage .ostep{text-align:center}
  .orbit--tri .orbit__stage .ostep__num{margin:0 auto 8px}
  .orbit--tri .orbit__stage .ostep h3{margin:0 auto}
  .orbit--tri .orbit__stage .ostep p{margin-left:auto;margin-right:auto;text-align:center !important}
}
