/* =========================================================================
   Adhara Group — Design System
   Building strong foundations. Enabling better futures.
   Brand: Adhara Brand Pack v1.3 · Montserrat · Navy #03142B · Gold #C89A46
   ========================================================================= */

/* ---------- 1. TOKENS ---------------------------------------------------- */
:root{
  /* Brand core — locked to the Adhara Brand Pack */
  --navy:        #03142B;
  --navy-deep:   #0A2444;   /* Deep Sea */
  --navy-mid:    #071B33;
  --navy-lift:   #143257;   /* mesh highlight */
  --gold:        #C89A46;   /* Adhara Gold */
  --gold-lt:     #F2CB78;   /* Light Gold  */
  --gold-dk:     #9C6F26;   /* Deep Gold   */
  --bone:        #F7F5F1;
  --slate:       #8A93A0;

  /* Derived for accessibility: gold at #C89A46 is 2.7:1 on white and fails AA
     as text. --gold-ink is the same hue darkened to 5.4:1 on white and is the
     ONLY gold used for text on light surfaces. Decorative gold stays on brand. */
  --gold-ink:    #8A6220;

  /* Semantic surfaces */
  --surface-dark:      var(--navy);
  --surface-dark-alt:  var(--navy-mid);
  --surface-light:     #FFFFFF;
  --surface-light-alt: var(--bone);
  --surface-card:      #FFFFFF;
  --surface-card-dark: rgba(255,255,255,.035);

  /* Semantic text */
  --ink:            #03142B;
  --ink-soft:       rgba(3,20,43,.72);
  --ink-mute:       rgba(3,20,43,.62);   /* 5.2:1 on white — muted but AA-legible */
  --on-dark:        #FFFFFF;
  --on-dark-soft:   rgba(255,255,255,.76);
  --on-dark-mute:   rgba(255,255,255,.56);

  /* Lines */
  --line-light:     rgba(3,20,43,.10);
  --line-light-2:   rgba(3,20,43,.16);
  --line-dark:      rgba(255,255,255,.12);
  --line-dark-2:    rgba(255,255,255,.22);
  --line-gold:      rgba(200,154,70,.42);

  --danger:         #B42318;
  --success:        #1B7F5A;

  /* Type */
  --font: "Montserrat", "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;

  --fs-eyebrow: 0.75rem;
  --fs-micro:   0.8125rem;
  --fs-small:   0.875rem;
  --fs-body:    clamp(1rem, 0.965rem + 0.16vw, 1.0625rem);
  --fs-lead:    clamp(1.0625rem, 0.98rem + 0.42vw, 1.3125rem);
  --fs-h4:      clamp(1.0625rem, 1.01rem + 0.28vw, 1.25rem);
  --fs-h3:      clamp(1.25rem, 1.12rem + 0.62vw, 1.625rem);
  --fs-h2:      clamp(1.875rem, 1.52rem + 1.68vw, 3rem);
  --fs-h1:      clamp(2.375rem, 1.72rem + 3.1vw, 4.5rem);
  --fs-display: clamp(2.625rem, 1.7rem + 4.1vw, 5.25rem);

  --track-eyebrow: .34em;
  --track-btn:     .18em;

  /* Space — 4pt rhythm */
  --s-1: 4px;   --s-2: 8px;   --s-3: 12px;  --s-4: 16px;
  --s-5: 24px;  --s-6: 32px;  --s-7: 48px;  --s-8: 64px;
  --s-9: 96px;  --s-10: 128px;

  --gutter:   clamp(20px, 5vw, 48px);
  --measure:  68ch;
  --container: 1240px;
  --container-narrow: 940px;

  --radius:    4px;
  --radius-lg: 8px;

  /* Elevation */
  --e-1: 0 1px 2px rgba(3,20,43,.05);
  --e-2: 0 6px 20px -8px rgba(3,20,43,.14), 0 2px 6px rgba(3,20,43,.05);
  --e-3: 0 22px 48px -18px rgba(3,20,43,.24), 0 4px 12px rgba(3,20,43,.07);
  --e-gold: 0 18px 44px -20px rgba(156,111,38,.5);

  /* Motion — one shared rhythm across the site */
  --ease:      cubic-bezier(.2,.7,.3,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --ease-in:   cubic-bezier(.5,0,.9,.3);
  --t-fast:    140ms;
  --t-base:    260ms;
  --t-slow:    460ms;
  --t-reveal:  680ms;

  /* Layers */
  /* The drawer sits BELOW the header so the burger stays visible and clickable
     as the close (X) control while the menu is open. */
  --z-base: 1; --z-sticky: 40; --z-drawer: 50; --z-nav: 60; --z-top: 100;

  --header-h: 84px;
  color-scheme: light;
}
@media (max-width:900px){ :root{ --header-h: 68px; } }
/* Wide tracking reads well at desktop sizes but eats a phone's line length.
   Tighten it so eyebrows and button labels stop wrapping at 375px. */
@media (max-width:640px){ :root{ --track-eyebrow: .2em; --track-btn: .1em; } }

/* ---------- 2. RESET ----------------------------------------------------- */
*,*::before,*::after{ box-sizing:border-box; }
*{ margin:0; }
html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top: calc(var(--header-h) + 24px);
}
body{
  font-family:var(--font);
  font-size:var(--fs-body);
  font-weight:400;
  line-height:1.7;
  color:var(--ink);
  background:var(--surface-light);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ display:block; max-width:100%; }
img{ height:auto; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; }
a{ color:inherit; text-decoration:none; }
ul,ol{ list-style:none; padding:0; }
h1,h2,h3,h4,h5,h6{ font-weight:400; line-height:1.15; letter-spacing:-.012em; text-wrap:balance; }
p{ text-wrap:pretty; }
:target{ scroll-margin-top: calc(var(--header-h) + 24px); }

/* Focus — visible everywhere, never removed */
:focus{ outline:none; }
:focus-visible{
  outline:3px solid var(--gold);
  outline-offset:3px;
  border-radius:2px;
}
.sect--dark :focus-visible,
.hero :focus-visible,
.cta :focus-visible,
.footer :focus-visible,
.header :focus-visible,
.drawer :focus-visible{ outline-color:var(--gold-lt); }

::selection{ background:var(--gold); color:var(--navy); }

.skip-link{
  position:absolute; left:var(--s-4); top:-100px; z-index:var(--z-top);
  background:var(--gold); color:var(--navy);
  padding:14px 22px; font-weight:700; font-size:var(--fs-small);
  letter-spacing:var(--track-btn); text-transform:uppercase;
  transition:top var(--t-fast) var(--ease);
}
/* Reveal on any focus, not just :focus-visible — the link is keyboard-only
   anyway, and some browsers withhold :focus-visible from programmatic focus. */
.skip-link:focus,.skip-link:focus-visible{ top:var(--s-4); }

.visually-hidden{
  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;
}

/* ---------- 2b. SURFACE SCHEMES ------------------------------------------
   Every component styles itself from the semantic tokens (--ink, --ink-soft,
   --ink-mute, --gold-ink, --line-*). Dark surfaces re-declare those tokens
   rather than each component re-stating its own dark variant, so a component
   dropped onto navy adapts automatically instead of rendering navy-on-navy.
   The light block comes second so a light card nested in a dark section wins.
   ------------------------------------------------------------------------- */
.sect--dark,.hero,.cta,.footer,.drawer,.header,.card--dark,.market,.ppanel__card{
  --ink:        #FFFFFF;
  --ink-soft:   rgba(255,255,255,.78);
  --ink-mute:   rgba(255,255,255,.62);
  --gold-ink:   var(--gold);
  --line-light:   rgba(255,255,255,.12);
  --line-light-2: rgba(255,255,255,.22);
}
.sect--light,.sect--bone,.card:not(.card--dark){
  --ink:        #03142B;
  --ink-soft:   rgba(3,20,43,.72);
  --ink-mute:   rgba(3,20,43,.62);
  --gold-ink:   #8A6220;
  --line-light:   rgba(3,20,43,.10);
  --line-light-2: rgba(3,20,43,.16);
}

/* ---------- 3. LAYOUT ---------------------------------------------------- */
.container{
  width:100%; max-width:var(--container);
  margin-inline:auto; padding-inline:var(--gutter);
}
.container--narrow{ max-width:var(--container-narrow); }

.sect{ position:relative; padding-block: clamp(64px, 8vw, 128px); }
.sect--tight{ padding-block: clamp(48px, 5.5vw, 88px); }
.sect--light{ background:var(--surface-light); color:var(--ink); }
.sect--bone{  background:var(--surface-light-alt); color:var(--ink); }
.sect--dark{  background:var(--navy); color:var(--on-dark); }
.sect--dark  h1,.sect--dark h2,.sect--dark h3,.sect--dark h4{ color:var(--on-dark); }

/* Navy mesh — the brand's own gradient recipe */
.sect--dark::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(120% 90% at 78% 12%, var(--navy-lift) 0%, rgba(20,50,87,0) 58%),
    radial-gradient(100% 80% at 8% 92%, var(--navy-deep) 0%, rgba(10,36,68,0) 60%);
}
.sect--dark > *{ position:relative; z-index:1; }

/* Strata — the signature ground-layer motif from the brand pack */
.strata{
  position:absolute; inset:0; pointer-events:none;
  background:url("../img/strata-gold.svg") center/cover no-repeat;
  opacity:.9;
}
.strata--navy{ background-image:url("../img/strata-navy.svg"); opacity:.55; }
.strata--fade{ -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%);
               mask-image:linear-gradient(180deg,#000 0%,#000 55%,transparent 100%); }

.grid{ display:grid; gap:var(--s-5); }
.grid--2{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1000px){ .grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:860px){  .grid--3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){
  .grid--2,.grid--3,.grid--4{ grid-template-columns:minmax(0,1fr); }
}

.split{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,80px); align-items:start; }
.split--lead{ grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
@media (max-width:900px){ .split,.split--lead{ grid-template-columns:minmax(0,1fr); gap:var(--s-6); } }

/* ---------- 4. TYPOGRAPHY ------------------------------------------------ */
.eyebrow{
  display:flex; align-items:flex-start; gap:var(--s-3);
  font-size:var(--fs-eyebrow); font-weight:600;
  letter-spacing:var(--track-eyebrow); text-transform:uppercase;
  color:var(--gold-ink); margin-bottom:var(--s-5);
  line-height:1.5;
}
.sect--dark .eyebrow,.hero .eyebrow,.cta .eyebrow{ color:var(--gold); }
/* Sits on the first line's optical centre, so a wrapped eyebrow keeps its rule
   beside the opening words instead of floating mid-block. */
.eyebrow::before{
  content:""; width:28px; height:2px; margin-top:.62em;
  background:currentColor; flex:none; opacity:.85;
}
.sect-head--center .eyebrow{ align-items:center; }
.eyebrow--plain::before{ display:none; }

.display{ font-size:var(--fs-display); font-weight:300; line-height:1.07; letter-spacing:-.022em; }
.h1{ font-size:var(--fs-h1); font-weight:300; line-height:1.1; letter-spacing:-.02em; }
.h2{ font-size:var(--fs-h2); font-weight:300; line-height:1.15; letter-spacing:-.018em; }
.h3{ font-size:var(--fs-h3); font-weight:600; line-height:1.28; letter-spacing:-.01em; }
.h4{ font-size:var(--fs-h4); font-weight:600; line-height:1.35; letter-spacing:-.006em; }
.display b,.h1 b,.h2 b{ font-weight:700; }
.gold{ color:var(--gold-ink); }
.sect--dark .gold,.hero .gold,.cta .gold,.footer .gold{ color:var(--gold); }

.goldgrad{
  background:linear-gradient(92deg,var(--gold-dk) 0%,var(--gold) 22%,var(--gold-lt) 50%,var(--gold) 78%,var(--gold-dk) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.lead{ font-size:var(--fs-lead); font-weight:300; line-height:1.6; color:var(--ink-soft); max-width:var(--measure); }
.sect--dark .lead,.hero .lead,.cta .lead{ color:var(--on-dark-soft); }
.prose{ max-width:var(--measure); color:var(--ink-soft); }
.sect--dark .prose{ color:var(--on-dark-soft); }
.prose p + p{ margin-top:var(--s-4); }
.muted{ color:var(--ink-mute); }
.sect--dark .muted{ color:var(--on-dark-mute); }

.rule{ width:120px; height:3px; background:var(--gold); border:0; margin:var(--s-6) 0; }
.rule--thin{ height:1px; background:var(--line-gold); width:100%; margin:0; }

.sect-head{ max-width:760px; margin-bottom:clamp(40px,4.5vw,72px); }
.sect-head--center{ margin-inline:auto; text-align:center; }
.sect-head--center .eyebrow{ justify-content:center; }
.sect-head--center .lead{ margin-inline:auto; }
.sect-head .lead{ margin-top:var(--s-5); }

/* Numbered index label — 01 / 02 / 03 */
.idx{
  font-size:var(--fs-micro); font-weight:700; letter-spacing:.2em;
  color:var(--gold-ink); font-variant-numeric:tabular-nums;
}
.sect--dark .idx,.drawer .idx{ color:var(--gold); }

/* ---------- 5. BUTTONS --------------------------------------------------- */
.btn{
  --btn-bg:transparent; --btn-fg:var(--gold-ink); --btn-bd:currentColor;
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:var(--s-3); min-height:52px; padding:15px 30px;
  font-size:var(--fs-micro); font-weight:700;
  letter-spacing:var(--track-btn); text-transform:uppercase;
  color:var(--btn-fg); background:var(--btn-bg);
  border:1.5px solid var(--btn-bd); border-radius:var(--radius);
  cursor:pointer; text-align:center;
  transition:color var(--t-base) var(--ease), background-color var(--t-base) var(--ease),
             border-color var(--t-base) var(--ease), transform var(--t-fast) var(--ease),
             box-shadow var(--t-base) var(--ease);
  touch-action:manipulation;
}
.btn svg{ flex:none; width:16px; height:16px; transition:transform var(--t-base) var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn:active{ transform:translateY(1px); }

.btn--primary{ --btn-bg:var(--gold); --btn-fg:var(--navy); --btn-bd:var(--gold); }
.btn--primary:hover{ --btn-bg:var(--gold-lt); --btn-bd:var(--gold-lt); box-shadow:var(--e-gold); }

.btn--ghost{ --btn-fg:var(--ink); --btn-bd:var(--line-light-2); }
.btn--ghost:hover{ --btn-bd:var(--gold-ink); --btn-fg:var(--gold-ink); background:rgba(200,154,70,.07); }

.sect--dark .btn--ghost,.hero .btn--ghost,.cta .btn--ghost,.drawer .btn--ghost,.header .btn--ghost{
  --btn-fg:#fff; --btn-bd:var(--line-dark-2);
}
.sect--dark .btn--ghost:hover,.hero .btn--ghost:hover,.cta .btn--ghost:hover,
.drawer .btn--ghost:hover,.header .btn--ghost:hover{
  --btn-bd:var(--gold); --btn-fg:var(--gold-lt); background:rgba(200,154,70,.12);
}

.btn--sm{ min-height:44px; padding:11px 22px; font-size:.75rem; }
/* Narrow phones: trim the inline padding so long labels stay on one line */
@media (max-width:480px){ .btn{ padding-inline:20px; } }
.btn--block{ width:100%; }
.btn[disabled],.btn[aria-disabled="true"]{ opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }

/* Text link with animated gold underline */
.tlink{
  display:inline-flex; align-items:center; gap:var(--s-2);
  font-size:var(--fs-small); font-weight:600; letter-spacing:.06em;
  color:var(--gold-ink); padding-bottom:3px; position:relative;
  min-height:32px;
}
.sect--dark .tlink,.cta .tlink{ color:var(--gold); }
.tlink::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:1.5px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform var(--t-base) var(--ease);
}
.tlink:hover::after,.tlink:focus-visible::after{ transform:scaleX(1); }
.tlink svg{ width:14px; height:14px; transition:transform var(--t-base) var(--ease); }
.tlink:hover svg{ transform:translateX(3px); }

/* ---------- 6. HEADER / NAV ---------------------------------------------- */
.header{
  position:fixed; inset:0 0 auto 0; z-index:var(--z-nav);
  height:var(--header-h);
  display:flex; align-items:center;
  background:rgba(3,20,43,0);
  border-bottom:1px solid transparent;
  transition:background-color var(--t-base) var(--ease),
             border-color var(--t-base) var(--ease),
             height var(--t-base) var(--ease);
}
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:var(--s-5); width:100%; }

/* Glass state once scrolled, or on any page that doesn't open with a dark hero */
.header.is-stuck,
.header.is-solid{
  background:rgba(3,20,43,.82);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line-dark);
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .header.is-stuck,.header.is-solid{ background:rgba(3,20,43,.97); }
}
@media (min-width:901px){ .header.is-stuck{ height:68px; } }

.brand{ display:flex; align-items:center; flex:none; min-height:44px; }
.brand img{ height:26px; width:auto; }
@media (max-width:420px){ .brand img{ height:22px; } }

.nav{ display:flex; align-items:center; gap:clamp(2px,1vw,14px); }
.nav__link{
  position:relative; display:inline-flex; align-items:center; min-height:44px;
  padding:0 10px; font-size:var(--fs-small); font-weight:500;
  color:rgba(255,255,255,.8); letter-spacing:.01em;
  transition:color var(--t-fast) var(--ease);
  white-space:nowrap;
}
.nav__link::after{
  content:""; position:absolute; left:10px; right:10px; bottom:12px; height:1.5px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform var(--t-base) var(--ease);
}
.nav__link:hover{ color:#fff; }
.nav__link:hover::after{ transform:scaleX(1); }
.nav__link[aria-current="page"]{ color:#fff; font-weight:600; }
.nav__link[aria-current="page"]::after{ transform:scaleX(1); }

.header__cta{ flex:none; }
@media (max-width:1120px){ .nav,.header__cta{ display:none; } }

.burger{
  display:none; width:48px; height:48px; margin-right:-12px;
  align-items:center; justify-content:center; flex:none; color:#fff;
}
.burger span{
  display:block; width:22px; height:1.5px; background:currentColor; position:relative;
  transition:background-color var(--t-fast) var(--ease);
}
.burger span::before,.burger span::after{
  content:""; position:absolute; left:0; width:22px; height:1.5px; background:currentColor;
  transition:transform var(--t-base) var(--ease), top var(--t-base) var(--ease);
}
.burger span::before{ top:-7px; }
.burger span::after{  top:7px; }
.burger[aria-expanded="true"] span{ background-color:transparent; }
.burger[aria-expanded="true"] span::before{ top:0; transform:rotate(45deg); }
.burger[aria-expanded="true"] span::after{  top:0; transform:rotate(-45deg); }
@media (max-width:1120px){ .burger{ display:flex; } }

/* Mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:var(--z-drawer);
  background:var(--navy);
  display:flex; flex-direction:column;
  padding: calc(var(--header-h) + 24px) var(--gutter) max(32px, env(safe-area-inset-bottom));
  overflow-y:auto; overscroll-behavior:contain;
  opacity:0; visibility:hidden; transform:translateY(-8px);
  transition:opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease),
             visibility 0s linear var(--t-base);
}
.drawer.is-open{ opacity:1; visibility:visible; transform:none; transition-delay:0s; }
.drawer__list{ display:flex; flex-direction:column; }
.drawer__link{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
  min-height:60px; padding:12px 0;
  font-size:clamp(1.25rem,5vw,1.75rem); font-weight:300; color:#fff;
  border-bottom:1px solid var(--line-dark);
}
.drawer__link[aria-current="page"]{ color:var(--gold-lt); font-weight:500; }
.drawer__link .idx{ font-size:.6875rem; opacity:.7; }
.drawer__foot{ margin-top:auto; padding-top:var(--s-7); }
.drawer__foot .btn{ width:100%; }
.drawer__meta{ margin-top:var(--s-5); font-size:var(--fs-small); color:var(--on-dark-mute); line-height:2; }
/* Pointer targets clear the WCAG 2.2 (2.5.8) 24x24 minimum */
.drawer__meta a{ display:inline-flex; align-items:center; min-height:32px; }
.drawer__meta a:hover{ color:var(--gold-lt); }
body.nav-open{ overflow:hidden; }

/* ---------- 7. HERO ------------------------------------------------------ */
.hero{
  position:relative; background:var(--navy); color:#fff;
  padding-top: calc(var(--header-h) + clamp(56px,8vw,104px));
  padding-bottom: clamp(56px,7vw,104px);
  overflow:hidden; isolation:isolate;
}
.hero::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(120% 90% at 78% 8%,  var(--navy-lift) 0%, rgba(20,50,87,0) 58%),
    radial-gradient(100% 80% at 4% 96%,  var(--navy-deep) 0%, rgba(10,36,68,0) 62%),
    linear-gradient(160deg,#04182F 0%,var(--navy) 55%,#020D1D 100%);
}
.hero .strata{ z-index:-1; }
.hero__mark{
  position:absolute; right:-9%; top:50%; width:min(760px,62vw);
  transform:translateY(-50%); opacity:.07; z-index:-1; pointer-events:none;
}
@media (max-width:900px){ .hero__mark{ right:-26%; width:110vw; opacity:.05; } }

.hero__inner{ position:relative; z-index:1; max-width:900px; }
.hero .display{ margin-bottom:var(--s-6); }
.hero__lead{ font-size:var(--fs-lead); font-weight:300; color:var(--on-dark-soft); max-width:64ch; line-height:1.65; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:var(--s-4); margin-top:clamp(32px,4vw,48px); }
@media (max-width:480px){ .hero__actions .btn{ width:100%; } }

.hero--page{ padding-bottom: clamp(48px,6vw,88px); }
.hero--page .h1{ max-width:22ch; }

/* Breadcrumb */
.crumbs{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--s-2);
  font-size:var(--fs-micro); color:var(--on-dark-mute); margin-bottom:var(--s-5); }
.crumbs a{ display:inline-flex; align-items:center; min-height:28px; color:var(--on-dark-soft); }
.crumbs a:hover{ color:var(--gold-lt); }
.crumbs li{ display:flex; align-items:center; gap:var(--s-2); min-height:28px; }
.crumbs li + li::before{ content:"/"; color:rgba(255,255,255,.3); }

/* ---------- 8. STAT BAR -------------------------------------------------- */
.stats{
  border-top:1px solid var(--line-dark);
  background:rgba(255,255,255,.02);
}
.stats__grid{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.stat{ padding:clamp(24px,3vw,40px) clamp(16px,2.4vw,32px); border-left:1px solid var(--line-dark); }
.stat:first-child{ border-left:0; padding-left:0; }
.stat__num{
  font-size:clamp(1.625rem,1.2rem + 1.8vw,2.5rem); font-weight:300; color:#fff;
  line-height:1.1; letter-spacing:-.02em; font-variant-numeric:tabular-nums;
}
.stat__num i{ font-style:normal; color:var(--gold); }
.stat__label{
  margin-top:var(--s-3); font-size:var(--fs-micro); font-weight:500;
  color:var(--on-dark-mute); line-height:1.5; letter-spacing:.02em;
}
@media (max-width:820px){
  .stats__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat{ border-left:0; padding-inline:0; border-top:1px solid var(--line-dark); }
  .stat:nth-child(-n+2){ border-top:0; }
  .stat:nth-child(even){ padding-left:var(--s-5); border-left:1px solid var(--line-dark); }
}

/* ---------- 9. CARDS ----------------------------------------------------- */
.card{
  position:relative; display:flex; flex-direction:column;
  padding:clamp(24px,2.6vw,36px);
  background:var(--surface-card); border:1px solid var(--line-light);
  border-radius:var(--radius); overflow:hidden;
  transition:transform var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease),
             border-color var(--t-base) var(--ease), background-color var(--t-base) var(--ease);
}
/* Gold border-draw on hover: a top rule that wipes in from the left */
.card::before{
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:linear-gradient(90deg,var(--gold-dk),var(--gold),var(--gold-lt));
  transform:scaleX(0); transform-origin:left;
  transition:transform var(--t-slow) var(--ease-out);
}
.card:hover,.card:focus-within{
  transform:translateY(-4px); box-shadow:var(--e-3); border-color:rgba(200,154,70,.34);
}
.card:hover::before,.card:focus-within::before{ transform:scaleX(1); }
.card__icon{
  width:44px; height:44px; margin-bottom:var(--s-5); color:var(--gold-ink);
  display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(200,154,70,.34); border-radius:var(--radius);
  background:rgba(200,154,70,.07); flex:none;
  transition:background-color var(--t-base) var(--ease), color var(--t-base) var(--ease),
             border-color var(--t-base) var(--ease);
}
.card__icon svg{ width:20px; height:20px; }
.card:hover .card__icon{ background:var(--gold); color:var(--navy); border-color:var(--gold); }
.card .h4{ margin-bottom:var(--s-3); }
.card p{ color:var(--ink-soft); font-size:var(--fs-small); line-height:1.7; }
.card__foot{ margin-top:auto; padding-top:var(--s-5); }

.card--dark{
  background:var(--surface-card-dark); border-color:var(--line-dark);
}
.card--dark p{ color:var(--on-dark-soft); }
.card--dark .card__icon{ color:var(--gold); border-color:rgba(200,154,70,.4); background:rgba(200,154,70,.1); }
.card--dark:hover,.card--dark:focus-within{
  border-color:rgba(200,154,70,.45); background:rgba(255,255,255,.06); box-shadow:none;
}

/* Whole-card link target */
.card--link .card__stretch::after{ content:""; position:absolute; inset:0; }

/* ---------- 10. FOUR PILLARS (tabs) -------------------------------------- */
.pillars{ display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(24px,3.5vw,64px); align-items:start; }
@media (max-width:940px){ .pillars{ grid-template-columns:minmax(0,1fr); } }

.pillars__tabs{ display:flex; flex-direction:column; border-top:1px solid var(--line-dark); }
.ptab{
  position:relative; display:grid; grid-template-columns:auto 1fr auto; align-items:center;
  gap:var(--s-4); width:100%; min-height:76px; padding:18px var(--s-4) 18px 0;
  text-align:left; color:var(--on-dark-soft);
  border-bottom:1px solid var(--line-dark);
  transition:color var(--t-base) var(--ease), padding-left var(--t-base) var(--ease);
}
.ptab::before{
  content:""; position:absolute; left:0; top:-1px; bottom:-1px; width:2px;
  background:var(--gold); transform:scaleY(0); transform-origin:top;
  transition:transform var(--t-base) var(--ease-out);
}
.ptab:hover{ color:#fff; padding-left:14px; }
.ptab[aria-selected="true"]{ color:#fff; padding-left:18px; }
.ptab[aria-selected="true"]::before{ transform:scaleY(1); }
.ptab__idx{ font-size:var(--fs-micro); font-weight:700; letter-spacing:.16em; color:var(--gold);
  font-variant-numeric:tabular-nums; opacity:.6; transition:opacity var(--t-base) var(--ease); }
.ptab[aria-selected="true"] .ptab__idx{ opacity:1; }
.ptab__name{ font-size:var(--fs-h4); font-weight:500; letter-spacing:-.005em; line-height:1.3; }
.ptab__chev{ width:16px; height:16px; color:var(--gold); opacity:0; transform:translateX(-6px);
  transition:opacity var(--t-base) var(--ease), transform var(--t-base) var(--ease); }
.ptab[aria-selected="true"] .ptab__chev{ opacity:1; transform:none; }

.ppanel[hidden]{ display:none; }
.ppanel{ animation:panelIn var(--t-slow) var(--ease-out) both; }
@keyframes panelIn{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }

.ppanel__card{
  position:relative; padding:clamp(28px,3.4vw,52px);
  background:rgba(255,255,255,.045); border:1px solid var(--line-dark);
  border-radius:var(--radius-lg); overflow:hidden;
}
.ppanel__card::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:url("../img/contour-gold.svg") center/cover no-repeat;
  -webkit-mask-image:linear-gradient(215deg,#000,transparent 62%);
  mask-image:linear-gradient(215deg,#000,transparent 62%);
}
.ppanel__card > *{ position:relative; z-index:1; }
.ppanel__num{
  font-size:clamp(2.5rem,6vw,4rem); font-weight:200; line-height:1;
  color:rgba(200,154,70,.44); letter-spacing:-.03em; margin-bottom:var(--s-4);
  font-variant-numeric:tabular-nums;
}
.ppanel__tags{ display:flex; flex-wrap:wrap; gap:var(--s-2); margin-top:var(--s-6); }
.tag{
  display:inline-flex; align-items:center; min-height:32px; padding:6px 14px;
  font-size:var(--fs-micro); font-weight:500; letter-spacing:.02em;
  color:var(--on-dark-soft); background:rgba(255,255,255,.05);
  border:1px solid var(--line-dark); border-radius:999px;
  transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.tag--light{ color:var(--ink-soft); background:rgba(3,20,43,.03); border-color:var(--line-light-2); }

/* ---------- 11. MARKETS -------------------------------------------------- */
.market{
  position:relative; display:flex; flex-direction:column; justify-content:flex-end;
  min-height:clamp(240px,26vw,300px); padding:clamp(22px,2.4vw,32px);
  background:var(--navy-mid); color:#fff; overflow:hidden;
  border:1px solid var(--line-dark); border-radius:var(--radius);
  transition:transform var(--t-base) var(--ease), border-color var(--t-base) var(--ease);
}
.market::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(110% 100% at 20% 0%, var(--navy-deep) 0%, rgba(10,36,68,0) 70%),
    linear-gradient(165deg,#06203C 0%,var(--navy-mid) 60%,#02101F 100%);
  transition:transform var(--t-slow) var(--ease);
}
.market::after{
  content:""; position:absolute; inset:0; opacity:.36;
  background:url("../img/contour-gold.svg") center/180% no-repeat;
  transition:opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);
}
.market:hover,.market:focus-within{ transform:translateY(-4px); border-color:rgba(200,154,70,.42); }
.market:hover::before{ transform:scale(1.06); }
.market:hover::after{ opacity:.62; transform:translateX(-3%) scale(1.05); }
.market > *{ position:relative; z-index:1; }
.market__icon{ width:34px; height:34px; color:var(--gold); margin-bottom:auto; }
.market__icon svg{ width:100%; height:100%; }
.market .h4{ margin:var(--s-5) 0 var(--s-3); }
.market p{ font-size:var(--fs-small); color:var(--on-dark-soft); line-height:1.65; }

/* ---------- 11b. TEAM ----------------------------------------------------
   Portrait card with a bio that reveals over the photo on click. The photo
   slot degrades to a gold monogram on navy if the image is missing, so an
   unreplaced portrait reads as deliberate rather than broken.
   ------------------------------------------------------------------------- */
.team-grid{
  display:grid; gap:clamp(20px,2.4vw,32px);
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  max-width:1100px;
}
/* Two known members shouldn't stretch to fill a 1240px row */
@media (min-width:1080px){ .team-grid{ grid-template-columns:repeat(auto-fit,minmax(300px,340px)); } }

.person{
  position:relative; display:flex; flex-direction:column;
  background:var(--navy); border:1px solid var(--line-dark);
  border-radius:var(--radius-lg); overflow:hidden;
  transition:transform var(--t-base) var(--ease), border-color var(--t-base) var(--ease),
             box-shadow var(--t-base) var(--ease);
}
.person:hover,.person:focus-within{
  transform:translateY(-4px); border-color:rgba(200,154,70,.42); box-shadow:var(--e-3);
}

.person__media{
  position:relative; aspect-ratio:1/1; overflow:hidden;
  background:
    radial-gradient(100% 100% at 30% 10%, var(--navy-deep) 0%, rgba(10,36,68,0) 68%),
    linear-gradient(165deg,#06203C 0%,var(--navy-mid) 60%,#02101F 100%);
}
@supports not (aspect-ratio:1/1){ .person__media{ height:300px; } }
.person__media img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 22%;
  transition:transform var(--t-slow) var(--ease);
}
.person:hover .person__media img{ transform:scale(1.035); }

/* Monogram fallback sits behind the portrait */
.person__mono{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:clamp(3rem,8vw,4.5rem); font-weight:300; letter-spacing:.06em;
  color:rgba(200,154,70,.66);   /* >=3:1 on the card gradient */
}
.person__mono::after{
  content:""; position:absolute; inset:0; opacity:.5;
  background:url("../img/contour-gold.svg") center/170% no-repeat;
}

.person__bio{
  position:absolute; inset:0; z-index:2;
  background:rgba(3,20,43,.96);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  animation:panelIn var(--t-base) var(--ease-out) both;
}
.person__bio[hidden]{ display:none; }
.person__bio-scroll{
  height:100%; overflow-y:auto; overscroll-behavior:contain;
  padding:clamp(18px,2.2vw,26px);
  /* fade the copy out at the bottom edge so a scrollable bio reads as scrollable */
  -webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent 100%);
  mask-image:linear-gradient(180deg,#000 calc(100% - 28px),transparent 100%);
}
.person__bio-scroll::-webkit-scrollbar{ width:4px; }
.person__bio-scroll::-webkit-scrollbar-thumb{ background:rgba(200,154,70,.4); border-radius:2px; }
.person__bio p{ font-size:var(--fs-micro); line-height:1.75; color:var(--on-dark-soft); }
.person__bio p + p{ margin-top:var(--s-3); }
.person__bio b{ color:#fff; font-weight:600; }
.person__bio-lead{
  color:var(--gold)!important; font-weight:500; margin-bottom:var(--s-3);
}
.person__tags{ display:flex; flex-wrap:wrap; gap:6px; margin-top:var(--s-4); }
.person__tags .tag{ min-height:26px; padding:4px 10px; font-size:.75rem; }

.person__foot{
  display:flex; flex-direction:column;
  padding:clamp(18px,2vw,24px);
  border-top:1px solid var(--line-dark);
}
.person__foot .h4{ color:#fff; margin-bottom:4px; }
.person__role{ font-size:var(--fs-small); color:var(--gold); font-weight:500; }
.person__creds{
  margin-top:6px; font-size:var(--fs-micro); font-weight:600;
  letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-mute);
}
.person__actions{
  display:flex; align-items:center; justify-content:space-between; gap:var(--s-4);
  margin-top:var(--s-5);
}
.person__li{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; margin-left:-10px; color:var(--on-dark-soft);
  transition:color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.person__li svg{ width:24px; height:24px; }
.person__li:hover{ color:var(--gold-lt); transform:translateY(-2px); }

.person__toggle{
  display:inline-flex; align-items:center; gap:var(--s-2);
  min-height:44px; padding:8px 4px 8px 12px;
  font-size:var(--fs-micro); font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  color:var(--gold); transition:color var(--t-fast) var(--ease);
}
.person__toggle svg{
  width:18px; height:18px; transition:transform var(--t-base) var(--ease);
}
.person__toggle:hover{ color:var(--gold-lt); }
.person__toggle[aria-expanded="true"] svg{ transform:rotate(180deg); }

/* ---------- 12. METHODOLOGY STEPPER -------------------------------------- */
.stepper__rail{
  position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr));
  gap:var(--s-3); margin-bottom:clamp(32px,4vw,56px);
}
.stepper__rail::before{
  content:""; position:absolute; left:0; right:0; top:23px; height:1px;
  background:var(--line-light-2);
}
.sect--dark .stepper__rail::before{ background:var(--line-dark); }
.stepper__rail::after{
  content:""; position:absolute; left:0; top:23px; height:1px; background:var(--gold);
  width:var(--progress,20%); transition:width var(--t-slow) var(--ease-out);
}
.step{
  position:relative; display:flex; flex-direction:column; align-items:flex-start;
  gap:var(--s-4); text-align:left; color:var(--ink-mute);
  transition:color var(--t-base) var(--ease);
}
.sect--dark .step{ color:var(--on-dark-mute); }
.step__dot{
  position:relative; z-index:1; display:flex; align-items:center; justify-content:center;
  width:46px; height:46px; flex:none; border-radius:50%;
  background:var(--surface-light-alt); border:1px solid var(--line-light-2);
  font-size:var(--fs-micro); font-weight:700; letter-spacing:.06em;
  font-variant-numeric:tabular-nums; color:inherit;
  transition:background-color var(--t-base) var(--ease), border-color var(--t-base) var(--ease),
             color var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.sect--dark .step__dot{ background:var(--navy); border-color:var(--line-dark); }
.step__name{ font-size:var(--fs-small); font-weight:600; letter-spacing:-.005em; line-height:1.35; }
.step:hover{ color:var(--ink); }
.sect--dark .step:hover{ color:#fff; }
.step:hover .step__dot{ border-color:var(--gold); transform:scale(1.04); }
.step[aria-selected="true"]{ color:var(--ink); }
.sect--dark .step[aria-selected="true"]{ color:#fff; }
.step[aria-selected="true"] .step__dot{ background:var(--gold); border-color:var(--gold); color:var(--navy); }
.step[aria-selected="true"] .step__name{ font-weight:700; }

.steppanel[hidden]{ display:none; }
.steppanel{ animation:panelIn var(--t-slow) var(--ease-out) both; }
.steppanel__grid{ display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,1fr); gap:clamp(24px,4vw,64px); align-items:start; }
@media (max-width:820px){ .steppanel__grid{ grid-template-columns:minmax(0,1fr); gap:var(--s-5); } }
.steppanel__no{
  font-size:clamp(3rem,7vw,5rem); font-weight:200; line-height:.9;
  color:var(--gold-ink); opacity:.5; letter-spacing:-.04em; font-variant-numeric:tabular-nums;
}
.sect--dark .steppanel__no{ color:var(--gold); opacity:.5; }

@media (max-width:760px){
  .stepper__rail{ grid-template-columns:minmax(0,1fr); gap:0; }
  .stepper__rail::before{ left:23px; right:auto; top:0; bottom:0; width:1px; height:auto; }
  .stepper__rail::after{ left:23px; top:0; width:1px; height:var(--progress,20%); }
  .step{ flex-direction:row; align-items:center; gap:var(--s-4); min-height:64px; padding:8px 0; }
}

/* ---------- 13. EDGE / FEATURE ROWS -------------------------------------- */
.edge{
  display:grid; grid-template-columns:auto 1fr; gap:var(--s-5);
  padding:clamp(24px,2.6vw,32px) 0; border-top:1px solid var(--line-light);
  align-items:start;
}
.sect--dark .edge{ border-top-color:var(--line-dark); }
.edge__num{
  font-size:var(--fs-micro); font-weight:700; letter-spacing:.16em; color:var(--gold-ink);
  font-variant-numeric:tabular-nums; padding-top:5px;
}
.sect--dark .edge__num{ color:var(--gold); }
.edge .h4{ margin-bottom:var(--s-3); }
.edge p{ color:var(--ink-soft); font-size:var(--fs-small); max-width:60ch; }
.sect--dark .edge p{ color:var(--on-dark-soft); }

/* Value / principle list */
.checks{ display:grid; gap:var(--s-4); }
.checks li{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-4); align-items:start; }
.checks svg{ width:20px; height:20px; color:var(--gold-ink); flex:none; margin-top:3px; }
.sect--dark .checks svg{ color:var(--gold); }
.checks span{ color:var(--ink-soft); font-size:var(--fs-small); line-height:1.7; }
.sect--dark .checks span{ color:var(--on-dark-soft); }

/* Pull quote / guiding principle */
.quote{
  position:relative; padding:clamp(32px,4vw,56px) clamp(24px,4vw,64px);
  border-left:3px solid var(--gold);
  background:linear-gradient(90deg, rgba(200,154,70,.08), rgba(200,154,70,0) 70%);
}
.quote p{
  font-size:clamp(1.25rem,1rem + 1.1vw,1.875rem); font-weight:300; line-height:1.4;
  letter-spacing:-.012em; color:var(--ink);
}
.sect--dark .quote{ background:linear-gradient(90deg, rgba(200,154,70,.11), rgba(200,154,70,0) 70%); }
.sect--dark .quote p{ color:#fff; }
.quote cite{
  display:block; margin-top:var(--s-5); font-style:normal;
  font-size:var(--fs-micro); font-weight:600; letter-spacing:var(--track-eyebrow);
  text-transform:uppercase; color:var(--gold-ink);
}
.sect--dark .quote cite{ color:var(--gold); }

/* ---------- 14. CTA BAND ------------------------------------------------- */
.cta{ position:relative; overflow:hidden; background:var(--navy); color:#fff; isolation:isolate;
      padding-block: clamp(56px,6.5vw,104px); }
.cta::before{
  content:""; position:absolute; inset:0; z-index:-2;
  background:
    radial-gradient(90% 120% at 88% 10%, var(--navy-lift) 0%, rgba(20,50,87,0) 60%),
    linear-gradient(150deg,#05192F 0%,var(--navy) 60%,#020D1D 100%);
}
.cta .strata{ z-index:-1; opacity:.75; }
.cta h2{ color:#fff; }
.cta__inner{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); gap:clamp(28px,4vw,72px); align-items:center; }
@media (max-width:860px){ .cta__inner{ grid-template-columns:minmax(0,1fr); } }
.cta__actions{ display:flex; flex-direction:column; gap:var(--s-4); }
/* Inline links in the meta line still need a 24px+ pointer target */
.cta__actions p a{ display:inline-flex; align-items:center; min-height:28px; }
.cta__actions p a:hover{ color:var(--gold-lt); }
@media (max-width:520px){ .cta__actions .btn{ width:100%; } }

/* ---------- 15. FORM ----------------------------------------------------- */
.form{ display:grid; gap:var(--s-5); }
.field{ display:flex; flex-direction:column; gap:var(--s-2); }
.field label{
  font-size:var(--fs-micro); font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--ink);
}
.field .req{ color:var(--danger); margin-left:2px; }
.field .hint{ font-size:var(--fs-micro); color:var(--ink-mute); font-weight:400;
  letter-spacing:0; text-transform:none; line-height:1.6; }
.input,.select,.textarea{
  width:100%; min-height:52px; padding:14px 16px;
  font-size:1rem; font-weight:400; color:var(--ink); line-height:1.6;
  background:#fff; border:1px solid var(--line-light-2); border-radius:var(--radius);
  transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease),
             background-color var(--t-fast) var(--ease);
  appearance:none; -webkit-appearance:none;
}
.textarea{ min-height:150px; resize:vertical; }
.select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%2303142B' stroke-width='1.5'%3E%3Cpath d='M4 6.5 8 10.5l4-4'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; background-size:16px;
  padding-right:46px; cursor:pointer;
}
.input::placeholder,.textarea::placeholder{ color:rgba(3,20,43,.4); }
.input:hover,.select:hover,.textarea:hover{ border-color:rgba(3,20,43,.28); }
.input:focus-visible,.select:focus-visible,.textarea:focus-visible{
  outline:none; border-color:var(--gold-dk); box-shadow:0 0 0 3px rgba(200,154,70,.3);
}
.field[data-invalid="true"] .input,
.field[data-invalid="true"] .select,
.field[data-invalid="true"] .textarea{ border-color:var(--danger); background:#FFFBFA; }
.field[data-invalid="true"] .input:focus-visible,
.field[data-invalid="true"] .textarea:focus-visible{ box-shadow:0 0 0 3px rgba(180,35,24,.2); }
.err{
  display:none; align-items:center; gap:6px;
  font-size:var(--fs-micro); font-weight:500; color:var(--danger); line-height:1.5;
}
.err svg{ width:14px; height:14px; flex:none; }
.field[data-invalid="true"] .err{ display:flex; }

.form__row{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--s-5); }
/* Inline links inside form copy still need a 24px+ pointer target */
.form p a{ display:inline-flex; align-items:center; min-height:28px; }
@media (max-width:640px){ .form__row{ grid-template-columns:minmax(0,1fr); } }

.consent{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-3); align-items:start; }
.consent input[type="checkbox"]{
  width:24px; height:24px; margin-top:1px; accent-color:var(--gold-dk); cursor:pointer; flex:none;
}
.consent label{ text-transform:none; letter-spacing:0; font-weight:400;
  font-size:var(--fs-small); color:var(--ink-soft); line-height:1.65; }

.form__status{ display:none; align-items:flex-start; gap:var(--s-3);
  padding:16px 18px; border-radius:var(--radius); font-size:var(--fs-small); line-height:1.6; }
.form__status svg{ width:20px; height:20px; flex:none; margin-top:1px; }
.form__status.is-visible{ display:flex; }
.form__status[data-tone="success"]{ background:rgba(27,127,90,.08); border:1px solid rgba(27,127,90,.32); color:#12503A; }
.form__status[data-tone="error"]{   background:rgba(180,35,24,.06);  border:1px solid rgba(180,35,24,.32);  color:#7A1811; }

.form__summary{
  display:none; padding:18px 20px; border-radius:var(--radius);
  background:rgba(180,35,24,.06); border:1px solid rgba(180,35,24,.34); color:#7A1811;
}
.form__summary.is-visible{ display:block; }
.form__summary p{ font-weight:700; font-size:var(--fs-small); margin-bottom:var(--s-2); }
.form__summary ul{ display:grid; gap:4px; }
.form__summary a{ font-size:var(--fs-small); text-decoration:underline; text-underline-offset:3px; }

.btn .spinner{
  width:16px; height:16px; border:2px solid currentColor; border-top-color:transparent;
  border-radius:50%; animation:spin .7s linear infinite; display:none;
}
.btn.is-loading .spinner{ display:block; }
.btn.is-loading .btn__arrow{ display:none; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* Contact detail panel */
.contact-list{ display:grid; gap:var(--s-6); }
.contact-item{ display:grid; grid-template-columns:auto 1fr; gap:var(--s-4); align-items:start; }
.contact-item > svg{ width:20px; height:20px; color:var(--gold); flex:none; margin-top:4px; }
.contact-item dt{
  font-size:var(--fs-micro); font-weight:600; letter-spacing:var(--track-eyebrow);
  text-transform:uppercase; color:var(--gold); margin-bottom:6px;
}
.contact-item dd{ font-size:var(--fs-body); color:#fff; line-height:1.6; font-weight:300; }
.contact-item dd a{ display:inline-flex; align-items:center; min-height:28px;
  border-bottom:1px solid rgba(255,255,255,.24); padding-bottom:1px;
  transition:border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.contact-item dd a:hover{ color:var(--gold-lt); border-bottom-color:var(--gold-lt); }

/* ---------- 16. FOOTER --------------------------------------------------- */
.footer{ position:relative; background:#020D1D; color:var(--on-dark-soft); overflow:hidden; }
.footer::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(90% 120% at 12% 0%, rgba(10,36,68,.9) 0%, rgba(10,36,68,0) 62%);
}
.footer > *{ position:relative; z-index:1; }
.footer__top{ padding-block: clamp(48px,6vw,88px); }
.footer__grid{ display:grid; grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr)); gap:clamp(28px,3.5vw,56px); }
@media (max-width:900px){ .footer__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .footer__grid{ grid-template-columns:minmax(0,1fr); gap:var(--s-7); } }
.footer__brand img{ height:34px; width:auto; margin-bottom:var(--s-5); }
.footer__tag{ font-size:var(--fs-small); color:var(--on-dark-mute); max-width:40ch; line-height:1.75; }
.footer h2{
  font-size:var(--fs-micro); font-weight:600; letter-spacing:var(--track-eyebrow);
  text-transform:uppercase; color:var(--gold); margin-bottom:var(--s-5);
}
.footer__links{ display:grid; gap:var(--s-3); }
.footer__links a{
  font-size:var(--fs-small); color:var(--on-dark-soft);
  display:inline-flex; min-height:30px; align-items:center;
  transition:color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.footer__links a:hover{ color:#fff; transform:translateX(3px); }
.footer__bar{
  border-top:1px solid var(--line-dark); padding-block:var(--s-5);
  display:flex; flex-wrap:wrap; gap:var(--s-4); align-items:center; justify-content:space-between;
  font-size:var(--fs-micro); color:var(--on-dark-mute);
}
.footer__bar nav{ display:flex; flex-wrap:wrap; gap:var(--s-5); }
.footer__bar a{ display:inline-flex; align-items:center; min-height:28px; }
.footer__bar a:hover{ color:#fff; }

/* ---------- 17. SCROLL REVEAL -------------------------------------------- */
[data-reveal]{
  opacity:0; transform:translate3d(0,22px,0);
  transition:opacity var(--t-reveal) var(--ease-out), transform var(--t-reveal) var(--ease-out);
  transition-delay:var(--reveal-delay,0ms);
}
[data-reveal].is-in{ opacity:1; transform:none; }
[data-reveal="fade"]{ transform:none; }
[data-reveal="left"]{  transform:translate3d(-24px,0,0); }
[data-reveal="right"]{ transform:translate3d(24px,0,0); }
[data-reveal="scale"]{ transform:translate3d(0,16px,0) scale(.975); }
/* If JS never runs, content must still be visible */
.no-js [data-reveal]{ opacity:1; transform:none; }

/* ---------- 18. UTILITIES ------------------------------------------------ */
.mt-4{ margin-top:var(--s-4); }  .mt-5{ margin-top:var(--s-5); }
.mt-6{ margin-top:var(--s-6); }  .mt-7{ margin-top:var(--s-7); }
.mt-8{ margin-top:var(--s-8); }
.mb-5{ margin-bottom:var(--s-5); } .mb-6{ margin-bottom:var(--s-6); }
.stack-5 > * + *{ margin-top:var(--s-5); }
.stack-6 > * + *{ margin-top:var(--s-6); }

/* ---------- 19. MOTION PREFERENCES --------------------------------------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms!important; animation-iteration-count:1!important;
    transition-duration:.01ms!important; scroll-behavior:auto!important;
  }
  [data-reveal]{ opacity:1!important; transform:none!important; }
}

/* ---------- 20. PRINT ---------------------------------------------------- */
@media print{
  .header,.drawer,.burger,.cta,.skip-link,.strata,.hero__mark{ display:none!important; }
  body{ color:#000; background:#fff; font-size:11pt; }
  .sect--dark,.hero,.footer{ background:#fff!important; color:#000!important; }
  .sect--dark *,.hero *,.footer *{ color:#000!important; }
  .hero{ padding-top:24px; }
  .ppanel[hidden],.steppanel[hidden]{ display:block!important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
}
