/* GENERATED by scripts/chrome.py --build -- do not hand-edit.
 *
 * The sitewide footer and crisis quick-call bar, de-scoped from the front
 * page's `.opt-a` wrapper so they render on every page. Source of both the
 * markup and these rules is site/index.html (owner ruling 2026-08-14: the
 * navbar and footer are the ones on the main page).
 *
 * Re-run this compiler after ANY edit to the front page's footer or crisis
 * bar; scripts/check-page-chrome.py fails if this file drifts from source.
 */

/* the custom properties the chrome rules read. They are declared ONLY on
   `.opt-a` in meridian-a.css, so de-scoped chrome on a page without that
   wrapper would resolve every one of them to nothing. */
.ftr-a, .crisis-a {
  --a-dark-3: #05070F;
  --a-green: #53BA00;
  --a-green-hover: #489F00;
  --a-green-tint: rgba(83,186,0,.10);
  --a-ink: #0B1020;
  --a-navy: #00076D;
  --a-sans: 'Inter', 'Segoe UI', Helvetica, Arial, sans-serif;
  --a-shell: 1320px;
  --a-text: #1E293B;

  /* the typographic base the chrome INHERITS from .opt-a on the front
     page. Off that page nothing supplies it and the chrome fell back to
     the UA default -- Times New Roman at line-height:normal -- which is
     why it rendered larger and unlike the front page. Derived from the
     .opt-a rule, never hardcoded, so it cannot drift from the source. */
  font-family: var(--a-sans);
  font-size: 16.5px;
  line-height: 1.7;
  color: var(--a-text);
  -webkit-font-smoothing: antialiased;
}

/* The chrome carries its own RESET, because every page reset is scoped to
   a wrapper the chrome sits outside of, and the three regimes disagree:
     style.css   (99 pages) `* { box-sizing; margin:0; padding:0 }` universal
     .opt-a      (index)    `.opt-a * { box-sizing }` only
     .opt-b      (providers) scoped to .opt-b -- reaches the chrome NEVER
   So on the one page whose reset is scoped, the pill's <p> kept its UA
   default margin and the bar measured 65px against 56px everywhere else.
   margin/padding are zeroed here to match what the 99-page majority
   already gets from style.css; every intentional value is set by an
   explicit rule below, exactly as it is on those pages. */
.ftr-a, .ftr-a *, .ftr-a *::before, .ftr-a *::after,
.crisis-a, .crisis-a *, .crisis-a *::before, .crisis-a *::after
  { box-sizing: border-box; margin: 0; padding: 0; }

/* The ELEMENT base the chrome inherits from its page, same reasoning as
   the box model above but for bare tags. These are declared `.opt-a img`,
   `.opt-a a` and so on -- scoped to a wrapper the chrome sits outside of.
   style.css supplies equivalents to its 99 pages; /our-providers links
   neither, so the footer logo rendered `inline` and a crisis-bar link
   rendered UA blue where the front page renders navy. Derived from the
   donors' own rules, never hardcoded and never a fixed list of tags.

   `:where()` contributes NOTHING to specificity, so these compute as a
   bare tag (0,0,1): below every class-based chrome rule, and below a
   page's own element rule only when that page's sheet is later -- which
   chrome.css never is, being linked last. The first cut wrote
   `.ftr-a a` (0,1,1) and relied on source order to lose to more specific
   rules; it instead OVERRODE a footer link the front page paints at 0.8
   alpha, so the fix for one colour bug introduced another. Precedence
   this load-bearing belongs in the selector, not in the line order. */
:where(.ftr-a, .crisis-a) a { color: var(--a-navy); }
:where(.ftr-a, .crisis-a) h1 { font-size: clamp(2rem, 4.2vw, 3.7rem); letter-spacing: -.03em; font-stretch: 112%; font-weight: 780; }
:where(.ftr-a, .crisis-a) h2 { font-size: clamp(1.85rem, 2.9vw, 2.6rem); letter-spacing: -.024em; font-stretch: 110%; font-weight: 740; }
:where(.ftr-a, .crisis-a) h3 { font-size: 1.28rem; letter-spacing: -.012em; font-weight: 730; font-stretch: 106%; }
:where(.ftr-a, .crisis-a) img { max-width: 100%; height: auto; display: block; }

@keyframes opt-a-pulse {
    0%   { box-shadow: 0 0 0 0 rgba(83,186,0,.55); }
    70%  { box-shadow: 0 0 0 10px rgba(83,186,0,0); }
    100% { box-shadow: 0 0 0 0 rgba(83,186,0,0); }
  }

.ftr-a .shell-a {max-width: var(--a-shell); margin: 0 auto; padding: 0 2rem; position: relative;}
.crisis-a .pulse-a {width: 9px; height: 9px; border-radius: 50%; background: var(--a-green);
  box-shadow: 0 0 0 0 rgba(83,186,0,.55); flex-shrink: 0;}
.ftr-a {background: linear-gradient(180deg, var(--a-dark-3), #03050C);
  color: rgba(255,255,255,.72);
  padding: clamp(2.6rem, 5vw, 3.8rem) 0 clamp(2rem, 3vw, 2.6rem);
  border-top: 1px solid rgba(255,255,255,.08);}
.ftr-a-grid {display: grid; gap: 2rem 2.4rem;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));}
.ftr-a-brand img {height: 68px; width: auto; margin-bottom: 1rem;}
.ftr-a-tag {font-size: .9rem; line-height: 1.65; max-width: 34ch;}
.ftr-a-social {display: inline-flex; align-items: center; gap: .5rem; margin-top: 1rem;
  color: rgba(255,255,255,.8); text-decoration: none; font-size: .88rem; font-weight: 650;
  min-height: 44px;}
.ftr-a-social:hover {color: var(--a-green);}
.ftr-a h3 {font-family: var(--a-sans); font-size: .655rem; text-transform: uppercase;
  letter-spacing: .16em; font-weight: 800; color: var(--a-green); margin-bottom: .75rem;}
.ftr-a-bottom {margin-top: 2.4rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,.1);
  display: flex; flex-wrap: wrap; gap: .6rem 1.6rem; justify-content: space-between;
  font-size: .82rem; color: rgba(255,255,255,.56);}
.ftr-a-bottom a {color: rgba(255,255,255,.72);}
.ftr-a-disclaimer {margin-top: 1.4rem; font-size: .78rem; line-height: 1.65; color: rgba(255,255,255,.62);
  max-width: 96ch;}
.ftr-a-disclaimer strong {color: rgba(255,255,255,.7);}
.crisis-a {position: sticky; bottom: 0; z-index: 50;
  padding: 0 10px 10px; pointer-events: none;}
.crisis-a-pill {pointer-events: auto;
  max-width: 720px; margin: 0 auto; width: 100%;
  display: flex; align-items: center; gap: .7rem; flex-wrap: wrap;
  padding: .6rem .6rem .6rem 1rem;
  background: linear-gradient(135deg, rgba(9,13,30,.96), rgba(4,7,20,.96));
  border: 1px solid rgba(255,255,255,.18); border-radius: 100px;
  box-shadow: 0 14px 44px rgba(0,0,0,.55);}
.crisis-a-msg {display: flex; align-items: center; gap: .55rem; flex: 1 1 auto; min-width: 0;
  font-size: .84rem; color: rgba(255,255,255,.74); line-height: 1.3;}
.crisis-a-msg strong {color: #fff; font-weight: 800;}
.crisis-a-drop {position: relative; flex-shrink: 0;}
.crisis-a-drop > summary {list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  background: var(--a-green); color: var(--a-ink);
  font-weight: 800; font-size: .87rem; border-radius: 100px;
  padding: .55rem 1.1rem; min-height: 44px; white-space: nowrap;}
.crisis-a-drop > summary::-webkit-details-marker {display: none;}
.crisis-a-drop > summary:hover {background: var(--a-green-hover);}
.crisis-a-drop svg {width: 10px; height: 10px; transition: transform .18s ease;}
.crisis-a-drop[open] > summary svg {transform: rotate(180deg);}
.crisis-a-panel {position: absolute; bottom: calc(100% + 12px); right: 0;
  width: min(300px, calc(100vw - 32px));
  background: rgba(9,12,26,.98);
  -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,.16); border-radius: 18px;
  box-shadow: 0 24px 70px rgba(0,0,0,.62); padding: .7rem;}
.crisis-a-panel-title {font-size: .62rem; text-transform: uppercase; letter-spacing: .16em; font-weight: 800;
  color: var(--a-green); padding: .3rem .6rem .5rem;}
.crisis-a-panel a {display: flex; align-items: center; justify-content: space-between; gap: .8rem;
  padding: .5rem .6rem; border-radius: 10px; text-decoration: none; min-height: 44px;
  transition: background-color .14s ease;}
.crisis-a-panel a:hover {background: rgba(83,186,0,.16);}
.crisis-a-panel a span {color: rgba(255,255,255,.74); font-size: .8rem; font-weight: 600;}
.crisis-a-panel a b {color: #fff; font-size: .9rem; font-variant-numeric: tabular-nums;}
.crisis-a-panel-foot {padding: .55rem .6rem 0; margin-top: .35rem; border-top: 1px solid rgba(255,255,255,.12);
  font-size: .71rem; color: rgba(255,255,255,.68); line-height: 1.5;}
.crisis-a-x {flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; cursor: pointer;
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.8); font-size: 1rem; line-height: 1;
  display: grid; place-items: center;
  transition: background-color .16s ease, color .16s ease;}
.crisis-a-x:hover {background: rgba(255,255,255,.18); color: #fff;}
.crisis-a[hidden] {display: none;}
.crisis-a {position: fixed;
  left: 0; right: 0;
  
  bottom: 0;
  padding: 0 14px 24px;
  
  z-index: 60;}
.crisis-a-pill {width: max-content;
  max-width: 100%;
  margin: 0 auto;
  flex-wrap: nowrap;
  white-space: nowrap;
  gap: 12px;
  
  padding: 10px 16px;
  border-radius: 100px;}
.crisis-a-msg {font-size: 13px;
  gap: .55rem;
  color: #b8c8e4;
  line-height: 1.3;}
.crisis-a-msg strong {font-size: 13px; font-weight: 700;}
.crisis-a-drop > summary {padding: 7px 20px;   
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  min-height: 0;}
.ftr-a-brand img.ftr-a-logo {width: 300px;
  max-width: 76%;
  height: auto;}
.ftr-a {padding: 0;}
.ftr-a {padding-bottom: 88px;}
.ftr-a-upper {padding: 72px 0 56px;}
.ftr-a-grid {display: grid;
  
  grid-template-columns: 1.25fr .82fr .95fr 1.05fr .95fr;
  gap: 40px;}
.ftr-a-tag {font-size: 14px; line-height: 1.7;
  margin: 0 0 26px; max-width: 30ch;
  color: rgba(255,255,255,.66);}
.ftr-a-social-row {display: flex; gap: 10px;}
.ftr-a-col-label {font-family: var(--a-sans);
  font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  font-weight: 700; color: rgba(255,255,255,.62);
  margin-bottom: 22px;}
.ftr-a-nav-links {list-style: none; margin: 0; padding: 0;
  display: flex; flex-direction: column; gap: 10px;}
.ftr-a-nav-links li a {display: block; font-size: 14px; padding: 0;
  color: rgba(255,255,255,.72); text-decoration: none;
  transition: color .18s ease;
  
  min-height: 26px;}
.ftr-a-nav-links li a:hover {color: #fff;}
.ftr-a-contact-block {display: flex; flex-direction: column; gap: 0;}
.ftr-a-ci {padding: 11px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);}
.ftr-a-ci:last-child {border-bottom: none;}
.ftr-a-ci .ci-label {display: block; margin-bottom: 3px;
  font-size: 11px; letter-spacing: .14em; text-transform: uppercase;
  font-weight: 700; color: rgba(255,255,255,.62);}
.ftr-a-ci .ci-label a {color: inherit; text-decoration: none; transition: color .18s ease;}
.ftr-a-ci .ci-label a:hover {color: var(--a-green);}
.ftr-a-ci .ci-value {display: block; font-size: 14px; color: rgba(255,255,255,.78);}
.ftr-a-ci .ci-value a {color: rgba(255,255,255,.78); text-decoration: none; transition: color .18s ease;}
.ftr-a-ci .ci-value a:hover {color: #fff;}
.ftr-a-trust-list {display: flex; flex-direction: column; gap: 9px;}
.ftr-a-trust {display: flex; align-items: center; gap: 10px;
  font-size: 13px; line-height: 1.35; color: rgba(255,255,255,.72);}
.ftr-a-check {width: 20px; height: 20px; border-radius: 50%;
  background: var(--a-green-tint);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; font-size: 10px; font-weight: 800; color: var(--a-green);}
.ftr-a-bottom {margin-top: 0; padding: 24px 0;
  border-top: 1px solid rgba(255,255,255,.08);
  display: block;}
.ftr-a-bottom-row {display: flex; align-items: center; justify-content: space-between;
  gap: 20px; flex-wrap: wrap;}
.ftr-a-legal {font-size: 12px; line-height: 1.5; margin: 0;
  color: rgba(255,255,255,.62);}
.ftr-a-legal a {color: rgba(255,255,255,.78); text-decoration: underline;
  transition: color .18s ease;}
.ftr-a-legal a:hover {color: #fff;}
.ftr-a-disclaimer-band {border-top: 1px solid rgba(255,255,255,.06);
  padding: 16px 0;}
.ftr-a-disclaimer {margin: 0; max-width: none;
  font-size: 11px; line-height: 1.7;
  color: rgba(255,255,255,.55);}
.ftr-a-disclaimer strong {color: rgba(255,255,255,.72);}
.crisis-a-panel, .crisis-a-panel * {white-space: normal;}
.crisis-a-panel-foot {text-wrap: pretty;}
.crisis-a[data-crisis-gated] {opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);}

@media (max-width: 560px) {
  .crisis-a-pill {border-radius: 22px; padding: .65rem .7rem; gap: .5rem;}
  .crisis-a-msg {flex: 1 1 100%; font-size: .8rem; order: 1;}
  .crisis-a-drop {flex: 1 1 auto; order: 2;}
  .crisis-a-drop > summary {width: 100%;}
  .crisis-a-panel {left: 0; right: 0; width: auto;}
  .crisis-a-x {order: 3;}
}

@media (prefers-reduced-motion: no-preference) {
  .crisis-a .pulse-a {animation: opt-a-pulse 2.4s ease-out infinite;}
  .crisis-a {transition: opacity .25s ease, transform .25s ease;}
}

@media (max-width: 760px) {
  .ftr-a .shell-a {padding: 0 1.15rem;}
}

@media (max-width: 420px) {
  .crisis-a-pill {padding: .55rem .6rem;}
  .crisis-a-msg {font-size: .78rem;}
}

@media (max-width: 600px) {
  .crisis-a {padding: 0 14px 16px;}
  .crisis-a-pill {width: auto;
    white-space: normal;
    gap: 8px;
    padding: 8px 11px;
    border-radius: 18px;}
  .crisis-a-msg {font-size: 12.5px;}
  .crisis-a-msg strong {font-size: 12.5px;}
  .crisis-a-drop > summary {padding: 8px 14px;}
  .ftr-a {padding-bottom: 91px;}
}

@media (min-width: 901px) {
  .crisis-a {padding-bottom: 10px;}
  .ftr-a {padding-bottom: 74px;}
}

@media (max-width: 1024px) {
  .ftr-a-grid {grid-template-columns: repeat(2, 1fr); gap: 40px;}
}

@media (max-width: 720px) {
  .ftr-a-grid {grid-template-columns: 1fr; gap: 32px;}
  .ftr-a-bottom-row {flex-direction: column; align-items: flex-start; gap: 8px;}
  .ftr-a-nav-links li a {min-height: 30px;}
  .ftr-a-upper {padding: 48px 0 40px;}
}

/* ============================ THE HEADER ============================
 *
 * Folded in 2026-08-15 (#121b, owner ruling: 'the navbar is the one on the
 * main page'). This replaces build-site-header.py and site-header.css, which
 * compiled the header from a HARDCODED two-sheet list while the front page
 * styles it from five -- so `li.has-menu` lost `position: relative` and the
 * header root lost `color: var(--ink)`, on 100 of 101 pages.
 */

/* the custom properties the header rules read, folded off `:root` onto the
   header root. Released at :root they would repaint the 99 pages whose own
   stylesheet defines the same names differently. */
.hp-header {
  --border: #E3E8EF;
  --border-light: #F1F4F8;
  --display: 'Archivo', 'Segoe UI', Arial, sans-serif;
  --green: #53BA00;
  --green-hover: #489F00;
  --green-text: #377A00;
  --green-tint: rgba(83,186,0,.10);
  --header-h: 72px;
  --ink: #0B1020;
  --navy: #00076D;
  --sans: 'Inter', 'Segoe UI', Arial, sans-serif;
  --shadow-hover: 0 4px 8px rgba(0,7,109,.05), 0 20px 52px rgba(0,7,109,.16);
  --text: #1E293B;
  --text-muted: #6B7280;

  /* The inherited base, and the two keywords are NOT interchangeable.
     Here, for a property the front page declares nowhere, the answer is
     `initial`: canon's <body> declares nothing either, so canon's header
     inherits the property's INITIAL value, and `initial` reproduces that
     on a page whose body does declare one.

     MEASURED 2026-08-15: `revert` was tried first and is wrong HERE. It
     rolls back to the UA origin, and the UA declares nothing about
     line-height on <header> -- so the property fell through to the
     INHERITED value and /about.html kept style.css's 28px, insulating
     nothing. The fix looked applied and the number never moved. */
  font-family: initial;
  font-size: initial;
  font-weight: initial;
  font-style: initial;
  line-height: initial;
  letter-spacing: initial;
  text-transform: initial;
  text-align: initial;
  color: var(--ink, #0B1020);
  -webkit-font-smoothing: initial;
}

/* The same insulation for the tags the header CONTAINS, because a page's
   ELEMENT rules match them directly and inheritance never gets a say:
   style.css's `h1, h2, h3, h4, h5 { font-family: var(--serif) }` is why
   the mobile menu's <h4> rendered Archivo where canon renders Inter.

   `revert` here, NOT `initial` -- the opposite of the root block above,
   for the opposite reason. A descendant's canon value is whatever it gets
   with no author rule in scope, which is the UA value where the UA has
   one (<a> is rgb(0,0,238) on canon, headings carry UA size and weight)
   and the inherited value where it does not. That IS `revert`; `initial`
   would cut every descendant off from the root base this file just set.

   `:where()` keeps this at zero class specificity, so every real header
   rule below outranks it by construction; it beats a page's bare element
   rule only on source order, and chrome.css is linked last. */
:where(.hp-header) a, :where(.hp-header) b, :where(.hp-header) button, :where(.hp-header) details, :where(.hp-header) div, :where(.hp-header) h4, :where(.hp-header) img, :where(.hp-header) li, :where(.hp-header) nav, :where(.hp-header) p, :where(.hp-header) small, :where(.hp-header) span, :where(.hp-header) summary, :where(.hp-header) ul {
  font-family: revert;
  font-size: revert;
  font-weight: revert;
  font-style: revert;
  line-height: revert;
  letter-spacing: revert;
  text-transform: revert;
  text-align: revert;
  color: revert;
  -webkit-font-smoothing: revert;
}

/* And again for the header's CLASS tokens, because the element reset above
   cannot reach them. MEASURED 2026-08-15: with the tag reset in place the
   'Book a visit' button still measured 154.83px against canon's 117.91,
   because style.css styles `.btn` -- a CLASS selector at (0,1,0), which
   outranks `:where(.hp-header) a` at (0,0,1). Its letter-spacing of
   1.6896px is the whole 37px. `.btn` is one of six header tokens that
   also appear on page content, so this is not hypothetical.

   At (0,1,0) this ties a page's own class rule and wins on source order,
   and loses to every rescoped header rule at (0,2,0). The header's own
   (0,1,0) rules are emitted BELOW this block, so they win on order too --
   which is why this block fires only where canon has no rule at all. */
:where(.hp-header) .btn, :where(.hp-header) .btn-ghost-navy, :where(.hp-header) .btn-green, :where(.hp-header) .call-menu, :where(.hp-header) .call-menu-foot, :where(.hp-header) .call-menu-panel, :where(.hp-header) .call-menu-title, :where(.hp-header) .has-menu, :where(.hp-header) .hp-header, :where(.hp-header) .hp-header-cta, :where(.hp-header) .hp-header-row, :where(.hp-header) .hp-logo, :where(.hp-header) .hp-logo-text, :where(.hp-header) .hp-mobile, :where(.hp-header) .hp-nav, :where(.hp-header) .mega-col, :where(.hp-header) .mega-grid, :where(.hp-header) .menu, :where(.hp-header) .menu-all, :where(.hp-header) .menu-ext, :where(.hp-header) .menu-mega, :where(.hp-header) .menu-mega--cond, :where(.hp-header) .mob-book, :where(.hp-header) .mob-book--compact, :where(.hp-header) .mob-book--wide, :where(.hp-header) .mob-call, :where(.hp-header) .wide {
  font-family: revert;
  font-size: revert;
  font-weight: revert;
  font-style: revert;
  line-height: revert;
  letter-spacing: revert;
  text-transform: revert;
  text-align: revert;
  color: revert;
  -webkit-font-smoothing: revert;
}

.hp-header .btn {display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  font-family: var(--sans); font-weight: 700; text-decoration: none; cursor: pointer;
  border: 2px solid transparent; border-radius: 999px;
  padding: .72rem 1.5rem; font-size: .95rem; min-height: 44px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;}
.btn-green {background: var(--green); color: var(--ink);}
.btn-green:hover {background: var(--green-hover);}
.hp-header .btn-ghost-navy {background: transparent; color: var(--navy); border-color: rgba(0,7,109,.35);}
.hp-header .btn-ghost-navy:hover {border-color: var(--navy); background: rgba(0,7,109,.05);}
.hp-header {position: fixed; top: 0; left: 0; right: 0; z-index: 900;
  background: transparent;
  transition: background-color .25s ease, box-shadow .25s ease, backdrop-filter .25s ease;}
.hp-header.scrolled {background: rgba(9,12,20,.74);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 10px 34px rgba(0,0,0,.5);}
html:not(.hp-motion) .hp-header {background: rgba(9,12,20,.94);}
.hp-header-row {display: flex; align-items: center; gap: 1.3rem; min-height: var(--header-h);}
.hp-logo {flex-shrink: 0; display: flex; flex-direction: column; text-decoration: none; line-height: 1.05;}
.hp-logo b {font-family: var(--display); font-stretch: 112%; font-weight: 780; font-size: 1.02rem;
  color: #fff; letter-spacing: .01em;}
.hp-logo span {font-size: .58rem; letter-spacing: .34em; text-transform: uppercase;
  
  color: #60D600; font-weight: 700;}
.hp-nav {flex: 1;}
.hp-nav ul {list-style: none; display: flex; align-items: center; gap: .05rem;}
.hp-nav li {position: relative;}
.hp-nav a, .hp-nav button {display: inline-flex; align-items: center; gap: .3rem;
  font: inherit; font-size: .92rem; font-weight: 600; color: rgba(255,255,255,.88);
  background: none; border: 0; cursor: pointer;
  padding: .6rem .72rem; border-radius: 8px; text-decoration: none;}
.hp-nav > ul > li > a:hover, .hp-nav > ul > li > button:hover {color: #fff; background: rgba(255,255,255,.10);}
.hp-nav .has-menu > button::after {content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px);
  opacity: .55;}
.menu {position: absolute; top: 100%; left: 0; min-width: 250px;
  background: #fff; border: 1px solid var(--border-light); border-radius: 14px;
  box-shadow: var(--shadow-hover); padding: .6rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 500;}
.has-menu.open > .menu, .has-menu:focus-within > .menu, .has-menu:hover > .menu {opacity: 1; visibility: visible; transform: translateY(0);}
.menu a {display: block; padding: .48rem .7rem; border-radius: 8px;
  font-weight: 500; color: var(--text); font-size: .92rem;}
.menu a small {display: block; color: var(--text-muted); font-size: .72rem; font-weight: 400;}
.menu a:hover {background: var(--green-tint); color: var(--navy);}
.menu .menu-all {column-span: all; border-top: 1px solid var(--border-light); margin-top: .4rem; padding-top: .6rem; font-weight: 700; color: var(--navy);}
.hp-header-cta {display: flex; align-items: center; gap: .6rem; flex-shrink: 0;}
.hp-header-cta .btn-ghost-navy {color: #fff; border-color: rgba(255,255,255,.4);}
.hp-header-cta .btn-ghost-navy:hover {border-color: #fff; background: rgba(255,255,255,.08);}
.hp-header .call-menu {position: relative;}
.hp-header .call-menu-panel {position: absolute; right: 0; top: calc(100% + 8px); width: 280px;
  background: #fff; border: 1px solid var(--border-light); border-radius: 14px;
  box-shadow: var(--shadow-hover); padding: .7rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 950;}
.hp-header .call-menu.open .call-menu-panel, .hp-header .call-menu:focus-within .call-menu-panel {opacity: 1; visibility: visible; transform: translateY(0);}
.hp-header .call-menu--up .call-menu-panel {top: auto; bottom: calc(100% + 10px);}
.hp-header .call-menu-title {font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
  font-weight: 700; color: var(--text-muted); padding: .2rem .6rem .5rem;}
.hp-header .call-menu-panel a {display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .55rem .6rem; min-height: 44px;
  border-radius: 8px; text-decoration: none; color: var(--text); font-size: .92rem;}
.hp-header .call-menu-panel a:hover {background: var(--green-tint);}
.hp-header .call-menu-panel a b {color: var(--navy); font-variant-numeric: tabular-nums;}
.hp-mobile {display: none; margin-left: auto;}
.hp-mobile summary {list-style: none; cursor: pointer; display: flex; flex-direction: column;
  gap: 5px; padding: 12px; border-radius: 10px; min-width: 44px; min-height: 44px;
  justify-content: center; align-items: center;}
.hp-mobile summary::-webkit-details-marker {display: none;}
.hp-mobile summary span {width: 22px; height: 2px; background: #fff; border-radius: 2px;}
.hp-mobile[open] summary {background: rgba(255,255,255,.12);}
.hp-mobile nav {position: absolute; left: 0; right: 0; top: var(--header-h);
  background: #fff; border-bottom: 1px solid var(--border);
  box-shadow: 0 24px 40px rgba(0,7,109,.14);
  padding: .8rem 1.2rem 1.2rem; display: grid; gap: .1rem;
  max-height: calc(100vh - var(--header-h)); max-height: calc(100dvh - var(--header-h));
  overflow-y: auto;}
.hp-mobile nav a {padding: .7rem .6rem; min-height: 44px; display: flex; align-items: center;
  text-decoration: none; color: var(--text); font-weight: 600;
  border-bottom: 1px solid var(--border-light);}
.hp-mobile nav a.mob-book {background: var(--green); color: var(--ink); border-radius: 10px; justify-content: center; border: 0; margin-top: .6rem;}
.hp-header .sticky-actions .btn {white-space: nowrap;}

@media (prefers-reduced-motion: no-preference) {
  .hp-header .btn:hover {transform: translateY(-1px);}
}

@media (max-width: 1024px) {
  .hp-nav {display: none;}
  .hp-header-cta .btn-ghost-navy {display: none;}
  .hp-mobile {display: block;}
}

@media (max-width: 480px) {
  .hp-header-row {gap: .55rem;}
  .hp-logo b {font-size: .9rem;}
  .hp-header-cta .btn-green {padding: .45rem .85rem; font-size: .84rem;}
  .hp-header .hero-ctas .btn {width: 100%;}
  .hp-header .sticky-actions .call-menu .btn {width: 100%;}
}

@media print {
  .hp-header, .hp-header .sticky-call, .hp-header .pathway, .hp-header .hero-aurora {display: none;}
}
.hp-header, .hp-header *, .hp-header *::before, .hp-header *::after {box-sizing: border-box;}
.hp-header {--navy:         #00076D;
  --green:        #53BA00;   
  --green-hover:  #489F00;
  --green-tint:   rgba(83,186,0,.10);
  --ink:          #0B1020;
  --text:         #1E293B;
  --text-muted:   #6B7280;
  --border:       #E3E8EF;
  --border-light: #F1F4F8;
  --shadow-hover: 0 4px 8px rgba(0,7,109,.05), 0 20px 52px rgba(0,7,109,.16);
  --header-h:     72px;
  --hsans:        'Inter', 'Segoe UI', Arial, sans-serif;

  
  position: sticky; top: 0; left: 0; right: 0; z-index: 900;
  
  background: rgba(9,12,20,.74);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  box-shadow: 0 10px 34px rgba(0,0,0,.5);
  font-family: var(--hsans);}
.hp-header .hp-header-row {display: flex; align-items: center; gap: 1.5rem;
  min-height: var(--header-h);
  width: 100%; max-width: none; margin: 0; padding: 0 1.6rem;}
.hp-header .hp-nav {flex: 1 1 auto; min-width: 0;}
.hp-header .hp-header-cta {margin-left: auto;}
.hp-header .hp-nav > ul > li > a, .hp-header .hp-nav > ul > li > button {white-space: nowrap;}
.hp-header .hp-logo {flex-shrink: 0; display: flex; flex-direction: row; align-items: center; gap: .6rem; text-decoration: none; line-height: 1.05;}
.hp-header .hp-logo img {height: 40px; width: auto; display: block;}
.hp-header .hp-logo-text {display: flex; flex-direction: column; align-items: center;}
.hp-header .hp-logo b {font-family: var(--display, 'Archivo', 'Segoe UI', Arial, sans-serif);
  font-stretch: 112%; font-weight: 780; font-size: 1.02rem;
  color: #fff; letter-spacing: .01em;}
.hp-header .hp-logo-text > span {font-size: .58rem; letter-spacing: .34em; text-transform: uppercase;
  
  color: #60D600; font-weight: 700;
  
  margin-right: -.34em;}
.hp-header .hp-nav {flex: 1;}
.hp-header .hp-nav ul {list-style: none; display: flex; align-items: center; gap: .05rem; margin: 0; padding: 0;}
.hp-header .hp-nav li {position: relative;}
.hp-header .hp-nav li.wide {position: static;}
.hp-header .hp-nav a, .hp-header .hp-nav button {display: inline-flex; align-items: center; gap: .3rem;
  font: inherit; font-size: .92rem; font-weight: 600; color: rgba(255,255,255,.88);
  background: none; border: 0; cursor: pointer;
  padding: .6rem .72rem; border-radius: 8px; text-decoration: none;}
.hp-header .hp-nav > ul > li > a:hover, .hp-header .hp-nav > ul > li > button:hover {color: #fff; background: rgba(255,255,255,.10);}
.hp-header .hp-nav .has-menu > button::after {content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px);
  opacity: .55;}
.hp-header .menu {position: absolute; top: 100%; left: 0; min-width: 250px;
  background: #fff; border: 1px solid var(--border-light); border-radius: 14px;
  box-shadow: var(--shadow-hover); padding: .6rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 500;}
.hp-header .has-menu.open > .menu, .hp-header .has-menu:focus-within > .menu, .hp-header .has-menu:hover > .menu {opacity: 1; visibility: visible; transform: translateY(0);}
.hp-header .menu a {display: block; padding: .48rem .7rem; border-radius: 8px;
  font-weight: 500; color: var(--text); font-size: .92rem; text-decoration: none;}
.hp-header .menu a small {display: block; color: var(--text-muted); font-size: .72rem; font-weight: 400;}
.hp-header .menu a:hover {background: var(--green-tint); color: var(--navy);}
.hp-header .menu-cols {min-width: 470px; column-count: 2; column-gap: .4rem;}
.hp-header .menu-cols a {break-inside: avoid;}
.hp-header .menu .menu-all {column-span: all; border-top: 1px solid var(--border-light); margin-top: .4rem; padding-top: .6rem; font-weight: 700; color: var(--navy);}
.hp-header .menu-mega {left: 50%; transform: translate(-50%, 6px);
  width: min(1180px, calc(100vw - 32px));
  padding: 1rem 1.1rem .9rem;}
.hp-header .has-menu.open > .menu-mega, .hp-header .has-menu:focus-within > .menu-mega, .hp-header .has-menu:hover > .menu-mega {transform: translate(-50%, 0);}
.hp-header .mega-grid {display: grid; grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
  gap: .2rem 1.1rem;}
.hp-header .mega-col h4 {font-family: var(--hsans); font-size: .68rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .12em; color: var(--navy);
  margin: .45rem 0 .15rem; padding: 0 .7rem;}
.hp-header .menu-mega .menu-all {border-top: 1px solid var(--border-light); margin-top: .6rem; padding-top: .6rem; display: block;}
.hp-header .menu-note {font-size: .72rem; color: var(--text-muted); margin: .35rem .2rem 0;
  padding: .35rem .7rem 0; border-top: 1px solid var(--border-light); max-width: 30ch;}
.hp-header .menu-ext small {color: var(--text-muted);}
.hp-header .btn {display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  font-family: var(--hsans); font-weight: 700; text-decoration: none; cursor: pointer;
  border: 2px solid transparent; border-radius: 999px;
  padding: .5rem 1.1rem; font-size: .88rem; min-height: 44px;
  transition: background-color .18s ease, border-color .18s ease, color .18s ease;}
.hp-header .btn-green {background: var(--green); color: var(--ink);}
.hp-header .btn-green:hover {background: var(--green-hover);}
.hp-header .btn-ghost {background: transparent; color: #fff; border-color: rgba(255,255,255,.4);}
.hp-header .btn-ghost:hover {border-color: #fff; background: rgba(255,255,255,.08);}
.hp-header .btn-ghost-navy {background: transparent; color: var(--navy); border-color: rgba(0,7,109,.35);}
.hp-header .btn-ghost-navy:hover {border-color: var(--navy); background: rgba(0,7,109,.05);}
.hp-header .hp-header-cta .btn-ghost-navy {color: #fff; border-color: rgba(255,255,255,.4);}
.hp-header .hp-header-cta .btn-ghost-navy:hover {border-color: #fff; background: rgba(255,255,255,.08);}
.hp-header .hp-header-cta {display: flex; align-items: center; gap: .6rem; flex-shrink: 0;}
.hp-header .call-menu {position: relative;}
.hp-header .call-menu-panel {position: absolute; right: 0; top: calc(100% + 8px); width: 280px;
  background: #fff; border: 1px solid var(--border-light); border-radius: 14px;
  box-shadow: var(--shadow-hover); padding: .7rem;
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .16s ease, transform .16s ease, visibility .16s;
  z-index: 950;}
.hp-header .call-menu.open .call-menu-panel, .hp-header .call-menu:focus-within .call-menu-panel {opacity: 1; visibility: visible; transform: translateY(0);}
.hp-header .call-menu-title {font-size: .68rem; text-transform: uppercase; letter-spacing: .12em;
  font-weight: 700; color: var(--text-muted); padding: .2rem .6rem .5rem; margin: 0;}
.hp-header .call-menu-panel a {display: flex; justify-content: space-between; align-items: center; gap: 1rem;
  padding: .55rem .6rem; min-height: 44px;
  border-radius: 8px; text-decoration: none; color: var(--text); font-size: .92rem;}
.hp-header .call-menu-panel a:hover {background: var(--green-tint);}
.hp-header .call-menu-panel a b {color: var(--navy); font-variant-numeric: tabular-nums;}
.hp-header .call-menu-foot {font-size: .72rem; color: var(--text-muted); margin: .3rem 0 0;
  padding: .45rem .6rem 0; border-top: 1px solid var(--border-light);}
.hp-header .hp-mobile {display: none; margin-left: auto;}
.hp-header .hp-mobile summary {list-style: none; cursor: pointer; display: flex; flex-direction: column;
  gap: 5px; padding: 12px; border-radius: 10px; min-width: 44px; min-height: 44px;
  justify-content: center; align-items: center;}
.hp-header .hp-mobile summary::-webkit-details-marker {display: none;}
.hp-header .hp-mobile summary span {width: 22px; height: 2px; background: #fff; border-radius: 2px;}
.hp-header .hp-mobile[open] summary {background: rgba(255,255,255,.12);}
.hp-header .hp-mobile nav {position: absolute; left: 0; right: 0; top: var(--header-h);
  background: #fff; border-bottom: 1px solid var(--border);
  box-shadow: 0 24px 40px rgba(0,7,109,.14);
  padding: .8rem 1.2rem 1.2rem; display: grid; gap: .1rem;
  max-height: calc(100vh - var(--header-h)); max-height: calc(100dvh - var(--header-h));
  overflow-y: auto;}
.hp-header .hp-mobile nav h4 {font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em;
  color: var(--text-muted); margin: .7rem 0 .1rem; padding: 0 .6rem;}
.hp-header .hp-mobile nav a {padding: .7rem .6rem; min-height: 44px; display: flex; align-items: center;
  text-decoration: none; color: var(--text); font-weight: 600;
  border-bottom: 1px solid var(--border-light);}
.hp-header .hp-mobile nav a.mob-call {justify-content: space-between;}
.hp-header .hp-mobile nav a:has(small) {flex-direction: column; align-items: flex-start; gap: 2px;}
.hp-header .hp-mobile nav a small {color: var(--text-muted); font-size: .72rem; font-weight: 400;}
.hp-header .hp-mobile nav a.mob-call b {color: var(--navy); font-variant-numeric: tabular-nums;}
.hp-header .hp-mobile nav a.mob-book {background: var(--green); color: var(--ink); border-radius: 10px; justify-content: center; border: 0; margin-top: .6rem;}
.hp-header .hp-mobile nav a.mob-book--compact {display: none;}
.hp-header :focus-visible {outline: 3px solid #fff; outline-offset: 2px; box-shadow: 0 0 0 6px rgba(0,5,76,.9);}
.hp-header .menu :focus-visible, .hp-header .call-menu-panel :focus-visible, .hp-header .hp-mobile nav :focus-visible {outline: 3px solid var(--navy); box-shadow: 0 0 0 2px #fff;}
.hp-header .hp-nav > ul {justify-content: space-between; width: 100%;}
.hp-header .mega-col h4 {font-family: var(--hsans); font-size: .655rem; text-transform: uppercase;
  letter-spacing: .14em; font-weight: 800; color: var(--green-text);
  padding: .5rem .6rem .25rem; margin: 0;}
.hp-header .menu-ext {color: var(--green-text) !important; font-weight: 700 !important;}
.hp-header .menu .menu-ext {border-top: 1px solid var(--border-light); margin-top: .4rem; padding-top: .6rem;}
.hp-header .menu-all {color: var(--green-text) !important; font-weight: 700 !important;}
.hp-header .call-menu-title {font-size: .64rem; text-transform: uppercase; letter-spacing: .15em;
  font-weight: 800; color: var(--green-text); padding: .35rem .6rem .5rem;}

@media (max-width: 760px) {
  .hp-header .hp-mobile nav a.mob-book--compact {display: flex;}
  .hp-header .hp-mobile nav a.mob-book--wide {display: none;}
}

@media (max-width: 560px) {
  .hp-header .hp-logo-text {display: none;}
}

@media (max-width: 480px) {
  .hp-header .hp-header-cta .btn-green {display: none;}
  .hp-header .hp-logo img {height: 34px;}
}

@media (prefers-reduced-motion: reduce) {
  .hp-header .menu, .hp-header .call-menu-panel {transition: none;}
}

@media (min-width: 1301px) and (max-width: 1620px) {
  .hp-header .hp-header-row {gap: .7rem; padding: 0 .9rem;}
  .hp-header .hp-logo {gap: .4rem;}
  .hp-header .hp-logo img {height: 38px;}
  .hp-header .hp-nav a, .hp-header .hp-nav button {padding: .55rem .28rem; font-size: .78rem;}
  .hp-header .hp-header-cta {gap: .4rem;}
  .hp-header .btn {padding: .42rem .8rem; font-size: .78rem; min-height: 40px;}
}

@media (max-width: 1300px) {
  .hp-header .hp-nav, .hp-header .call-menu {display: none;}
  .hp-header .hp-mobile {display: block;}
}

@media (min-width: 1621px) {
  .hp-header .hp-nav > ul {justify-content: flex-start; gap: .2rem; width: auto;}
}
.hp-header .menu-mega--cond {width: min(760px, calc(100vw - 32px));}
.hp-header .menu-mega--cond .mega-grid {grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));}
.hp-header .hp-nav .has-menu:has(> .menu-mega--cond) {position: relative;}

@media (max-width: 560px) {
  .hp-header .hp-header-row {padding-inline: 14px; gap: 12px;}
  .hp-header .hp-logo {min-width: 0; flex-shrink: 1; gap: 10px;}
  .hp-header .hp-logo img {flex-shrink: 0;}
  .hp-header .hp-logo-text {display: block; min-width: 0;}
  .hp-header .hp-logo-text b {font-size: clamp(12px, 3.8vw, 16.32px);
    line-height: 1.15;}
  .hp-header .hp-logo-text span {display: none;}
}
