/* =========================================================
   Aspire Health and Wellness Community Care, Inc.
   "Bright & hopeful", square-edged edition.
   Segoe UI system stack · airy off-white + aqua-teal + sunny gold
   Crisp (un-rounded) UI, slick scroll/load motion. Mobile-first.
   ========================================================= */

:root{
  --paper:#F4F8F9;      /* airy off-white with a faint sky tint (page) */
  --white:#FFFFFF;
  --tint:#E4F0F2;       /* pale aqua — alternating sections */
  --deep:#0B2A31;       /* deep ocean-teal — footer anchor */
  --ink:#123A42;        /* primary text */
  --ink-soft:#2A5058;
  --muted:#4D666D;      /* secondary text (AA on paper) */
  --line:#D4E4E6;       /* hairlines */
  --line-soft:#E6EFF0;

  --teal:#0FB2A3;       /* bright accent — dots, rings, tints */
  --teal-deep:#0C8175;  /* buttons, links, text accents */
  --teal-band:#0B716A;  /* saturated pull-quote band */
  --teal-ink:#0A5E58;

  --gold:#F5B63F;       /* sunny accent — underlines, marks */
  --amber:#B07714;      /* numerals (contrast-safe warm) */
  --gold-soft:#FBE7B6;
  --sky:#2E93B8;

  --cream:#EAF6F4;      /* logo / text on deep */
  --cream-muted:rgba(234,246,244,.76);
  --cream-faint:rgba(234,246,244,.5);

  --sans:"Segoe UI", system-ui, -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", Arial, sans-serif;

  --e:cubic-bezier(.22,.7,.2,1);
  --sh-sm:0 1px 2px rgba(18,58,66,.06), 0 12px 26px -18px rgba(18,58,66,.30);
  --sh:0 2px 8px rgba(18,58,66,.05), 0 34px 60px -34px rgba(18,58,66,.34);
  --container:1180px;
  --pad:clamp(4rem, 10vw, 7.5rem);
  --gutter:clamp(1.25rem, 5vw, 2.5rem);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); font-size:17px; line-height:1.65; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden; }
img,svg,picture{ display:block; max-width:100%; }
img{ height:auto; }
a{ color:var(--teal-deep); text-decoration:none; }
h1,h2,h3,h4{ margin:0; font-family:var(--sans); font-weight:700; line-height:1.08; letter-spacing:-0.02em; color:var(--ink); }
p{ margin:0 0 1rem; }
address{ font-style:normal; }
:focus-visible{ outline:3px solid rgba(15,178,163,.55); outline-offset:3px; }
.skip-link{ position:absolute; left:-999px; top:0; background:var(--teal-deep); color:#fff; padding:.7rem 1.1rem; z-index:200; }
.skip-link:focus{ left:0; }

/* ---------- layout ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--pad); position:relative; }
.section-tint{ background:var(--tint); }
.section-teal{ background:var(--teal-band); color:var(--cream); overflow:hidden; }

/* ---------- type ---------- */
.h-display{ font-size:clamp(1.9rem, 5vw, 3.1rem); line-height:1.06; letter-spacing:-0.028em; font-weight:700; }
.h-display.light{ color:#fff; }
.section-head{ max-width:46ch; margin-bottom:clamp(2.25rem, 5vw, 3.5rem); }
.section-head .h-display::after{ content:""; display:block; width:46px; height:3px; background:var(--gold); margin-top:1.1rem; }
.deck{ margin:1.1rem 0 0; color:var(--muted); font-size:1.08rem; line-height:1.6; }
.muted{ color:var(--muted); }

/* ---------- buttons ---------- */
.btn{ position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.55rem; font-family:var(--sans); font-weight:600; font-size:1rem; line-height:1; min-height:52px; padding:.9rem 1.7rem; border:1.5px solid transparent; border-radius:0; cursor:pointer; transition:transform .2s var(--e), background-color .2s var(--e), color .2s var(--e), border-color .2s var(--e), box-shadow .2s var(--e); }
.btn-lg{ padding:1.05rem 2rem; min-height:56px; }
.btn-block{ width:100%; }
.btn-arrow{ width:18px; height:18px; transition:transform .2s var(--e); }
.btn:hover .btn-arrow{ transform:translateX(4px); }
.btn-primary{ background:var(--teal-deep); color:#fff; box-shadow:0 14px 26px -14px rgba(12,129,117,.75); }
.btn-primary:hover{ background:#0a6f65; color:#fff; transform:translateY(-2px); box-shadow:0 20px 32px -16px rgba(12,129,117,.8); }
.btn-primary:active{ transform:translateY(0); }
.btn-line{ background:transparent; color:var(--ink); border-color:rgba(18,58,66,.24); }
.btn-line:hover{ border-color:var(--teal-deep); color:var(--teal-deep); transform:translateY(-2px); }
.btn-line-light{ background:transparent; color:#fff; border-color:rgba(255,255,255,.5); }
.btn-line-light:hover{ border-color:#fff; background:rgba(255,255,255,.12); transform:translateY(-2px); }

/* ---------- header ---------- */
.site-header{ position:sticky; top:0; z-index:100; background:transparent; transition:background-color .3s var(--e), box-shadow .3s var(--e), backdrop-filter .3s var(--e); }
.site-header.scrolled, .site-header.menu-open{ background:rgba(244,248,249,.86); backdrop-filter:saturate(150%) blur(14px); -webkit-backdrop-filter:saturate(150%) blur(14px); box-shadow:0 1px 0 var(--line), 0 14px 32px -26px rgba(18,58,66,.5); }
.header-inner{ display:flex; align-items:center; gap:1rem; min-height:76px; }
.brand{ display:inline-flex; align-items:center; line-height:0; }
.brand-logo{ height:46px; width:auto; display:block; transition:transform .3s var(--e); }
.brand:hover .brand-logo{ transform:translateY(-1px); }
.nav{ display:none; }
.header-cta{ display:none; min-height:44px; padding:.62rem 1.25rem; }
.nav-toggle{ margin-left:auto; width:46px; height:46px; padding:0; background:rgba(255,255,255,.65); border:1px solid var(--line); border-radius:0; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; }
.nav-toggle span{ width:20px; height:2px; background:var(--ink); transition:transform .2s, opacity .2s; }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }
.mobile-panel{ background:var(--white); border-top:1px solid var(--line); padding:.75rem var(--gutter) 1.4rem; }
.mobile-panel nav{ display:flex; flex-direction:column; }
.mobile-panel nav a{ padding:.95rem .25rem; color:var(--ink); font-weight:600; font-size:1.1rem; border-bottom:1px solid var(--line-soft); }
.mobile-panel .btn{ margin-top:1.1rem; }

/* ---------- hero ---------- */
.hero{ position:relative; background:var(--paper); overflow:hidden; }
.hero::before{ content:""; position:absolute; z-index:0; top:-16%; right:-12%; width:82vw; max-width:760px; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 50% 50%, rgba(245,182,63,.30), rgba(245,182,63,0) 62%); pointer-events:none; animation:glowA 15s ease-in-out infinite; }
.hero::after{ content:""; position:absolute; z-index:0; bottom:-34%; left:-18%; width:72vw; max-width:660px; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 50% 50%, rgba(46,147,184,.22), rgba(46,147,184,0) 63%); pointer-events:none; animation:glowB 19s ease-in-out infinite; }
@keyframes glowA{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(-3%,4%); } }
@keyframes glowB{ 0%,100%{ transform:translate(0,0); } 50%{ transform:translate(4%,-3%); } }
.hero-grid{ position:relative; z-index:1; display:grid; gap:clamp(1.5rem,6vw,2.75rem); padding-block:clamp(1.5rem,6vw,3rem) clamp(2.75rem,8vw,4.75rem); }
.hero-title{ font-weight:700; font-size:clamp(2.15rem, 7.6vw, 4.6rem); line-height:1.05; letter-spacing:-0.03em; color:var(--ink); }
.hero-title .w{ display:inline-block; }
.hero-title .accent{ color:var(--teal-deep); background-image:linear-gradient(var(--gold),var(--gold)); background-repeat:no-repeat; background-position:0 92%; background-size:100% .09em; }
.hero-deck{ margin:1.3rem 0 0; color:var(--ink-soft); font-size:clamp(1rem,3.3vw,1.24rem); line-height:1.55; max-width:44ch; }
.hero-actions{ display:flex; flex-direction:column; gap:.7rem; margin-top:1.8rem; }
.hero-actions .btn{ width:100%; }
.hero-trust{ display:flex; align-items:center; gap:.6rem; margin:1.5rem 0 0; color:var(--muted); font-size:.85rem; }
.hero-trust::before{ content:""; width:9px; height:9px; background:var(--gold); flex:none; box-shadow:0 0 0 4px rgba(245,182,63,.22); }
.hero-figure{ order:-1; margin:0; position:relative; overflow:hidden; }
.hero-figure img{ width:100%; aspect-ratio:4/5; max-height:52vh; object-fit:cover; object-position:50% 30%; transition:transform .7s var(--e); }
.hero-figure:hover img{ transform:scale(1.03); }
.hero-badge{ position:absolute; left:0; bottom:0; background:rgba(255,255,255,.94); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); color:var(--ink); font-size:.8rem; font-weight:700; letter-spacing:.01em; padding:.6rem 1.05rem; box-shadow:var(--sh-sm); }

/* ---------- mission (scroll-read) ---------- */
.mission{ background:var(--white); }
.mission-grid{ display:grid; gap:clamp(1.5rem,5vw,3rem); }
.statement{ font-weight:700; font-size:clamp(1.5rem, 4.8vw, 2.5rem); line-height:1.26; letter-spacing:-0.02em; color:var(--ink); margin:0; }
.statement .mw{ transition:color .5s var(--e), opacity .5s var(--e); }
.js .statement .mw{ color:var(--muted); opacity:.3; }
.js .statement .mw.lit{ color:var(--ink); opacity:1; }
.statement .u{ color:inherit; background-image:linear-gradient(var(--gold-soft),var(--gold-soft)); background-repeat:no-repeat; background-position:0 86%; background-size:100% .34em; padding:0 .04em; }
.js .statement .u{ background-size:0 .34em; transition:background-size .55s var(--e); }
.js .statement .u.u-lit{ background-size:100% .34em; }
.js .statement .u .mw.lit{ color:var(--teal-deep); }
.mission-side>p{ color:var(--muted); font-size:1.08rem; }
.mission-tag{ display:inline-flex; align-items:center; gap:.55rem; font-size:.8rem; font-weight:700; letter-spacing:.04em; color:var(--teal-deep); margin-top:1.2rem; }
.mission-tag::before{ content:""; width:22px; height:2px; background:var(--gold); }

/* ---------- about ---------- */
.about-grid{ display:grid; gap:clamp(2rem,6vw,3.5rem); align-items:center; }
.about-figure{ position:relative; margin:0; overflow:hidden; }
.about-figure img{ width:100%; aspect-ratio:4/3; object-fit:cover; box-shadow:var(--sh); transition:transform .7s var(--e); }
.about-figure:hover img{ transform:scale(1.03); }
.fig-badge{ position:absolute; left:0; bottom:0; background:var(--white); color:var(--ink); font-size:.8rem; font-weight:700; letter-spacing:.01em; padding:.6rem 1.1rem; box-shadow:var(--sh-sm); }
.about-copy>p{ color:var(--muted); }
.about-copy>p:first-of-type{ margin-top:1.3rem; }

/* ---------- what we do (cards) ---------- */
.what-list{ list-style:none; margin:0; padding:0; display:grid; gap:1rem; }
.what-list li{ display:flex; flex-direction:column; gap:.35rem; background:var(--white); border:1px solid var(--line-soft); border-top:3px solid var(--gold); padding:1.6rem 1.5rem; box-shadow:var(--sh-sm); transition:transform .25s var(--e), box-shadow .25s var(--e), border-color .25s var(--e); }
.what-list li:hover{ transform:translateY(-5px); box-shadow:var(--sh); border-top-color:var(--teal); }
.what-list .n{ font-weight:800; font-size:1.6rem; letter-spacing:-0.02em; color:var(--amber); line-height:1; margin-bottom:.35rem; }
.what-list h3{ font-size:1.14rem; letter-spacing:-0.012em; margin-bottom:.15rem; font-weight:700; }
.what-list p{ color:var(--muted); margin:0; font-size:.98rem; line-height:1.55; }

/* ---------- focus / pull-quote (teal band) ---------- */
.section-teal::before{ content:""; position:absolute; top:-24%; right:-8%; width:52vw; max-width:520px; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 50% 50%, rgba(245,182,63,.24), rgba(245,182,63,0) 62%); pointer-events:none; }
.focus-grid{ position:relative; z-index:1; display:grid; gap:clamp(1.75rem,5vw,3.5rem); align-items:center; }
.focus-figure{ margin:0; overflow:hidden; }
.focus-figure img{ width:100%; aspect-ratio:16/10; object-fit:cover; box-shadow:0 34px 60px -30px rgba(0,0,0,.5); transition:transform .7s var(--e); }
.focus-figure:hover img{ transform:scale(1.03); }
.focus-quote{ margin:0; }
.focus-quote p{ font-weight:700; font-size:clamp(1.55rem,4.2vw,2.4rem); line-height:1.18; letter-spacing:-0.02em; color:#fff; margin:0 0 1.2rem; }
.focus-quote cite{ font-style:normal; color:rgba(255,255,255,.82); font-size:1.05rem; line-height:1.6; display:block; }

/* ---------- who we serve ---------- */
.serve{ background:var(--tint); overflow:hidden; }
.serve-grid{ display:grid; gap:clamp(2rem,5vw,3rem); }
.serve-head .h-display::after{ content:""; display:block; width:46px; height:3px; background:var(--gold); margin-top:1.1rem; }
.serve-head>p{ color:var(--muted); margin-top:1.2rem; }
.serve-panel{ background:rgba(255,255,255,.78); border:1px solid var(--line); box-shadow:var(--sh-sm); }
.serve-label{ margin:0; padding:1rem clamp(1.15rem,4vw,1.6rem); border-bottom:1px solid var(--line); color:var(--teal-deep); font-size:.78rem; font-weight:800; letter-spacing:.06em; line-height:1.2; text-transform:uppercase; }
.serve-list{ list-style:none; margin:0; padding:0; }
.serve-list li{ padding:clamp(1.15rem,4vw,1.6rem); border-bottom:1px solid var(--line-soft); }
.serve-list li:last-child{ border-bottom:0; }
.serve-list h3{ font-size:clamp(1.12rem,2vw,1.35rem); line-height:1.18; letter-spacing:-.014em; margin:0 0 .45rem; }
.serve-list p{ margin:0; color:var(--muted); font-size:.98rem; line-height:1.56; max-width:64ch; }

/* ---------- programs ---------- */
.programs{ background:var(--paper); }
.programs-grid{ display:grid; gap:clamp(2rem,5vw,3rem); align-items:start; }
.programs .section-head{ margin-bottom:0; }
.programs-note{ margin:1.35rem 0 0; padding-top:1.15rem; border-top:1px solid var(--line); color:var(--muted); font-size:1rem; line-height:1.58; }
.prog-list{ list-style:none; margin:0; padding:0; background:var(--white); border:1px solid var(--line); box-shadow:var(--sh-sm); }
.prog-list li{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:start; padding:clamp(1.15rem,4vw,1.55rem); border-bottom:1px solid var(--line-soft); }
.prog-list li:last-child{ border-bottom:0; }
.prog-step{ color:var(--amber); font-size:.82rem; font-weight:800; letter-spacing:.04em; line-height:1.3; padding-top:.18rem; }
.prog-body h3{ font-size:clamp(1.12rem,2vw,1.34rem); letter-spacing:-0.014em; line-height:1.18; margin-bottom:.45rem; font-weight:700; }
.prog-body p{ color:var(--muted); margin:0; font-size:.98rem; line-height:1.56; max-width:64ch; }

/* ---------- support (bright CTA band) ---------- */
.support{ background:linear-gradient(150deg, #EAF4F5 0%, #DEEFF1 100%); }
.support-grid{ display:grid; gap:clamp(2rem,6vw,3.5rem); align-items:center; }
.support-copy>p{ color:var(--muted); margin-top:1.2rem; }
.support-actions{ display:flex; flex-direction:column; gap:.7rem; margin-top:2rem; }
.support-actions .btn{ width:100%; }
.support-figure{ margin:0; position:relative; overflow:hidden; }
.support-figure img{ width:100%; aspect-ratio:4/3; object-fit:cover; box-shadow:var(--sh); transition:transform .7s var(--e); }
.support-figure:hover img{ transform:scale(1.03); }

/* ---------- legal ---------- */
.legal-panel{ display:grid; gap:1rem; align-items:start; background:linear-gradient(180deg, var(--white) 0%, #F7FCFC 100%); border:1px solid var(--line); border-top:4px solid var(--teal-deep); padding:clamp(1.25rem,6vw,1.65rem); box-shadow:var(--sh-sm); }
.legal-mark{ width:46px; height:46px; background:linear-gradient(140deg, var(--teal), var(--teal-deep)); color:#fff; display:inline-flex; align-items:center; justify-content:center; flex:none; }
.legal-mark svg{ width:24px; height:24px; }
.legal-copy{ min-width:0; }
.legal-h{ font-size:clamp(1.45rem,8vw,1.85rem); line-height:1.05; margin-bottom:.7rem; font-weight:700; max-width:16ch; }
.legal-panel p{ color:var(--muted); margin:0; font-size:.98rem; line-height:1.58; max-width:68ch; }

/* ---------- contact + form ---------- */
.contact-grid{ display:grid; gap:clamp(2rem,6vw,3rem); align-items:start; }
.contact-copy>p{ color:var(--muted); margin:1.2rem 0 1.8rem; }
.contact-card{ background:var(--white); border:1px solid var(--line); padding:clamp(1.5rem,5vw,2rem); box-shadow:var(--sh-sm); }
.contact-org{ font-weight:800; font-size:1.15rem; letter-spacing:-0.02em; color:var(--ink); margin:0 0 1.3rem; }
.contact-row{ display:flex; gap:.9rem; align-items:flex-start; min-width:0; }
.contact-row+.contact-row{ margin-top:1.1rem; padding-top:1.1rem; border-top:1px solid var(--line-soft); }
.contact-row>div{ min-width:0; }
.contact-ic{ width:42px; height:42px; flex:none; background:var(--tint); color:var(--teal-deep); display:inline-flex; align-items:center; justify-content:center; }
.contact-ic svg{ width:22px; height:22px; }
.contact-k{ display:block; font-size:.72rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-bottom:.2rem; }
.contact-row address, .contact-row a{ color:var(--ink); font-weight:600; overflow-wrap:anywhere; }
.contact-row a:hover{ color:var(--teal-deep); }

.contact-form{ display:grid; gap:1.1rem; background:var(--white); border:1px solid var(--line); padding:clamp(1.5rem,5vw,2.25rem); box-shadow:var(--sh-sm); }
.field{ display:grid; gap:.4rem; }
.field label{ font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--ink); }
.field input, .field textarea{ font-family:inherit; font-size:1rem; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:0; padding:.85rem 1rem; width:100%; transition:border-color .2s var(--e), box-shadow .2s var(--e), background-color .2s var(--e); }
.field textarea{ min-height:140px; resize:vertical; }
.field input:focus, .field textarea:focus{ outline:none; background:var(--white); border-color:var(--teal-deep); box-shadow:0 0 0 3px rgba(15,178,163,.16); }
.field input::placeholder, .field textarea::placeholder{ color:#9fb0b4; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-form .btn{ justify-self:start; }
.form-status{ margin:0; font-size:.92rem; min-height:1.2em; color:var(--muted); }
.form-status.ok{ color:var(--teal-deep); font-weight:600; }
.form-status.err{ color:#b3261e; font-weight:600; }

/* ---------- footer ---------- */
.site-footer{ background:var(--deep); color:var(--cream-muted); padding-block:clamp(3rem,7vw,4.5rem) 2rem; }
.footer-grid{ display:grid; gap:2rem; padding-bottom:2.25rem; border-bottom:1px solid rgba(234,246,244,.14); }
.footer-brand .brand{ margin-bottom:1.1rem; }
.brand-footer .brand-logo{ height:64px; }
.footer-tagline{ font-size:.95rem; color:var(--cream-faint); max-width:34ch; margin:0; line-height:1.6; }
.footer-col h4{ font-family:var(--sans); font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--cream-faint); margin:0 0 .85rem; }
.footer-col a, .footer-col address{ display:block; color:var(--cream-muted); font-size:.96rem; line-height:1.5; }
.footer-col a{ padding:.16rem 0; transition:color .18s; }
.footer-col a:hover{ color:#fff; }
.footer-disclaimer{ margin:1.6rem 0 0; font-size:.83rem; line-height:1.6; color:var(--cream-faint); max-width:920px; }
.footer-copyright{ margin:.9rem 0 0; font-size:.83rem; color:rgba(234,246,244,.4); }

/* =========================================================
   Motion — load reveal + hero heading
   ========================================================= */
.js [data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .75s var(--e), transform .75s var(--e); }
.js [data-reveal].is-visible{ opacity:1; transform:none; }
.js [data-stagger]>*{ opacity:0; transform:translateY(22px); transition:opacity .6s var(--e), transform .6s var(--e); }
.js [data-stagger].is-visible>*{ opacity:1; transform:none; }
.js [data-stagger].is-visible>*:nth-child(1){ transition-delay:.04s; }
.js [data-stagger].is-visible>*:nth-child(2){ transition-delay:.10s; }
.js [data-stagger].is-visible>*:nth-child(3){ transition-delay:.16s; }
.js [data-stagger].is-visible>*:nth-child(4){ transition-delay:.22s; }
.js [data-stagger].is-visible>*:nth-child(5){ transition-delay:.28s; }
.js [data-stagger].is-visible>*:nth-child(6){ transition-delay:.34s; }
.js [data-stagger].is-visible>*:nth-child(7){ transition-delay:.40s; }
.js [data-stagger].is-visible>*:nth-child(8){ transition-delay:.46s; }
.js [data-stagger].is-visible>*:nth-child(9){ transition-delay:.52s; }

/* hero heading load-in (words rise, gold underline draws) */
.js .hero-title .w{ opacity:0; transform:translateY(.7em); animation:wordUp .7s var(--e) forwards; animation-delay:calc(var(--wi,0) * 80ms + 120ms); }
@keyframes wordUp{ to{ opacity:1; transform:none; } }
.js .hero-title .accent{ background-size:0 .09em; animation:drawUnderline .6s var(--e) forwards; animation-delay:.9s; }
@keyframes drawUnderline{ to{ background-size:100% .09em; } }
.js .hero-deck, .js .hero-actions, .js .hero-trust{ opacity:0; transform:translateY(14px); animation:wordUp .7s var(--e) forwards; }
.js .hero-deck{ animation-delay:.7s; }
.js .hero-actions{ animation-delay:.82s; }
.js .hero-trust{ animation-delay:.94s; }
.js .hero-figure{ opacity:0; transform:translateY(22px) scale(.99); animation:heroFig .9s var(--e) forwards .1s; }
@keyframes heroFig{ to{ opacity:1; transform:none; } }

/* =========================================================
   Breakpoints
   ========================================================= */
@media (min-width:700px){
  .what-list{ grid-template-columns:1fr 1fr; }
  .serve-list li{ display:grid; grid-template-columns:minmax(12rem,.38fr) 1fr; gap:1.5rem; align-items:baseline; }
  .serve-list h3{ margin-bottom:0; }
  .legal-panel{ grid-template-columns:auto 1fr; gap:1.25rem; border-top:1px solid var(--line); border-left:4px solid var(--teal-deep); padding:clamp(1.6rem,5vw,2.5rem); }
  .legal-mark{ width:54px; height:54px; }
  .legal-mark svg{ width:28px; height:28px; }
  .legal-h{ max-width:none; font-size:clamp(1.4rem,3.4vw,1.9rem); }
  .hero-actions, .support-actions{ flex-direction:row; flex-wrap:wrap; }
  .hero-actions .btn, .support-actions .btn{ width:auto; }
  .footer-grid{ grid-template-columns:1fr 1fr; }
  .footer-brand{ grid-column:1 / -1; }
}

@media (min-width:900px){
  .nav{ display:flex; align-items:center; gap:.35rem; margin-left:auto; }
  .nav a{ position:relative; color:var(--ink-soft); font-weight:600; font-size:.94rem; padding:.5rem .8rem; transition:color .18s; }
  .nav a::after{ content:""; position:absolute; left:.8rem; right:.8rem; bottom:.3rem; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .24s var(--e); }
  .nav a:hover{ color:var(--teal-deep); }
  .nav a:hover::after{ transform:scaleX(1); }
  .header-cta{ display:inline-flex; margin-left:.4rem; }
  .nav-toggle{ display:none; }
  .brand-logo{ height:50px; }

  .hero-grid{ grid-template-columns:1fr 44%; align-items:center; min-height:90vh; }
  .hero-figure{ order:0; }
  .hero-figure img{ aspect-ratio:4/5; max-height:78vh; margin-left:auto; }

  .mission-grid{ grid-template-columns:1.5fr 1fr; align-items:start; gap:clamp(2.5rem,5vw,5rem); }
  .about-grid{ grid-template-columns:46% 1fr; }
  .what-list{ grid-template-columns:repeat(3,1fr); }
  .focus-grid{ grid-template-columns:44% 1fr; }
  .serve-grid{ grid-template-columns:minmax(250px, 34%) minmax(0,1fr); align-items:start; }
  .serve-head{ position:sticky; top:100px; }
  .programs-grid{ grid-template-columns:minmax(250px, 34%) minmax(0,1fr); }
  .programs-copy{ position:sticky; top:100px; }
  .prog-list li{ grid-template-columns:3rem minmax(0,1fr); }
  .support-grid{ grid-template-columns:1fr 46%; }
  .contact-grid{ grid-template-columns:1fr 1.05fr; }
  .footer-grid{ grid-template-columns:1.7fr 1fr 1.1fr 1fr; }
  .footer-brand{ grid-column:auto; }
}

@media (min-width:1100px){
  .hero-title{ font-size:clamp(3rem,4.6vw,4.8rem); }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ transition:none !important; animation:none !important; }
  .js [data-reveal], .js [data-stagger]>*{ opacity:1 !important; transform:none !important; }
  .js .hero-title .w, .js .hero-deck, .js .hero-actions, .js .hero-trust, .js .hero-figure{ opacity:1 !important; transform:none !important; }
  .js .hero-title .accent{ background-size:100% .09em; }
  .js .statement .mw{ opacity:1; color:var(--ink); }
  .js .statement .u{ background-size:100% .34em; }
}
