/* ============================================================
   YELLOWSTONE ADVISORS — Design System
   Forest. River. Compass. Ridgeline.
   ============================================================ */

/* ------------------------------------------------------------
   DESIGN TOKENS — three tiers. See DESIGN-SYSTEM.md.
   TIER 1 primitives · TIER 2 semantic roles · TIER 3 component.
   Product code should read TIER 2/3, never raw values.
   ------------------------------------------------------------ */
:root{
  /* ===== TIER 1 — PRIMITIVES ===== */
  /* Brand palette (from guidelines) */
  --green:        #0d351f;
  --green-deep:   #0d351f;   /* legacy alias of --green (to be retired) */
  --green-soft:   #15402a;
  --green-line:   #1e4d33;
  --green-card-dark: #0d2719; /* dark-theme card surface */
  --gold:         #a5882e;   /* canonical primary gold */
  --gold-bright:  #c9a23f;   /* accent / hover gold */
  --sage:         #757a6b;
  --sage-soft:    #9aa091;
  --cream:        #efeade;
  --stone:        #d8d6c9;
  --paper:        #f6f3ea;
  --ink:          #16241c;
  --ink-soft:     #44514a;
  --white:        #ffffff;

  /* Channel tokens — for rgb(... / alpha) */
  --green-rgb: 13 53 31;
  --cream-rgb: 239 234 222;
  --gold-rgb:  165 136 46;
  --gold-bright-rgb: 201 162 63;
  --paper-rgb: 246 243 234;
  --white-rgb: 255 255 255;
  --black-rgb: 0 0 0;   /* neutral shadow base (no brand hue) */

  /* ===== TIER 2 — SEMANTIC ROLES (light context) ===== */
  /* Text */
  --text-primary:    var(--ink);
  --text-secondary:  var(--ink-soft);
  --text-tertiary:   var(--sage);
  --text-on-accent:  var(--white);   /* light text on gold/accent surfaces */
  --text-heading:    var(--green);
  /* Surfaces */
  --surface:         var(--paper);
  --surface-raised:  var(--white);
  --surface-sunken:  rgb(var(--green-rgb) / .03);
  --surface-accent:  var(--gold);
  /* Lines / fills */
  --separator:        rgb(var(--green-rgb) / .1);
  --separator-strong: rgb(var(--green-rgb) / .18);
  --fill-hover:       rgb(var(--green-rgb) / .05);
  --fill-subtle:      rgb(var(--green-rgb) / .04);
  /* Accent / interaction */
  --accent:        var(--gold);
  --accent-hover:  var(--gold-bright);
  --on-accent:     var(--white);   /* text on gold buttons/surfaces = white */
  --focus-ring:    var(--gold-bright);
  --overlay-scrim: rgb(var(--green-rgb) / .5);

  /* Legacy semantic aliases (still referenced) */
  --bg:           var(--surface);
  --fg:           var(--text-primary);

  /* ===== TIER 3 — COMPONENT TOKENS ===== */
  --btn-radius:        var(--radius-pill);
  --btn-primary-bg:    var(--accent);
  --btn-primary-hover: var(--accent-hover);
  --card-bg:           var(--surface-raised);
  --card-border:       var(--separator);
  --card-radius:       var(--radius-md);
  --card-radius-media: var(--radius-lg);
  --card-shadow:       var(--shadow-lg);

  /* ===== TYPE ===== */
  --font-head: "Archivo", system-ui, sans-serif;   /* canonical heading font, site-wide */
  --font-body: "Open Sans", system-ui, sans-serif;
  --head-weight: 800;
  --head-tracking: -0.01em;
  --head-leading: 1.04;
  /* Ramp */
  --text-2xs: .74rem;  --text-xs: .8rem;   --text-sm: .86rem;
  --text-base: .95rem; --text-md: 1.06rem; --text-lg: 1.18rem; --text-xl: 1.3rem;
  --text-h3: clamp(1.2rem, 2vw, 1.5rem);
  --text-h2: clamp(1.9rem, 3.6vw, 2.9rem);
  --text-h1: clamp(2.2rem, 5vw, 3.7rem);
  /* Leading / weight */
  --leading-tight: 1.12; --leading-snug: 1.25; --leading-body: 1.62; --leading-prose: 1.75;
  --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700; --weight-heading: 800;

  /* ===== SPACING (8pt) ===== */
  --space-1:4px;  --space-2:8px;  --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px;
  --maxw: 1240px;
  --measure: 760px;   /* max line-length for long-form headings & body copy */
  --gutter: clamp(20px, 5vw, 72px);
  --sect-y: clamp(72px, 9vw, 140px);
  --space-section: clamp(72px, 9vw, 140px);
  --space-section-sm: clamp(56px, 7vw, 96px);
  --gap-card: clamp(34px, 4vw, 52px);
  --pad-card: 30px 28px;

  /* ===== RADIUS ===== */
  --radius: 4px;        /* legacy alias of --radius-xs */
  --radius-xs: 4px; --radius-sm: 8px; --radius-md: 12px; --radius-lg: 16px;
  --radius-pill: 999px; --radius-full: 50%;

  /* ===== ELEVATION (green-tinted) ===== */
  --shadow-xs: 0 6px 16px -8px   rgb(var(--green-rgb) / .4);
  --shadow-sm: 0 8px 30px -18px  rgb(var(--green-rgb) / .45);
  --shadow-md: 0 24px 60px -28px rgb(var(--green-rgb) / .5);
  --shadow-lg: 0 40px 70px -44px rgb(var(--green-rgb) / .45);
  --shadow-xl: 0 50px 100px -55px rgb(var(--green-rgb) / .6);
  --shadow-drawer: -30px 0 80px -20px rgb(var(--green-rgb) / .6);

  /* ===== MOTION ===== */
  --dur-fast: .25s; --dur-base: .4s; --dur-slow: .55s; --dur-reveal: .8s;
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
}

[data-type="grotesk"]{
  --font-head: "Archivo", system-ui, sans-serif;
  --head-weight: 800;
  --head-tracking: -0.02em;
}

/* ===== TIER 2 re-point — dark / homepage (.mq) context ===== */
[data-theme="dark"]{
  --text-primary:    var(--cream);
  --text-secondary:  rgb(var(--cream-rgb) / .8);
  --text-tertiary:   rgb(var(--cream-rgb) / .6);
  --text-heading:    var(--cream);
  --surface:         var(--green);
  --surface-raised:  var(--green-card-dark);
  --surface-sunken:  rgb(var(--cream-rgb) / .05);
  --separator:        rgb(var(--cream-rgb) / .14);
  --separator-strong: rgb(var(--cream-rgb) / .2);
  --fill-hover:       rgb(var(--cream-rgb) / .08);
  --fill-subtle:      rgb(var(--cream-rgb) / .05);
}

*{ box-sizing:border-box; }
/* native smooth anchor jumps; scroll-padding clears the fixed header */
html{ scroll-behavior:smooth; scroll-padding-top:100px; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--fg);
  background:var(--bg);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

h1,h2,h3,h4,h5{
  font-family:var(--font-head);
  font-weight:var(--head-weight);
  letter-spacing:var(--head-tracking);
  line-height:var(--head-leading);
  margin:0;
  color:var(--green);
}
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
/* Global keyboard focus indicator (was previously homepage-only) */
:where(a, button, input, textarea, select, [tabindex]):focus-visible{
  outline:2px solid var(--focus-ring); outline-offset:2px; border-radius:3px;
}
img{ max-width:100%; display:block; }
ul{ margin:0; padding:0; list-style:none; }

.wrap{ max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
.measure{ max-width:62ch; }

/* Reading-measure cap: long-form headings & body copy never exceed a comfortable
   line length on wide screens. :where() keeps specificity at 0 so any explicit
   max-width (hero, .measure, .sect-head, pagehero, columns/cards…) always wins,
   and it's a no-op on mobile/tablet where the column is already < --measure. */
:where(.wrap) :where(h1, h2, h3, p){ max-width:var(--measure); }

/* ---- Eyebrow / kicker ---- */
.kicker{
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body);
  font-size:.78rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold);
}
.kicker::before{ display:none; }
.kicker.center::after{ display:none; }
.kicker.compass::before{ display:none; }
.kicker .star{ width:15px; height:15px; flex:none; }

/* ---- Buttons ---- */
.btn{
  --bx:1.4em; --by:.92em;
  display:inline-flex; align-items:center; gap:.6em;
  font-family:var(--font-body); font-weight:700; font-size:.95rem; letter-spacing:.01em;
  padding:var(--by) var(--bx);
  border-radius:var(--btn-radius); border:1.5px solid transparent;
  cursor:pointer; transition:all .35s var(--ease); position:relative; overflow:hidden;
  white-space:nowrap;
}
.btn svg{ width:1.05em; height:1.05em; transition:transform .35s var(--ease); }
.btn:hover svg{ transform:translateX(4px); }
.btn-primary{ background:var(--gold); color:var(--on-accent); }
.btn-primary:hover{ background:var(--gold-bright); }
.btn-dark{ background:var(--green); color:var(--cream); }
.btn-dark:hover{ background:var(--green-soft); }
.btn-ghost{ background:transparent; color:var(--green); border-color:var(--separator-strong); }
.btn-ghost:hover{ border-color:var(--green); background:var(--fill-subtle); }
.btn-ghost-light{ background:transparent; color:var(--cream); border-color:rgb(var(--cream-rgb) / .35); }
.btn-ghost-light:hover{ border-color:var(--cream); background:rgb(var(--cream-rgb) / .08); }

.linkmore{
  display:inline-flex; align-items:center; gap:.5em;
  font-weight:700; font-size:.92rem; color:var(--green);
  letter-spacing:.01em;
}
.linkmore svg{ width:16px; height:16px; transition:transform .3s var(--ease); }
.linkmore:hover svg{ transform:translateX(4px); }
.linkmore.gold{ color:var(--gold); }

/* ============================================================
   TOP UTILITY BAR
   ============================================================ */
.util{
  background:var(--green-deep); color:var(--cream);
  font-size:.78rem; letter-spacing:.02em;
  border-bottom:1px solid rgb(var(--white-rgb) / .07);
}
.util .wrap{ display:flex; align-items:center; justify-content:space-between; min-height:38px; gap:18px; }
.util-left{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.util-item{ display:inline-flex; align-items:center; gap:.5em; color:rgb(var(--cream-rgb) / .78); }
.util-item svg{ width:14px; height:14px; color:var(--gold); }
.util-item b{ color:var(--cream); font-weight:600; }
.util-right{ display:flex; align-items:center; gap:18px; }
.util a:hover{ color:var(--gold-bright); }
/* cert label: abbreviation on mobile, full spelled-out text on desktop (same size) */
.util-item .cert-full{ display:none; }
.util-item .cert-abbr{ display:inline; }
@media (min-width:1024px){
  .util-item .cert-full{ display:inline; }
  .util-item .cert-abbr{ display:none; }
}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgb(var(--paper-rgb) / .86);
  backdrop-filter:blur(14px) saturate(150%);
  -webkit-backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--separator);
  transition:box-shadow .4s var(--ease), background .4s var(--ease);
}
.nav.scrolled{ box-shadow:var(--shadow-sm); }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; min-height:74px; gap:20px; }
.nav-logo{ display:flex; align-items:center; }
.nav-logo img{ height:42px; width:auto; }
.nav-menu{ display:flex; align-items:center; gap:4px; }
.nav-item{ position:relative; }
.nav-link{
  display:inline-flex; align-items:center; gap:.4em;
  font-weight:600; font-size:.94rem; color:var(--ink);
  padding:.7em .95em; border-radius:18px;
  transition:color .25s var(--ease), background .25s var(--ease);
}
.nav-link .chev{ width:11px; height:11px; opacity:.55; transition:transform .3s var(--ease); }
.nav-item:hover .nav-link,
.nav-item:focus-within .nav-link{ color:var(--green); background:var(--fill-hover); }
.nav-item:hover .chev,
.nav-item:focus-within .chev,
.nav-item.dd-open .chev{ transform:rotate(180deg); }
/* role=button triggers (e.g. Services) read as interactive */
.nav-link[role="button"]{ cursor:pointer; }
.nav-actions{ display:flex; align-items:center; gap:14px; }

/* dropdown */
.dropdown{
  position:absolute; top:calc(100% + 10px); left:0;
  min-width:288px; background:var(--surface-raised);
  border:1px solid var(--separator); border-radius:18px;
  box-shadow:var(--shadow-md);
  padding:8px; opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .28s var(--ease), transform .28s var(--ease), visibility .28s;
}
.nav-item:hover .dropdown,
.nav-item:focus-within .dropdown,
.nav-item.dd-open .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.dropdown::before{
  content:""; position:absolute; top:-10px; left:0; right:0; height:10px;
}
.dd-link{
  display:flex; align-items:center; gap:12px;
  padding:11px 12px; border-radius:10px; transition:background .2s var(--ease);
}
.dd-link:hover,
.dd-link[aria-current="page"]{ background:var(--cream); }
.dd-ico{ width:34px; height:34px; flex:none; border-radius:6px;
  background:var(--green); color:var(--gold-bright);
  display:grid; place-items:center; transition:background .25s var(--ease); }
.dd-ico svg{ width:18px; height:18px; }
.dd-link:hover .dd-ico,
.dd-link[aria-current="page"] .dd-ico{ background:var(--gold); color:var(--green-deep); }
.dd-txt b{ display:block; font-size:.92rem; font-weight:700; color:var(--green); }
.dd-txt span{ display:block; font-size:.8rem; color:var(--ink-soft); line-height:1.45; margin-top:2px; }

.nav-burger{ display:none; background:none; border:0; cursor:pointer; padding:8px; }
.nav-burger span{ display:block; width:24px; height:2px; background:var(--green); margin:5px 0; transition:.3s var(--ease); }

/* mobile drawer */
.drawer{ display:none; }
@media (max-width:1024px){
  .nav-menu, .nav-actions .btn{ display:none; }
  .nav-burger{ display:block; }
  .drawer{
    display:block; position:fixed; inset:0 0 0 auto; width:min(380px,86vw);
    background:var(--green); color:var(--cream); z-index:200;
    transform:translateX(100%); transition:transform .4s var(--ease);
    padding:90px 30px 40px; overflow-y:auto;
  }
  .drawer.open{ transform:translateX(0); box-shadow:var(--shadow-drawer); }
  .drawer-scrim{ position:fixed; inset:0; background:var(--overlay-scrim); z-index:199; opacity:0; visibility:hidden; transition:.4s; }
  .drawer-scrim.open{ opacity:1; visibility:visible; }
  .drawer a{ display:block; padding:13px 0; font-size:1.05rem; font-weight:600; border-bottom:1px solid rgb(var(--white-rgb) / .1); }
  .drawer-label{ display:block; padding:13px 0 4px; font-size:1.05rem; font-weight:600; }
  .drawer .sub a{ font-size:.95rem; font-weight:500; color:var(--stone); padding:9px 0 9px 16px; border:0; }
  .drawer-close{ position:absolute; top:24px; right:24px; background:none; border:0; color:var(--cream); font-size:26px; cursor:pointer; }
}

/* ============================================================
   MOTIF PRIMITIVES — contour, compass
   ============================================================ */
.topo{ display:none; }

/* section heading block */
.sect-head{ max-width:680px; }
.sect-head.center{ margin-inline:auto; text-align:center; }
.sect-title{ font-size:clamp(1.9rem,3.6vw,2.9rem); margin-top:.5em; }
.sect-intro{ margin-top:1.1em; color:var(--ink-soft); font-size:1.06rem; }

/* compass star marker used inline */
.compass{ color:var(--gold); }

/* ============================================================
   HERO — shared
   ============================================================ */
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2.4rem; }

/* (removed: legacy TRUST band — superseded by the certifications panel) */

/* ============================================================
   STORY
   ============================================================ */
.story{ padding-block:var(--sect-y); position:relative; overflow:hidden; }
.story .topo{ color:rgb(var(--green-rgb) / .05); }
.story-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,76px); align-items:center; position:relative; z-index:1; }
.story-media{ position:relative; }
.story-photo{
  aspect-ratio:4/5; border-radius:20px; overflow:hidden; position:relative;
  background:linear-gradient(150deg,var(--green-soft),var(--green-deep));
  border:0;
  box-shadow:var(--shadow-xl);
}
.story-photo img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:left center; }
.story-stat-card{
  position:absolute; right:-22px; bottom:-26px; background:var(--gold-bright); color:var(--green-deep);
  border-radius:10px; padding:22px 26px; box-shadow:var(--shadow-lg); max-width:230px;
}
.story-stat-card .big{ font-family:var(--font-head); font-weight:var(--head-weight); font-size:2.6rem; line-height:1; letter-spacing:-.02em; }
.story-stat-card .cap{ font-size:.86rem; font-weight:600; margin-top:.4em; }
.story-body p + p{ margin-top:1.2em; }
.story-body .lead{ font-size:1.18rem; color:var(--green); font-weight:600; }
.story-pillars{ display:flex; gap:10px; margin-top:1.8em; flex-wrap:wrap; }
.pillar{ display:inline-flex; align-items:center; gap:8px; background:var(--cream); border:1px solid var(--separator); border-radius:999px; padding:.55em 1em; font-size:.86rem; font-weight:600; color:var(--green); }
.pillar svg{ width:15px; height:15px; color:var(--gold); }
@media (max-width:880px){ .story-stat-card{ right:14px; bottom:-26px; } }

/* ============================================================
   CAPABILITIES
   ============================================================ */
.caps{ padding-block:var(--sect-y); background:var(--cream); position:relative; overflow:hidden; }
.caps .topo{ color:rgb(var(--green-rgb) / .05); }
.caps .wrap{ position:relative; z-index:1; }
.caps-head{ display:grid; grid-template-columns:1fr 1fr; grid-template-areas:"eyebrow eyebrow" "head body"; align-items:start; column-gap:clamp(30px,5vw,64px); row-gap:clamp(12px,1.6vw,20px); margin-bottom:clamp(34px,4vw,56px); }
.caps-head > .kicker{ grid-area:eyebrow; }
.caps-head > .sect-title{ grid-area:head; margin:0; }
.caps-head > .measure{ grid-area:body; }
.caps-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(20px,2.4vw,30px); }
.cap-card{
  position:relative; background:var(--surface-raised); border:1px solid var(--separator); border-radius:12px;
  padding:34px 30px 30px; overflow:hidden;
  transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease);
}
.cap-card::after{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold); transition:width .5s var(--ease); }
.cap-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); border-color:var(--separator-strong); }
.cap-card:hover::after{ width:100%; }
.cap-num{ font-family:var(--font-head); font-weight:var(--head-weight); font-size:.95rem; color:var(--gold); letter-spacing:.1em; }
.cap-ico{ width:60px; height:60px; border-radius:12px; background:var(--green); color:var(--gold-bright); display:grid; place-items:center; margin:14px 0 20px; transition:background .4s var(--ease), color .4s var(--ease); }
.cap-ico svg{ width:30px; height:30px; }
.cap-card:hover .cap-ico{ background:var(--gold); color:var(--green-deep); }
.cap-card h3{ font-size:1.4rem; }
.cap-card p{ color:var(--ink-soft); margin-top:.7em; font-size:.97rem; }
.cap-list{ margin:16px 0 22px; display:flex; flex-direction:column; gap:8px; }
.cap-list li{ display:flex; gap:9px; font-size:.9rem; color:var(--ink); }
.cap-list svg{ width:16px; height:16px; color:var(--gold); flex:none; margin-top:3px; }

/* ============================================================
   APPROACH (the winding path)
   ============================================================ */
.approach{ padding-block:var(--sect-y); background:var(--green-deep); color:var(--cream); position:relative; overflow:hidden; }
.approach .topo{ color:rgb(var(--cream-rgb) / .05); }
.approach .wrap{ position:relative; z-index:1; }
.approach .sect-title{ color:var(--cream); }
.approach .sect-intro{ color:rgb(var(--cream-rgb) / .78); }
.approach-track{ position:relative; margin-top:clamp(40px,5vw,70px); }
.approach-path{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.approach-path path{ fill:none; stroke:var(--gold); stroke-width:2.5; stroke-linecap:round; stroke-dasharray:var(--len); stroke-dashoffset:var(--len); }
.approach-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(96px,10vw,150px) clamp(24px,3vw,44px); position:relative; z-index:1; }
.astep{ text-align:center; display:flex; flex-direction:column; padding-inline:clamp(16px,1.8vw,30px); }
.astep-dot{
  width:64px; height:64px; margin:0 auto 18px; border-radius:50%;
  background:var(--green); border:2px solid var(--green-line); color:var(--gold-bright);
  display:grid; place-items:center; position:relative; transition:.45s var(--ease);
}
.astep-dot svg{ width:28px; height:28px; }
.astep.lit .astep-dot{ background:var(--gold); border-color:var(--gold); color:var(--green-deep); transform:scale(1.06); }
.astep .num{ font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-bright); font-weight:700; }
.astep h4{ color:var(--cream); font-size:1.18rem; margin:.5em 0 .4em; }
.astep p{ color:rgb(var(--cream-rgb) / .7); font-size:.9rem; }
/* bottom row: icon pushed to the bottom so the spline encloses the text (desktop 3-col only) */
@media (min-width:821px){ .astep--icon-bottom .astep-dot{ order:3; margin:auto auto 0; } .astep--icon-bottom h4{ margin-top:0; } .astep--icon-bottom p{ margin-bottom:18px; } }
@media (max-width:820px){ .approach-steps{ grid-template-columns:repeat(2,1fr); gap:40px 24px; } .approach-path{ display:none; } }
@media (max-width:520px){ .approach-steps{ grid-template-columns:1fr; } }

/* ============================================================
   SDVOSB ADVANTAGE
   ============================================================ */
.adv{ padding-block:var(--sect-y); position:relative; overflow:hidden; }
.adv .topo{ color:rgb(var(--green-rgb) / .05); }
.adv-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(36px,5vw,80px); align-items:center; position:relative; z-index:1; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---- gold panels: subtle Yellowstone illustration dissolving into the gold ---- */
.adv-panel, .why-panel{ position:relative; overflow:hidden; }
.adv-panel::after, .why-panel::after{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:url(/assets/ysp.webp) left center / cover no-repeat;
  opacity:.55; mix-blend-mode:luminosity;
  -webkit-mask-image:linear-gradient(to bottom, #000 0%, #000 40%, rgb(0 0 0 / 0) 84%);
          mask-image:linear-gradient(to bottom, #000 0%, #000 40%, rgb(0 0 0 / 0) 84%);
}
.adv-panel > *, .why-panel > *{ position:relative; z-index:1; }

/* ---- ripple (concentric golden circles, icon in centre sphere) ---- */
.split-media:has(.ripple){ display:flex; align-items:center; justify-content:center; }
.ripple{ position:relative; width:min(360px,82%); aspect-ratio:1/1; margin-inline:auto; display:grid; place-items:center; overflow:visible; }
.ripple-ring{
  position:absolute; border-radius:50%; width:var(--s); height:var(--s);
  background:rgb(var(--gold-bright-rgb) / var(--o));
  animation:ripplePulse 4.5s var(--ease) infinite;
}
.ripple-ring:nth-of-type(1){ --s:138%; --o:.07; animation-delay:0s; }
.ripple-ring:nth-of-type(2){ --s:106%; --o:.15; animation-delay:.3s; }
.ripple-ring:nth-of-type(3){ --s:77%;  --o:.27; animation-delay:.6s; }
.ripple-ring:nth-of-type(4){ --s:52%;  --o:.45; animation-delay:.9s; }
.ripple-core{
  position:relative; z-index:6; width:30%; aspect-ratio:1/1; border-radius:50%;
  background:var(--gold-bright); display:grid; place-items:center;
  box-shadow:0 14px 30px rgb(var(--black-rgb) / .28);
}
.ripple-core svg{ width:46%; height:46%; color:var(--white); }
.ripple .adv-chip{ z-index:7; animation:chipFloat 4s var(--ease) infinite; }
.ripple .adv-chip.c1{ animation-delay:0s; }
.ripple .adv-chip.c2{ animation-delay:.9s; }
.ripple .adv-chip.c3{ animation-delay:.5s; }
.ripple .adv-chip.c4{ animation-delay:1.3s; }
@keyframes ripplePulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.04); } }
@keyframes chipFloat{ 0%,100%{ translate:0 0; } 50%{ translate:0 -7px; } }
@media (prefers-reduced-motion: reduce){ .ripple-ring, .ripple .adv-chip{ animation:none; } }
.adv-chip{ position:absolute; background:var(--surface-raised); border:1px solid var(--separator); border-radius:999px; padding:.5em .95em; font-size:.78rem; font-weight:700; color:var(--green); box-shadow:var(--shadow-sm); display:flex; align-items:center; gap:7px; white-space:nowrap; }
.adv-chip svg{ width:14px; height:14px; color:var(--gold); }
.adv-chip.c1{ top:4%; left:50%; transform:translateX(-50%); }
.adv-chip.c2{ top:50%; right:-6%; transform:translateY(-50%); }
.adv-chip.c3{ bottom:4%; left:50%; transform:translateX(-50%); }
.adv-chip.c4{ top:50%; left:-6%; transform:translateY(-50%); }
.adv h2{ font-size:clamp(1.9rem,3.6vw,2.9rem); }
.adv-benefits{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:1.9em; }
.adv-benefit{ display:flex; gap:13px; align-items:flex-start; }
.adv-benefit .bk{ width:38px; height:38px; flex:none; border-radius:8px; background:var(--cream); display:grid; place-items:center; color:var(--green); }
.adv-benefit .bk svg{ width:19px; height:19px; }
.adv-benefit b{ font-size:.97rem; color:var(--green); line-height:1.2; display:block; }
.adv-benefit p{ font-size:.86rem; color:var(--ink-soft); margin-top:.2em; }
@media (max-width:920px){ .adv-grid{ grid-template-columns:1fr; } }
@media (max-width:560px){ .adv-benefits{ grid-template-columns:1fr; } }


/* ============================================================
   TEAMING CTA BAND
   ============================================================ */
.teaming{ padding-block:clamp(60px,8vw,110px); position:relative; overflow:hidden; background:var(--green); color:var(--cream); }
.teaming .topo{ color:rgb(var(--cream-rgb) / .06); }
.teaming .wrap{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,70px); align-items:center; }
.teaming h2{ color:var(--cream); font-size:clamp(2rem,4vw,3.1rem); }
.teaming .lede{ color:rgb(var(--cream-rgb) / .82); margin-top:1.1em; font-size:1.08rem; }
.teaming-modes{ display:grid; gap:12px; }
.tmode{ display:flex; gap:16px; background:rgb(var(--cream-rgb) / .06); border:1px solid rgb(var(--cream-rgb) / .12); border-radius:10px; padding:18px 20px; transition:.4s var(--ease); }
.tmode:hover{ background:rgb(var(--cream-rgb) / .1); border-color:rgb(var(--gold-bright-rgb) / .5); }
.tmode .tk{ width:42px; height:42px; flex:none; border-radius:8px; background:var(--gold); color:var(--green-deep); display:grid; place-items:center; }
.tmode .tk svg{ width:21px; height:21px; }
.tmode b{ font-size:1rem; color:var(--cream); }
.tmode p{ font-size:.86rem; color:rgb(var(--cream-rgb) / .72); margin-top:.2em; }
@media (max-width:820px){ .teaming .wrap{ grid-template-columns:1fr; } }


/* ============================================================
   FAQ + CONTACT
   ============================================================ */
.contact{ padding-block:var(--sect-y); background:var(--green-deep); color:var(--cream); position:relative; overflow:hidden; }
.contact .topo{ color:rgb(var(--cream-rgb) / .05); }
.contact .wrap{ position:relative; z-index:1; display:grid; grid-template-columns:1fr 1fr; gap:clamp(40px,6vw,90px); }
.contact h2{ color:var(--cream); font-size:clamp(1.9rem,3.6vw,2.9rem); }
.contact .kicker{ color:var(--gold-bright); }
.contact .lede{ color:rgb(var(--cream-rgb) / .8); margin-top:1.1em; }

.faq{ margin-top:2rem; }
.faq-item{ border-bottom:1px solid rgb(var(--cream-rgb) / .16); }
.faq-q{ width:100%; text-align:left; background:none; border:0; color:var(--cream); cursor:pointer;
  padding:20px 40px 20px 0; font-size:1.05rem; font-weight:600; font-family:var(--font-body); position:relative; display:flex; gap:12px; }
.faq-q .qn{ color:var(--gold-bright); font-weight:700; }
.faq-q .pm{ position:absolute; right:0; top:22px; width:18px; height:18px; transition:transform .4s var(--ease); }
.faq-item.open .faq-q .pm{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .5s var(--ease); }
.faq-a-inner{ padding:0 30px 22px 30px; color:rgb(var(--cream-rgb) / .78); font-size:.95rem; }

.contact-form{ background:rgb(var(--cream-rgb) / .05); border:1px solid rgb(var(--cream-rgb) / .13); border-radius:14px; padding:clamp(26px,3vw,40px); }
.contact-form h3{ color:var(--cream); font-size:1.4rem; }
.cf-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:22px; }
.cf-field{ display:flex; flex-direction:column; gap:7px; }
.cf-field.full{ grid-column:1/-1; }
.cf-field label{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sage-soft); font-weight:600; }
.cf-field input, .cf-field textarea{
  background:rgb(var(--green-rgb) / .4); border:1px solid rgb(var(--cream-rgb) / .18); border-radius:8px;
  padding:13px 15px; color:var(--cream); font-family:var(--font-body); font-size:.95rem; transition:.3s var(--ease);
}
.cf-field input:focus, .cf-field textarea:focus{ outline:none; border-color:var(--gold); background:rgb(var(--green-rgb) / .6); }
.cf-field textarea{ resize:vertical; min-height:110px; }
.contact-form .btn{ width:100%; justify-content:center; margin-top:22px; }
.cf-note{ font-size:.78rem; color:var(--sage-soft); margin-top:14px; text-align:center; }
@media (max-width:860px){ .contact .wrap{ grid-template-columns:1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
.footer{ background:var(--green); color:var(--cream); padding-block:clamp(50px,6vw,80px) 30px; position:relative; overflow:hidden; }
.footer .topo{ color:rgb(var(--cream-rgb) / .04); }
.footer .wrap{ position:relative; z-index:1; }
.foot-top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1fr; gap:40px; padding-bottom:46px; border-bottom:1px solid rgb(var(--cream-rgb) / .14); }
.foot-brand img{ height:54px; margin-bottom:20px; }
.foot-brand p{ color:rgb(var(--cream-rgb) / .72); font-size:.92rem; max-width:34ch; }
.foot-seal{ width:60px; height:60px; border-radius:50%; border:1.5px solid var(--gold); display:grid; place-items:center; color:var(--gold-bright); background:rgb(var(--gold-rgb) / .07); text-align:center; }
.foot-seal svg{ width:30px; height:30px; }
.foot-col h4{ color:var(--cream); font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:18px; }
.foot-col a, .foot-col p{ display:block; color:rgb(var(--cream-rgb) / .74); font-size:.92rem; padding:6px 0; transition:color .25s var(--ease); }
.foot-col a:hover{ color:var(--gold-bright); }
.foot-bottom{ display:flex; align-items:center; justify-content:space-between; gap:20px; padding-top:26px; flex-wrap:wrap; }
.foot-bottom p{ font-size:.84rem; color:rgb(var(--cream-rgb) / .6); }
.foot-legal{ display:flex; gap:22px; }
.foot-legal a{ font-size:.84rem; color:rgb(var(--cream-rgb) / .6); }
.foot-legal a:hover{ color:var(--gold-bright); }
.foot-social{ display:flex; gap:10px; }
.foot-social a{ width:36px; height:36px; border-radius:50%; border:1px solid rgb(var(--cream-rgb) / .2); display:grid; place-items:center; color:var(--cream); transition:.3s var(--ease); }
.foot-social a:hover{ background:var(--gold); color:var(--green-deep); border-color:var(--gold); }
.foot-social svg{ width:16px; height:16px; }
.foot-seals{ display:flex; align-items:flex-start; gap:14px; margin-top:22px; }
/* Official SBA certification badges — shown intact (no recolor/effects per brand guidelines) */
.foot-seals .cert-badge{ height:92px; width:auto; margin:0; flex:none; border-radius:4px; }
@media (max-width:880px){ .foot-top{ grid-template-columns:1fr 1fr; gap:34px; } }
@media (max-width:520px){ .foot-top{ grid-template-columns:1fr; } }

/* ============================================================
   CERTIFICATION SEALS  (injected SVG)
   ============================================================ */
.cert-seal{ width:62px; height:62px; flex:none; --cs-gold:var(--gold); --cs-sub:var(--green); }
.cert-seal svg{ width:100%; height:100%; display:block; }
.cert-seal.on-light{ --cs-gold:var(--gold); --cs-sub:var(--green); }
.cert-seal .cs-ring{ fill:none; stroke:var(--cs-gold); }
.cert-seal .cs-tick{ stroke:var(--cs-gold); opacity:.55; }
.cert-seal .cs-star{ fill:var(--cs-gold); }
.cert-seal .cs-big{ fill:var(--cs-gold); font-family:var(--font-head); font-weight:800; }
.cert-seal .cs-sub{ fill:var(--cs-sub); font-family:var(--font-body); font-weight:700; }
.cert-seal.lg{ width:128px; height:128px; }

/* ============================================================
   CERTIFICATIONS BAND
   ============================================================ */
.creds{ padding-block:clamp(60px,8vw,108px); background:var(--paper); position:relative; overflow:hidden; }
.creds .topo{ color:rgb(var(--green-rgb) / .05); }
.creds .wrap{ position:relative; z-index:1; }
.creds-inner{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,72px); align-items:center; }
.creds-head .sect-title{ font-size:clamp(1.8rem,3.4vw,2.7rem); }
.creds-panel{ background:var(--surface-raised); border:1px solid var(--separator); border-radius:14px; padding:clamp(26px,3vw,38px); box-shadow:var(--shadow-lg); }
.creds-seals{ display:flex; align-items:center; gap:26px; padding-bottom:26px; border-bottom:1px solid var(--separator); }
.creds-seals .cs-text b{ display:block; font-family:var(--font-head); font-weight:800; color:var(--green); font-size:1.02rem; line-height:1.2; }
.creds-seals .cs-text span{ display:block; font-size:.84rem; color:var(--ink-soft); margin-top:4px; }
.creds-codes{ display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; margin-top:24px; }
.ccode .k{ display:block; font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage); font-weight:700; }
.ccode .v{ display:block; font-weight:700; color:var(--green); font-variant-numeric:tabular-nums; letter-spacing:.01em; margin-top:2px; font-size:.96rem; }

/* ---- Surface modifiers (replace per-page inline overrides) ---- */
/* FAQ on a light surface (default .faq-q is cream for dark bands) */
.faq--light .faq-item{ border-color:var(--separator); }
.faq--light .faq-q{ color:var(--green); }
.faq--light .faq-a-inner{ color:var(--text-secondary); }
@media (max-width:860px){ .creds-inner{ grid-template-columns:1fr; } }
@media (max-width:420px){ .creds-seals{ flex-direction:column; align-items:flex-start; gap:16px; } .creds-codes{ grid-template-columns:1fr; } }

/* ============================================================
   MOBILE REFINEMENTS
   ============================================================ */
@media (max-width:600px){
  body{ font-size:16px; }
  .cf-grid{ grid-template-columns:1fr; }
  .util .wrap{ min-height:34px; }
  .util-item{ font-size:.74rem; }
  /* phones: email collapses to just the icon so the SBA-Certified line stays on one line */
  .util-email{ display:none; }
  .util-left{ flex-wrap:nowrap; min-width:0; }
  .util-left .util-item{ white-space:nowrap; }
  .nav-logo img{ height:36px; }
  .hero-cta .btn{ flex:1 1 auto; justify-content:center; }
  .story-stat-card{ position:static; margin-top:16px; max-width:none; }
  .caps-head{ grid-template-columns:1fr; grid-template-areas:"eyebrow" "head" "body"; gap:14px; }
}
@media (max-width:380px){
  .foot-bottom{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* ============================================================
   SCROLL REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease-out), transform .8s var(--ease-out); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
.reveal[data-d="4"]{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1 !important; transform:none !important; }
}

/* responsive type scale for big sections */
@media (max-width:880px){
  .story-grid{ grid-template-columns:1fr; }
  .caps-grid{ grid-template-columns:1fr; }
}

/* ============================================================
   INNER PAGES
   ============================================================ */
/* active nav */
.nav-link[aria-current="page"]{ color:var(--green); }
.nav-link[aria-current="page"]::after{
  content:""; position:absolute; left:.95em; right:.95em; bottom:.35em; height:2px;
  background:var(--gold); border-radius:2px;
}
.nav-item{ position:relative; }

/* ---- page hero ---- */
.pagehero{ position:relative; overflow:hidden; background:var(--green-deep); color:var(--cream); }
.pagehero .topo{ color:rgb(var(--cream-rgb) / .06); }
.pagehero-inner{ position:relative; z-index:2; padding-block:clamp(54px,8vw,104px) clamp(48px,7vw,88px); }
.breadcrumb{ display:flex; align-items:center; gap:9px; font-size:.82rem; color:rgb(var(--cream-rgb) / .66); margin-bottom:1.5rem; flex-wrap:wrap; }
.breadcrumb a{ color:rgb(var(--cream-rgb) / .66); transition:color .25s var(--ease); }
.breadcrumb a:hover{ color:var(--gold-bright); }
.breadcrumb .sep{ width:14px; height:14px; opacity:.5; }
.breadcrumb .cur{ color:var(--cream); font-weight:600; }
.pagehero .kicker{ color:var(--gold-bright); }
.pagehero h1{ color:var(--cream); font-size:clamp(2.2rem,5vw,3.7rem); max-width:28ch; margin-top:1rem; }
.pagehero .lede{ color:rgb(var(--cream-rgb) / .82); font-size:clamp(1.02rem,1.4vw,1.2rem); margin-top:1.3rem; max-width:58ch; }
.pagehero-cta{ display:flex; flex-wrap:wrap; gap:14px; margin-top:2.1rem; }
.pagehero-ico{ width:74px; height:74px; border-radius:16px; background:rgb(var(--cream-rgb) / .1); border:1px solid rgb(var(--cream-rgb) / .16); display:grid; place-items:center; color:var(--gold-bright); margin-bottom:1.6rem; }
.pagehero-ico svg{ width:38px; height:38px; }

/* ---- generic section ---- */
.section{ padding-block:var(--sect-y); position:relative; overflow:hidden; }
.section.alt{ background:var(--cream); }
.section.dark{ background:var(--green-deep); color:var(--cream); }
.section.dark .sect-title, .section.dark h2, .section.dark h3{ color:var(--cream); }
.section.dark .sect-intro, .section.dark p{ color:rgb(var(--cream-rgb) / .8); }
.section.dark .kicker{ color:var(--gold-bright); }
.section .topo{ color:rgb(var(--green-rgb) / .05); }
.section.dark .topo{ color:rgb(var(--cream-rgb) / .05); }
.section .wrap{ position:relative; z-index:1; }

/* ---- split (text + media) ---- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(34px,5vw,76px); align-items:center; }
.split.media-left{ direction:rtl; }
.split.media-left > *{ direction:ltr; }
.split-body p{ color:var(--ink-soft); }
.split-body p + p{ margin-top:1.1em; }
.split-body .lead{ font-size:1.16rem; color:var(--green); font-weight:600; margin-top:1.1em; }
.split-media{ position:relative; }
.split-figure{
  position:relative; border-radius:12px; overflow:hidden; aspect-ratio:4/3;
  background:linear-gradient(150deg,var(--green-soft),var(--green-deep));
  border:1px solid var(--separator-strong); box-shadow:var(--shadow-xl);
}
.split-figure img{ width:100%; height:100%; object-fit:cover; }
.split-figure.contain{ background:linear-gradient(160deg,#fff,var(--cream)); }
.split-figure.contain img{ object-fit:contain; padding:9%; }
.split-badge{ position:absolute; left:-18px; bottom:-20px; background:var(--gold-bright); color:var(--green-deep); border-radius:10px; padding:18px 22px; box-shadow:var(--shadow-md); max-width:220px; }
.split-badge .big{ font-family:var(--font-head); font-weight:var(--head-weight); font-size:2.1rem; line-height:1; }
.split-badge .cap{ font-size:.82rem; font-weight:600; margin-top:.35em; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } .split.media-left{ direction:ltr; } .split-badge{ left:14px; } }

/* ---- feature grid ---- */
.feature-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(34px,4vw,52px); }
.feature-grid.cols-2{ grid-template-columns:repeat(2,1fr); }
.feature{ background:var(--surface-raised); border:1px solid var(--separator); border-radius:12px; padding:30px 28px; transition:transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s var(--ease); position:relative; overflow:hidden; }
.section.alt .feature{ background:var(--paper); }
.feature::after{ content:""; position:absolute; left:0; top:0; height:3px; width:0; background:var(--gold); transition:width .5s var(--ease); }
.feature:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); border-color:var(--separator-strong); }
.feature:hover::after{ width:100%; }
.feature-ico{ width:52px; height:52px; border-radius:11px; background:var(--green); color:var(--gold-bright); display:grid; place-items:center; margin-bottom:18px; transition:background .4s var(--ease), color .4s var(--ease); }
.feature-ico svg{ width:26px; height:26px; }
.feature:hover .feature-ico{ background:var(--gold); color:var(--green-deep); }
.feature h3{ font-size:1.2rem; }
.feature p{ color:var(--ink-soft); margin-top:.55em; font-size:.95rem; }
@media (max-width:900px){ .feature-grid, .feature-grid.cols-2{ grid-template-columns:1fr; } }

/* ---- checklist (two-column ticks) ---- */
.checklist{ display:grid; grid-template-columns:1fr 1fr; gap:12px 26px; margin-top:1.6em; }
.checklist li{ display:flex; gap:11px; font-size:.97rem; color:var(--ink); }
.checklist svg{ width:19px; height:19px; color:var(--gold); flex:none; margin-top:3px; }
.section.dark .checklist li{ color:rgb(var(--cream-rgb) / .9); }
@media (max-width:560px){ .checklist{ grid-template-columns:1fr; } }

/* ---- stat row ---- */
.stat-row{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgb(var(--green-rgb) / .14); border:1px solid var(--separator); border-radius:12px; overflow:hidden; margin-top:clamp(30px,4vw,48px); }
.section.dark .stat-row{ background:rgb(var(--cream-rgb) / .14); border-color:rgb(var(--cream-rgb) / .14); }
.stat-cell{ background:var(--paper); padding:28px 26px; }
.section.alt .stat-cell{ background:var(--cream); }
.section.dark .stat-cell{ background:var(--green-deep); }
.stat-cell .n{ font-family:var(--font-head); font-weight:var(--head-weight); font-size:2.3rem; color:var(--green); letter-spacing:-.02em; }
.section.dark .stat-cell .n{ color:var(--gold-bright); }
.stat-cell .l{ font-size:.86rem; color:var(--ink-soft); margin-top:.3em; }
.section.dark .stat-cell .l{ color:rgb(var(--cream-rgb) / .7); }
@media (max-width:760px){ .stat-row{ grid-template-columns:repeat(2,1fr); } }

/* ---- process (numbered vertical) ---- */
.proc{ display:grid; gap:0; margin-top:clamp(30px,4vw,48px); }
.proc-step{ display:grid; grid-template-columns:auto 1fr; gap:24px; padding:26px 0; border-top:1px solid var(--separator); position:relative; }
.section.dark .proc-step{ border-color:rgb(var(--cream-rgb) / .14); }
.proc-step:last-child{ border-bottom:1px solid var(--separator); }
.section.dark .proc-step:last-child{ border-color:rgb(var(--cream-rgb) / .14); }
.proc-n{ width:52px; height:52px; border-radius:50%; border:2px solid var(--gold); color:var(--gold); font-family:var(--font-head); font-weight:800; display:grid; place-items:center; font-size:1.05rem; flex:none; transition:.4s var(--ease); }
.proc-step:hover .proc-n{ background:var(--gold); color:var(--green-deep); }
.proc-body{ align-self:center; }
.proc-body h4{ font-size:1.22rem; }
.proc-body p{ color:var(--ink-soft); margin-top:.35em; max-width:64ch; }
.section.dark .proc-body p{ color:rgb(var(--cream-rgb) / .75); }

/* ---- team ---- */
.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,420px)); gap:26px; justify-content:center; margin-top:clamp(34px,4vw,52px); max-width:880px; margin-inline:auto; }
.team-card{ background:var(--surface-raised); border:1px solid var(--separator); border-radius:14px; overflow:hidden; transition:transform .45s var(--ease), box-shadow .45s var(--ease); }
.team-card:hover{ transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.team-info{ padding:24px 26px 28px; }
.team-info .role{ font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); font-weight:700; }
.team-info h3{ font-size:1.5rem; margin-top:.3em; }
.team-info p{ color:var(--ink-soft); margin-top:.7em; font-size:.95rem; }
.team-info .team-social{ display:flex; gap:10px; margin-top:18px; }
.team-info .team-social a{ width:36px; height:36px; border-radius:50%; border:1px solid var(--separator-strong); display:grid; place-items:center; color:var(--green); transition:.3s var(--ease); }
.team-info .team-social a:hover{ background:var(--gold); color:var(--green-deep); border-color:var(--gold); }
.team-info .team-social svg{ width:16px; height:16px; }
@media (max-width:680px){ .team-grid{ grid-template-columns:1fr; max-width:420px; } }

/* ---- values / pillar cards ---- */
.value-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(34px,4vw,52px); }
.value-card{ padding:30px 28px; border-radius:12px; background:var(--paper); border:1px solid var(--separator); }
.section.alt .value-card{ background:var(--surface-raised); }
.section.dark .value-card{ background:rgb(var(--cream-rgb) / .06); border-color:rgb(var(--cream-rgb) / .14); }
.section.dark .value-card .vk{ background:var(--gold-bright); color:var(--green-deep); }
.section.dark .value-card p{ color:rgb(var(--cream-rgb) / .8); }
/* dark golden band */
.section.gold{ background:var(--gold); position:relative; overflow:hidden; }
.section.gold .topo{ display:none; }
.section.gold .kicker,
.section.gold .sect-title{ color:var(--white); }
.section.gold .value-card{ background:rgb(var(--white-rgb) / .1); border-color:rgb(var(--white-rgb) / .22); backdrop-filter:blur(4px); }
.section.gold .value-card h3{ color:var(--white); }
.section.gold .value-card p{ color:rgb(var(--white-rgb) / .85); }
.section.gold .value-card .vk{ background:var(--green-deep); color:var(--gold-bright); }
.value-card .vk{ width:54px; height:54px; border-radius:12px; background:var(--green); color:var(--gold-bright); display:grid; place-items:center; margin-bottom:18px; }
.value-card .vk svg{ width:27px; height:27px; }
.value-card h3{ font-size:1.25rem; }
.value-card p{ color:var(--ink-soft); margin-top:.55em; font-size:.95rem; }
@media (max-width:820px){ .value-grid{ grid-template-columns:1fr; } }

/* ---- CTA band ---- */
.cta-band{ position:relative; overflow:hidden; background:var(--green); color:var(--cream); padding-block:clamp(56px,7vw,96px); }
.cta-band .topo{ color:rgb(var(--cream-rgb) / .06); }
.cta-band .wrap{ position:relative; z-index:1; text-align:center; }
.cta-band .compass-top{ width:46px; height:46px; color:var(--gold-bright); margin:0 auto 1.2rem; display:block; }
.cta-band h2{ color:var(--cream); font-size:clamp(1.9rem,4vw,3rem); max-width:20ch; margin-inline:auto; }
.cta-band .lede{ color:rgb(var(--cream-rgb) / .82); margin:1.1em auto 0; max-width:54ch; font-size:1.06rem; }
.cta-band .pagehero-cta, .cta-band .hero-cta{ justify-content:center; margin-top:2rem; }

/* ---- contact info column ---- */
.cinfo{ display:grid; gap:16px; margin-top:1.8rem; }
.cinfo-item{ display:flex; gap:16px; align-items:flex-start; }
.cinfo-item .ck{ width:46px; height:46px; flex:none; border-radius:10px; background:rgb(var(--cream-rgb) / .08); border:1px solid rgb(var(--cream-rgb) / .16); display:grid; place-items:center; color:var(--gold-bright); }
.cinfo-item .ck svg{ width:22px; height:22px; }
.cinfo-item .k{ font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sage-soft); font-weight:700; }
.cinfo-item .v{ color:var(--cream); font-weight:600; margin-top:3px; }
.cinfo-item .v a{ color:var(--cream); }
.cinfo-item .v a:hover{ color:var(--gold-bright); }

/* ---- map placeholder ---- */
.mapwrap{ border-radius:14px; overflow:hidden; border:2px solid var(--white); aspect-ratio:21/9; position:relative; background:var(--green-deep); margin-top:clamp(40px,5vw,64px); }
.mapwrap .topo{ color:rgb(var(--cream-rgb) / .08); }
.mapwrap .map-embed{ position:absolute; inset:0; width:100%; height:100%; border:0; z-index:0; background:var(--green-deep); }
.mapwrap .leaflet-ysa-pin{ overflow:visible; }
.mapwrap .ysa-pin-dot{ position:relative; display:block; width:16px; height:16px; border-radius:50%; background:var(--green-deep); border:3px solid var(--white); box-shadow:0 2px 10px rgb(var(--black-rgb) / .45); }
.mapwrap .ysa-pin-dot::before,
.mapwrap .ysa-pin-dot::after{
  content:""; position:absolute; left:50%; top:50%; width:16px; height:16px; border-radius:50%;
  transform:translate(-50%,-50%); border:2px solid var(--green-deep); pointer-events:none;
  animation:ysa-pulse 2.6s cubic-bezier(.22,.61,.36,1) infinite;
}
.mapwrap .ysa-pin-dot::after{ animation-delay:1.3s; }
@keyframes ysa-pulse{
  0%{ opacity:.55; transform:translate(-50%,-50%) scale(1); }
  100%{ opacity:0; transform:translate(-50%,-50%) scale(3.6); }
}
@media (prefers-reduced-motion: reduce){
  .mapwrap .ysa-pin-dot::before,
  .mapwrap .ysa-pin-dot::after{ animation:none; display:none; }
}
.mapwrap .leaflet-container{ font-family:inherit; }
.mapwrap .map-pin{ position:absolute; left:14px; bottom:14px; z-index:2; display:inline-flex; align-items:center; gap:8px;
  background:rgb(var(--green-rgb) / .82); backdrop-filter:blur(6px); border:1px solid rgb(var(--gold-bright-rgb) / .4);
  border-radius:999px; padding:.5em .95em; color:var(--cream); text-decoration:none; transition:background .25s var(--ease); }
.mapwrap .map-pin:hover{ background:rgb(var(--green-rgb) / .94); }
.mapwrap .map-pin svg{ width:18px; height:18px; color:var(--gold-bright); }
.mapwrap .map-pin span{ font-size:.82rem; font-weight:600; }
