/* ============================================================
   FirstLight Mental Health — Illustrated Concept
   Design concept only. Not live.
   ============================================================ */

:root{
  --navy-deep:#001b3a;
  --navy:#00356b;
  --navy-mid:#0d3564;
  --blue:#286dc0;
  --blue-light:#63aaff;
  --gold:#c98a3e;
  --coral:#e8834a;          /* decorative fills only — fails contrast as text */
  --coral-ink:#b34f17;      /* text, buttons, focus, UI indicators (>=4.5:1 on all light bgs) */
  --coral-deep:#b8683f;
  --peach:#ffd9b8;
  --cream:#fff6ec;
  --cream-deep:#ffeeda;
  --moss:#4e8c6a;
  --violet:#8f7bc4;
  --ink:#12233b;
  --ink-soft:#3d5674;
  --white:#fff;
  --radius:26px;
  --radius-sm:16px;
  --shadow:0 18px 50px -22px rgba(0,27,58,.45);
  --shadow-lg:0 34px 80px -30px rgba(0,27,58,.55);
  --max:1180px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:var(--ink);background:var(--cream);line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
h1,h2,h3,h4,h5{font-family:'Outfit',sans-serif;line-height:1.08;letter-spacing:-.025em;font-weight:800}
img,svg{display:block;max-width:100%}
a{color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 26px}
.narrow{max-width:840px}

/* ---------- nav ---------- */
nav{position:sticky;top:0;z-index:50;background:rgba(255,246,236,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,53,107,.1)}
.nav-in{display:flex;align-items:center;gap:30px;padding:14px 26px;max-width:var(--max);margin:0 auto}
.brand{display:flex;align-items:center;gap:11px;font-family:'Outfit';font-weight:800;font-size:19.5px;color:var(--navy);letter-spacing:-.03em;text-decoration:none;flex-shrink:0}
.brand small{display:block;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--coral-ink);margin-top:1px}
.nav-links{display:flex;gap:24px;margin-left:auto;align-items:center}
.nav-links a{text-decoration:none;font-size:14.5px;font-weight:600;color:var(--ink-soft);transition:color .2s;position:relative}
.nav-links a:hover{color:var(--navy)}
.nav-links a.active{color:var(--navy)}
.nav-links a.active::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:2.5px;background:var(--coral-ink);border-radius:3px}
.nav-links a.btn::after{display:none}
.menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:6px;margin-left:auto}
.menu-toggle span{display:block;width:24px;height:2.5px;background:var(--navy);border-radius:2px;margin:5px 0}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:9px;background:var(--coral-ink);color:#fff;
  text-decoration:none;font-family:'Outfit';font-weight:700;font-size:15px;
  padding:13px 24px;border-radius:100px;border:none;cursor:pointer;
  box-shadow:0 10px 26px -10px rgba(179,79,23,.55);
  transition:transform .18s ease,box-shadow .18s ease;
}
.btn:hover{transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(179,79,23,.65)}
.btn-navy{background:var(--navy);box-shadow:0 10px 26px -10px rgba(0,53,107,.75)}
.btn-navy:hover{box-shadow:0 16px 34px -12px rgba(0,53,107,.85)}
.btn-light{background:#fff;color:var(--navy);box-shadow:0 12px 30px -12px rgba(0,0,0,.5)}
.btn-outline-light{background:rgba(255,255,255,.08);color:#fff;border:2px solid rgba(255,255,255,.45);box-shadow:none}
.btn-ghost{background:transparent;color:var(--navy);border:2px solid rgba(0,53,107,.22);box-shadow:none}
.btn-ghost:hover{border-color:var(--navy);box-shadow:none}
.btn-block{width:100%;justify-content:center}

/* ---------- hero / banner ---------- */
/* Where a real image is used, the banner takes its shape FROM the picture
   (16:9) so the whole frame is visible — nothing cropped. Text sits over the
   lower part. min-height keeps the copy safe on narrow screens where 16:9
   would otherwise be shorter than the text. */
.hero{position:relative;overflow:hidden;background:#00224a}
.hero-art{position:absolute;inset:0;width:100%;height:100%}
img.hero-art{object-fit:cover}
/* Scrim — ONLY where a real photo sits behind the headline.
   Pages still using the placeholder SVG are already dark enough and get none,
   otherwise they read as muddy. */
.hero:has(img.hero-art)::after{
  content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
  /* Two layers. The vertical one guarantees the copy always sits on a dark
     base — the old single 100deg gradient faded to transparent exactly where
     the headline and sub-copy end, leaving white text on a bright sunset
     (measured 1.83:1 on the mobile home hero). The angled layer is kept for
     depth. Measured after: >=4.5:1 on every hero at 390px and 1440px. */
  background:
    linear-gradient(to top,
      rgba(0,18,40,.80) 0%,
      rgba(0,18,40,.68) 26%,
      rgba(0,18,40,.44) 52%,
      rgba(0,18,40,.16) 76%,
      rgba(0,18,40,0)   100%),
    linear-gradient(100deg,
      rgba(0,27,58,.45) 0%,
      rgba(0,27,58,.18) 50%,
      rgba(0,27,58,0)   100%);
}
.hero-in{position:relative;z-index:2;max-width:var(--max);margin:0 auto;padding:100px 26px 150px;width:100%}
.hero-in.short{padding:78px 26px 96px}
/* when the banner is a full-frame image the copy sits in the lower third,
   over the darkest part of the scrim */
.hero:has(img.hero-art) .hero-in{padding-top:0;padding-bottom:72px}
.eyebrow{
  display:inline-flex;align-items:center;gap:9px;background:rgba(255,217,184,.16);
  border:1px solid rgba(255,217,184,.4);color:var(--peach);font-size:12.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;padding:8px 16px;border-radius:100px;margin-bottom:24px;
}
.dot{width:7px;height:7px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(232,131,74,.25)}
h1.hero-h{font-size:clamp(42px,6.6vw,84px);color:#fff;max-width:15ch;font-weight:900}
h1.hero-h.sm{font-size:clamp(38px,5.4vw,66px);max-width:18ch}
h1.hero-h em{font-style:normal;color:var(--peach);position:relative;white-space:nowrap}
h1.hero-h em::after{content:'';position:absolute;left:0;right:0;bottom:.06em;height:.14em;background:var(--coral);opacity:.55;border-radius:4px;z-index:-1}
.hero-sub{color:#e4eefc;font-size:clamp(17px,2vw,20.5px);max-width:58ch;margin-top:24px}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}

/* ---------- sections ---------- */
section{position:relative}
.pad{padding:96px 0}
.pad-sm{padding:66px 0}
.kicker{font-family:'Outfit';font-size:12.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:14px}
h2.sec{font-size:clamp(32px,4.6vw,52px);color:var(--navy);max-width:19ch}
h2.sec.wide{max-width:26ch}
.lede{font-size:18px;color:var(--ink-soft);max-width:62ch;margin-top:18px}
.band-cream{background:var(--cream-deep)}
/* ---------- grids ---------- */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.grid-2.top{align-items:start}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.split-65{display:grid;grid-template-columns:1.45fr 1fr;gap:44px;align-items:start}

/* Grid and flex children default to min-width:auto, so an intrinsically wide
   child — a <select> whose longest <option> is long, a long unbroken string —
   sets a floor the track cannot shrink below and the row overflows the
   viewport. Explicitly allow the children to shrink. */
.grid-2>*,.grid-3>*,.grid-4>*,.split-65>*,.doors>*,.door-grid>*,.steps>*,.f-grid>*{min-width:0}
.grid-2,.grid-3,.grid-4,.split-65,.door-grid{min-width:0}

/* ---------- two doors ---------- */
.doors{background:#fff;border-radius:40px;margin-top:-84px;position:relative;z-index:5;box-shadow:var(--shadow-lg);padding:44px}
.door-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:32px}
.door-tab{flex:1;min-width:250px;text-align:left;cursor:pointer;background:var(--cream);border:2px solid transparent;border-radius:var(--radius);padding:22px 24px;font-family:'Outfit';transition:all .22s ease}
.door-tab:hover{border-color:rgba(232,131,74,.35)}
.door-tab.on{background:var(--navy);border-color:var(--navy);box-shadow:var(--shadow)}
.door-tab .dt-lbl{font-size:11.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:var(--coral-ink);margin-bottom:5px;display:block}
.door-tab .dt-title{font-size:21px;font-weight:800;color:var(--navy);letter-spacing:-.02em;display:block}
.door-tab .dt-sub{font-size:13.5px;color:var(--ink-soft);font-family:'Inter';font-weight:400;margin-top:4px;line-height:1.5;display:block}
.door-tab.on .dt-title{color:#fff}
.door-tab.on .dt-sub{color:#bcd3ee}
.door-panel{display:none;animation:fade .35s ease}
.door-panel.on{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.door-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:44px;align-items:center}

/* ---------- character stage ----------
   A dawn backdrop with a cut-out figure standing on it. */
.stage{
  position:relative;border-radius:var(--radius);overflow:hidden;
  aspect-ratio:23/20;min-height:330px;max-width:100%;
  background:linear-gradient(180deg,#001b3a 0%,#134074 34%,#3f6fa8 56%,#e8834a 86%,#ffc98a 100%);
  display:flex;align-items:flex-end;justify-content:center;
  box-shadow:var(--shadow);
}
.stage-bg{position:absolute;inset:0;width:100%;height:100%;z-index:1}
.stage img{
  position:relative;z-index:3;height:86%;width:auto;object-fit:contain;
  filter:drop-shadow(0 18px 26px rgba(0,20,45,.45));
}
.stage::after{  /* soft ground shadow so the figure isn't floating */
  content:'';position:absolute;z-index:2;bottom:5%;left:50%;transform:translateX(-50%);
  width:46%;height:22px;border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(0,20,45,.42) 0%, rgba(0,20,45,0) 70%);
}

/* ---------- lists ---------- */
.ticks{list-style:none;margin-top:22px}
.ticks li{display:flex;gap:13px;padding:9px 0;font-size:15.5px;color:var(--ink-soft)}
.ticks li b{color:var(--ink);font-weight:600}
.tick{flex-shrink:0;margin-top:4px}

/* ---------- cards ---------- */
.card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .25s ease,box-shadow .25s ease;display:flex;flex-direction:column}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
/* Frame matches the 16:9 source, so the whole scene shows instead of a
   cropped strip out of the middle. */
.card-art{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:var(--cream)}
.card-art svg,.card-art img{width:100%;height:100%;object-fit:cover;display:block}
.card-body{padding:26px 26px 30px}
.card h3{font-size:22px;color:var(--navy);margin-bottom:9px}
.card p{font-size:15px;color:var(--ink-soft)}
.card .more{display:inline-flex;align-items:center;gap:7px;margin-top:16px;font-family:'Outfit';font-weight:700;font-size:14.5px;color:var(--coral-ink);text-decoration:none}
.card .more:hover{gap:11px}

/* Specialty tiles.
   The generated figures sit on painterly white backgrounds with splash marks,
   so they are shown whole on a light card rather than cut out — cutting left
   cream-coloured debris floating on the gradient. */
.spec{
  border-radius:var(--radius);overflow:hidden;position:relative;
  display:flex;flex-direction:column;background:#fff;
  box-shadow:var(--shadow);transition:transform .25s, box-shadow .25s;text-decoration:none;
}
.spec:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg)}
.spec-art{position:relative;width:100%;aspect-ratio:3/4;overflow:hidden;display:block}
.spec-art img,.spec-art svg{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.spec-lbl{padding:20px 22px 24px;color:var(--ink);background:#fff;border-top:3px solid var(--coral)}
.spec-lbl h3{font-size:21px;margin-bottom:5px;color:var(--navy)}
.spec-lbl p{font-size:13.5px;color:var(--ink-soft);line-height:1.5}

/* ---------- specialty figure (specialties page) ----------
   Portrait artwork on its own white ground, capped so it sits level with the
   copy beside it rather than towering over it. */
.spec-figure{
  border-radius:var(--radius);overflow:hidden;background:#fff;
  box-shadow:var(--shadow);max-width:400px;margin-inline:auto;
  border-top:4px solid var(--coral);
}
.spec-figure img{width:100%;height:auto;display:block}
@media(max-width:960px){ .spec-figure{max-width:340px} }

/* ---------- feature blocks ---------- */
.feature{background:#fff;border-radius:var(--radius);padding:34px;box-shadow:var(--shadow);border-top:5px solid var(--coral)}
.feature h3{font-size:23px;color:var(--navy);margin-bottom:12px}
.feature p{font-size:15.5px;color:var(--ink-soft)}
.icon-row{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;margin-top:38px}
.icon-item{text-align:left}
.icon-item .ib{width:56px;height:56px;border-radius:18px;background:rgba(232,131,74,.14);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.icon-item h3{font-size:17px;color:var(--navy);margin-bottom:6px}
.icon-item p{font-size:14.5px;color:var(--ink-soft)}

.pills{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0 6px}
.pill{background:rgba(255,217,184,.15);border:1px solid rgba(255,217,184,.35);color:var(--peach);font-size:13px;font-weight:600;padding:6px 14px;border-radius:100px}
.pill-light{background:rgba(0,53,107,.07);border-color:rgba(0,53,107,.16);color:var(--navy)}
.portrait{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);background:linear-gradient(160deg,#e8834a,#c98a3e)}
.portrait img{display:block;width:100%;height:auto}

/* ---------- fees ---------- */
.fee-row{display:flex;justify-content:space-between;align-items:flex-start;gap:26px;background:#fff;border-radius:var(--radius-sm);padding:24px 28px;margin-bottom:14px;box-shadow:0 8px 26px -18px rgba(0,27,58,.5)}
.fee-row h3{font-size:19px;color:var(--navy);margin-bottom:5px}
.fee-row p{font-size:14.5px;color:var(--ink-soft);max-width:56ch}
.price{font-family:'Outfit';font-weight:900;font-size:30px;color:var(--coral-ink);white-space:nowrap;letter-spacing:-.03em;text-align:right}
.price small{display:block;font-size:11.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin-top:2px}
.assess{background:var(--navy)}
.assess h3{color:#fff}
.assess p{color:#bfd6f0}
.assess .price{color:var(--peach)}
.assess .price small{color:#8fb4dd}
.why{background:#fff;border-radius:var(--radius);padding:36px;box-shadow:var(--shadow);border-top:5px solid var(--coral)}
.why h3{font-family:'Outfit';font-size:24px;color:var(--navy)}
.why ul{list-style:none;margin-top:18px}
.why li{display:flex;gap:12px;padding:8px 0;font-size:15.5px;color:var(--ink-soft)}
.note{font-size:13.5px;color:var(--ink-soft);background:rgba(0,53,107,.055);border-left:3px solid var(--blue);padding:14px 18px;border-radius:0 12px 12px 0;margin-top:22px}
.note.warm{background:rgba(232,131,74,.09);border-left-color:var(--coral)}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;counter-reset:s}
.step{background:#fff;border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow);position:relative}
.step::before{counter-increment:s;content:counter(s);font-family:'Outfit';font-weight:900;font-size:60px;color:rgba(232,131,74,.18);position:absolute;top:14px;right:24px;line-height:1}
.step h3{font-size:20px;color:var(--navy);margin-bottom:10px;position:relative}
.step p{font-size:15px;color:var(--ink-soft)}

/* ---------- timeline ---------- */
.tl{list-style:none;margin-top:34px;border-left:2px dashed rgba(0,53,107,.22);padding-left:34px}
.tl li{position:relative;padding-bottom:34px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:'';position:absolute;left:-43px;top:4px;width:18px;height:18px;border-radius:50%;background:var(--coral);border:4px solid var(--cream)}
.tl h3{font-size:19px;color:var(--navy);margin-bottom:7px}
.tl p{font-size:15.5px;color:var(--ink-soft)}
.tl .when{font-family:'Outfit';font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink);display:block;margin-bottom:4px}

/* ---------- faq ---------- */
.faq details{background:#fff;border-radius:var(--radius-sm);margin-bottom:12px;box-shadow:0 8px 26px -20px rgba(0,27,58,.5);overflow:hidden}
.faq summary{padding:20px 26px;font-family:'Outfit';font-weight:700;font-size:17px;color:var(--navy);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-size:26px;color:var(--coral-ink);font-weight:400;line-height:1;flex-shrink:0}
.faq details[open] summary::after{content:'\2013'}
.faq p{padding:0 26px 22px;font-size:15.5px;color:var(--ink-soft)}
.faq p + p{padding-top:0}

/* ---------- table ---------- */
.tbl{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow);margin-top:26px}
.tbl th{background:var(--navy);color:#fff;font-family:'Outfit';font-size:13.5px;letter-spacing:.08em;text-transform:uppercase;text-align:left;padding:16px 22px}
.tbl td{padding:16px 22px;border-top:1px solid rgba(0,53,107,.09);font-size:15px;color:var(--ink-soft);vertical-align:top}
.tbl td b{color:var(--ink)}

/* ---------- cta ---------- */
.cta{position:relative;overflow:hidden;background:linear-gradient(150deg,#00224a,#00356b 44%,#b8683f 108%);color:#fff;text-align:center}
.cta h2{color:#fff;margin:0 auto;font-size:clamp(34px,5vw,58px);max-width:18ch}
.cta p{color:#cfe0f5;font-size:18px;max-width:56ch;margin:20px auto 0}
.cta .fine{font-size:13.5px;color:#a9c4e4;margin-top:26px}

/* ---------- footer ---------- */
footer{background:var(--navy-deep);color:#9fbbdc;padding:66px 0 34px;font-size:14.5px}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
footer h2{font-family:'Outfit';font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--peach);margin-bottom:16px;font-weight:800}
footer a{color:#9fbbdc;text-decoration:none;display:block;padding:5px 0;transition:color .2s}
footer a:hover{color:#fff}
.f-bot{margin-top:44px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:#6f8db2}
/* ---------- legal pages ---------- */
.legal{max-width:820px;margin:0 auto;padding:0 26px}
.legal .meta{font-size:14px;color:var(--ink-soft);border-bottom:1px solid rgba(0,53,107,.12);padding-bottom:20px;margin-bottom:36px}
.legal .meta b{color:var(--navy)}
.legal h2{font-size:27px;color:var(--navy);margin:44px 0 14px}
.legal h2:first-of-type{margin-top:0}
.legal h3{font-size:19px;color:var(--navy);margin:28px 0 10px}
.legal p{font-size:16px;color:var(--ink-soft);margin-bottom:15px}
.legal ul,.legal ol{margin:0 0 18px 22px}
.legal li{font-size:16px;color:var(--ink-soft);margin-bottom:9px;line-height:1.7}
.legal a{color:var(--navy);font-weight:600}
.legal .box{background:#fff;border-radius:var(--radius-sm);padding:24px 28px;box-shadow:var(--shadow);border-left:5px solid var(--coral);margin:26px 0}
.legal .box h3{margin-top:0}
.legal .box p:last-child{margin-bottom:0}
.legal .toc{background:var(--cream-deep);border-radius:var(--radius-sm);padding:24px 28px;margin-bottom:40px}
.legal .toc h3,.legal .toc h3:first-of-type{margin-top:0}
.legal .toc h3{font-family:'Outfit';font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:12px}
.legal .toc ol{margin:0 0 0 20px}
.legal .toc li{font-size:15px;margin-bottom:6px}
/* ---------- responsive ---------- */
@media(max-width:960px){
  .grid-2,.grid-3,.grid-4,.split-65,.steps,.door-grid,.f-grid,.icon-row{grid-template-columns:1fr}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--cream);padding:22px 26px;gap:8px;border-bottom:1px solid rgba(0,53,107,.12);align-items:flex-start}
  .doors{padding:26px;margin-top:-50px;border-radius:28px}
  /* min-height + aspect-ratio fight each other on narrow screens and push
     the illustration wider than the viewport — let the ratio govern here */
  .stage{min-height:0}
  .hero-in{padding:64px 26px 110px}
  .hero-in.short{padding:52px 26px 70px}
  .fee-row{flex-direction:column;gap:14px}
  .price,.price small{text-align:left}
  .pad{padding:66px 0}
  .tbl{display:block;overflow-x:auto}
}

/* ============================================================
   PRODUCTION LAYER — added for the live build
   Crisis bar · accessibility · focus states · motion · print
   ============================================================ */

/* ---------- skip link ---------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--navy);color:#fff;font-family:'Outfit';font-weight:700;
  padding:14px 22px;border-radius:0 0 12px 0;text-decoration:none;font-size:15px;
}
.skip-link:focus{left:0}

/* ---------- crisis bar ----------
   First element in the document on every page, so it is the first thing a
   screen reader reaches and the first thing anyone sees above the fold.
   It scrolls away with the page; the sticky nav takes over, and the footer
   repeats the same numbers so 988 is never more than one scroll away. */
.crisis-bar{
  background:var(--navy-deep);color:#dce9f8;font-size:13.5px;
  border-bottom:2px solid var(--coral);position:relative;z-index:60;
}
.crisis-in{
  max-width:var(--max);margin:0 auto;padding:9px 26px;
  display:flex;align-items:flex-start;gap:10px;line-height:1.5;
}
.crisis-in > svg{flex-shrink:0;color:var(--coral);margin-top:2px}
.crisis-in b{color:#fff;font-weight:700}
.crisis-bar a{
  color:#ffd9b8;font-weight:700;text-decoration:underline;
  text-underline-offset:2px;white-space:nowrap;
}
.crisis-bar a:hover{color:#fff}
@media(max-width:600px){ .crisis-in{font-size:12.5px;padding:8px 18px} }

/* nav sits below the crisis bar, not on top of it */
nav{top:0}

/* ---------- focus visibility (WCAG 2.4.7 / 2.4.11) ---------- */
:focus-visible{
  outline:3px solid var(--coral-ink);
  outline-offset:3px;
  border-radius:4px;
}
.btn:focus-visible{outline-offset:4px}
.crisis-bar a:focus-visible,footer a:focus-visible,.hero a:focus-visible{
  outline-color:#ffd9b8;
}
/* never remove focus rings wholesale — only for mouse users */
:focus:not(:focus-visible){outline:none}

/* ---------- door tabs: keyboard + selected state ---------- */
.door-tab[aria-selected="true"]{background:var(--navy);border-color:var(--navy);box-shadow:var(--shadow)}
.door-tab[aria-selected="true"] .dt-title{color:#fff}
.door-tab[aria-selected="true"] .dt-sub{color:#bcd3ee}
/* [hidden] must always win — a class that sets display would otherwise
   override the user-agent rule and reveal a hidden panel on page load. */
[hidden]{display:none !important}
.door-panel[hidden]{display:none}

/* ---------- forms ---------- */
.field-error{
  display:block;color:#a3341a;font-size:13.5px;font-weight:600;margin-top:5px;
}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{
  border-color:#c0472a !important;
  box-shadow:0 0 0 3px rgba(192,71,42,.14);
}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-alert{
  background:#fff4e8;border:2px solid var(--coral-ink);border-radius:var(--radius-sm);
  padding:16px 20px;margin-bottom:20px;font-size:15px;color:#6b3f21;
}
.form-alert b{color:var(--coral-ink)}

/* ---------- fee effective-date note ---------- */
.fee-effective{
  display:inline-flex;align-items:center;gap:9px;
  background:rgba(0,53,107,.06);border:1px solid rgba(0,53,107,.14);
  border-radius:100px;padding:9px 18px;font-size:13.5px;color:var(--ink-soft);
  margin-bottom:26px;
}
.fee-effective b{color:var(--navy)}

/* ---------- 404 ---------- */
.notfound{text-align:center;padding:120px 26px 130px;max-width:640px;margin:0 auto}
.notfound .code{
  font-family:'Outfit';font-size:clamp(78px,16vw,150px);font-weight:900;
  color:var(--coral);opacity:.28;line-height:1;letter-spacing:-.05em;
}
.notfound h1{font-size:clamp(30px,5vw,46px);color:var(--navy);margin-top:-12px}
.notfound p{color:var(--ink-soft);font-size:17px;margin-top:18px}
.notfound .btn{margin-top:30px}

/* ---------- reduced motion ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  .btn:hover,.card:hover,.spec:hover{transform:none}
}

/* ---------- forced colors / high contrast ---------- */
@media(forced-colors:active){
  .btn{border:2px solid ButtonText}
  .door-tab[aria-selected="true"]{border:3px solid Highlight}
}

/* ---------- selection ---------- */
::selection{background:var(--coral-ink);color:#fff}

/* ---------- print ---------- */
@media print{
  nav,.crisis-bar,.skip-link,.cta,.hero-cta,.btn{display:none !important}
  body{background:#fff;color:#000;font-size:11pt}
  .hero{background:#fff;min-height:auto}
  .hero-art,.stage,.stage-bg{display:none}
  h1.hero-h,.hero-sub,.eyebrow{color:#000 !important}
  .pad{padding:18pt 0}
  footer{background:#fff;color:#000;border-top:1pt solid #000}
  footer a,footer h2,footer p{color:#000 !important}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;color:#444}
  .door-panel{display:block !important}
  .card,.feature,.fee-row{box-shadow:none;border:1pt solid #ccc;break-inside:avoid}
}

/* ---------- visually hidden (still announced) ---------- */
.sr-only{
  position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}
