/* ==========================================================================
   VICTORY REGIONAL PUBLIC SAFETY TRAINING & READINESS CENTER
   Design system — tactical / institutional dark theme
   ========================================================================== */

/* ---------- Tokens ---------- */
:root{
  /* Warm-shifted blacks — a neutral grey makes gold read as mud. These carry a
     few degrees of red so the brass has a world to sit in. */
  --black:#0A0908;
  --near:#0C0B09;
  --charcoal:#1C1A17;
  --card:#141210;
  --line:#302C25;

  /* Brass, not flat gold: a highlight, a body and a shadow tone so the accent
     can be given a metallic gradient instead of a single dead fill. */
  --gold:#D8AC52;
  --gold-hi:#F5E2A6;
  --gold-lo:#8A6626;
  --gold-deep:#5E4417;
  --gold-dim:#A88238;

  --silver:#D3D2CE;
  --white:#F8F7F5;
  --red:#B52025;
  --ember:#C6742A;
  --green:#4E7C4E;

  /* Bare triplets so alpha variants stay in sync with the palette above. */
  --gold-rgb:216 172 82;
  --silver-rgb:211 210 206;
  --ink-rgb:12 11 9;

  --metal:linear-gradient(158deg,var(--gold-hi) 0%,var(--gold) 34%,var(--gold-lo) 68%,var(--gold) 100%);
  --glow:0 0 0 1px rgb(216 172 82 / .18), 0 18px 46px -18px rgb(216 172 82 / .34);

  --ff-display:"Oswald","Oswald Fallback",ui-sans-serif,system-ui,sans-serif;
  --ff-body:"Inter","Inter Fallback",ui-sans-serif,system-ui,sans-serif;
  --ff-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1440px;
  --gut:clamp(1rem,4vw,2rem);
  --nav-h:76px;
  --r:.25rem;
  --ease:cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 24px);overflow-x:clip}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:var(--ff-body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--ff-display);font-weight:700;margin:0;text-transform:uppercase;letter-spacing:-.02em;line-height:1.02}
p{margin:0}
ul{margin:0;padding:0;list-style:none}

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

/* ---------- Utilities ---------- */
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.mono{font-family:var(--ff-mono);text-transform:uppercase;letter-spacing:.18em}
.gold{color:var(--gold)}
.silver{color:var(--silver)}
.dim{color:rgb(var(--silver-rgb) / .5)}
.chamfer{clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}
.chamfer-sm{clip-path:polygon(0 0,calc(100% - 9px) 0,100% 9px,100% 100%,9px 100%,0 calc(100% - 9px))}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.skip-link{
  position:absolute;left:8px;top:-60px;z-index:200;background:var(--gold);color:#000;
  padding:.7rem 1.1rem;font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;transition:top .2s;
}
.skip-link:focus{top:8px}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;
}

/* Grid / scanline texture overlay */
.texture{position:relative}
.texture::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background-image:linear-gradient(rgb(var(--silver-rgb)/.028) 1px,transparent 1px),
                   linear-gradient(90deg,rgb(var(--silver-rgb)/.028) 1px,transparent 1px);
  background-size:64px 64px;
}

/* ---------- Reveal on scroll ----------
   Elements are visible by default. The .js-anim class is added by a tiny inline
   script only when IntersectionObserver exists and motion is allowed, so with
   JS off (or if the observer never fires) the content still renders. */
.js-anim .rv{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js-anim .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js-anim .rv{opacity:1;transform:none}}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.nav{
  position:fixed;inset:0 0 auto;z-index:100;height:var(--nav-h);
  background:rgb(12 11 9 / .82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgb(var(--silver-rgb) / .08);
  transition:background .3s,border-color .3s;
}
.nav.scrolled{background:rgb(12 11 9 / .96);border-bottom-color:rgb(var(--gold-rgb) / .22)}
.nav__in{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut);height:100%;display:flex;align-items:center;gap:1.25rem}

.brand{display:flex;align-items:center;gap:.7rem;flex-shrink:0}
.brand__mark{
  width:38px;height:38px;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(145deg,var(--gold),var(--gold-dim));color:#0A0A0A;
  font-family:var(--ff-display);font-weight:700;font-size:1.35rem;line-height:1;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__name{font-family:var(--ff-display);font-weight:700;font-size:1.02rem;letter-spacing:.13em;color:var(--white)}
.brand__sub{font-family:var(--ff-mono);font-size:.5rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.5);margin-top:.28rem}

.nav__links{display:flex;align-items:center;gap:.1rem;margin-left:auto}
.nav__link{
  position:relative;padding:.55rem .7rem;font-family:var(--ff-mono);font-size:.63rem;
  letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--silver-rgb) / .66);
  transition:color .22s;white-space:nowrap;
}
.nav__link:hover{color:var(--white)}
.nav__link::after{
  content:"";position:absolute;left:.7rem;right:.7rem;bottom:.18rem;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease);
}
.nav__link:hover::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{color:var(--gold)}

.nav__cta{
  margin-left:.6rem;padding:.62rem 1.05rem;background:var(--gold);color:#0A0A0A;
  font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
  transition:background .22s,transform .22s;white-space:nowrap;
}
.nav__cta:hover{background:#DDBA71;transform:translateY(-1px)}

.burger{
  display:none;margin-left:auto;width:44px;height:44px;background:none;border:1px solid rgb(var(--silver-rgb)/.2);
  cursor:pointer;padding:0;place-items:center;
}
.burger span{display:block;width:19px;height:1.5px;background:var(--white);transition:transform .3s var(--ease),opacity .2s}
.burger span+span{margin-top:5px}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

.drawer{
  position:fixed;inset:var(--nav-h) 0 0;z-index:99;background:rgb(10 9 8 / .985);
  backdrop-filter:blur(10px);padding:1.5rem var(--gut) 3rem;overflow-y:auto;
  transform:translateX(100%);transition:transform .38s var(--ease);visibility:hidden;
}
.drawer.open{transform:none;visibility:visible}
.drawer:not(.open){pointer-events:none}
.drawer a{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.05rem .25rem;border-bottom:1px solid rgb(var(--silver-rgb)/.08);
  font-family:var(--ff-display);font-size:1.28rem;letter-spacing:.06em;text-transform:uppercase;
}
.drawer a[aria-current="page"]{color:var(--gold)}
.drawer a span{font-family:var(--ff-mono);font-size:.56rem;color:rgb(var(--gold-rgb)/.55);letter-spacing:.16em}
.drawer__label{
  margin:1.9rem 0 .3rem;font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.26em;
  text-transform:uppercase;color:rgb(var(--gold-rgb)/.55);
}
.drawer__cta{
  margin-top:1.75rem;display:block;text-align:center;background:var(--gold);color:#0A0A0A;
  padding:1rem;font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
}
.drawer__meta{margin-top:2rem;font-family:var(--ff-mono);font-size:.66rem;color:rgb(var(--silver-rgb)/.45);line-height:2}

@media (max-width:1180px){
  .nav__links,.nav .nav__cta{display:none}
  .burger{display:grid}
}
@media (min-width:1181px){.drawer{display:none}}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{position:relative;min-height:min(92vh,900px);display:flex;align-items:center;padding-top:var(--nav-h);overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:0}
.hero__bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgb(10 9 8/.95) 0%,rgb(10 9 8/.82) 42%,rgb(10 9 8/.5) 100%),
             linear-gradient(to top,rgb(10 9 8/.98),transparent 42%);
}
.hero__in{position:relative;z-index:2;max-width:var(--wrap);margin-inline:auto;padding:5rem var(--gut) 7rem;width:100%}
.hero__kicker{
  display:inline-flex;align-items:center;gap:.6rem;font-family:var(--ff-mono);font-size:.6rem;
  letter-spacing:.24em;color:var(--gold);text-transform:uppercase;margin-bottom:1.9rem;
  border:1px solid rgb(var(--gold-rgb)/.3);padding:.45rem .85rem;background:rgb(10 9 8/.5);
}
.hero__kicker::before{content:"";width:6px;height:6px;background:var(--gold);border-radius:50%;animation:pulse 2.4s infinite}
@keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgb(var(--gold-rgb)/.6)}50%{opacity:.55;box-shadow:0 0 0 7px rgb(var(--gold-rgb)/0)}}

.hero h1{font-size:clamp(2.9rem,8.4vw,6.5rem);letter-spacing:-.035em;margin-bottom:1.4rem;max-width:15ch}
.hero h1 em{font-style:normal;color:var(--gold);display:block}
.hero__sub{
  font-family:var(--ff-display);font-size:clamp(1rem,2.1vw,1.55rem);font-weight:500;
  letter-spacing:.2em;color:var(--silver);text-transform:uppercase;margin-bottom:1.5rem;
}
.hero__lede{max-width:56ch;color:rgb(var(--silver-rgb)/.72);font-size:1.02rem;line-height:1.75;margin-bottom:2.5rem}
.hero__cta{display:flex;flex-wrap:wrap;gap:.9rem}

.hero__bar{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  border-top:1px solid rgb(var(--silver-rgb)/.1);background:rgb(10 9 8/.68);backdrop-filter:blur(8px);
}
.hero__bar div{
  max-width:var(--wrap);margin-inline:auto;padding:.95rem var(--gut);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.55);text-transform:uppercase;
}
.hero__bar strong{color:var(--gold);font-weight:400}

/* Page hero (interior) */
.phero{position:relative;padding:calc(var(--nav-h) + 5.5rem) 0 4.5rem;overflow:hidden;border-bottom:1px solid rgb(var(--silver-rgb)/.08)}
.phero__bg{position:absolute;inset:0;z-index:0}
.phero__bg img{width:100%;height:100%;object-fit:cover;opacity:.3}
.phero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgb(10 9 8/.86),rgb(10 9 8/.97))}
.phero__in{position:relative;z-index:2}
.phero__kicker{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.26em;color:var(--gold);text-transform:uppercase;display:block;margin-bottom:1rem}
.phero h1{font-size:clamp(2.2rem,6vw,4.4rem);letter-spacing:-.03em}
.phero h1 em{font-style:normal;color:var(--gold)}
.phero p{max-width:62ch;margin-top:1.3rem;color:rgb(var(--silver-rgb)/.68);line-height:1.75}

/* Breadcrumb */
.crumb{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.16em;color:rgb(var(--silver-rgb)/.4);text-transform:uppercase;margin-bottom:1.4rem}
.crumb a:hover{color:var(--gold)}
.crumb span{margin:0 .5rem;color:rgb(var(--gold-rgb)/.4)}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;padding:.95rem 1.7rem;cursor:pointer;
  font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
  border:1px solid transparent;transition:background .25s,color .25s,border-color .25s,transform .25s;
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
}
.btn:hover{transform:translateY(-2px)}
.btn--gold{background:var(--gold);color:#0A0A0A}
.btn--gold:hover{background:#DDBA71}
.btn--ghost{background:transparent;color:var(--white);border-color:rgb(var(--silver-rgb)/.3)}
.btn--ghost:hover{border-color:var(--gold);color:var(--gold);background:rgb(var(--gold-rgb)/.06)}
.btn--sm{padding:.68rem 1.15rem;font-size:.6rem}
.btn svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}

/* ==========================================================================
   SECTIONS
   ========================================================================== */
.sec{padding:clamp(4rem,9vw,7.5rem) 0;position:relative}
.sec--alt{background:linear-gradient(180deg,#0B0B0B,#0E0E0E)}
.sec--line{border-top:1px solid rgb(var(--silver-rgb)/.07)}
/* Leads with a form — pull it up close under the page hero. */
.sec--tight{padding-top:clamp(2.5rem,5vw,4rem)}

/* Form-led split: the form is the wider, primary column and comes first in the
   DOM so it is also first on a phone. */
/* Two classes, so this wins over the base .split regardless of source order —
   .split is declared later in the file and would otherwise re-center these. */
.split.split--form{grid-template-columns:1.15fr .85fr;align-items:start}
@media (max-width:900px){.split.split--form{grid-template-columns:1fr}}
.host__img{
  width:100%;aspect-ratio:16/10;object-fit:cover;margin-top:2rem;
  clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));
}
@media (max-width:900px){.host__img{display:none}}

.shead{margin-bottom:clamp(2.5rem,5vw,4rem)}
.shead__tag{display:flex;align-items:center;gap:.85rem;margin-bottom:1.4rem;flex-wrap:wrap}
.shead__tag b{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.26em;color:var(--gold);text-transform:uppercase;font-weight:400}
.shead__tag i{flex:1;height:1px;background:linear-gradient(90deg,rgb(var(--gold-rgb)/.4),transparent);font-style:normal;min-width:30px}
.shead__tag em{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.32);font-style:normal}
.shead__row{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.shead h2{font-size:clamp(1.85rem,4.6vw,3.4rem);line-height:1.05;letter-spacing:-.028em}
.shead h2 em{font-style:normal;color:var(--gold);display:block}
.shead p{max-width:52ch;color:rgb(var(--silver-rgb)/.6);font-size:.96rem;line-height:1.75}

/* ==========================================================================
   CARDS & GRIDS
   ========================================================================== */
.grid{display:grid;gap:1px;background:rgb(var(--silver-rgb)/.08)}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
.g6{grid-template-columns:repeat(6,1fr)}
@media (max-width:1080px){.g4,.g6{grid-template-columns:repeat(3,1fr)}.g3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:760px){.g2,.g3,.g4,.g6{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.g2,.g3,.g4,.g6{grid-template-columns:1fr}}

.gap{display:grid;gap:1.25rem}
.gap.g2{grid-template-columns:repeat(2,1fr);background:none}
.gap.g3{grid-template-columns:repeat(3,1fr);background:none}
.gap.g4{grid-template-columns:repeat(4,1fr);background:none}
@media (max-width:1080px){.gap.g4{grid-template-columns:repeat(2,1fr)}.gap.g3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.gap.g2,.gap.g3,.gap.g4{grid-template-columns:1fr}}

/* Discipline tile */
.disc{
  display:block;position:relative;background:#0C0C0C;padding:1.9rem 1.5rem;
  transition:background .3s,transform .3s var(--ease);overflow:hidden;
}
.disc::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold);
  transform:scaleY(0);transform-origin:top;transition:transform .38s var(--ease);
}
.disc:hover{background:#131313;transform:translateY(-3px)}
.disc:hover::before{transform:scaleY(1)}
.disc__ico{width:26px;height:26px;stroke:var(--gold);fill:none;stroke-width:1.5;margin-bottom:1.1rem;transition:transform .35s var(--ease)}
.disc:hover .disc__ico{transform:scale(1.14) translateY(-2px)}
.disc h3{font-size:.94rem;letter-spacing:.06em;margin-bottom:.55rem;line-height:1.25}
.disc p{font-size:.8rem;color:rgb(var(--silver-rgb)/.5);line-height:1.6}
.disc__n{position:absolute;top:1.1rem;right:1.2rem;font-family:var(--ff-mono);font-size:.55rem;color:rgb(var(--gold-rgb)/.28);letter-spacing:.14em}

/* Media card (course / news / gallery) */
.mcard{
  background:rgb(28 26 23/.4);border:1px solid rgb(var(--silver-rgb)/.06);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .35s var(--ease),border-color .3s,background .3s;
  text-align:left;width:100%;padding:0;cursor:pointer;
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));
}
.mcard:hover{transform:translateY(-5px);border-color:rgb(var(--gold-rgb)/.28);background:rgb(28 26 23/.62)}
.mcard__media{position:relative;aspect-ratio:16/9;overflow:hidden;flex-shrink:0}
.mcard__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.mcard:hover .mcard__media img{transform:scale(1.06)}
.mcard__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(10 9 8/.86),transparent 62%)}
.mcard__tags{position:absolute;top:.7rem;left:.7rem;z-index:2;display:flex;gap:.35rem;flex-wrap:wrap}
.tag{
  font-family:var(--ff-mono);font-size:.5rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold);background:rgb(10 9 8/.72);padding:.22rem .5rem;border:1px solid rgb(var(--gold-rgb)/.22);
}
.tag--plain{color:rgb(var(--silver-rgb)/.7);border-color:rgb(var(--silver-rgb)/.18)}
.mcard__body{padding:1.3rem 1.35rem 1.45rem;border-left:2px solid rgb(var(--gold-rgb)/.28);flex:1;display:flex;flex-direction:column;transition:border-color .3s}
.mcard:hover .mcard__body{border-left-color:var(--gold)}
.mcard__body h3{font-size:.95rem;letter-spacing:.05em;line-height:1.28;margin-bottom:.75rem}
.mcard__meta{display:flex;gap:1.1rem;flex-wrap:wrap;margin-bottom:.9rem}
.mcard__meta span{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-size:.6rem;color:rgb(var(--silver-rgb)/.45);letter-spacing:.08em}
.mcard__meta svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.mcard__excerpt{font-size:.83rem;color:rgb(var(--silver-rgb)/.55);line-height:1.68;margin-bottom:1rem}
.mcard__foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.mcard__level{font-family:var(--ff-mono);font-size:.56rem;color:rgb(var(--gold-rgb)/.7);letter-spacing:.14em;text-transform:uppercase}
.mcard__go{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.14em;color:var(--gold);opacity:0;transform:translateX(-6px);transition:opacity .3s,transform .3s}
.mcard:hover .mcard__go{opacity:1;transform:none}
.mcard__go svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}

/* ==========================================================================
   STATS
   ========================================================================== */
.stats{border-block:1px solid rgb(var(--silver-rgb)/.1)}
.stats__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stats__grid>div{padding:2.4rem 1.4rem;border-left:1px solid rgb(var(--silver-rgb)/.1);text-align:left}
.stats__grid>div:first-child{border-left:0}
@media (max-width:760px){
  .stats__grid{grid-template-columns:repeat(2,1fr)}
  .stats__grid>div:nth-child(odd){border-left:0}
  .stats__grid>div:nth-child(n+3){border-top:1px solid rgb(var(--silver-rgb)/.1)}
}
.stat__v{font-family:var(--ff-display);font-size:clamp(1.9rem,4.6vw,3rem);font-weight:700;color:var(--gold);line-height:1;letter-spacing:-.02em;display:block}
.stat__l{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.45);text-transform:uppercase;margin-top:.85rem;display:block}

/* ==========================================================================
   SPLIT / FEATURE
   ========================================================================== */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split__media{position:relative}
.split__media img{width:100%;aspect-ratio:4/3;object-fit:cover;
  clip-path:polygon(0 0,calc(100% - 26px) 0,100% 26px,100% 100%,26px 100%,0 calc(100% - 26px))}
.split__badge{
  position:absolute;right:-.5rem;bottom:-1.5rem;background:rgb(12 11 9/.92);backdrop-filter:blur(10px);
  border:1px solid rgb(var(--gold-rgb)/.3);padding:1.1rem 1.5rem;text-align:center;
}
@media (max-width:520px){.split__badge{right:1rem;bottom:-1rem;padding:.85rem 1.1rem}}
.split__badge b{display:block;font-family:var(--ff-display);font-size:1.7rem;color:var(--gold);line-height:1}
.split__badge span{font-family:var(--ff-mono);font-size:.55rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.5);margin-top:.4rem;display:block}

.checks{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1.5rem;margin:2rem 0}
.checks--3{grid-template-columns:repeat(3,1fr)}
.checks--1{grid-template-columns:1fr;gap:.7rem}
@media (max-width:900px){.checks--3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.checks,.checks--3{grid-template-columns:1fr}}
.checks li{display:flex;gap:.7rem;align-items:flex-start;font-size:.87rem;color:rgb(var(--silver-rgb)/.72);line-height:1.5}
.checks svg{width:15px;height:15px;stroke:var(--gold);fill:none;stroke-width:2.2;flex-shrink:0;margin-top:.22rem}

.pills{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.8rem 0}
.pill{
  font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;
  padding:.5rem .85rem;border:1px solid rgb(var(--silver-rgb)/.14);color:rgb(var(--silver-rgb)/.62);
  transition:border-color .25s,color .25s,background .25s;
}
.pill:hover{border-color:rgb(var(--gold-rgb)/.5);color:var(--gold);background:rgb(var(--gold-rgb)/.05)}

/* ==========================================================================
   FILTER BAR / SEARCH
   ========================================================================== */
.toolbar{
  display:flex;gap:1rem;align-items:center;flex-wrap:wrap;justify-content:space-between;
  padding:1.15rem 0;border-block:1px solid rgb(var(--silver-rgb)/.1);margin-bottom:2.5rem;
  position:sticky;top:var(--nav-h);z-index:40;background:rgb(10 9 8/.94);backdrop-filter:blur(12px);
}
.filters{display:flex;gap:.4rem;flex-wrap:wrap}
.filter{
  background:transparent;border:1px solid rgb(var(--silver-rgb)/.15);cursor:pointer;
  padding:.52rem .95rem;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.15em;
  text-transform:uppercase;color:rgb(var(--silver-rgb)/.58);transition:all .22s;
}
.filter:hover{border-color:rgb(var(--gold-rgb)/.45);color:var(--gold)}
.filter[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#0A0A0A;font-weight:700}

.search{position:relative;flex:1;min-width:210px;max-width:320px}
.search input{
  width:100%;background:rgb(28 26 23/.5);border:1px solid rgb(var(--silver-rgb)/.14);
  padding:.62rem .8rem .62rem 2.2rem;font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.08em;
  color:var(--white);transition:border-color .25s;
}
.search input::placeholder{color:rgb(var(--silver-rgb)/.35);text-transform:uppercase;letter-spacing:.14em;font-size:.6rem}
.search input:focus{border-color:rgb(var(--gold-rgb)/.55);outline:none}
.search svg{position:absolute;left:.72rem;top:50%;transform:translateY(-50%);width:14px;height:14px;stroke:rgb(var(--silver-rgb)/.4);fill:none;stroke-width:2;pointer-events:none}

.count{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.42);text-transform:uppercase;white-space:nowrap}
.count b{color:var(--gold);font-weight:400}

.empty{
  display:none;padding:4.5rem 1rem;text-align:center;border:1px dashed rgb(var(--silver-rgb)/.14);
}
.empty.show{display:block}
.empty h3{font-size:1.15rem;color:rgb(var(--silver-rgb)/.7);margin-bottom:.7rem}
.empty p{font-size:.85rem;color:rgb(var(--silver-rgb)/.45)}
.hidden{display:none!important}

/* ==========================================================================
   TIMELINE
   ========================================================================== */
.tl{position:relative;padding-left:2.6rem}
.tl::before{content:"";position:absolute;left:8px;top:.6rem;bottom:.6rem;width:1px;background:linear-gradient(to bottom,var(--gold),rgb(var(--gold-rgb)/.1))}
.tl__item{position:relative;padding-bottom:2.6rem}
.tl__item:last-child{padding-bottom:0}
.tl__item::before{
  content:"";position:absolute;left:-2.6rem;top:.42rem;width:17px;height:17px;
  border:2px solid var(--gold);background:var(--black);transform:rotate(45deg) translateX(0);
  margin-left:0;
}
.tl__yr{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.2em;color:var(--gold);display:block;margin-bottom:.5rem}
.tl__item h3{font-size:1.02rem;letter-spacing:.05em;margin-bottom:.6rem}
.tl__item p{font-size:.88rem;color:rgb(var(--silver-rgb)/.58);line-height:1.7;max-width:60ch}

/* ==========================================================================
   PARTNER LOGOS
   ========================================================================== */
.plogos{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:rgb(var(--silver-rgb)/.08)}
@media (max-width:900px){.plogos{grid-template-columns:repeat(4,1fr)}}
@media (max-width:560px){.plogos{grid-template-columns:repeat(3,1fr)}}
.plogo{
  background:#0B0B0B;aspect-ratio:16/9;display:grid;place-items:center;padding:1rem;
  font-family:var(--ff-display);font-size:clamp(.8rem,1.6vw,1.05rem);letter-spacing:.11em;
  color:rgb(var(--silver-rgb)/.42);transition:color .3s,background .3s;text-align:center;
}
.plogo:hover{color:var(--gold);background:#111}

.pgroup{border:1px solid rgb(var(--silver-rgb)/.09);padding:1.7rem;background:rgb(28 26 23/.28);
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}
.pgroup h3{font-size:.82rem;letter-spacing:.18em;color:var(--gold);margin-bottom:.35rem}
.pgroup>span{font-family:var(--ff-mono);font-size:.55rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.28);display:block;margin-bottom:1.4rem}
.pgroup li{padding:.85rem 0;border-top:1px solid rgb(var(--silver-rgb)/.07)}
.pgroup li b{display:block;font-family:var(--ff-display);font-size:.88rem;letter-spacing:.08em;color:var(--white);text-transform:uppercase;font-weight:600}
.pgroup li span{font-size:.78rem;color:rgb(var(--silver-rgb)/.5);line-height:1.5;display:block;margin-top:.22rem}

/* ==========================================================================
   EVENTS
   ========================================================================== */
.ev{
  display:grid;grid-template-columns:auto 1fr auto auto;gap:1.6rem;align-items:center;
  padding:1.5rem 1.6rem;background:rgb(28 26 23/.32);border:1px solid rgb(var(--silver-rgb)/.07);
  border-left:2px solid rgb(var(--gold-rgb)/.35);transition:background .3s,border-color .3s,transform .3s var(--ease);
}
.ev:hover{background:rgb(28 26 23/.55);border-left-color:var(--gold);transform:translateX(4px)}
@media (max-width:880px){.ev{grid-template-columns:1fr;gap:1rem;align-items:start}}
.ev__date{text-align:center;min-width:74px;border-right:1px solid rgb(var(--silver-rgb)/.1);padding-right:1.4rem}
@media (max-width:880px){.ev__date{text-align:left;border-right:0;border-bottom:1px solid rgb(var(--silver-rgb)/.1);padding:0 0 .8rem}}
.ev__date b{display:block;font-family:var(--ff-display);font-size:1.75rem;color:var(--gold);line-height:1}
.ev__date span{font-family:var(--ff-mono);font-size:.55rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.45);display:block;margin-top:.3rem}
.ev__main h3{font-size:.98rem;letter-spacing:.05em;margin-bottom:.5rem;line-height:1.3}
.ev__main p{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.13em;color:rgb(var(--silver-rgb)/.45);text-transform:uppercase}
.ev__range{font-family:var(--ff-mono);font-size:.66rem;color:rgb(var(--silver-rgb)/.62);letter-spacing:.1em;white-space:nowrap}
.ev__act{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.seats{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;padding:.38rem .7rem;border:1px solid;white-space:nowrap}
.seats--open{color:var(--gold);border-color:rgb(var(--gold-rgb)/.4);background:rgb(var(--gold-rgb)/.07)}
.seats--low{color:#E0A03A;border-color:rgb(224 160 58/.4);background:rgb(224 160 58/.07)}
.seats--full{color:rgb(var(--silver-rgb)/.5);border-color:rgb(var(--silver-rgb)/.2)}

/* ==========================================================================
   GALLERY
   ========================================================================== */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
@media (max-width:1000px){.gal{grid-template-columns:repeat(3,1fr)}}
@media (max-width:700px){.gal{grid-template-columns:repeat(2,1fr)}}
@media (max-width:440px){.gal{grid-template-columns:1fr}}
.gal__item{
  position:relative;aspect-ratio:4/3;overflow:hidden;cursor:pointer;padding:0;border:0;background:#111;
  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));
}
.gal__item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.gal__item:hover img{transform:scale(1.07)}
.gal__item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgb(10 9 8/.9),transparent 55%);transition:opacity .3s}
.gal__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:1rem;text-align:left}
.gal__cap b{display:block;font-family:var(--ff-display);font-size:.8rem;letter-spacing:.07em;text-transform:uppercase;color:var(--white);line-height:1.25}
.gal__cap span{font-family:var(--ff-mono);font-size:.52rem;letter-spacing:.18em;color:var(--gold);display:block;margin-bottom:.35rem}
.gal__zoom{
  position:absolute;top:.75rem;right:.75rem;z-index:2;width:30px;height:30px;display:grid;place-items:center;
  background:rgb(10 9 8/.6);border:1px solid rgb(var(--gold-rgb)/.3);opacity:0;transform:scale(.85);transition:opacity .3s,transform .3s;
}
.gal__item:hover .gal__zoom{opacity:1;transform:none}
.gal__zoom svg{width:14px;height:14px;stroke:var(--gold);fill:none;stroke-width:2}

/* ==========================================================================
   LIGHTBOX / MODAL
   ========================================================================== */
.ov{
  position:fixed;inset:0;z-index:150;display:none;align-items:center;justify-content:center;
  background:rgb(5 5 5/.94);backdrop-filter:blur(8px);padding:clamp(1rem,4vw,3rem);
}
.ov.open{display:flex;animation:fade .25s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.ov__close{
  position:absolute;top:1.1rem;right:1.1rem;width:44px;height:44px;display:grid;place-items:center;
  background:rgb(28 26 23/.7);border:1px solid rgb(var(--silver-rgb)/.18);cursor:pointer;transition:all .22s;z-index:5;
}
.ov__close:hover{border-color:var(--gold);background:rgb(var(--gold-rgb)/.12)}
.ov__close svg{width:18px;height:18px;stroke:var(--white);fill:none;stroke-width:2}
.ov__nav{
  position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;display:grid;place-items:center;
  background:rgb(28 26 23/.65);border:1px solid rgb(var(--silver-rgb)/.18);cursor:pointer;transition:all .22s;z-index:5;
}
.ov__nav:hover{border-color:var(--gold);background:rgb(var(--gold-rgb)/.12)}
.ov__nav svg{width:20px;height:20px;stroke:var(--white);fill:none;stroke-width:2}
.ov__nav--prev{left:clamp(.5rem,2vw,1.6rem)}
.ov__nav--next{right:clamp(.5rem,2vw,1.6rem)}
@media (max-width:600px){.ov__nav{width:40px;height:40px}}

.lb{max-width:1200px;width:100%;text-align:center}
.lb img{max-height:74vh;width:auto;margin-inline:auto;object-fit:contain;
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px))}
.lb__meta{margin-top:1.4rem}
.lb__meta span{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.22em;color:var(--gold);display:block;margin-bottom:.5rem}
.lb__meta b{font-family:var(--ff-display);font-size:1.15rem;letter-spacing:.08em;text-transform:uppercase;display:block}
.lb__meta em{font-family:var(--ff-mono);font-style:normal;font-size:.6rem;color:rgb(var(--silver-rgb)/.35);letter-spacing:.16em;display:block;margin-top:.7rem}

/* Detail modal */
.dlg{
  max-width:820px;width:100%;max-height:88vh;overflow-y:auto;background:#101010;
  border:1px solid rgb(var(--gold-rgb)/.22);position:relative;
  clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,22px 100%,0 calc(100% - 22px));
}
.dlg__media{aspect-ratio:21/9;overflow:hidden;position:relative}
.dlg__media img{width:100%;height:100%;object-fit:cover}
.dlg__media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#101010,transparent 65%)}
.dlg__body{padding:clamp(1.5rem,4vw,2.6rem)}
.dlg__tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.1rem}
.dlg__body h2{font-size:clamp(1.35rem,3.4vw,2.1rem);letter-spacing:-.01em;line-height:1.1;margin-bottom:1.3rem}
.dlg__specs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgb(var(--silver-rgb)/.09);margin-bottom:1.8rem}
@media (max-width:560px){.dlg__specs{grid-template-columns:1fr}}
.dlg__specs div{background:#0C0C0C;padding:1rem 1.1rem}
.dlg__specs span{font-family:var(--ff-mono);font-size:.53rem;letter-spacing:.2em;color:rgb(var(--silver-rgb)/.4);text-transform:uppercase;display:block;margin-bottom:.45rem}
.dlg__specs b{font-family:var(--ff-display);font-size:.94rem;letter-spacing:.06em;color:var(--gold);text-transform:uppercase}
.dlg__body>p{color:rgb(var(--silver-rgb)/.72);line-height:1.8;font-size:.94rem;margin-bottom:1.8rem}
.dlg h3{font-size:.75rem;letter-spacing:.22em;color:var(--gold);margin-bottom:1rem;font-family:var(--ff-mono);text-transform:uppercase;font-weight:400}
.dlg__list{display:grid;gap:.7rem;margin-bottom:1.9rem}
.dlg__list li{display:flex;gap:.75rem;font-size:.88rem;color:rgb(var(--silver-rgb)/.68);line-height:1.6}
.dlg__list li::before{content:"▸";color:var(--gold);flex-shrink:0}
.dlg__foot{display:flex;gap:.8rem;flex-wrap:wrap;padding-top:1.6rem;border-top:1px solid rgb(var(--silver-rgb)/.09)}

/* ==========================================================================
   FORMS
   ========================================================================== */
.form{display:grid;gap:1.25rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media (max-width:640px){.frow{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:.5rem}
.field label{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:rgb(var(--silver-rgb)/.55)}
.field label .req{color:var(--gold)}
.field input,.field select,.field textarea{
  background:rgb(28 26 23/.45);border:1px solid rgb(var(--silver-rgb)/.13);padding:.85rem .95rem;
  font-family:var(--ff-body);font-size:.9rem;color:var(--white);transition:border-color .25s,background .25s;
  width:100%;border-radius:0;
}
.field textarea{min-height:130px;resize:vertical;line-height:1.6}
.field select{cursor:pointer;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C8A35A' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .9rem center;background-size:15px;padding-right:2.6rem}
.field select option{background:#141414;color:var(--white)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgb(var(--gold-rgb)/.6);background:rgb(28 26 23/.7);outline:none}
.field input::placeholder,.field textarea::placeholder{color:rgb(var(--silver-rgb)/.28)}
.field.err input,.field.err select,.field.err textarea{border-color:var(--red);background:rgb(181 32 37/.06)}
.field .msg{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.12em;color:var(--red);text-transform:uppercase;min-height:0;display:none}
.field.err .msg{display:block}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

.form__note{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.13em;color:rgb(var(--silver-rgb)/.32);text-transform:uppercase;line-height:1.9}
.form__ok{
  display:none;padding:1.6rem;border:1px solid rgb(78 124 78/.45);background:rgb(78 124 78/.08);
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px));
}
.form__ok.show{display:block;animation:fade .3s ease}
.form__ok b{display:block;font-family:var(--ff-display);font-size:1.05rem;letter-spacing:.1em;color:#7FB07F;margin-bottom:.55rem}
.form__ok p{font-size:.87rem;color:rgb(var(--silver-rgb)/.7);line-height:1.65}

/* ==========================================================================
   CTA BAND
   ========================================================================== */
.cta{position:relative;overflow:hidden;padding:clamp(4rem,9vw,7rem) 0;border-top:1px solid rgb(var(--silver-rgb)/.08)}
.cta__bg{position:absolute;inset:0;z-index:0}
.cta__bg img{width:100%;height:100%;object-fit:cover;opacity:.16}
.cta__bg::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgb(10 9 8/.72),rgb(10 9 8/.97))}
.cta__in{position:relative;z-index:2;text-align:center}
.cta__in>span{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.28em;color:var(--gold);text-transform:uppercase;display:block;margin-bottom:1.5rem}
.cta__in h2{font-size:clamp(2rem,5.6vw,4rem);line-height:1.03;margin-bottom:1.4rem}
.cta__in h2 em{font-style:normal;color:var(--gold);display:block}
.cta__in p{max-width:56ch;margin:0 auto 2.4rem;color:rgb(var(--silver-rgb)/.62);line-height:1.75}
.cta__btns{display:flex;gap:.9rem;justify-content:center;flex-wrap:wrap}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.ft{border-top:1px solid rgb(var(--silver-rgb)/.09);background:#080808;padding:clamp(3rem,6vw,4.5rem) 0 0}
.ft__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem}
@media (max-width:960px){.ft__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ft__top{grid-template-columns:1fr;gap:2rem}}
.ft__brand p{font-size:.86rem;color:rgb(var(--silver-rgb)/.5);line-height:1.75;max-width:38ch;margin:1.3rem 0}
.ft__contact{display:grid;gap:.6rem}
.ft__contact a,.ft__contact span{display:flex;align-items:center;gap:.6rem;font-family:var(--ff-mono);font-size:.66rem;color:rgb(var(--silver-rgb)/.55);letter-spacing:.06em;transition:color .22s}
.ft__contact a:hover{color:var(--gold)}
.ft__contact svg{width:13px;height:13px;stroke:var(--gold);fill:none;stroke-width:2;flex-shrink:0}
.ft h4{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.24em;color:var(--gold);text-transform:uppercase;font-weight:400;margin-bottom:1.3rem}
.ft__links li{margin-bottom:.72rem}
.ft__links a{font-size:.85rem;color:rgb(var(--silver-rgb)/.52);transition:color .22s,padding-left .22s}
.ft__links a:hover{color:var(--white);padding-left:5px}
.ft__bot{
  border-top:1px solid rgb(var(--silver-rgb)/.08);padding:1.5rem 0;display:flex;justify-content:space-between;
  gap:1rem;flex-wrap:wrap;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.14em;
  color:rgb(var(--silver-rgb)/.32);text-transform:uppercase;
}
.ft__bot nav{display:flex;gap:1.4rem;flex-wrap:wrap}
.ft__bot a:hover{color:var(--gold)}

/* ==========================================================================
   MAP / MISC
   ========================================================================== */
.mapbox{
  position:relative;aspect-ratio:16/10;background:#0C0C0C;border:1px solid rgb(var(--silver-rgb)/.1);overflow:hidden;
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px));
}
.mapbox iframe{width:100%;height:100%;border:0;filter:grayscale(1) invert(.92) contrast(.85) hue-rotate(180deg)}

.info{display:grid;gap:1.6rem}
.info__row{display:flex;gap:1.1rem;padding-bottom:1.6rem;border-bottom:1px solid rgb(var(--silver-rgb)/.07)}
.info__row:last-child{border-bottom:0;padding-bottom:0}
.info__ico{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border:1px solid rgb(var(--gold-rgb)/.3);background:rgb(var(--gold-rgb)/.05)}
.info__ico svg{width:16px;height:16px;stroke:var(--gold);fill:none;stroke-width:2}
.info__row h3{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.22em;color:rgb(var(--silver-rgb)/.45);margin-bottom:.6rem;font-weight:400}
.info__row p,.info__row a{font-size:.92rem;color:var(--white);line-height:1.65;display:block}
.info__row a:hover{color:var(--gold)}

.quote{border-left:2px solid var(--gold);padding:.4rem 0 .4rem 1.6rem;margin:2rem 0}
.quote p{font-family:var(--ff-display);font-size:clamp(1.05rem,2.3vw,1.4rem);font-weight:500;line-height:1.45;color:var(--white);letter-spacing:.01em}
.quote cite{display:block;margin-top:1rem;font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.2em;color:var(--gold);font-style:normal;text-transform:uppercase}

.prose p{color:rgb(var(--silver-rgb)/.7);line-height:1.85;margin-bottom:1.25rem;font-size:.95rem}
.prose p:last-child{margin-bottom:0}

/* Facility selector */
.facs{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgb(var(--silver-rgb)/.08);margin-bottom:2.5rem}
@media (max-width:820px){.facs{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.facs{grid-template-columns:1fr}}
.fac{
  background:#0B0B0B;padding:1.35rem 1.2rem;text-align:left;border:0;cursor:pointer;
  transition:background .28s;position:relative;
}
.fac:hover{background:#131313}
.fac[aria-selected="true"]{background:#151515}
.fac[aria-selected="true"]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold)}
.fac b{display:block;font-family:var(--ff-display);font-size:.83rem;letter-spacing:.09em;text-transform:uppercase;color:var(--white);margin-bottom:.4rem}
.fac[aria-selected="true"] b{color:var(--gold)}
.fac span{font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.14em;color:rgb(var(--silver-rgb)/.4)}

.facpanel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
@media (max-width:820px){.facpanel{grid-template-columns:1fr}}
.facpanel img{width:100%;aspect-ratio:16/10;object-fit:cover;
  clip-path:polygon(0 0,calc(100% - 20px) 0,100% 20px,100% 100%,20px 100%,0 calc(100% - 20px))}
.facpanel h3{font-size:clamp(1.3rem,3vw,1.9rem);letter-spacing:-.01em;margin-bottom:.7rem}
.facpanel>div>span{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.2em;color:var(--gold);display:block;margin-bottom:1.3rem}
.facpanel p{color:rgb(var(--silver-rgb)/.66);line-height:1.8;font-size:.94rem}

/* 404 */
.nf{min-height:78vh;display:grid;place-items:center;text-align:center;padding:calc(var(--nav-h) + 3rem) var(--gut) 4rem}
.nf b{font-family:var(--ff-display);font-size:clamp(5rem,18vw,11rem);color:rgb(var(--gold-rgb)/.16);line-height:.85;display:block;letter-spacing:-.04em}
.nf h1{font-size:clamp(1.6rem,4.5vw,2.8rem);margin:1rem 0 1.2rem}
.nf p{color:rgb(var(--silver-rgb)/.6);max-width:46ch;margin:0 auto 2.2rem;line-height:1.75}

/* Print */
@media print{
  .nav,.drawer,.burger,.cta,.ov,.toolbar{display:none!important}
  body{background:#fff;color:#000}
  .hero__bg,.phero__bg{display:none}
}

/* ==========================================================================
   MATERIAL LAYER
   Depth, metal and ambient light. The base above is the structure; this is
   what stops a flat gold on a flat black from reading as dull.
   ========================================================================== */

/* --- Ambient warmth + film grain -----------------------------------------
   A pure #0A0A0A field gives the accent nothing to bounce off. Two very low
   radial pools of warm light plus a fine grain give the page a surface. */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;
  background:
    radial-gradient(1100px 640px at 78% -8%,  rgb(var(--gold-rgb) / .085), transparent 62%),
    radial-gradient(900px 620px at 4% 42%,    rgb(198 116 42 / .05),        transparent 60%),
    radial-gradient(1200px 800px at 50% 108%, rgb(var(--gold-rgb) / .055), transparent 64%);
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
}

/* --- Brushed-metal type ---------------------------------------------------
   Applied to the gold half of every headline and to the stat figures. */
@supports (-webkit-background-clip:text) or (background-clip:text){
  .hero h1 em,
  .phero h1 em,
  .shead h2 em,
  .cta__in h2 em,
  h2 em.gold,
  .stat__v,
  .split__badge b,
  .nf b{
    background:var(--metal);
    -webkit-background-clip:text;background-clip:text;
    color:transparent;
    -webkit-text-fill-color:transparent;
  }
  .nf b{background:linear-gradient(160deg,rgb(var(--gold-rgb)/.30),rgb(var(--gold-rgb)/.07))}
}

/* --- Brand mark: struck brass -------------------------------------------- */
.brand__mark{
  background:linear-gradient(150deg,var(--gold-hi) 0%,var(--gold) 40%,var(--gold-lo) 100%);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .38), 0 4px 14px -6px rgb(var(--gold-rgb) / .55);
  color:#0A0908;
}

/* --- Buttons: lit, not painted ------------------------------------------- */
.btn--gold,.nav__cta,.drawer__cta,.skip-link{
  background:linear-gradient(165deg,var(--gold-hi) 0%,var(--gold) 42%,var(--gold-dim) 100%);
  color:#0A0908;
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .42), 0 10px 24px -14px rgb(var(--gold-rgb) / .7);
}
.btn--gold:hover,.nav__cta:hover{
  background:linear-gradient(165deg,#FFF0C4 0%,var(--gold-hi) 45%,var(--gold) 100%);
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .5), 0 16px 34px -14px rgb(var(--gold-rgb) / .85);
}
.btn--ghost{
  background:linear-gradient(180deg,rgb(var(--silver-rgb) / .05),transparent);
  border-color:rgb(var(--silver-rgb) / .22);
}
.btn--ghost:hover{
  border-color:rgb(var(--gold-rgb) / .65);
  background:linear-gradient(180deg,rgb(var(--gold-rgb) / .13),rgb(var(--gold-rgb) / .03));
  box-shadow:0 12px 30px -18px rgb(var(--gold-rgb) / .6);
}

/* --- Cards: a surface with a lit top edge --------------------------------- */
.mcard,.pgroup,.ev,.dlg,.form__ok{
  background-image:linear-gradient(168deg,rgb(var(--silver-rgb) / .055) 0%,transparent 46%);
  box-shadow:inset 0 1px 0 rgb(var(--silver-rgb) / .07), 0 20px 40px -30px rgb(0 0 0 / .9);
}
.mcard:hover{
  border-color:rgb(var(--gold-rgb) / .42);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .22), 0 26px 52px -26px rgb(var(--gold-rgb) / .3);
}
.ev:hover{box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .16), 0 18px 40px -28px rgb(var(--gold-rgb) / .32)}
.dlg{box-shadow:0 40px 120px -30px rgb(0 0 0 / .95), 0 0 0 1px rgb(var(--gold-rgb) / .16)}

/* --- Discipline tiles: warm rise on hover --------------------------------- */
.disc{background:linear-gradient(168deg,#100E0C 0%,#0B0A09 100%)}
.disc:hover{
  background:linear-gradient(168deg,#1A1611 0%,#100E0B 100%);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .14), 0 20px 44px -26px rgb(var(--gold-rgb) / .34);
}
.disc__ico{filter:drop-shadow(0 0 10px rgb(var(--gold-rgb) / .34))}
.disc:hover .disc__ico{filter:drop-shadow(0 0 16px rgb(var(--gold-rgb) / .62))}

/* --- Stats band: gold hairlines + inner glow ------------------------------ */
.stats{
  background:linear-gradient(180deg,rgb(var(--gold-rgb) / .045),transparent 60%);
  border-block-color:rgb(var(--gold-rgb) / .2);
}
.stats__grid>div{border-left-color:rgb(var(--gold-rgb) / .16)}
@media (max-width:760px){.stats__grid>div:nth-child(n+3){border-top-color:rgb(var(--gold-rgb) / .16)}}

/* --- Section rules: fade the divider through brass ------------------------ */
.shead__tag i{background:linear-gradient(90deg,var(--gold),rgb(var(--gold-rgb) / .28) 30%,transparent)}
.sec--alt{background:linear-gradient(180deg,#0C0B09,#100E0B 55%,#0C0B09)}

/* --- Partner plates ------------------------------------------------------- */
.plogo{background:linear-gradient(168deg,#100E0C,#0A0908)}
.plogo:hover{
  background:linear-gradient(168deg,#1B1712,#110F0C);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .18);
}

/* --- Warm the image scrims so photos sit in the same light ---------------- */
.mcard__media::after{background:linear-gradient(to top,rgb(10 9 8 / .88),rgb(20 16 12 / .22) 55%,transparent)}
.gal__item::after{background:linear-gradient(to top,rgb(10 9 8 / .92),rgb(24 18 12 / .2) 52%,transparent)}
.gal__item:hover{box-shadow:0 22px 48px -24px rgb(var(--gold-rgb) / .4)}
.hero__bg::after{
  background:
    linear-gradient(105deg,rgb(10 9 8 / .95) 0%,rgb(10 9 8 / .8) 42%,rgb(26 18 10 / .42) 100%),
    linear-gradient(to top,rgb(10 9 8 / .98),transparent 42%);
}
.phero__bg img{opacity:.34}
.phero__bg::after{background:linear-gradient(to bottom,rgb(10 9 8 / .84),rgb(10 9 8 / .97))}

/* --- Forms: fields read as recessed slots -------------------------------- */
.field input,.field select,.field textarea{
  background:linear-gradient(180deg,rgb(0 0 0 / .3),rgb(var(--silver-rgb) / .035));
  box-shadow:inset 0 1px 2px rgb(0 0 0 / .45);
}
.field input:focus,.field select:focus,.field textarea:focus{
  box-shadow:inset 0 1px 2px rgb(0 0 0 / .4), 0 0 0 3px rgb(var(--gold-rgb) / .14);
}

/* --- Seat badges: give the states real colour ---------------------------- */
.seats--low{color:#E8A33F;border-color:rgb(232 163 63 / .45);background:rgb(232 163 63 / .1)}
.seats--full{color:rgb(var(--silver-rgb) / .55);border-color:rgb(var(--silver-rgb) / .22);background:rgb(var(--silver-rgb) / .04)}

/* --- Footer: lift it off the page bottom --------------------------------- */
.ft{background:linear-gradient(180deg,#080706,#0B0908)}
.ft::before{
  content:"";display:block;height:1px;margin-bottom:clamp(3rem,6vw,4.5rem);
  background:linear-gradient(90deg,transparent,rgb(var(--gold-rgb) / .38) 22%,rgb(var(--gold-rgb) / .38) 78%,transparent);
}

/* --- CTA band ------------------------------------------------------------- */
.cta__bg::after{
  background:
    radial-gradient(ellipse at 50% 46%,rgb(var(--gold-rgb) / .1),transparent 58%),
    radial-gradient(ellipse at 50% 50%,rgb(10 9 8 / .7),rgb(10 9 8 / .97));
}

@media print{body::before,body::after{display:none}}

/* --- Controls: match the button treatment -------------------------------- */
.filter[aria-pressed="true"]{
  background:linear-gradient(165deg,var(--gold-hi) 0%,var(--gold) 45%,var(--gold-dim) 100%);
  border-color:var(--gold);color:#0A0908;
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .4), 0 8px 20px -12px rgb(var(--gold-rgb) / .7);
}
.filter:hover{background:rgb(var(--gold-rgb) / .08)}
.pill:hover{
  background:linear-gradient(180deg,rgb(var(--gold-rgb) / .12),rgb(var(--gold-rgb) / .03));
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .16);
}
.fac[aria-selected="true"]{
  background:linear-gradient(168deg,#191510,#100E0B);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .16);
}
.fac[aria-selected="true"]::before{background:var(--metal)}
.info__ico{
  background:linear-gradient(160deg,rgb(var(--gold-rgb) / .14),rgb(var(--gold-rgb) / .03));
  border-color:rgb(var(--gold-rgb) / .38);
}
.tl__item::before{box-shadow:0 0 14px rgb(var(--gold-rgb) / .45)}
.tl::before{background:linear-gradient(to bottom,var(--gold-hi),var(--gold) 18%,rgb(var(--gold-rgb) / .08))}
.quote{border-left-color:transparent;border-image:var(--metal) 1}
.hero__kicker{
  background:linear-gradient(180deg,rgb(var(--gold-rgb) / .1),rgb(10 9 8 / .55));
  border-color:rgb(var(--gold-rgb) / .4);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .16);
}

/* ==========================================================================
   MOTION LAYER
   Effects rebuilt natively (reference: 21st.dev grid-beam / spotlight /
   marquee patterns, which ship as React + framer-motion). All of it is
   decorative and every piece is disabled under prefers-reduced-motion.
   ========================================================================== */

/* --- Scroll progress ------------------------------------------------------ */
.progress{
  position:fixed;top:0;left:0;height:2px;width:100%;z-index:120;transform-origin:0 50%;
  transform:scaleX(0);background:linear-gradient(90deg,var(--gold-lo),var(--gold),var(--gold-hi));
  box-shadow:0 0 12px rgb(var(--gold-rgb) / .7);will-change:transform;
}

/* --- Hero grid beams -----------------------------------------------------
   Light travelling down the grid lines. Pure CSS translation of gradient
   strips — no library, no per-frame JS. */
.beams{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 72%,transparent)}
.beam{
  position:absolute;top:-45%;width:1px;height:45%;
  background:linear-gradient(to bottom,transparent,rgb(var(--gold-rgb) / .85),transparent);
  filter:blur(.4px);
  animation:beamfall var(--dur,7s) linear var(--delay,0s) infinite;
}
.beam::after{
  content:"";position:absolute;inset:-1px -1.5px;
  background:linear-gradient(to bottom,transparent,rgb(var(--gold-rgb) / .3),transparent);
  filter:blur(3px);
}
@keyframes beamfall{
  0%  {transform:translateY(0);opacity:0}
  8%  {opacity:1}
  85% {opacity:1}
  100%{transform:translateY(340%);opacity:0}
}

/* --- Cursor spotlight on cards -------------------------------------------
   --mx/--my are written by JS on pointer move; the gradient is CSS. */
.spot{position:relative;isolation:isolate}
.spot::before{
  content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0;
  transition:opacity .35s var(--ease);
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),
             rgb(var(--gold-rgb) / .16), transparent 62%);
}
.spot:hover::before,.spot:focus-within::before{opacity:1}

/* --- Shine sweep on primary buttons --------------------------------------- */
.btn--gold,.nav__cta{position:relative;overflow:hidden}
.btn--gold::after,.nav__cta::after{
  content:"";position:absolute;top:-60%;bottom:-60%;left:-40%;width:32%;
  background:linear-gradient(100deg,transparent,rgb(255 255 255 / .55),transparent);
  transform:translateX(-160%) skewX(-18deg);pointer-events:none;
}
.btn--gold:hover::after,.nav__cta:hover::after{animation:shine .85s var(--ease)}
@keyframes shine{to{transform:translateX(560%) skewX(-18deg)}}

/* --- Magnetic nudge on the hero CTAs -------------------------------------- */
.mag{transition:transform .35s var(--ease)}

/* --- Partner logo marquee -------------------------------------------------
   Two identical tracks; the second is aria-hidden so screen readers hear the
   partner list once. */
.marq{
  position:relative;overflow:hidden;padding:1.1rem 0;
  border-block:1px solid rgb(var(--gold-rgb) / .16);
  background:linear-gradient(180deg,rgb(var(--gold-rgb) / .05),transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.marq__track{display:flex;width:max-content;animation:marq 42s linear infinite}
.marq:hover .marq__track,.marq:focus-within .marq__track{animation-play-state:paused}
.marq__set{display:flex;flex-shrink:0}
.marq__item{
  display:flex;align-items:center;gap:.7rem;padding:0 2.1rem;white-space:nowrap;
  font-family:var(--ff-display);font-size:.92rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgb(var(--silver-rgb) / .46);transition:color .3s;
}
.marq__item::before{content:"";width:5px;height:5px;background:var(--gold);transform:rotate(45deg);flex-shrink:0;opacity:.55}
.marq__item:hover{color:var(--gold)}
@keyframes marq{to{transform:translateX(-50%)}}

/* --- Trust strip ---------------------------------------------------------- */
.trust{display:flex;gap:2.4rem;flex-wrap:wrap;justify-content:center;padding:1.6rem 0}
.trust div{display:flex;align-items:center;gap:.65rem;font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:rgb(var(--silver-rgb) / .58)}
.trust svg{width:15px;height:15px;stroke:var(--gold);fill:none;stroke-width:2;flex-shrink:0}

/* --- Sticky mobile action bar (CRO) --------------------------------------- */
.dock{
  position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;gap:1px;
  background:rgb(var(--gold-rgb) / .2);
  border-top:1px solid rgb(var(--gold-rgb) / .3);
  transform:translateY(110%);transition:transform .4s var(--ease);
  padding-bottom:env(safe-area-inset-bottom,0);
}
.dock.up{transform:none}
.dock a{
  flex:1;display:flex;align-items:center;justify-content:center;gap:.55rem;padding:1.05rem .5rem;
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
}
.dock a:first-child{background:#100E0B;color:var(--white)}
.dock a:last-child{background:linear-gradient(165deg,var(--gold-hi),var(--gold) 45%,var(--gold-dim));color:#0A0908}
.dock svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
@media (max-width:900px){
  .dock{display:flex}
  body{padding-bottom:58px}
  .ft__bot{padding-bottom:1.5rem}
}

/* --- FAQ disclosure (native <details>, works with JS off) ------------------ */
.faq{display:grid;gap:.7rem}
.faq details{
  border:1px solid rgb(var(--silver-rgb) / .09);background:rgb(28 26 23 / .34);
  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));
  transition:border-color .3s,background .3s;
}
.faq details[open]{border-color:rgb(var(--gold-rgb) / .3);background:rgb(28 26 23 / .55)}
.faq summary{
  cursor:pointer;list-style:none;padding:1.15rem 1.35rem;display:flex;align-items:center;
  justify-content:space-between;gap:1.2rem;
  font-family:var(--ff-display);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--white);transition:color .25s;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--gold)}
.faq summary::after{
  content:"";width:9px;height:9px;flex-shrink:0;
  border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);
  transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);
}
.faq details[open] summary::after{transform:rotate(-135deg) translateY(-2px)}
.faq__a{padding:0 1.35rem 1.3rem;color:rgb(var(--silver-rgb) / .66);font-size:.89rem;line-height:1.75}
.faq details[open] .faq__a{animation:faqin .35s var(--ease)}
@keyframes faqin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* --- Testimonial ---------------------------------------------------------- */
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
@media (max-width:960px){.quotes{grid-template-columns:1fr}}
.qcard{
  padding:1.9rem 1.7rem;border:1px solid rgb(var(--silver-rgb) / .08);
  background:linear-gradient(168deg,rgb(var(--silver-rgb) / .05),transparent 55%);
  box-shadow:inset 0 1px 0 rgb(var(--silver-rgb) / .07);
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));
}
.qcard__mark{font-family:var(--ff-display);font-size:2.6rem;color:rgb(var(--gold-rgb) / .38);line-height:.7;display:block;margin-bottom:.9rem}
.qcard p{color:rgb(var(--silver-rgb) / .74);line-height:1.8;font-size:.91rem;margin-bottom:1.4rem}
.qcard cite{
  display:block;font-style:normal;font-family:var(--ff-mono);font-size:.58rem;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  padding-top:1.1rem;border-top:1px solid rgb(var(--silver-rgb) / .09);
}
.qcard cite span{display:block;color:rgb(var(--silver-rgb) / .38);margin-top:.4rem;letter-spacing:.13em}

/* --- Reduced motion: strip every decorative animation --------------------- */
@media (prefers-reduced-motion:reduce){
  .beams,.progress{display:none}
  .marq__track{animation:none;transform:none}
  .marq{mask-image:none;overflow-x:auto}
  .btn--gold::after,.nav__cta::after{display:none}
  .spot::before{display:none}
  .dock{transform:none}
}

/* ==========================================================================
   CLICK-TO-CALL
   ========================================================================== */
.callbar{
  display:flex;align-items:center;gap:1.4rem;padding:1.4rem 1.8rem;
  border:1px solid rgb(var(--gold-rgb) / .34);
  background:linear-gradient(120deg,rgb(var(--gold-rgb) / .13),rgb(var(--gold-rgb) / .03) 55%,transparent);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .2);
  clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px));
  transition:border-color .3s,background .3s,transform .3s var(--ease),box-shadow .3s;
}
.callbar:hover{
  border-color:rgb(var(--gold-rgb) / .7);transform:translateY(-2px);
  background:linear-gradient(120deg,rgb(var(--gold-rgb) / .2),rgb(var(--gold-rgb) / .06) 55%,transparent);
  box-shadow:inset 0 1px 0 rgb(var(--gold-rgb) / .3), 0 20px 44px -22px rgb(var(--gold-rgb) / .55);
}
.callbar__ico{
  width:52px;height:52px;flex-shrink:0;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--gold-hi),var(--gold) 45%,var(--gold-lo));
  box-shadow:inset 0 1px 0 rgb(255 255 255 / .4);
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
}
.callbar__ico svg{width:22px;height:22px;stroke:#0A0908;fill:none;stroke-width:2.2}
.callbar__txt{flex:1;min-width:0}
.callbar__txt b{
  display:block;font-family:var(--ff-display);font-size:1.12rem;letter-spacing:.09em;
  text-transform:uppercase;color:var(--white);line-height:1.2;
}
.callbar__txt span{
  display:block;margin-top:.35rem;font-family:var(--ff-mono);font-size:.6rem;
  letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--silver-rgb) / .5);
}
.callbar__num{
  display:inline-flex;align-items:center;gap:.7rem;flex-shrink:0;
  font-family:var(--ff-display);font-size:1.42rem;font-weight:700;letter-spacing:.04em;
  color:var(--gold);white-space:nowrap;
}
.callbar__num svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;transition:transform .3s var(--ease)}
.callbar:hover .callbar__num svg{transform:translateX(5px)}
@media (max-width:760px){
  .callbar{flex-wrap:wrap;gap:1rem;padding:1.2rem 1.3rem}
  .callbar__txt{flex-basis:calc(100% - 70px)}
  .callbar__num{flex-basis:100%;justify-content:center;font-size:1.55rem;
    padding-top:1rem;border-top:1px solid rgb(var(--gold-rgb) / .2)}
}

/* Compact call button in the desktop nav */
.nav__call{
  display:inline-flex;align-items:center;gap:.5rem;margin-left:.5rem;padding:.58rem .9rem;
  border:1px solid rgb(var(--gold-rgb) / .34);
  font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.1em;color:var(--gold);
  white-space:nowrap;transition:background .22s,border-color .22s,transform .22s;
  clip-path:polygon(0 0,calc(100% - 8px) 0,100% 8px,100% 100%,8px 100%,0 calc(100% - 8px));
}
.nav__call:hover{background:rgb(var(--gold-rgb) / .12);border-color:rgb(var(--gold-rgb) / .65);transform:translateY(-1px)}
.nav__call svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;flex-shrink:0}
@media (max-width:1320px){.nav__call span{display:none}.nav__call{padding:.58rem .68rem}}
@media (max-width:1180px){.nav__call{display:none}}

/* ==========================================================================
   COURSE DATES + FLYER (NTOA)
   ========================================================================== */
.dates{display:grid;gap:.7rem;margin-bottom:2rem}
.date{
  display:grid;grid-template-columns:1fr auto auto;gap:1.2rem;align-items:center;
  padding:1rem 1.2rem;border:1px solid rgb(var(--gold-rgb) / .22);
  background:linear-gradient(120deg,rgb(var(--gold-rgb) / .08),transparent 60%);
  clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
  transition:border-color .25s,background .25s;
}
.date:hover{border-color:rgb(var(--gold-rgb) / .5);background:linear-gradient(120deg,rgb(var(--gold-rgb) / .14),transparent 60%)}
@media (max-width:640px){.date{grid-template-columns:1fr;gap:.8rem}}
.date__when b{
  display:block;font-family:var(--ff-display);font-size:1.02rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--white);line-height:1.2;
}
.date__when span{
  display:block;margin-top:.3rem;font-family:var(--ff-mono);font-size:.56rem;
  letter-spacing:.14em;text-transform:uppercase;color:rgb(var(--silver-rgb) / .45);
}
.date__meta{text-align:right}
@media (max-width:640px){.date__meta{text-align:left}}
.date__meta span{
  display:block;font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.1em;
  color:rgb(var(--silver-rgb) / .6);
}
.date__num{margin-top:.3rem;color:rgb(var(--gold-rgb) / .65)!important;letter-spacing:.14em!important}
.date__none{
  padding:1.2rem 1.3rem;border:1px dashed rgb(var(--silver-rgb) / .16);
  font-size:.87rem;line-height:1.7;color:rgb(var(--silver-rgb) / .6);margin-bottom:2rem;
}

.flyer{margin:0 0 1.9rem}
.flyer figcaption{
  font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);margin-bottom:.9rem;
}
.flyer a{display:block;position:relative;transition:transform .3s var(--ease)}
.flyer a:hover{transform:translateY(-3px)}
.flyer img{
  width:100%;border:1px solid rgb(var(--silver-rgb) / .12);background:#fff;
  box-shadow:0 24px 60px -28px rgb(0 0 0 / .9);
}
.flyer a::after{
  content:"Open full PDF";position:absolute;right:.8rem;bottom:.8rem;
  font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;
  background:rgb(10 9 8 / .86);color:var(--gold);padding:.45rem .75rem;
  border:1px solid rgb(var(--gold-rgb) / .4);opacity:0;transition:opacity .3s;
}
.flyer a:hover::after{opacity:1}

/* ==========================================================================
   CAMPUS — real site photography, layout, roadmap
   ========================================================================== */
.feat{margin:0;position:relative;overflow:hidden;background:#0C0B09;
  border:1px solid rgb(var(--silver-rgb) / .08);
  clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));
  transition:transform .35s var(--ease),border-color .3s}
.feat:hover{transform:translateY(-4px);border-color:rgb(var(--gold-rgb) / .35)}
.feat img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .8s var(--ease)}
.feat:hover img{transform:scale(1.05)}
.feat figcaption{padding:1.1rem 1.25rem 1.3rem;border-left:2px solid rgb(var(--gold-rgb) / .3)}
.feat figcaption b{display:block;font-family:var(--ff-display);font-size:.92rem;letter-spacing:.07em;
  text-transform:uppercase;color:var(--white);line-height:1.25}
.feat figcaption span{display:block;margin-top:.45rem;font-size:.81rem;line-height:1.6;
  color:rgb(var(--silver-rgb) / .55)}

.layout{display:grid;gap:1.1rem;margin-top:2rem}
.layout__grp{padding:1.1rem 1.3rem;border-left:2px solid rgb(var(--gold-rgb) / .35);
  background:linear-gradient(120deg,rgb(var(--silver-rgb) / .05),transparent 65%)}
.layout__grp b{display:block;font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold);margin-bottom:.7rem}
.layout__grp li{font-size:.87rem;line-height:1.9;color:rgb(var(--silver-rgb) / .68);
  padding-left:1.1rem;position:relative}
.layout__grp li::before{content:"";position:absolute;left:0;top:.72em;width:5px;height:5px;
  background:var(--gold);transform:rotate(45deg);opacity:.6}

.next{padding:1.5rem 1.4rem;border:1px solid rgb(var(--silver-rgb) / .09);
  background:linear-gradient(168deg,rgb(var(--silver-rgb) / .05),transparent 55%);
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
.next__when{display:inline-block;font-family:var(--ff-mono);font-size:.54rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold);border:1px solid rgb(var(--gold-rgb) / .35);
  padding:.25rem .6rem;margin-bottom:1rem}
.next b{display:block;font-family:var(--ff-display);font-size:.95rem;letter-spacing:.06em;
  text-transform:uppercase;color:var(--white);margin-bottom:.5rem;line-height:1.25}
.next p{font-size:.82rem;line-height:1.6;color:rgb(var(--silver-rgb) / .55)}

/* Getting here */
.travel{display:grid;gap:1px;background:rgb(var(--silver-rgb) / .09);margin-top:2rem}
.travel__row{background:#0C0B09;padding:1.1rem 1.3rem;display:flex;justify-content:space-between;
  gap:1.4rem;align-items:baseline;flex-wrap:wrap}
.travel__row b{font-family:var(--ff-display);font-size:.88rem;letter-spacing:.05em;
  text-transform:uppercase;color:var(--white)}
.travel__row span{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;
  color:var(--gold);white-space:nowrap}
.travel__head{font-family:var(--ff-mono);font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold);font-weight:400;margin:2rem 0 0}
.travel__sub{font-family:var(--ff-body)!important;font-size:.85rem!important;letter-spacing:0!important;
  color:rgb(var(--silver-rgb) / .55)!important;white-space:normal!important;text-transform:none!important}

/* ==========================================================================
   GRID SAFETY
   `1fr` is minmax(auto,1fr), so a long unbreakable word (e.g. "THE PUCKETT
   CENTER") forces its track wider than the container. minmax(0,1fr) lets the
   track shrink; the plate then wraps its own text.
   ========================================================================== */
.plogos{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:900px){.plogos{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.plogos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.plogo{overflow-wrap:anywhere;hyphens:auto;line-height:1.25}

.grid.g2,.grid.g3,.grid.g4,.grid.g6,
.gap.g2,.gap.g3,.gap.g4{grid-template-columns:repeat(var(--cols,2),minmax(0,1fr))}
.grid.g3,.gap.g3{--cols:3}
.grid.g4,.gap.g4{--cols:4}
.grid.g6{--cols:6}
@media (max-width:1080px){.grid.g4,.grid.g6{--cols:3}.grid.g3,.gap.g4,.gap.g3{--cols:2}}
@media (max-width:760px){.grid.g2,.grid.g3,.grid.g4,.grid.g6{--cols:2}}
@media (max-width:640px){.gap.g2,.gap.g3,.gap.g4{--cols:1}}
@media (max-width:520px){.grid.g2,.grid.g3,.grid.g4,.grid.g6{--cols:1}}

/* ==========================================================================
   PARTNER BADGE WALL
   The marks sit directly on the page — no plate. The source art was on a white
   field, so the white is keyed out of the images themselves (edge-reachable
   white only, so the DHS disc, FLETC's ring and the Puckett shield survive).
   GTOA and CBP print their type straight onto that white field, so those two
   carry a reversed treatment: dark NEUTRALS lifted to light, brand colours
   untouched.
   ========================================================================== */
.badges{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1.6rem 1.2rem}
@media (max-width:1080px){.badges{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:720px){.badges{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:440px){.badges{grid-template-columns:repeat(2,minmax(0,1fr))}}

.badge{display:flex;flex-direction:column;align-items:center;gap:.8rem;text-align:center}
.badge__plate{
  width:100%;aspect-ratio:1;display:grid;place-items:center;padding:6%;
  transition:transform .35s var(--ease),filter .35s var(--ease);
}
.badge__plate img{
  width:100%;height:100%;object-fit:contain;display:block;
  filter:drop-shadow(0 6px 18px rgb(0 0 0 / .55));
  transition:filter .35s var(--ease);
}
.badge:hover .badge__plate{transform:translateY(-5px) scale(1.04)}
.badge:hover .badge__plate img{
  filter:drop-shadow(0 10px 26px rgb(0 0 0 / .6))
         drop-shadow(0 0 16px rgb(var(--gold-rgb) / .45));
}
.badge__name{
  font-family:var(--ff-mono);font-size:.56rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgb(var(--silver-rgb) / .5);transition:color .25s;line-height:1.5;
}
.badge:hover .badge__name{color:var(--gold)}

/* --- Marquee carrying real badges rather than wordmarks ------------------- */
.marq{padding:1.35rem 0}
.marq__item{
  display:flex;align-items:center;gap:.7rem;padding:0 1.7rem;white-space:nowrap;
  font-family:var(--ff-display);font-size:.78rem;letter-spacing:.11em;text-transform:uppercase;
  color:rgb(var(--silver-rgb) / .52);transition:color .3s;
}
/* the diamond bullet belonged to the text-only version */
.marq__item::before{content:none}
.marq__item img{
  width:46px;height:46px;object-fit:contain;flex-shrink:0;
  filter:drop-shadow(0 3px 8px rgb(0 0 0 / .5));
  transition:transform .3s var(--ease),filter .3s var(--ease);
}
.marq__item b{font-weight:600}
.marq__item:hover{color:var(--gold)}
.marq__item:hover img{transform:scale(1.12);filter:drop-shadow(0 0 12px rgb(var(--gold-rgb) / .5))}
@media (max-width:640px){
  .marq__item{padding:0 1.2rem;font-size:.68rem;gap:.55rem}
  .marq__item img{width:38px;height:38px}
}

/* ==========================================================================
   HERO CREED + CAPABILITY STRIP  (from slide 1 of the client's deck)
   ========================================================================== */

/* TRAIN. | PREPARE. | PREVAIL. — the centre band of the key art */
.creed{
  display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1.1rem;margin:0 0 .9rem;
  font-family:var(--ff-display);font-weight:700;text-transform:uppercase;
  font-size:clamp(1.15rem,2.9vw,2rem);letter-spacing:.02em;line-height:1;
}
.creed span{position:relative;padding-right:1.1rem}
.creed span+span{padding-left:0}
.creed span:not(:last-child)::after{
  content:"";position:absolute;right:0;top:8%;bottom:8%;width:1px;
  background:linear-gradient(to bottom,transparent,rgb(var(--gold-rgb)/.75),transparent);
}
/* alternating silver / brass, matching the artwork */
.creed span:nth-child(1),.creed span:nth-child(3){color:var(--white)}
.creed span:nth-child(2){
  background:var(--metal);-webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}

/* ★ REGIONAL TRAINING. NATIONAL STANDARD. COMMUNITY FOCUSED. ★ */
.strap{
  display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;margin:0 0 2.1rem;
  font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.17em;text-transform:uppercase;
}
.strap::before,.strap::after{content:"\2605";color:var(--red);font-size:.7rem;line-height:1}
.strap b{font-weight:400;color:rgb(var(--silver-rgb)/.72)}
.strap b:nth-child(2){color:var(--gold)}
@media (max-width:520px){.strap{font-size:.55rem;gap:.3rem .6rem}}

/* The eight capability icons along the bottom of the key art */
.caps{
  display:grid;grid-template-columns:repeat(8,minmax(0,1fr));
  gap:1px;background:rgb(var(--gold-rgb)/.16);
  border-block:1px solid rgb(var(--gold-rgb)/.22);
}
@media (max-width:1080px){.caps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:560px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cap{
  background:linear-gradient(180deg,rgb(var(--gold-rgb)/.05),transparent 70%),var(--black);
  display:flex;flex-direction:column;align-items:center;gap:.75rem;
  padding:1.5rem .7rem 1.35rem;text-align:center;transition:background .3s;
}
.cap:hover{background:linear-gradient(180deg,rgb(var(--gold-rgb)/.13),transparent 75%),#100E0B}
.cap__ico{display:grid;place-items:center}
.cap__ico svg{width:30px;height:30px;transition:transform .35s var(--ease)}
.cap:hover .cap__ico svg{transform:translateY(-3px) scale(1.09)}
.cap__t{
  font-family:var(--ff-mono);font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgb(var(--silver-rgb)/.5);line-height:1.6;transition:color .3s;
}
.cap__t b{display:block;font-weight:400;color:rgb(var(--silver-rgb)/.82)}
.cap:hover .cap__t,.cap:hover .cap__t b{color:var(--gold)}

/* Brushed-brass icon stroke — the same material as the VICTORY badge.
   Uses a real SVG gradient paint server (defined once per page in the hidden
   #brass-defs sprite) so the stroke itself carries the metal, not a flat gold.
   Falls back to solid gold anywhere paint-server strokes are unsupported. */
.metal-ico{
  stroke:var(--gold);
  stroke:url(#brass);
  filter:drop-shadow(0 1px 2px rgb(0 0 0/.7)) drop-shadow(0 0 8px rgb(var(--gold-rgb)/.35));
}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}

/* --- Full NTOA session: wait list, not registration ---------------------- */
.date--full{border-color:rgb(var(--silver-rgb)/.16);background:linear-gradient(120deg,rgb(var(--silver-rgb)/.05),transparent 60%)}
.date--full .date__when b{color:rgb(var(--silver-rgb)/.7)}
.date__full{
  display:block;margin-top:.3rem;font-family:var(--ff-mono);font-size:.56rem;
  letter-spacing:.14em;text-transform:uppercase;color:#E8A33F;
}
.mcard__level--full{color:rgb(var(--silver-rgb)/.5)!important}

/* ==========================================================================
   BRAND BADGE + IN-HERO PARTNER MARQUEE
   ========================================================================== */

/* The client's VICTORY shield replaces the flat "V" plate. It is a full-colour
   emblem, so no chamfer or gold plate behind it — just the artwork. */
.brand__badge{display:block;flex-shrink:0;line-height:0}
.brand__badge img{
  width:auto;height:46px;display:block;
  filter:drop-shadow(0 2px 6px rgb(0 0 0/.6));
  transition:transform .3s var(--ease),filter .3s var(--ease);
}
.brand:hover .brand__badge img{
  transform:scale(1.06);
  filter:drop-shadow(0 3px 10px rgb(0 0 0/.7)) drop-shadow(0 0 12px rgb(var(--gold-rgb)/.45));
}
@media (max-width:600px){.brand__badge img{height:40px}}
/* footer lockup runs a touch larger */
.ft .brand__badge img{height:56px}

/* Marquee living inside the hero, between the CTAs and the hero bar */
.hero__marq{
  position:absolute;left:0;right:0;bottom:var(--hero-bar-h,52px);z-index:3;
  background:linear-gradient(180deg,transparent,rgb(10 9 8/.55) 35%,rgb(10 9 8/.72));
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-top:1px solid rgb(var(--gold-rgb)/.14);
}
.hero__marq .marq{
  padding:.7rem 0;border-block:0;background:none;
}
.hero__marq .marq__item{padding:0 1.5rem;font-size:.7rem;color:rgb(var(--silver-rgb)/.62)}
.hero__marq .marq__item img{width:34px;height:34px}
@media (max-width:760px){
  .hero__marq .marq__item{padding:0 1rem;font-size:.6rem;gap:.45rem}
  .hero__marq .marq__item img{width:28px;height:28px}
  .hero__marq .marq{padding:.55rem 0}
}
/* give the hero room so the marquee never covers the CTAs */
.hero__in{padding-bottom:clamp(7rem,14vh,10rem)}

/* --- Fit the whole hero (marquee + bar included) inside the viewport -------
   The headline was sized on width alone, so on a short laptop screen it grew
   tall enough to push the marquee and hero bar below the fold. Capping it by
   viewport HEIGHT as well keeps the full hero visible without shrinking it on
   tall displays. */
.hero{min-height:100svh}
.hero h1{font-size:clamp(2.5rem, min(8.2vw, 10.2vh), 6.5rem)}
.hero__in{
  padding-top:clamp(1.5rem, 5vh, 4rem);
  padding-bottom:clamp(6.5rem, 13vh, 9rem);
}
.hero__lede{margin-bottom:clamp(1rem, 2.4vh, 1.9rem)}
.hero__sub{margin-bottom:clamp(.7rem, 1.8vh, 1.4rem)}
.hero h1{margin-bottom:clamp(.7rem, 1.8vh, 1.3rem)}
.hero__kicker{margin-bottom:clamp(.9rem, 2.4vh, 1.8rem)}
.creed{margin-bottom:clamp(.5rem, 1.4vh, .9rem)}
.strap{margin-bottom:clamp(1.1rem, 3vh, 2.1rem)}

/* Short desktop screens (1366x768, 1280x800): compress the hero further so the
   CTAs clear the marquee and the hero bar still lands on screen. */
@media (min-width:900px) and (max-height:850px){
  .hero h1{font-size:clamp(2.3rem, 9vh, 3.6rem);line-height:1.02}
  .hero__lede{font-size:.92rem;max-width:52ch}
  .creed{font-size:clamp(1rem,2.4vh,1.5rem)}
  .hero__in{padding-bottom:clamp(7rem,15vh,9rem)}
  .hero__cta .btn{padding:.78rem 1.35rem}
  .hero__marq .marq{padding:.5rem 0}
  .hero__marq .marq__item img{width:28px;height:28px}
  .hero__marq .marq__item{font-size:.62rem;padding:0 1.2rem}
}

/* --- Capability strip now carries all 12 disciplines ---------------------
   Was eight across in one row; twelve reads best as 6 x 2 on desktop so the
   rows stay balanced (8-across would leave a stranded row of four). */
.caps{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1180px){.caps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.caps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:480px){.caps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.cap{padding:1.35rem .6rem 1.2rem}
.cap__ico svg,.cap__ico{width:28px;height:28px}

/* --- Contracted but not yet open for registration ------------------------ */
.date--soon{border-color:rgb(var(--gold-rgb)/.3);background:linear-gradient(120deg,rgb(var(--gold-rgb)/.09),transparent 60%)}
.date__soon{
  display:block;margin-top:.3rem;font-family:var(--ff-mono);font-size:.56rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
}

/* --- Narrow phones: keep the longer hero CTA on one line -----------------
   "Host Your Training / Demo / Event" is wide enough to wrap at 360px, which
   pushed the marquee and hero bar off screen. Tighten the type rather than let
   it wrap. */
@media (max-width:420px){
  .hero__cta{gap:.6rem}
  .hero__cta .btn{
    font-size:.58rem;letter-spacing:.09em;padding:.8rem .9rem;
    width:100%;justify-content:center;
  }
}
@media (max-width:340px){
  .hero__cta .btn{font-size:.53rem;letter-spacing:.06em;padding:.75rem .6rem}
}

/* --- Very short viewports (320x568 and similar) ---------------------------
   Not enough height for the full hero. Drop the supporting paragraph and the
   strap line so the headline, CTAs, marquee and hero bar all still land on
   screen; the copy is repeated further down the page. */
@media (max-height:640px){
  .hero__lede{display:none}
  .strap{display:none}
  .hero h1{font-size:clamp(1.9rem,8.5vh,2.7rem)}
  .creed{font-size:clamp(.95rem,3.4vh,1.25rem);margin-bottom:.9rem}
  .hero__sub{font-size:.85rem;margin-bottom:.8rem}
  .hero__in{padding-bottom:clamp(6rem,17vh,7.5rem)}
  .hero__marq .marq{padding:.45rem 0}
  .hero__marq .marq__item img{width:24px;height:24px}
}
@media (max-height:580px){
  .hero__kicker{display:none}
  .hero__in{padding-top:.8rem;padding-bottom:clamp(5.5rem,18vh,7rem)}
  .hero h1{font-size:clamp(1.7rem,7.8vh,2.3rem)}
}

/* --- Hero CTA is the nav button ------------------------------------------
   Same class, so it inherits the nav's gold gradient, chamfer, shine sweep and
   type. Only the scale differs — a hero button reads larger than a 76px nav. */
.hero__cta{gap:0}
.hero__cta-btn{
  font-size:.72rem;padding:.95rem 1.6rem;letter-spacing:.15em;
}
@media (max-width:420px){
  .hero__cta-btn{font-size:.6rem;padding:.85rem 1rem;letter-spacing:.1em;
    width:100%;justify-content:center;text-align:center}
}
/* the hero instance must not inherit the nav's left margin */
.hero__cta-btn{margin-left:0}

/* --- Full legal name in the brand lockup ---------------------------------
   "VICTORY" + "REGIONAL PUBLIC SAFETY TRAINING & READINESS CENTER" spells the
   whole name. That is a long string for a 76px bar, so it wraps and tightens
   on smaller screens rather than pushing the burger off the edge. */
.brand__sub{max-width:270px;white-space:normal;line-height:1.4}
@media (max-width:900px){
  .brand__sub{font-size:.44rem;letter-spacing:.11em;max-width:180px}
  .brand__name{font-size:.94rem}
}
@media (max-width:420px){
  .brand__sub{font-size:.4rem;letter-spacing:.07em;max-width:142px}
  .brand__name{font-size:.86rem;letter-spacing:.1em}
}
@media (max-width:340px){
  .brand__sub{display:none}   /* badge + VICTORY only; the full name is in the footer */
}
/* footer has room for the full string on one comfortable block */
.ft .brand__sub{max-width:320px;font-size:.52rem;letter-spacing:.16em}

/* --- Page that opens straight onto content, with no hero ------------------
   Without a hero the first section would sit under the fixed header, so it
   carries the nav height itself. */
.sec--nohero{padding-top:calc(var(--nav-h) + clamp(2rem,5vw,3.5rem))}

/* --- Document / diagram images shown whole --------------------------------
   `.split__media img` forces 4:3 with object-fit:cover, which is right for
   photography but crops artwork that carries text. The Locations map is 16:9,
   so cover was cutting ~25% off the sides and clipping the street addresses.
   These keep their own aspect ratio and are never cropped. */
.split__media--doc img{
  aspect-ratio:auto;height:auto;object-fit:contain;
  background:#0E0D0B;border:1px solid rgb(var(--silver-rgb)/.1);
}
/* campus page opens on the stats band, with no hero above it */
.sec--nohero-lead{height:var(--nav-h)}

/* Footer dropped from four columns to three (brand + Facility + Center) when
   the Training column was removed — rebalance so the links are not stranded
   against a wide empty gap. */
.ft__top{grid-template-columns:1.8fr 1fr 1fr}
@media (max-width:960px){.ft__top{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ft__top{grid-template-columns:1fr}}
