/* ============================================================
   BLACK CAT MMA — Design System
   Palette: #000000 / #FFFFFF / #847427 (antique brass)
   Type: Fraunces (display serif) + Inter (humanist sans)
   ============================================================ */

:root{
  --ink:#000000;
  --paper:#ffffff;
  --brass:#847427;              /* core antique brass */
  --brass-hi:#b9a765;           /* muted brass tint — small accents/text on black (AA) */
  --brass-deep:#5c5019;         /* aged brass shadow */

  /* near-black surfaces derived from black */
  --n-900:#050505;
  --n-850:#0a0a0a;
  --n-800:#101010;
  --n-750:#161616;
  --n-700:#1c1c1c;

  --line:rgba(255,255,255,.12);
  --line-strong:rgba(255,255,255,.22);
  --line-dark:rgba(0,0,0,.12);
  --paper-2:#f6f5f2;            /* clean near-white editorial surface */
  --paper-3:#eceae5;

  --fs-display:clamp(2.9rem,7vw,6.6rem);
  --fs-h1:clamp(2.4rem,5.5vw,5rem);
  --fs-h2:clamp(1.9rem,3.8vw,3.3rem);
  --fs-h3:clamp(1.3rem,2vw,1.7rem);
  --fs-lead:clamp(1.05rem,1.5vw,1.3rem);

  --maxw:1280px;
  --readw:64ch;
  --gutter:clamp(20px,5vw,80px);
  --sp-section:clamp(52px,7vw,104px);

  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;

  --ease:cubic-bezier(.22,.61,.36,1);
  --dur:.5s;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--sans);
  background:var(--ink);
  color:var(--paper);
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
ul{list-style:none}
:focus-visible{outline:2px solid var(--brass-hi);outline-offset:3px}

/* ---------- typography ---------- */
h1,h2,h3,h4{font-family:var(--serif);font-weight:500;line-height:1.03;letter-spacing:-.02em}
h1{font-size:var(--fs-h1)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3);letter-spacing:-.01em}
p{max-width:var(--readw)}
strong{font-weight:600}
em{font-style:italic}

.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.34em;
  text-transform:uppercase;
  color:var(--brass-hi);
  display:inline-flex;align-items:center;gap:.8em;
}
.eyebrow::before{
  content:"";width:34px;height:1px;background:var(--brass);display:inline-block;
}
.eyebrow.center::before{display:none}

.sec-num{
  font-family:var(--serif);
  font-size:.95rem;letter-spacing:.1em;
  color:var(--brass-hi);
  font-variant-numeric:tabular-nums;
}
.display{font-size:var(--display,var(--fs-display));line-height:.98}

/* ---------- layout ---------- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.wrap-wide{max-width:1480px;margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--sp-section)}
.section-sm{padding-block:clamp(38px,5vw,72px)}
.bg-ink{background:var(--ink)}
.bg-n900{background:var(--n-900)}
.bg-n850{background:var(--n-850)}
.bg-paper{background:var(--paper-2);color:var(--ink)}
.bg-paper .eyebrow{color:var(--brass-deep)}
.bg-paper .eyebrow::before{background:var(--brass-deep)}
.bg-paper .sec-num{color:var(--brass-deep)}
.grid{display:grid;gap:clamp(18px,2.2vw,32px)}

/* fine editorial vertical guide lines */
.guides{position:relative}
.guides::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:calc(100% / 3) 100%;
  opacity:.5;
}
.guides > *{position:relative;z-index:1}

/* low-opacity film grain */
.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---------- buttons ---------- */
.btn{
  --bw:1px;
  display:inline-flex;align-items:center;justify-content:center;gap:.7em;
  font-family:var(--sans);font-weight:600;font-size:.82rem;
  letter-spacing:.16em;text-transform:uppercase;
  padding:1.15em 2em;min-height:48px;cursor:pointer;
  border:var(--bw) solid transparent;background:transparent;
  transition:background var(--dur) var(--ease),color var(--dur) var(--ease),
             border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
  position:relative;
}
.btn-primary{background:var(--brass);color:#0b0a05;border-color:var(--brass)}
.btn-primary:hover{background:var(--brass-hi);border-color:var(--brass-hi);transform:translateY(-2px)}
.btn-ghost{border-color:var(--line-strong);color:var(--paper)}
.btn-ghost:hover{border-color:var(--brass-hi);color:var(--brass-hi)}
.bg-paper .btn-ghost{border-color:rgba(0,0,0,.28);color:var(--ink)}
.bg-paper .btn-ghost:hover{border-color:var(--brass-deep);color:var(--brass-deep)}
.btn .arrow{transition:transform var(--dur) var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}

/* text link with underline sweep */
.link-sweep{
  display:inline-flex;align-items:center;gap:.6em;
  font-weight:600;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass-hi);padding-bottom:.3em;position:relative;
}
.bg-paper .link-sweep{color:var(--brass-deep)}
.link-sweep::after{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;
  background:currentColor;transform:scaleX(0);transform-origin:left;
  transition:transform .55s var(--ease);
}
.link-sweep:hover::after{transform:scaleX(1)}
.link-sweep .arrow{transition:transform var(--dur) var(--ease)}
.link-sweep:hover .arrow{transform:translateX(4px)}

.btn-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:100;
  transition:background .45s var(--ease),backdrop-filter .45s var(--ease),
             border-color .45s var(--ease),padding .45s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header .bar{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  max-width:1480px;margin-inline:auto;padding:22px var(--gutter);
  transition:padding .45s var(--ease);
}
.site-header.scrolled{
  background:rgba(5,5,5,.86);backdrop-filter:saturate(140%) blur(14px);
  border-bottom-color:var(--line);
}
.site-header.scrolled .bar{padding-block:12px}
.brand{display:flex;align-items:center;gap:14px;flex-shrink:0}
.brand img{height:46px;width:auto;transition:height .45s var(--ease)}
.site-header.scrolled .brand img{height:38px}
.brand .b-name{display:none}

.nav-desktop{display:flex;align-items:center;gap:6px;margin-left:auto}
.nav-desktop > ul{display:flex;align-items:center;gap:4px}
.nav-desktop a.nav-link,.nav-desktop button.nav-link{
  font-size:.8rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
  padding:.7em 1.05em;background:transparent;border:0;cursor:pointer;
  color:rgba(255,255,255,.82);position:relative;transition:color .35s var(--ease);
}
.nav-desktop a.nav-link:hover,.nav-desktop button.nav-link:hover,
.nav-desktop a.nav-link[aria-current="page"]{color:#fff}
.nav-desktop a.nav-link::after{
  content:"";position:absolute;left:1.05em;right:1.05em;bottom:.45em;height:1px;
  background:var(--brass-hi);transform:scaleX(0);transform-origin:left;
  transition:transform .4s var(--ease);
}
.nav-desktop a.nav-link:hover::after,
.nav-desktop a.nav-link[aria-current="page"]::after{transform:scaleX(1)}

/* dropdown */
.has-drop{position:relative}
.drop-toggle{display:inline-flex;align-items:center;gap:.5em}
.drop-toggle .chev{width:9px;height:9px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .35s var(--ease)}
.has-drop[data-open="true"] .chev{transform:rotate(-135deg) translateY(-1px)}
.drop-panel{
  position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(8px);
  min-width:300px;background:rgba(8,8,8,.97);backdrop-filter:blur(16px);
  border:1px solid var(--line);padding:12px;
  opacity:0;visibility:hidden;transition:opacity .3s var(--ease),transform .3s var(--ease);
  display:grid;gap:2px;
}
.has-drop[data-open="true"] .drop-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.drop-panel a{
  display:flex;align-items:baseline;gap:.7em;padding:.7em .9em;
  font-size:.86rem;letter-spacing:.04em;color:rgba(255,255,255,.8);
  border-left:1px solid transparent;transition:all .3s var(--ease);
}
.drop-panel a .age{margin-left:auto;font-size:.66rem;letter-spacing:.14em;color:var(--brass-hi);text-transform:uppercase}
.drop-panel a:hover{background:var(--n-750);color:#fff;border-left-color:var(--brass);padding-left:1.15em}
.drop-panel a[aria-current="page"]{color:#fff;border-left-color:var(--brass)}

.nav-cta{margin-left:12px}
.header-tools{display:flex;align-items:center;gap:10px;margin-left:auto}

/* hamburger */
.nav-toggle{
  display:none;width:48px;height:48px;background:transparent;border:0;cursor:pointer;
  align-items:center;justify-content:center;flex-direction:column;gap:6px;z-index:210;
}
.nav-toggle span{width:26px;height:2px;background:#fff;transition:transform .4s var(--ease),opacity .3s var(--ease)}
body.menu-open .nav-toggle span:nth-child(1){transform:translateY(8px) rotate(45deg)}
body.menu-open .nav-toggle span:nth-child(2){opacity:0}
body.menu-open .nav-toggle span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* mobile overlay */
.nav-mobile{
  position:fixed;inset:0;z-index:200;background:var(--n-900);
  display:flex;flex-direction:column;padding:104px var(--gutter) 40px;
  transform:translateY(-100%);visibility:hidden;
  transition:transform .6s var(--ease),visibility .6s;
  overflow-y:auto;
}
body.menu-open .nav-mobile{transform:translateY(0);visibility:visible}
.nav-mobile::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:50% 100%;
}
.nav-mobile-inner{position:relative;display:flex;flex-direction:column;gap:2px;max-width:640px}
.nav-mobile a.m-link{
  font-family:var(--serif);font-size:clamp(1.9rem,7vw,2.9rem);letter-spacing:-.02em;
  padding:.22em 0;color:#fff;display:flex;align-items:baseline;gap:.5em;
  opacity:0;transform:translateY(18px);
  border-bottom:1px solid var(--line);
}
body.menu-open .nav-mobile a.m-link{opacity:1;transform:none;transition:opacity .5s var(--ease),transform .5s var(--ease)}
.nav-mobile a.m-link .idx{font-family:var(--sans);font-size:.7rem;letter-spacing:.2em;color:var(--brass-hi);align-self:center}
.m-sub{display:grid;gap:0;margin:2px 0 10px}
.m-sub a{
  font-family:var(--sans);font-size:.98rem;letter-spacing:.04em;color:rgba(255,255,255,.72);
  padding:.55em 0 .55em 1.4em;border-bottom:1px solid var(--line);
  display:flex;align-items:center;
  opacity:0;transform:translateY(12px);
}
body.menu-open .m-sub a{opacity:1;transform:none;transition:opacity .45s var(--ease),transform .45s var(--ease)}
.m-sub a .age{margin-left:auto;font-size:.64rem;letter-spacing:.14em;color:var(--brass-hi);text-transform:uppercase}
.nav-mobile-foot{margin-top:auto;padding-top:36px;display:flex;flex-direction:column;gap:14px}
.nav-mobile-foot .mf-row{display:flex;gap:22px;flex-wrap:wrap;font-size:.82rem;letter-spacing:.1em;color:rgba(255,255,255,.7);text-transform:uppercase}
.nav-mobile-foot .btn{align-self:flex-start}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;min-height:clamp(500px,78vh,720px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.hero.kenburns .hero-media img{animation:kenburns 22s var(--ease) both}
@keyframes kenburns{from{transform:scale(1.08)}to{transform:scale(1.0) translateY(-1%)}}
.hero-scrim{position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(120% 90% at 15% 90%,rgba(0,0,0,.86),transparent 60%),
    linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.15) 32%,rgba(0,0,0,.45) 70%,rgba(0,0,0,.92) 100%);
}
.hero-inner{padding-block:clamp(60px,12vh,140px);width:100%}
.hero h1{font-size:var(--fs-display);max-width:16ch;text-wrap:balance}
.hero .hero-sub{max-width:52ch;color:rgba(255,255,255,.86);font-size:var(--fs-lead);margin-top:1.2em}
.hero .btn-row{margin-top:2.2em}
.hero-meta{display:flex;flex-wrap:wrap;gap:24px;margin-top:1.9em;padding-top:1.3em;border-top:1px solid var(--line);max-width:640px}
.hero-meta .hm{display:flex;flex-direction:column;gap:.2em}
.hero-meta .hm b{font-family:var(--serif);font-size:1.15rem;color:#fff}
.hero-meta .hm span{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi)}

/* page hero (interior) */
.pagehero{position:relative;min-height:clamp(380px,54vh,540px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.pagehero .hero-media img{object-position:center 32%}
.pagehero .hero-scrim{background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.2) 40%,rgba(0,0,0,.86))}
.pagehero-inner{padding-block:clamp(48px,9vh,96px);width:100%}
.pagehero h1{font-size:var(--fs-h1);max-width:18ch;text-wrap:balance}
.pagehero .lede{max-width:56ch;margin-top:1em;color:rgba(255,255,255,.85);font-size:var(--fs-lead)}

/* breadcrumbs */
.crumbs{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.6);margin-bottom:1.4em;display:flex;flex-wrap:wrap;gap:.6em;align-items:center}
.crumbs a:hover{color:var(--brass-hi)}
.crumbs .sep{color:var(--brass);opacity:.7}

/* ============================================================
   REUSABLE EDITORIAL BLOCKS
   ============================================================ */
.sec-head{display:flex;flex-direction:column;gap:1rem;margin-bottom:clamp(22px,3.2vw,42px)}
.sec-head .row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap}
.sec-head h2{max-width:20ch;text-wrap:balance}
.sec-head p{color:rgba(255,255,255,.72)}
.bg-paper .sec-head p{color:rgba(0,0,0,.68)}

/* two-column feature (asymmetric) */
.feature{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,46px);align-items:center}
@media(min-width:900px){
  .feature{grid-template-columns:1.05fr .95fr}
  .feature.flip .feature-media{order:2}
  .feature.narrow-text{grid-template-columns:1.25fr .75fr}
}
.feature-media{position:relative;overflow:hidden}
.feature-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.feature-media.tall{aspect-ratio:4/5}
.feature-media.wide{aspect-ratio:3/2}
.feature-media:hover img{transform:scale(1.04)}
.feature-media .tag{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--brass-hi);
  font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;padding:.8em 1.2em;border-top:1px solid var(--brass)}
.feature-body p{margin-top:1em;color:rgba(255,255,255,.78)}
.bg-paper .feature-body p{color:rgba(0,0,0,.72)}
.feature-body .eyebrow{margin-bottom:1.2em}
.feature-body h2,.feature-body h3{margin-bottom:.2em}
.feature-body .btn-row{margin-top:1.8em}

/* manifesto / statement */
.statement{font-family:var(--serif);font-size:clamp(1.7rem,3.4vw,2.9rem);line-height:1.16;letter-spacing:-.02em;max-width:22ch;text-wrap:balance}
.statement .hl{color:var(--brass-hi)}
.bg-paper .statement .hl{color:var(--brass-deep)}

/* principles / value rows */
.rows{border-top:1px solid var(--line)}
.bg-paper .rows{border-color:var(--line-dark)}
.row-item{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,3vw,44px);
  padding:clamp(18px,2.6vw,32px) 0;border-bottom:1px solid var(--line);align-items:start}
.bg-paper .row-item{border-color:var(--line-dark)}
.row-item .r-num{font-family:var(--serif);font-size:1rem;color:var(--brass-hi);padding-top:.4em}
.bg-paper .row-item .r-num{color:var(--brass-deep)}
.row-item .r-main{display:grid;grid-template-columns:1fr;gap:.6em}
@media(min-width:820px){.row-item .r-main{grid-template-columns:.9fr 1.1fr;gap:clamp(24px,4vw,56px);align-items:baseline}}
.row-item h3{max-width:18ch}
.row-item p{color:rgba(255,255,255,.72);max-width:52ch}
.bg-paper .row-item p{color:rgba(0,0,0,.68)}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:760px){.stats{grid-template-columns:repeat(4,1fr)}}
.stat{background:var(--ink);padding:clamp(24px,3vw,40px)}
.bg-paper .stats{background:var(--line-dark);border-color:var(--line-dark)}
.bg-paper .stat{background:var(--paper-2)}
.stat b{display:block;font-family:var(--serif);font-size:clamp(2rem,4vw,3rem);color:#fff;line-height:1}
.bg-paper .stat b{color:var(--ink)}
.stat span{display:block;margin-top:.6em;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi)}
.bg-paper .stat span{color:var(--brass-deep)}

/* ---------- program atlas (home) ---------- */
.atlas{display:grid;gap:clamp(20px,2.4vw,32px);grid-template-columns:1fr}
@media(min-width:960px){.atlas{grid-template-columns:1.4fr 1fr}}
.atlas-feature{position:relative;overflow:hidden;min-height:360px;display:flex;align-items:flex-end}
.atlas-feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1.2s var(--ease)}
.atlas-feature::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.85))}
.atlas-feature:hover img{transform:scale(1.05)}
.atlas-feature .af-body{padding:clamp(26px,3vw,44px)}
.atlas-feature h3{font-size:clamp(1.8rem,3vw,2.6rem)}
.atlas-feature p{color:rgba(255,255,255,.8);margin:.6em 0 1.2em;max-width:40ch}
.atlas-list{display:grid;gap:2px;align-content:start}
.atlas-row{display:flex;align-items:center;gap:18px;padding:clamp(15px,1.6vw,20px) 4px;border-bottom:1px solid var(--line);transition:padding .4s var(--ease)}
.atlas-row:hover{padding-left:16px}
.atlas-row .ar-thumb{width:78px;height:56px;object-fit:cover;flex-shrink:0;filter:grayscale(.4) contrast(1.05);transition:filter .4s var(--ease)}
.atlas-row:hover .ar-thumb{filter:none}
.atlas-row .ar-main{flex:1;min-width:0}
.atlas-row .ar-main b{font-family:var(--serif);font-weight:500;font-size:1.15rem;display:block}
.atlas-row .ar-main span{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.atlas-row .ar-age{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi);white-space:nowrap}
.atlas-row .ar-arrow{color:var(--brass-hi);transition:transform .4s var(--ease)}
.atlas-row:hover .ar-arrow{transform:translateX(4px)}

/* ---------- process steps ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:2px;counter-reset:step;border-top:1px solid var(--line)}
@media(min-width:820px){.steps{grid-template-columns:repeat(3,1fr);border-top:0;gap:clamp(18px,1.8vw,28px)}}
.step{padding:clamp(20px,2.4vw,34px) 0;border-bottom:1px solid var(--line);position:relative}
@media(min-width:820px){.step{border-bottom:0;border-top:1px solid var(--brass);padding-right:24px}}
.step .st-num{font-family:var(--serif);font-size:clamp(2.4rem,4vw,3.4rem);color:var(--brass);line-height:1;display:block}
.step h3{margin:.5em 0 .35em}
.step p{color:rgba(255,255,255,.72);font-size:.98rem}
.bg-paper .step p{color:rgba(0,0,0,.68)}

/* ---------- workshop / timeline ---------- */
.timeline{border-left:1px solid var(--brass);margin-left:6px;display:grid;gap:0}
.tl-item{position:relative;padding:0 0 clamp(30px,4vw,52px) clamp(28px,4vw,52px)}
.tl-item::before{content:"";position:absolute;left:-6px;top:.35em;width:11px;height:11px;background:var(--brass);border-radius:50%}
.tl-item .tl-k{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-hi)}
.tl-item h3{margin:.35em 0 .4em}
.tl-item p{color:rgba(255,255,255,.74);max-width:60ch}
.bg-paper .tl-item p{color:rgba(0,0,0,.7)}

/* ---------- reviews marquee ---------- */
.reviews{overflow:hidden;position:relative}
.reviews .marquee{display:flex;gap:24px;width:max-content;will-change:transform}
.reviews .marquee.animate{animation:marquee 60s linear infinite}
.reviews:hover .marquee.animate,.reviews .marquee.paused{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.review-card{width:min(88vw,440px);flex-shrink:0;background:var(--n-850);border:1px solid var(--line);
  padding:clamp(26px,3vw,38px);display:flex;flex-direction:column;gap:1em}
.review-card .stars{color:var(--brass-hi);letter-spacing:.25em;font-size:.9rem}
.review-card p{color:rgba(255,255,255,.82);font-size:1rem;line-height:1.6;max-width:none;
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.review-card .who{margin-top:auto;display:flex;align-items:center;gap:12px;padding-top:.4em}
.review-card .who .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--brass),var(--brass-deep));
  display:grid;place-items:center;font-family:var(--serif);color:#0b0a05;font-size:1.05rem;flex-shrink:0}
.review-card .who b{font-weight:600;font-size:.95rem}
.review-card .who span{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi)}
.reviews-edge{position:absolute;top:0;bottom:0;width:12%;z-index:3;pointer-events:none}
.reviews-edge.l{left:0;background:linear-gradient(90deg,var(--n-900),transparent)}
.reviews-edge.r{right:0;background:linear-gradient(270deg,var(--n-900),transparent)}

/* ---------- location band ---------- */
.location{position:relative}
.loc-grid{display:grid;grid-template-columns:1fr;gap:0}
@media(min-width:900px){.loc-grid{grid-template-columns:1fr 1fr}}
.loc-info{padding:clamp(40px,6vw,88px) var(--gutter);display:flex;flex-direction:column;justify-content:center;gap:1.4em}
.loc-info .addr{font-family:var(--serif);font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2}
.loc-info dl{display:grid;gap:1em;margin-top:.4em}
.loc-info dt{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:.25em}
.loc-info dd a:hover{color:var(--brass-hi)}
.loc-areas{font-size:.92rem;color:rgba(255,255,255,.65);max-width:48ch}
.loc-map{position:relative;min-height:340px;background:var(--n-800);border-left:1px solid var(--line)}
.loc-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.3) contrast(1.05)}
.loc-map .map-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;
  background:var(--n-800);cursor:pointer;color:rgba(255,255,255,.7);text-align:center;padding:24px}
.loc-map .map-ph .pin{width:44px;height:44px;color:var(--brass-hi)}
.loc-map .map-ph span{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase}

/* ---------- CTA band ---------- */
.cta-band{position:relative;overflow:hidden;isolation:isolate;text-align:center}
.cta-band .cta-inner{padding-block:clamp(72px,11vw,150px);display:flex;flex-direction:column;align-items:center;gap:1.4em}
.cta-band h2{font-size:var(--fs-h1);max-width:20ch;text-wrap:balance}
.cta-band p{color:rgba(255,255,255,.8);max-width:52ch;margin-inline:auto}
.cta-band .btn-row{justify-content:center;margin-top:.8em}
.cta-band .claw{position:absolute;inset:0;z-index:-1;opacity:.5;
  background:radial-gradient(60% 50% at 50% 0%,rgba(132,116,39,.18),transparent 70%)}

/* ============================================================
   FORMS / MODAL
   ============================================================ */
.modal-scrim{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.78);backdrop-filter:blur(6px);
  opacity:0;visibility:hidden;transition:opacity .4s var(--ease),visibility .4s;display:grid;place-items:center;padding:20px}
.modal-scrim.open{opacity:1;visibility:visible}
.modal{width:min(560px,100%);background:var(--n-850);border:1px solid var(--line-strong);position:relative;
  max-height:92vh;overflow-y:auto;transform:translateY(24px) scale(.98);transition:transform .5s var(--ease)}
.modal-scrim.open .modal{transform:none}
.modal-head{padding:clamp(28px,4vw,40px) clamp(24px,4vw,40px) 0}
.modal-head .eyebrow{margin-bottom:1em}
.modal-head h2{font-size:clamp(1.6rem,3vw,2.2rem)}
.modal-head p{color:rgba(255,255,255,.72);font-size:.95rem;margin-top:.6em}
.modal-close{position:absolute;top:14px;right:14px;width:44px;height:44px;background:transparent;border:1px solid var(--line);
  cursor:pointer;color:#fff;display:grid;place-items:center;transition:all .3s var(--ease)}
.modal-close:hover{border-color:var(--brass-hi);color:var(--brass-hi);transform:rotate(90deg)}
.form{padding:clamp(24px,4vw,40px);display:grid;gap:18px}
.field{display:grid;gap:.5em}
.field-row{display:grid;gap:18px}
@media(min-width:480px){.field-row{grid-template-columns:1fr 1fr}}
.field label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi)}
.field label .req{color:var(--brass)}
.field input,.field select,.field textarea{
  background:var(--n-750);border:1px solid var(--line);color:#fff;padding:.95em 1em;width:100%;
  transition:border-color .3s var(--ease),background .3s var(--ease);font-size:1rem}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--brass-hi);background:var(--n-700)}
.field input:user-invalid,.field select:user-invalid{border-color:#8a3a2a}
.field .err{font-size:.78rem;color:#d98b7a;display:none;letter-spacing:.02em;text-transform:none}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid select{border-color:#8a3a2a}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form .btn{width:100%;margin-top:.4em}
.form-note{font-size:.78rem;color:rgba(255,255,255,.5);text-align:center;line-height:1.5}
.form-status{font-size:.9rem;padding:.9em 1.1em;border:1px solid;display:none}
.form-status.show{display:block}
.form-status.ok{border-color:var(--brass);color:var(--brass-hi);background:rgba(132,116,39,.1)}
.form-status.bad{border-color:#8a3a2a;color:#d98b7a;background:rgba(138,58,42,.1)}
.btn[aria-busy="true"]{opacity:.6;pointer-events:none}

/* inline contact form (contact page) */
.form-inline{background:var(--n-850);border:1px solid var(--line);padding:clamp(28px,4vw,44px)}
.form-inline .form{padding:0}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--n-900);border-top:1px solid var(--line);position:relative}
.footer-top{display:grid;grid-template-columns:1fr;gap:clamp(36px,4vw,48px);padding-block:clamp(42px,5vw,66px)}
@media(min-width:760px){.footer-top{grid-template-columns:1.5fr 1fr 1fr 1fr}}
.footer-brand img{height:56px;width:auto;margin-bottom:1.2em}
.footer-brand p{color:rgba(255,255,255,.6);font-size:.92rem;max-width:34ch}
.footer-brand .socials{display:flex;gap:12px;margin-top:1.4em}
.footer-brand .socials a{width:42px;height:42px;border:1px solid var(--line);display:grid;place-items:center;
  color:rgba(255,255,255,.7);transition:all .3s var(--ease)}
.footer-brand .socials a:hover{border-color:var(--brass);color:var(--brass-hi);transform:translateY(-2px)}
.footer-col h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:1.4em;font-weight:600}
.footer-col ul{display:grid;gap:.85em}
.footer-col a{color:rgba(255,255,255,.68);font-size:.92rem;transition:color .3s var(--ease)}
.footer-col a:hover{color:#fff}
.footer-bottom{border-top:1px solid var(--line);padding-block:26px;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.footer-bottom p,.footer-bottom a{font-size:.78rem;color:rgba(255,255,255,.5);letter-spacing:.02em}
.footer-bottom a:hover{color:var(--brass-hi)}
.footer-bottom .fb-legal{display:flex;gap:20px;flex-wrap:wrap}

/* ============================================================
   PROGRAMS OVERVIEW — discipline selector
   ============================================================ */
.discipline{display:grid;grid-template-columns:1fr;gap:clamp(20px,2.4vw,36px)}
@media(min-width:960px){.discipline{grid-template-columns:300px 1fr;align-items:start}}
.disc-rail{display:grid;gap:2px;position:sticky;top:96px;border-top:1px solid var(--line)}
.disc-rail button{
  text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);cursor:pointer;
  padding:1.05em .4em;display:flex;align-items:center;gap:14px;color:rgba(255,255,255,.72);
  transition:color .3s var(--ease),padding .35s var(--ease)}
.disc-rail button .d-n{font-size:.72rem;color:var(--brass-hi);font-variant-numeric:tabular-nums}
.disc-rail button .d-t{font-family:var(--serif);font-size:1.1rem}
.disc-rail button:hover{color:#fff;padding-left:12px}
.disc-rail button[aria-selected="true"]{color:#fff}
.disc-rail button[aria-selected="true"] .d-t{color:var(--brass-hi)}
.disc-panel{display:none}
.disc-panel.active{display:block;animation:fadeup .5s var(--ease) both}
.disc-panel .dp-media{position:relative;overflow:hidden;aspect-ratio:16/9;margin-bottom:28px}
.disc-panel .dp-media img{width:100%;height:100%;object-fit:cover}
.disc-panel .dp-age{display:inline-block;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:1em}
.disc-panel h2{font-size:clamp(1.8rem,3vw,2.6rem);margin-bottom:.5em}
.disc-panel p{color:rgba(255,255,255,.78)}
.disc-panel .dp-out{display:flex;flex-wrap:wrap;gap:10px;margin:1.6em 0}
.disc-panel .dp-out li{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.8);
  border:1px solid var(--line);padding:.6em 1em}

/* program mini-grid (overview + cross-links) */
.prog-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:2px;background:var(--line);border:1px solid var(--line)}
.prog-mini a{background:var(--ink);padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:.5em;
  transition:background .4s var(--ease);min-height:150px;position:relative}
.prog-mini a:hover{background:var(--n-800)}
.prog-mini a .pm-age{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi)}
.prog-mini a h3{font-size:1.25rem}
.prog-mini a p{font-size:.9rem;color:rgba(255,255,255,.6)}
.prog-mini a .arrow{margin-top:auto;color:var(--brass-hi);transition:transform .4s var(--ease)}
.prog-mini a:hover .arrow{transform:translateX(4px)}

/* prose (legal) */
.prose{max-width:74ch}
.prose h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin:2em 0 .6em;scroll-margin-top:110px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.2rem;margin:1.5em 0 .4em}
.prose p,.prose li{color:rgba(255,255,255,.78);margin-bottom:1em;max-width:none}
.prose ul{list-style:disc;padding-left:1.3em;margin-bottom:1em}
.prose li{margin-bottom:.5em}
.prose a{color:var(--brass-hi);text-decoration:underline;text-underline-offset:3px}
.toc{border:1px solid var(--line);padding:clamp(22px,3vw,32px);margin-bottom:48px;background:var(--n-850)}
.toc h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:1em}
.toc ol{list-style:none;counter-reset:toc;columns:2;column-gap:32px}
.toc li{counter-increment:toc;margin-bottom:.6em}
.toc a{font-size:.92rem;color:rgba(255,255,255,.72)}
.toc a::before{content:counter(toc,decimal-leading-zero) "  ";color:var(--brass);font-variant-numeric:tabular-nums}
.toc a:hover{color:#fff}
@media(max-width:600px){.toc ol{columns:1}}

/* 404 */
.err-page{min-height:80vh;display:grid;place-items:center;text-align:center;position:relative;padding:120px var(--gutter) 80px}
.err-page .big{font-family:var(--serif);font-size:clamp(6rem,22vw,15rem);line-height:.9;color:var(--brass);opacity:.9}
.err-page h1{font-size:var(--fs-h2);margin:.2em 0 .6em}
.err-page p{color:rgba(255,255,255,.72);margin-inline:auto;margin-bottom:1.8em}

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.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}
@keyframes fadeup{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  .reveal{opacity:1!important;transform:none!important}
  .hero.kenburns .hero-media img{animation:none}
  .reviews .marquee.animate{animation:none;flex-wrap:wrap}
}

/* ---------- utilities ---------- */
.mt-0{margin-top:0}.center{text-align:center}.mx-auto{margin-inline:auto}
.skip-link{position:absolute;left:-999px;top:0;z-index:400;background:var(--brass);color:#000;padding:.8em 1.2em;font-weight:600;letter-spacing:.1em}
.skip-link:focus{left:8px;top:8px}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
hr.rule{border:0;border-top:1px solid var(--brass);opacity:.5;margin-block:var(--sp-section)}

/* ============================================================
   B&W SPORT THEME  —  overrides
   Monochrome canvas; muted brass kept ONLY as a whisper on
   interactive/active affordances (buttons, underlines, ticks,
   focus, arrows). Headlines: bold condensed uppercase.
   ============================================================ */
:root{
  --serif:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --brass:#8a7b2e;      /* single muted accent */
  --brass-hi:#c2ad63;
  --fs-display:clamp(2.5rem,6vw,5rem);
  --fs-h1:clamp(2.1rem,4.4vw,3.7rem);
  --fs-h2:clamp(2.05rem,4.8vw,3.9rem);
  --fs-h3:clamp(1.3rem,2.1vw,1.8rem);
}
h1,h2,h3,h4{font-family:var(--serif);font-weight:700;text-transform:uppercase;letter-spacing:.005em;line-height:.92}
h1{font-weight:800}
.display{font-weight:800;letter-spacing:0;line-height:.9}
.hero h1,.pagehero h1{letter-spacing:0}

/* condensed statement */
.statement{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.005em;
  line-height:.98;font-size:clamp(2.1rem,4.6vw,3.6rem)}
.statement .hl{color:#fff;-webkit-text-decoration:underline;text-decoration:underline;
  text-underline-offset:8px;text-decoration-thickness:3px;text-decoration-color:var(--brass)}
.bg-paper .statement .hl{color:#000}

/* --- neutralize accent on TEXT roles → pure black & white --- */
.eyebrow{color:rgba(255,255,255,.6)}
.bg-paper .eyebrow{color:rgba(0,0,0,.55)}
.sec-num{color:rgba(255,255,255,.48);font-family:var(--sans);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:.72rem}
.bg-paper .sec-num{color:rgba(0,0,0,.45)}
.hero-meta .hm b{font-family:var(--serif);font-weight:800;font-size:1.5rem;letter-spacing:.01em}
.hero-meta .hm span{color:rgba(255,255,255,.58)}
.review-card .stars{color:#fff}
.review-card .who span{color:rgba(255,255,255,.5)}
.review-card .who .av{background:#fff;color:#000;font-family:var(--serif);font-weight:800}
.feature-media .tag{color:#fff;border-top-color:rgba(255,255,255,.45);letter-spacing:.22em}
.step .st-num{color:rgba(255,255,255,.22);font-weight:800}
.bg-paper .step .st-num{color:rgba(0,0,0,.16)}
.row-item .r-num{color:rgba(255,255,255,.38);font-family:var(--sans);font-weight:600}
.bg-paper .row-item .r-num{color:rgba(0,0,0,.32)}
.stat b{font-family:var(--serif);font-weight:800}
.stat span{color:rgba(255,255,255,.55)}
.bg-paper .stat span{color:rgba(0,0,0,.5)}
.prog-mini a .pm-age,.disc-panel .dp-age,.timeline .tl-item .tl-k,
.atlas-row .ar-age,.hero-meta .hm span{color:rgba(255,255,255,.55)}
.footer-col h4{color:rgba(255,255,255,.5)}
.crumbs .sep{color:rgba(255,255,255,.4)}
.err-page .big{color:#fff;opacity:.14;font-weight:800}

/* --- KEEP brass whisper on interactive / active --- */
.btn-primary{background:var(--brass);border-color:var(--brass);color:#0b0a05}
.btn-primary:hover{background:var(--brass-hi);border-color:var(--brass-hi)}
.link-sweep{color:#fff}
.bg-paper .link-sweep{color:#000}
.link-sweep::after{background:var(--brass)}
.eyebrow::before{background:var(--brass)}
.disc-rail button[aria-selected="true"] .d-t{color:#fff}
.disc-rail button[aria-selected="true"]{border-left:2px solid var(--brass);padding-left:12px}
.toc a::before{color:rgba(255,255,255,.4)}
.cta-band .claw{background:radial-gradient(60% 50% at 50% 0%,rgba(255,255,255,.07),transparent 70%)}
/* arrows & active nav underline retain accent as the whisper (inherited from base rules) */

/* condensed nav reads better slightly wider */
.nav-desktop a.nav-link,.nav-desktop button.nav-link{letter-spacing:.14em}
.nav-mobile a.m-link{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1}

/* ============================================================
   ALTERNATING SECTIONS — full paper-mode support
   White (.bg-paper) sections invert every component cleanly.
   ============================================================ */
.bg-paper{background:var(--paper-2);color:var(--ink)}
.bg-paper.guides::before,.bg-paper .guides::before{
  background-image:linear-gradient(90deg,var(--line-dark) 1px,transparent 1px)}
.bg-paper h1,.bg-paper h2,.bg-paper h3,.bg-paper h4{color:var(--ink)}

/* reviews on paper */
.bg-paper.reviews .reviews-edge.l{background:linear-gradient(90deg,var(--paper-2),transparent)}
.bg-paper.reviews .reviews-edge.r{background:linear-gradient(270deg,var(--paper-2),transparent)}
.bg-paper .review-card{background:#fff;border-color:rgba(0,0,0,.12)}
.bg-paper .review-card p{color:rgba(0,0,0,.82)}
.bg-paper .review-card .stars{color:#000}
.bg-paper .review-card .who b{color:#000}
.bg-paper .review-card .who span{color:rgba(0,0,0,.5)}
.bg-paper .review-card .who .av{background:#000;color:#fff}

/* program atlas on paper */
.bg-paper .atlas-row{border-color:var(--line-dark)}
.bg-paper .atlas-row .ar-main b{color:#000}
.bg-paper .atlas-row .ar-main span{color:rgba(0,0,0,.5)}

/* discipline selector on paper */
.bg-paper .disc-rail{border-color:var(--line-dark)}
.bg-paper .disc-rail button{color:rgba(0,0,0,.7);border-bottom-color:var(--line-dark)}
.bg-paper .disc-rail button:hover,.bg-paper .disc-rail button[aria-selected="true"]{color:#000}
.bg-paper .disc-rail button[aria-selected="true"] .d-t{color:#000}
.bg-paper .disc-panel p{color:rgba(0,0,0,.78)}
.bg-paper .disc-panel .dp-out li{border-color:var(--line-dark);color:rgba(0,0,0,.8)}
.bg-paper .disc-panel .dp-age{color:rgba(0,0,0,.55)}

/* location on paper */
.bg-paper .loc-info dt{color:rgba(0,0,0,.55)}
.bg-paper .loc-areas{color:rgba(0,0,0,.6)}
.bg-paper .loc-map{border-left-color:var(--line-dark)}
.bg-paper .timeline .tl-item p{color:rgba(0,0,0,.72)}

/* feature / prose / crumbs on paper */
.bg-paper .feature-body p{color:rgba(0,0,0,.74)}
.bg-paper .crumbs{color:rgba(0,0,0,.55)}
.bg-paper .crumbs .sep{color:rgba(0,0,0,.4)}
.bg-paper .prose p,.bg-paper .prose li{color:rgba(0,0,0,.78)}
.bg-paper .toc{background:#fff;border-color:var(--line-dark)}
.bg-paper .toc a{color:rgba(0,0,0,.72)}
.bg-paper .toc a:hover{color:#000}

/* CTA on paper: keep dramatic but legible */
.bg-paper.cta-band{color:var(--ink)}
.bg-paper.cta-band p{color:rgba(0,0,0,.72)}
.bg-paper.cta-band .claw{background:radial-gradient(60% 50% at 50% 0%,rgba(0,0,0,.05),transparent 70%)}

/* dark sections normalized to pure black in the alternation */
.section.bg-ink,.section-sm.bg-ink{background:#000}

/* ============================================================
   PROGRAM INDEX — full-bleed hover-reveal rows (home)
   ============================================================ */
.pindex{margin-inline:calc(-1 * var(--gutter));border-top:1px solid var(--line)}
.bg-paper .pindex{border-color:var(--line-dark)}
.pindex-row{position:relative;isolation:isolate;display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;
  gap:clamp(14px,2.4vw,40px);padding:clamp(18px,2.7vw,36px) var(--gutter);
  border-bottom:1px solid var(--line);overflow:hidden;
  transition:padding .45s var(--ease)}
.bg-paper .pindex-row{border-color:var(--line-dark)}
.pindex-row::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--img);
  background-size:cover;background-position:center 28%;opacity:0;transform:scale(1.1);
  transition:opacity .6s var(--ease),transform 7s var(--ease)}
.pindex-row::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.6);
  opacity:0;transition:opacity .6s var(--ease)}
.pindex-row:hover::before{opacity:1;transform:scale(1)}
.pindex-row:hover::after{opacity:1}
.pindex-row:hover{padding-left:calc(var(--gutter) + 16px)}
.pi-num{font-family:var(--serif);font-weight:700;font-size:clamp(.85rem,1.1vw,1rem);
  color:var(--brass-hi);font-variant-numeric:tabular-nums;letter-spacing:.06em}
.pi-name{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;
  line-height:.88;font-size:clamp(1.6rem,4.4vw,3.3rem);color:inherit;
  transition:color .4s var(--ease),transform .5s var(--ease)}
.pi-cat{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.55;text-align:right}
.pi-age{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi);white-space:nowrap}
.pi-arrow{font-family:var(--serif);color:var(--brass-hi);font-size:1.5rem;line-height:1;
  transition:transform .45s var(--ease),color .4s var(--ease)}
.pindex-row:hover .pi-name{color:#fff;transform:translateX(4px)}
.pindex-row:hover .pi-cat{color:rgba(255,255,255,.8);opacity:1}
.pindex-row:hover .pi-arrow{transform:translateX(10px);color:#fff}
@media(max-width:760px){
  .pindex-row{grid-template-columns:auto minmax(0,1fr) auto;gap:16px}
  .pi-cat{display:none}
}
@media (prefers-reduced-motion:reduce){.pindex-row::before,.pindex-row::after{transition:none}}

/* PROGRAM CARDS — editorial photo cards */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));
  gap:clamp(12px,1.3vw,20px)}
.pcard{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:4/5;
  display:flex;align-items:flex-end;background:#000;border:1px solid rgba(255,255,255,.08)}
.bg-paper .pcard{border-color:rgba(0,0,0,.1)}
.pcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  filter:grayscale(.18) contrast(1.03);transition:transform 1s var(--ease),filter .5s var(--ease)}
.pcard::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.12) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.9) 100%);
  transition:background .5s var(--ease)}
.pcard:hover img{transform:scale(1.06);filter:grayscale(0) contrast(1.05)}
.pcard:hover::after{background:linear-gradient(180deg,rgba(0,0,0,.28) 0%,rgba(0,0,0,.55) 45%,rgba(0,0,0,.96) 100%)}
.pcard-age{position:absolute;top:14px;left:14px;z-index:1;font-family:var(--sans);
  font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi);
  border:1px solid rgba(255,255,255,.28);padding:.55em .8em;background:rgba(0,0,0,.25)}
.pcard-body{padding:clamp(18px,1.8vw,26px);color:#fff;width:100%}
.pcard-body::before{content:"";display:block;width:26px;height:2px;background:var(--brass);
  margin-bottom:1em;transition:width .5s var(--ease)}
.pcard:hover .pcard-body::before{width:56px}
.pcard-cat{display:block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass-hi);margin-bottom:.5em}
.pcard-name{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;
  line-height:.9;font-size:clamp(1.35rem,1.9vw,1.85rem);color:#fff}
.pcard-go{display:inline-flex;align-items:center;gap:.5em;margin-top:.9em;font-family:var(--sans);
  font-size:.7rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  opacity:0;transform:translateY(8px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.pcard:hover .pcard-go,.pcard:focus-visible .pcard-go{opacity:1;transform:none}
.pcard-go .arrow{color:var(--brass-hi)}
@media (prefers-reduced-motion:reduce){.pcard-go{opacity:1;transform:none}}

/* section header with logo stamp on the right column */
.sec-head--stamp{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:clamp(24px,5vw,64px)}
.sec-head--stamp .sh-main{display:flex;flex-direction:column;gap:1rem}
.logo-stamp{justify-self:end;align-self:center;position:relative;background:#0b0b0b;
  border:1px solid rgba(255,255,255,.14);padding:clamp(16px,1.8vw,26px);
  transform:rotate(-3deg);transition:transform .6s var(--ease)}
.logo-stamp::before{content:"";position:absolute;inset:6px;border:1px solid rgba(132,116,39,.4);pointer-events:none}
.logo-stamp img{width:clamp(112px,12vw,168px);height:auto;display:block}
.sec-head--stamp:hover .logo-stamp{transform:rotate(0deg)}
@media(max-width:760px){.sec-head--stamp{grid-template-columns:1fr}.logo-stamp{display:none}}

/* ============================================================
   COACHING & COMMUNITY — cinematic full-bleed band + stat bar
   ============================================================ */
.coach-band{position:relative;overflow:hidden;isolation:isolate;
  padding-block:clamp(84px,13vw,180px)}
.coach-media{position:absolute;inset:0;z-index:-2}
.coach-media img{width:100%;height:100%;object-fit:cover;object-position:center 26%;
  filter:grayscale(.2) contrast(1.05)}
.coach-scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.62) 42%,rgba(0,0,0,.92) 100%),
  radial-gradient(120% 80% at 82% 15%,rgba(0,0,0,0),rgba(0,0,0,.6))}
.coach-inner{max-width:1180px}
.coach-inner .eyebrow{color:var(--brass-hi)}
.coach-title{font-size:clamp(2.2rem,5.4vw,4.5rem);line-height:.9;max-width:15ch;
  margin:.55em 0 .45em;color:#fff}
.coach-lead{max-width:54ch;color:rgba(255,255,255,.85);font-size:var(--fs-lead)}
.coach-cred{margin-top:1.3em;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--brass-hi);display:inline-flex;align-items:center;gap:.8em}
.coach-cred::before{content:"";width:34px;height:1px;background:var(--brass)}
.coach-stats{display:grid;grid-template-columns:repeat(2,1fr);
  margin-top:clamp(40px,5.5vw,72px);border-top:1px solid rgba(255,255,255,.2)}
@media(min-width:840px){.coach-stats{grid-template-columns:repeat(4,1fr)}}
.cstat{padding:clamp(22px,2.6vw,34px) clamp(16px,2vw,30px) 0;
  border-left:1px solid rgba(255,255,255,.14)}
.cstat b{display:block;font-family:var(--serif);font-weight:800;text-transform:uppercase;
  letter-spacing:.01em;font-size:clamp(1.75rem,3.2vw,2.9rem);line-height:.86;color:#fff}
.cstat span{display:block;margin-top:.7em;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-hi)}
.cstat:first-child{border-left:0;padding-left:0}
@media(max-width:839px){.cstat:nth-child(odd){border-left:0;padding-left:0}}

/* ============================================================
   COACHING & COMMUNITY v3 — header + photo & numbered pillars
   ============================================================ */
.coach2-top{display:grid;grid-template-columns:1fr;gap:clamp(14px,2.2vw,32px);
  align-items:end;padding-bottom:clamp(30px,3.5vw,52px);border-bottom:1px solid var(--line)}
@media(min-width:900px){.coach2-top{grid-template-columns:1.15fr .85fr}}
.coach2-head h2{font-size:clamp(2rem,4.8vw,4rem);line-height:.88;margin-top:.45em}
.coach2-lead{color:rgba(255,255,255,.8);max-width:46ch;font-size:var(--fs-lead)}
.coach2-grid{display:grid;grid-template-columns:1fr;gap:clamp(22px,3vw,44px);
  margin-top:clamp(34px,4.5vw,60px);align-items:stretch}
@media(min-width:900px){.coach2-grid{grid-template-columns:.82fr 1.18fr}}
.coach2-media{position:relative;overflow:hidden;min-height:clamp(300px,36vw,440px)}
.coach2-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 16%;filter:grayscale(.25) contrast(1.05);transition:transform 1.1s var(--ease)}
.coach2-media:hover img{transform:scale(1.05)}
.coach2-media figcaption{position:absolute;left:0;bottom:0;z-index:1;background:#000;
  color:var(--brass-hi);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  padding:.85em 1.3em;border-top:1px solid var(--brass)}
.coach2-pillars{display:flex;flex-direction:column;justify-content:center;
  border-top:1px solid var(--line)}
.coach2-pillars li{display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2.4vw,38px);
  padding:clamp(20px,2.5vw,32px) 0;border-bottom:1px solid var(--line);align-items:baseline}
.cp-num{font-family:var(--serif);font-weight:800;font-size:clamp(1.3rem,1.9vw,1.9rem);
  color:var(--brass-hi);line-height:1;font-variant-numeric:tabular-nums}
.cp-b h3{font-size:clamp(1.15rem,1.7vw,1.55rem);margin-bottom:.35em;color:#fff}
.cp-b p{color:rgba(255,255,255,.7);font-size:.96rem;max-width:52ch}
.coach2-cta{margin-top:clamp(26px,3vw,40px)}

/* ============================================================
   REVIEWS — centered header + rotating color-mix cards
   ============================================================ */
.reviews .sec-head{align-items:center;text-align:center}
.reviews .sec-head .row{flex-direction:column;align-items:center;justify-content:center;gap:1rem}
.reviews .sec-head h2{max-width:24ch}
.reviews .sec-head p{margin-inline:auto}
.reviews .sec-num{display:block;text-align:center}

/* uniform, "alive" card — dark surface, brass quote watermark, notched corner */
.reviews .marquee .review-card{position:relative;background:#0e0e0e;
  border:1px solid rgba(255,255,255,.12);overflow:hidden;isolation:isolate;
  clip-path:polygon(0 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%);
  transition:transform .5s var(--ease),border-color .5s var(--ease),background .5s var(--ease)}
.reviews .marquee .review-card > *{position:relative;z-index:1}
.reviews .marquee .review-card::before{content:"\201D";position:absolute;top:-.36em;left:.04em;z-index:0;
  font-family:var(--serif);font-weight:800;font-size:8.5rem;line-height:1;color:var(--brass);
  opacity:.14;pointer-events:none;transition:opacity .5s var(--ease),color .5s var(--ease)}
.reviews .marquee .review-card::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;
  background:var(--brass);z-index:2;transition:width .6s var(--ease)}
.reviews .marquee .review-card:hover{transform:translateY(-6px);border-color:rgba(194,173,99,.55);background:#141414}
.reviews .marquee .review-card:hover::before{opacity:.3;color:var(--brass-hi)}
.reviews .marquee .review-card:hover::after{width:100%}
.reviews .marquee .review-card .stars{color:var(--brass-hi);letter-spacing:.3em}
.reviews .marquee .review-card p{color:rgba(255,255,255,.86)}
.reviews .marquee .review-card .who{border-top:1px solid rgba(255,255,255,.1);padding-top:1.1em;margin-top:.4em}
.reviews .marquee .review-card .who b{color:#fff}
.reviews .marquee .review-card .who span{color:var(--brass-hi)}
.reviews .marquee .review-card .who .av{background:linear-gradient(135deg,var(--brass-hi),var(--brass-deep));
  color:#0b0a05;box-shadow:0 0 0 2px #0e0e0e,0 0 0 3px rgba(194,173,99,.6)}

/* ============================================================
   OUR LOCATION v2 — stacked editorial band + full-width map
   ============================================================ */
.loc2{overflow:hidden}
.loc2-top{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;
  flex-wrap:wrap;margin-bottom:clamp(26px,3.2vw,44px)}
.loc2-head h2{font-size:clamp(1.9rem,4.2vw,3.5rem);line-height:.9;margin-top:.4em}
.loc2-cta{display:flex;gap:14px;flex-wrap:wrap}
.loc2-info{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
@media(min-width:640px){.loc2-info{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.loc2-info{grid-template-columns:repeat(4,1fr)}}
.loc2 .li{padding:clamp(20px,2.3vw,30px) 0;border-bottom:1px solid var(--line)}
@media(min-width:1000px){
  .loc2 .li{border-bottom:0;border-left:1px solid var(--line);
    padding-left:clamp(22px,2vw,30px);padding-right:clamp(16px,1.5vw,24px)}
  .loc2 .li:first-child{border-left:0;padding-left:0}
}
.loc2 .li-k{display:block;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass-hi);margin-bottom:.8em}
.loc2 .li-v{display:block;font-size:clamp(.95rem,1.15vw,1.08rem);line-height:1.45;
  color:inherit;overflow-wrap:anywhere}
.loc2 .li-v a:hover{color:var(--brass-hi)}
.loc2-map{position:relative;width:100%;margin-top:clamp(30px,3.6vw,52px);
  aspect-ratio:24/7;min-height:260px;background:var(--n-800);overflow:hidden}
.loc2-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.4) contrast(1.05)}
.loc2-map .map-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:14px;background:var(--n-800);cursor:pointer;color:rgba(255,255,255,.72);border:0}
.loc2-map .map-ph .pin{width:42px;height:42px;color:var(--brass-hi)}
.loc2-map .map-ph span{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase}
.bg-paper .loc2-info,.bg-paper .loc2 .li{border-color:var(--line-dark)}

/* ============================================================
   OUR LOCATION v3 — layered: ghost word + framed map + overlap card
   ============================================================ */
.loc3{position:relative;overflow:hidden}
.loc3-ghost{position:absolute;left:50%;top:33%;transform:translate(-50%,-50%);z-index:0;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;
  font-size:clamp(5rem,19vw,18rem);line-height:1;color:transparent;
  -webkit-text-stroke:1px rgba(255,255,255,.07);pointer-events:none;letter-spacing:.02em}
.bg-paper .loc3-ghost{-webkit-text-stroke-color:rgba(0,0,0,.07)}
.loc3 .wrap{position:relative;z-index:1}
.loc3-head{margin-bottom:clamp(26px,3.2vw,48px)}
.loc3-head h2{font-size:clamp(2rem,4.4vw,3.6rem);line-height:.9;margin-top:.4em;max-width:16ch}
.loc3-stage{position:relative}
.loc3-map{position:relative;width:100%;aspect-ratio:16/10;min-height:320px;background:var(--n-800);
  overflow:hidden;border:1px solid var(--line)}
.bg-paper .loc3-map{border-color:var(--line-dark)}
.loc3-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.45) contrast(1.05)}
.loc3-map .map-ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:12px;background:var(--n-800);cursor:pointer;color:rgba(255,255,255,.72);border:0}
.loc3-map .map-ph .pin{width:40px;height:40px;color:var(--brass-hi)}
.loc3-map .map-ph span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
.loc3-card{position:relative;z-index:2;background:#0d0d0d;border:1px solid rgba(194,173,99,.4);
  padding:clamp(26px,3vw,40px);margin:-46px auto 0;max-width:560px;color:#fff}
.loc3-card::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--brass)}
.lc-pin{position:relative;display:inline-grid;place-items:center;width:46px;height:46px;
  border:1px solid rgba(194,173,99,.5);color:var(--brass-hi);margin-bottom:1.1em}
.lc-pin svg{width:22px;height:22px}
.lc-pin::after{content:"";position:absolute;inset:-1px;border:1px solid rgba(194,173,99,.5);
  animation:pinpulse 2.6s ease-out infinite}
@keyframes pinpulse{0%{transform:scale(1);opacity:.6}100%{transform:scale(1.7);opacity:0}}
.lc-name{display:block;font-family:var(--serif);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.4rem,2vw,1.9rem);line-height:1}
.lc-addr{color:rgba(255,255,255,.82);margin:.7em 0 1.2em}
.lc-dl{display:grid;gap:1em;border-top:1px solid rgba(255,255,255,.12);padding-top:1.2em}
.lc-dl dt{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:.3em}
.lc-dl dd a:hover{color:var(--brass-hi)}
.lc-areas{margin:1.2em 0;font-size:.9rem;color:rgba(255,255,255,.6)}
.lc-cta{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
@media(min-width:960px){
  .loc3-map{width:64%;margin-left:auto;aspect-ratio:16/9}
  .loc3-card{position:absolute;left:0;top:50%;transform:translateY(-50%);width:min(420px,44%);margin:0}
}
@media (prefers-reduced-motion:reduce){.lc-pin::after{animation:none;opacity:0}}

/* ============================================================
   OUR LOCATION v4 — immersive full-bleed map + floating panel
   ============================================================ */
.loc4{position:relative;overflow:hidden;min-height:clamp(440px,56vh,580px);
  display:flex;align-items:center;padding-block:0}
.loc4-map{position:absolute;inset:0;z-index:0;background:var(--n-800)}
.loc4-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;
  filter:grayscale(.5) contrast(1.05) brightness(.82)}
.loc4-map .map-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  gap:12px;background:var(--n-800);border:0;color:rgba(255,255,255,.6);cursor:pointer}
.loc4-map .map-ph .pin{width:38px;height:38px;color:var(--brass-hi)}
.loc4-map .map-ph span{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase}
.loc4-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.76) 32%,rgba(0,0,0,.28) 60%,rgba(0,0,0,.12) 100%)}
.loc4 .wrap{position:relative;z-index:2;width:100%}
.loc4-panel{max-width:440px;background:rgba(8,8,8,.7);backdrop-filter:blur(7px);
  border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--brass);
  padding:clamp(28px,3.2vw,46px);color:#fff}
.loc4-panel .eyebrow{color:var(--brass-hi)}
.loc4-panel h2{color:#fff;font-size:clamp(2rem,3.6vw,3.2rem);line-height:.88;margin:.45em 0 .55em}
.loc4-addr{color:rgba(255,255,255,.86);font-size:1.05rem;line-height:1.45;margin-bottom:1.1em}
.loc4-dl{display:grid;gap:.95em;border-top:1px solid rgba(255,255,255,.14);
  padding-top:1.2em;margin-bottom:1.5em}
.loc4-dl dt{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:.25em}
.loc4-dl dd{font-size:1rem}
.loc4-dl dd a:hover{color:var(--brass-hi)}
.loc4-cta{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:760px){
  .loc4-scrim{background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,.82))}
  .loc4-panel{max-width:none;background:rgba(8,8,8,.82)}
  .loc4-map iframe{pointer-events:none}
}

/* ============================================================
   FINAL CTA v2 — image-backed, Ken Burns + breathing brass glow
   ============================================================ */
.cta2{position:relative;overflow:hidden;isolation:isolate;text-align:center}
.cta2-media{position:absolute;inset:0;z-index:0}
.cta2-media img{width:100%;height:100%;object-fit:cover;object-position:center 32%;
  filter:grayscale(.32) contrast(1.06);animation:ctaken 26s var(--ease) infinite alternate}
@keyframes ctaken{from{transform:scale(1.08)}to{transform:scale(1)}}
.cta2-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(0,0,0,.84),rgba(0,0,0,.64) 45%,rgba(0,0,0,.92))}
.cta2::after{content:"";position:absolute;left:50%;bottom:-14%;width:70%;height:66%;
  transform:translateX(-50%);z-index:1;mix-blend-mode:screen;pointer-events:none;
  background:radial-gradient(circle,rgba(132,116,39,.5),transparent 60%);
  animation:ctaglow 5.5s ease-in-out infinite}
@keyframes ctaglow{0%,100%{opacity:.45;transform:translateX(-50%) scale(.9)}
  50%{opacity:.9;transform:translateX(-50%) scale(1.12)}}
.cta2 .cta2-inner{position:relative;z-index:2;padding-block:clamp(88px,14vw,190px);
  display:flex;flex-direction:column;align-items:center;gap:1.25em}
.cta2 .eyebrow{color:var(--brass-hi)}
.cta2 .eyebrow.center{gap:1.1em}
.cta2 .eyebrow.center::before,.cta2 .eyebrow.center::after{content:"";width:44px;height:1px;
  background:var(--brass);display:inline-block}
.cta2 h2{color:#fff;font-size:clamp(2.4rem,6vw,5rem);max-width:17ch;line-height:.88;text-wrap:balance}
.cta2 p{color:rgba(255,255,255,.86);max-width:52ch;margin-inline:auto}
.cta2 .btn-row{justify-content:center;margin-top:.7em}
@media (prefers-reduced-motion:reduce){
  .cta2-media img{animation:none}.cta2::after{animation:none;opacity:.5}
}

/* CTA — card style + reduced padding (overrides above) */
.section.cta2{padding-block:clamp(40px,5vw,84px)}
.cta2::after{display:none}
.cta-card{position:relative;overflow:hidden;isolation:isolate;border:1px solid rgba(194,173,99,.45)}
.cta-card::after{content:"";position:absolute;left:50%;bottom:-16%;width:72%;height:70%;
  transform:translateX(-50%);z-index:1;mix-blend-mode:screen;pointer-events:none;
  background:radial-gradient(circle,rgba(132,116,39,.5),transparent 60%);
  animation:ctaglow 5.5s ease-in-out infinite}
.cta2 .cta2-inner{padding-block:clamp(46px,6vw,84px);padding-inline:clamp(24px,4vw,60px)}
.cta2 h2{font-size:clamp(2rem,4.2vw,3.3rem)}
@media (prefers-reduced-motion:reduce){.cta-card::after{animation:none;opacity:.5}}

/* CTA — defined edge frame + readability boost */
.cta-card{border-color:rgba(194,173,99,.6)}
.cta-card::before{content:"";position:absolute;inset:12px;z-index:3;pointer-events:none;
  border:1px solid rgba(194,173,99,.5)}
.cta-card .cta2-scrim{background:
  linear-gradient(180deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.74) 45%,rgba(0,0,0,.95) 100%),
  radial-gradient(80% 78% at 50% 52%,rgba(0,0,0,.55),transparent 72%)}
.cta2 .eyebrow,.cta2 h2,.cta2 p{text-shadow:0 2px 22px rgba(0,0,0,.65)}
.cta2 .btn-ghost{background:rgba(0,0,0,.32);border-color:rgba(255,255,255,.55);color:#fff}
.cta2 .btn-ghost:hover{background:rgba(0,0,0,.12);border-color:var(--brass-hi);color:var(--brass-hi)}
.cta2 .cta2-inner{padding-inline:clamp(28px,5vw,72px)}
/* card text is always light — beat the .bg-paper.cta-band overrides */
.section.cta2 .cta2-inner{color:#fff}
.section.cta2 .cta2-inner p{color:rgba(255,255,255,.88)}
.section.cta2 .cta2-inner h2{color:#fff}
.bg-paper.cta2 .cta2-inner .btn-ghost{color:#fff;border-color:rgba(255,255,255,.55)}
/* ============================================================
   WORKSHOP CURRICULUM — numbered part panels
   ============================================================ */
.wk-grid{display:grid;grid-template-columns:1fr;gap:clamp(14px,1.5vw,20px)}
@media(min-width:820px){.wk-grid{grid-template-columns:1fr 1fr}}
.wk-part{position:relative;overflow:hidden;isolation:isolate;
  padding:clamp(28px,3vw,46px);border:1px solid var(--line);
  background:linear-gradient(160deg,rgba(255,255,255,.02),transparent);
  transition:transform .45s var(--ease),border-color .45s var(--ease)}
.bg-paper .wk-part{border-color:var(--line-dark);background:linear-gradient(160deg,rgba(0,0,0,.02),transparent)}
.wk-part::before{content:"";position:absolute;left:0;top:0;height:3px;width:0;background:var(--brass);
  transition:width .55s var(--ease)}
.wk-part:hover{transform:translateY(-4px);border-color:rgba(194,173,99,.5)}
.wk-part:hover::before{width:100%}
.wk-num{position:absolute;top:clamp(6px,1.4vw,14px);right:clamp(12px,1.6vw,22px);z-index:-1;
  font-family:var(--serif);font-weight:800;font-size:clamp(4.5rem,8vw,7.5rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.28);pointer-events:none}
.bg-paper .wk-num{-webkit-text-stroke-color:rgba(132,116,39,.3)}
.wk-kick{display:inline-flex;align-items:center;gap:.7em;font-size:.68rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass-hi)}
.wk-kick::before{content:"";width:26px;height:1px;background:var(--brass)}
.wk-part h3{font-size:clamp(1.25rem,1.9vw,1.65rem);margin:.7em 0 .5em;max-width:20ch}
.wk-part p{color:rgba(255,255,255,.72);font-size:.96rem;max-width:52ch}
.bg-paper .wk-part p{color:rgba(0,0,0,.68)}

/* ============================================================
   SUB-PAGE HEADER v3 — diagonal-cut photo + grid text panel
   ============================================================ */
.pagehero3{position:relative;overflow:hidden;display:flex;align-items:center;
  background-color:#000;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:46px 46px;
  min-height:clamp(420px,56vh,560px);
  padding-block:clamp(100px,13vh,138px) clamp(34px,5vw,60px)}
.pagehero3::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 80% at 0% 40%,rgba(132,116,39,.1),transparent 55%)}
.ph3-media{position:absolute;top:0;right:0;bottom:0;width:56%;z-index:0;
  clip-path:polygon(16% 0,100% 0,100% 100%,0 100%)}
.ph3-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) contrast(1.04)}
.ph3-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.55) 16%,rgba(0,0,0,0) 46%)}
.ph3-coords{position:absolute;right:clamp(16px,2vw,30px);bottom:clamp(14px,2vw,22px);z-index:2;
  font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.ph3-inner{position:relative;z-index:1;width:100%}
/* alive elements on the black panel */
.pagehero3 > .ph3-word{content:"";position:absolute;left:-1%;bottom:3%;z-index:0;pointer-events:none;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.78;
  font-size:clamp(4.5rem,15vw,12rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.1);
  letter-spacing:.02em;animation:phdrift 13s ease-in-out infinite alternate;user-select:none}
@keyframes phdrift{from{transform:translateX(0)}to{transform:translateX(22px)}}
.ph3-vlabel{position:absolute;left:clamp(8px,1.4vw,22px);top:50%;z-index:2;
  writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);
  font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(194,173,99,.65);
  display:flex;align-items:center;gap:1.3em}
.ph3-vlabel::before{content:"";width:42px;height:1px;background:rgba(194,173,99,.6)}
.ph3-coords{display:inline-flex;align-items:center;gap:.7em}
.ph3-coords::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brass-hi);flex:none;
  box-shadow:0 0 0 0 rgba(194,173,99,.6);animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(194,173,99,.55)}100%{box-shadow:0 0 0 13px rgba(194,173,99,0)}}
@media (prefers-reduced-motion:reduce){.pagehero3 > .ph3-word{animation:none}.ph3-coords::before{animation:none}}
@media(max-width:820px){.ph3-vlabel{display:none}.pagehero3 > .ph3-word{font-size:clamp(3.5rem,22vw,7rem)}}
.ph3-text{max-width:640px}
.ph3-text .crumbs{margin-bottom:1.5em}
.ph3-text .eyebrow{margin-bottom:1.3em}
.ph3-text h1{font-size:clamp(2.1rem,4.6vw,3.9rem);line-height:.86;max-width:13ch}
.ph3-text .lede{max-width:42ch;margin-top:1.2em;color:rgba(255,255,255,.74);font-size:var(--fs-lead)}
.ph3-text .btn-row{margin-top:1.9em}
@media(max-width:820px){
  .pagehero3{display:block;padding-top:92px}
  .ph3-media{position:relative;width:100%;height:clamp(240px,42vw,320px);clip-path:none;margin-bottom:28px}
  .ph3-media::after{background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.55))}
  .ph3-text h1{max-width:none}
}

/* ============================================================
   SUB-PAGE HEADER v2 — editorial split (text + framed photo)
   ============================================================ */
.pagehero2{position:relative;overflow:hidden;
  padding-block:clamp(118px,17vh,196px) clamp(48px,7vw,92px)}
.ph2-grid{display:grid;grid-template-columns:1fr;gap:clamp(30px,5vw,68px);align-items:center}
@media(min-width:920px){.ph2-grid{grid-template-columns:1.05fr .95fr}}
.ph2-text{position:relative;z-index:1}
.ph2-text .crumbs{margin-bottom:1.5em}
.ph2-text .eyebrow{margin-bottom:1.3em}
.ph2-text h1{font-size:clamp(2.4rem,5.6vw,4.7rem);line-height:.86;max-width:14ch}
.ph2-text .lede{max-width:46ch;margin-top:1.1em;color:rgba(255,255,255,.82);font-size:var(--fs-lead)}
.bg-paper .ph2-text .lede{color:rgba(0,0,0,.7)}
.ph2-meta{display:flex;margin:1.9em 0 1.7em;border-top:1px solid var(--line)}
.bg-paper .ph2-meta{border-color:var(--line-dark)}
.ph2-meta > span{padding:1.1em clamp(16px,2vw,30px) 0;border-left:1px solid var(--line);
  display:flex;flex-direction:column;gap:.25em}
.bg-paper .ph2-meta > span{border-color:var(--line-dark)}
.ph2-meta > span:first-child{border-left:0;padding-left:0}
.ph2-meta b{font-family:var(--serif);font-weight:800;text-transform:uppercase;font-size:1.05rem;line-height:1}
.ph2-meta .mk{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi)}
.ph2-media{position:relative;overflow:hidden;aspect-ratio:4/5;border:1px solid rgba(194,173,99,.4)}
.ph2-media img{width:100%;height:100%;object-fit:cover}
.ph2-media::before{content:"";position:absolute;inset:11px;border:1px solid rgba(194,173,99,.35);
  z-index:2;pointer-events:none}
.ph2-media figcaption{position:absolute;left:0;bottom:0;z-index:2;background:#000;color:var(--brass-hi);
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;padding:.85em 1.25em;border-top:1px solid var(--brass)}
@media(min-width:920px){.ph2-media{aspect-ratio:3/4}}

/* ============================================================
   SECTION FX — diagonal brass hairlines + corner glow (alive)
   ============================================================ */
.section,.section-sm{position:relative}
.sfx{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.sfx::before{content:"";position:absolute;inset:-30%;
  background:repeating-linear-gradient(135deg,transparent 0 78px,rgba(194,173,99,.07) 78px 79px);
  animation:sfxdrift 26s ease-in-out infinite alternate}
.sfx::after{content:"";position:absolute;inset:0;
  background:radial-gradient(46% 60% at 88% 6%,rgba(194,173,99,.08),transparent 60%),
             radial-gradient(42% 52% at 6% 98%,rgba(194,173,99,.05),transparent 60%)}
.bg-paper .sfx::before{background:repeating-linear-gradient(135deg,transparent 0 78px,rgba(0,0,0,.04) 78px 79px)}
.bg-paper .sfx::after{background:radial-gradient(46% 60% at 88% 6%,rgba(132,116,39,.07),transparent 60%),
             radial-gradient(42% 52% at 6% 98%,rgba(132,116,39,.05),transparent 60%)}
@keyframes sfxdrift{from{transform:translate(0,0)}to{transform:translate(56px,56px)}}
@media (prefers-reduced-motion:reduce){.sfx::before{animation:none}}
.sfx-word{position:absolute;right:-1%;bottom:-6%;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.76;
  font-size:clamp(3.5rem,14vw,11rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.13)}
.bg-paper .sfx-word{-webkit-text-stroke-color:rgba(0,0,0,.06)}

/* ============================================================
   PROGRAM MINI CARDS — gradients + accent elements (all pages)
   ============================================================ */
.prog-mini{gap:1px}
.prog-mini a{background:linear-gradient(160deg,#171717 0%,#080808 100%);position:relative;
  overflow:hidden;transition:transform .45s var(--ease),background .5s var(--ease)}
.prog-mini a > *{position:relative;z-index:1}
.prog-mini a::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
  background:radial-gradient(130% 95% at 100% 100%,rgba(132,116,39,.24),transparent 55%);
  transition:opacity .55s var(--ease)}
.prog-mini a::after{content:"";position:absolute;left:0;top:0;height:2px;width:100%;z-index:2;
  background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .55s var(--ease)}
.prog-mini a:hover{background:linear-gradient(160deg,#1d1911 0%,#0b0906 100%);transform:translateY(-4px)}
.prog-mini a:hover::before{opacity:1}
.prog-mini a:hover::after{transform:scaleX(1)}
.prog-mini a h3{font-size:1.3rem;color:#fff}
.prog-mini a p{color:rgba(255,255,255,.64)}
.prog-mini a .pm-age{color:var(--brass-hi)}

/* oversized ghost wordmark behind CTA content */
.cta-ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;
  font-size:clamp(4.5rem,17vw,14rem);line-height:1;color:transparent;letter-spacing:.02em;
  -webkit-text-stroke:1px rgba(194,173,99,.16);pointer-events:none;user-select:none}

/* hero sizing + balanced padding (top clears the fixed header) */
.hero{min-height:clamp(540px,86vh,860px);align-items:center}
.hero-inner{padding-block:clamp(100px,13vh,146px) clamp(44px,7vh,80px)}
.hero h1,.hero .display{max-width:18ch}
.pagehero{min-height:clamp(400px,58vh,580px)}
.pagehero-inner{padding-block:clamp(92px,11vh,128px) clamp(38px,5vh,66px)}

/* marquee ticker band (below hero) — dual counter-scrolling, aggressive */
.ticker-band{background:#000;overflow:hidden;position:relative;isolation:isolate;
  border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);
  padding:clamp(9px,1.2vw,15px) 0}
.ticker-band .row{display:flex;width:max-content;white-space:nowrap;will-change:transform}
.ticker-band .row.r1{animation:ticker 40s linear infinite}
.ticker-band .row.r2{animation:ticker-rev 46s linear infinite}
.ticker-band .row.r2{margin-top:clamp(5px,.7vw,9px);padding-top:clamp(5px,.7vw,9px);
  border-top:1px solid rgba(255,255,255,.08)}
.ticker-band:hover .row{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:clamp(12px,1.7vw,26px);
  padding-right:clamp(12px,1.7vw,26px)}
.ticker-item b{font-family:var(--serif);font-weight:800;text-transform:uppercase;
  letter-spacing:.03em;font-size:clamp(.82rem,1.45vw,1.2rem);color:#fff;line-height:1;
  transform:skewX(-7deg);display:inline-block}
.ticker-item b.out{-webkit-text-stroke:1px rgba(255,255,255,.92);color:transparent}
.ticker-item .sep{color:var(--brass-hi);font-weight:700;font-size:clamp(.7rem,1.05vw,.92rem);
  transform:skewX(-7deg)}
@keyframes ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes ticker-rev{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (prefers-reduced-motion:reduce){.ticker-band .row{animation:none}}

/* hero background overlay — uniform tint + gradient for legibility */
.hero-media::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.46);z-index:1}
.hero-scrim{background:
  linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.28) 42%,rgba(0,0,0,.5) 74%,rgba(0,0,0,.9) 100%),
  radial-gradient(130% 100% at 12% 88%,rgba(0,0,0,.7),transparent 60%)}
.pagehero .hero-scrim{background:
  linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.35) 45%,rgba(0,0,0,.88) 100%)}

/* ============================================================
   CLEAN PASS — flat sections, big ghost NUMBERS, centered intros
   ============================================================ */
.sfx::before,.sfx::after{display:none}                 /* flatten: drop diagonal grain + glow */
.sfx-word{left:auto;right:clamp(-6px,0vw,4px);top:50%;bottom:auto;transform:translateY(-50%);
  font-family:var(--serif);font-weight:800;line-height:.78;letter-spacing:0;
  font-size:clamp(7rem,19vw,16rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.14)}
.bg-paper .sfx-word{-webkit-text-stroke-color:rgba(0,0,0,.07)}
/* centered, clean section intros (leave the stamp header alone) */
.sec-head:not(.sec-head--stamp){align-items:center;text-align:center}
.sec-head:not(.sec-head--stamp) .row{flex-direction:column;align-items:center;justify-content:center;gap:.85rem}
.sec-head:not(.sec-head--stamp) h2{max-width:24ch}
.sec-head:not(.sec-head--stamp) p{margin-inline:auto;max-width:58ch}
.sec-head:not(.sec-head--stamp) .sec-num{display:block;text-align:center}

/* CLEAN PASS — add large faint WORD alongside the number (reference-style bg type) */
.sfx-label{position:absolute;left:-1%;bottom:5%;font-family:var(--serif);font-weight:800;
  text-transform:uppercase;white-space:nowrap;line-height:.76;letter-spacing:.01em;
  font-size:clamp(3.6rem,11vw,9.5rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.1)}
.bg-paper .sfx-label{-webkit-text-stroke-color:rgba(0,0,0,.055)}
@media(max-width:760px){.sfx-label{font-size:clamp(3rem,16vw,6rem)}}

/* ============================================================
   MOBILE OPTIMIZATION
   ============================================================ */
/* nav: switch to hamburger on tablet/mobile (was missing) */
@media(max-width:1024px){
  .nav-desktop{display:none}
  .nav-toggle{display:flex}
}
/* remove age labels (brass/brown text) from the nav menus */
.drop-panel a .age,.nav-mobile .m-sub a .age{display:none}

@media(max-width:768px){
  /* calmer background type on small screens */
  .sfx-label{display:none}
  .sfx-word{font-size:clamp(4.5rem,22vw,8rem);top:auto;bottom:5%;transform:none}
  .pagehero3 > .ph3-word{opacity:.5}
  /* hero clears the fixed header + tighter */
  .hero-inner{padding-block:116px clamp(44px,8vh,72px)}
  .hero-meta{gap:16px 26px}
  /* reviews + cta fit better */
  .review-card{width:min(85vw,380px)}
  .cta2 .cta2-inner{padding-inline:clamp(20px,6vw,34px)}
  .sec-head:not(.sec-head--stamp){margin-bottom:clamp(18px,5vw,28px)}
  /* ticker a touch smaller */
  .ticker-item b{font-size:clamp(.78rem,3.4vw,1rem)}
}
@media(max-width:480px){
  .ph3-text h1{font-size:clamp(1.9rem,8.4vw,2.6rem)}
  .hero h1,.hero .display{font-size:clamp(2.1rem,8.6vw,3rem)}
  .sec-head h2,.coach2-head h2,.pcard-name,.wk-part h3,.cta2 h2,.ph3-text h1{overflow-wrap:anywhere}
  .ph3-media{height:clamp(210px,52vw,280px)}
  .loc4-panel{padding:clamp(22px,6vw,30px)}
}

/* ============================================================
   EXPLORE MORE PROGRAMS v2 — image-thumbnail rows
   ============================================================ */
.prog-list{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
@media(min-width:720px){.prog-list{grid-template-columns:1fr 1fr}}
.bg-paper .prog-list{background:var(--line-dark);border-color:var(--line-dark)}
.pl-item{display:flex;min-height:clamp(120px,13vw,150px);background:#0c0c0c;overflow:hidden;
  position:relative;isolation:isolate;transition:background .4s var(--ease)}
.pl-item:hover{background:#151515}
.pl-item::after{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:var(--brass);
  transform:scaleY(0);transform-origin:top;transition:transform .5s var(--ease);z-index:2}
.pl-item:hover::after{transform:scaleY(1)}
.pl-thumb{width:clamp(98px,13vw,140px);flex:none;align-self:stretch;min-height:0;object-fit:cover;
  object-position:center 22%;filter:grayscale(.35) contrast(1.05);
  transition:filter .5s var(--ease),transform 1s var(--ease)}
.pl-item:hover .pl-thumb{filter:grayscale(0);transform:scale(1.05)}
.pl-body{flex:1;min-width:0;padding:clamp(16px,1.9vw,24px);display:flex;flex-direction:column;
  justify-content:center;gap:.4em}
.pl-age{font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi)}
.pl-title{font-family:var(--serif);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:.95;color:#fff}
.pl-desc{font-size:.86rem;color:rgba(255,255,255,.6);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pl-go{flex:none;align-self:center;padding-right:clamp(16px,1.6vw,22px);color:var(--brass-hi);
  font-family:var(--serif);font-size:1.3rem;transition:transform .4s var(--ease)}
.pl-item:hover .pl-go{transform:translateX(5px)}

/* prog-mini ENHANCED — shine sweep + index number + warmer gradient */
.prog-mini a{background:linear-gradient(155deg,#191712 0%,#0a0806 60%,#060606 100%)}
.prog-mini a::before{inset:auto;left:-65%;top:0;right:auto;bottom:0;width:48%;height:100%;z-index:0;opacity:1;
  background:linear-gradient(105deg,transparent 0%,rgba(194,173,99,.16) 50%,transparent 100%);
  transform:skewX(-12deg);transition:left .8s var(--ease)}
.prog-mini a:hover::before{left:135%;opacity:1}
.prog-mini a:hover{background:linear-gradient(155deg,#241f14 0%,#0d0a06 60%,#080706 100%);transform:translateY(-5px)}
.prog-mini a .pm-num{position:absolute;top:clamp(10px,1.4vw,16px);right:clamp(14px,1.7vw,22px);z-index:0;
  font-family:var(--serif);font-weight:800;font-size:clamp(2.4rem,4vw,3.6rem);line-height:1;color:transparent;
  -webkit-text-stroke:1px rgba(194,173,99,.24);transition:-webkit-text-stroke-color .5s var(--ease),transform .6s var(--ease)}
.prog-mini a:hover .pm-num{-webkit-text-stroke-color:rgba(194,173,99,.6);transform:scale(1.08)}
@media (prefers-reduced-motion:reduce){.prog-mini a::before{transition:none}}

/* ============================================================
   FEATURE SECTIONS — background text related to the section
   ============================================================ */
.feature{position:relative}
.feature > *{position:relative;z-index:1}
.feature::after{content:attr(data-bg);position:absolute;z-index:0;pointer-events:none;user-select:none;
  top:clamp(-42px,-3vw,-14px);right:clamp(-8px,-0.5vw,8px);
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.78;
  letter-spacing:.02em;font-size:clamp(3rem,8.5vw,7rem);color:transparent;
  -webkit-text-stroke:1px rgba(194,173,99,.14)}
.bg-paper .feature::after{-webkit-text-stroke-color:rgba(0,0,0,.06)}
@media(max-width:760px){.feature::after{font-size:clamp(2.4rem,11vw,4.2rem);top:-22px}}

/* ============================================================
   FREE-TRIAL MODAL — aggressive: white gradient, shapes, ghost text
   ============================================================ */
.modal{
  background:
    radial-gradient(120% 90% at 0% 0%, rgba(255,255,255,.10), transparent 42%),
    radial-gradient(95% 75% at 100% 100%, rgba(132,116,39,.18), transparent 55%),
    linear-gradient(160deg,#171717 0%,#0b0b0b 68%,#070707 100%);
  border:1px solid var(--line-strong);border-top:2px solid var(--brass);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 28px),calc(100% - 28px) 100%,0 100%)}
.modal::before{content:"";position:absolute;top:0;left:0;right:0;height:140px;z-index:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.07) 50%,transparent 62%)}
.modal-head{position:relative;overflow:hidden;z-index:1}
.modal-head::after{content:"Free Class";position:absolute;top:-.32em;right:-.04em;z-index:0;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.78;
  font-size:clamp(3rem,9vw,4.8rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.18);
  pointer-events:none;user-select:none}
.modal-head > *{position:relative;z-index:1}
.modal-head h2{font-size:clamp(1.9rem,4vw,2.6rem);line-height:.92}
.modal-head h2::after{content:"";display:block;width:52px;height:3px;background:var(--brass);margin-top:.5rem}
.modal .form{position:relative;z-index:1}
.modal-close{z-index:3}

/* ============================================================
   PREMIUM DARK SECTIONS — subtle white + brass gradients
   ============================================================ */
.section.bg-ink,.section-sm.bg-ink{
  background:
    radial-gradient(105% 72% at 12% -6%, rgba(255,255,255,.055), transparent 52%),
    radial-gradient(95% 82% at 102% 108%, rgba(132,116,39,.13), transparent 56%),
    linear-gradient(180deg,#070707 0%,#030303 100%)}
/* coaching band reads richer */
.coach2.bg-ink{
  background:
    radial-gradient(90% 70% at 8% 0%, rgba(255,255,255,.06), transparent 50%),
    radial-gradient(80% 80% at 100% 100%, rgba(132,116,39,.16), transparent 55%),
    linear-gradient(180deg,#080808,#030303)}
/* footer */
.site-footer{
  background:
    radial-gradient(70% 100% at 100% 0%, rgba(132,116,39,.11), transparent 55%),
    radial-gradient(60% 90% at 0% 100%, rgba(255,255,255,.04), transparent 55%),
    var(--n-900)}

/* ============================================================
   PREMIUM LIGHT SECTIONS — subtle white + brass gradients
   ============================================================ */
.section.bg-paper,.section-sm.bg-paper{
  background:
    radial-gradient(105% 72% at 90% -6%, rgba(255,255,255,.75), transparent 50%),
    radial-gradient(95% 85% at 2% 110%, rgba(132,116,39,.12), transparent 55%),
    linear-gradient(180deg,#f7f5f0 0%,#ece8de 100%)}

/* ============================================================
   HOME PROGRAMS — bento mosaic
   ============================================================ */
.pbento{display:grid;grid-template-columns:1fr;gap:clamp(10px,1.1vw,16px)}
@media(min-width:620px){.pbento{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.pbento{grid-template-columns:repeat(3,1fr);grid-auto-rows:minmax(212px,1fr)}
  .pt-lg{grid-column:span 2;grid-row:span 2}}
.pt{position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:flex-end;
  min-height:212px;background:#000;border:1px solid rgba(255,255,255,.08)}
.pt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  filter:grayscale(.22) contrast(1.05);transition:transform 1s var(--ease),filter .5s var(--ease)}
.pt::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.42) 46%,rgba(0,0,0,.9))}
.pt::before{content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--brass);z-index:1;
  transition:width .5s var(--ease)}
.pt:hover img{transform:scale(1.06);filter:grayscale(0) contrast(1.06)}
.pt:hover::before{width:100%}
.pt-body{padding:clamp(16px,1.7vw,26px);color:#fff;width:100%}
.pt-age{display:block;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:.5em}
.pt-name{font-family:var(--serif);font-weight:800;text-transform:uppercase;line-height:.9;
  font-size:clamp(1.2rem,1.6vw,1.6rem);color:#fff}
.pt-lg .pt-name{font-size:clamp(2rem,3.4vw,3.4rem)}
.pt-desc{display:none}
.pt-lg .pt-desc{display:block;color:rgba(255,255,255,.82);margin-top:.6em;max-width:38ch;font-size:.98rem}
.pt-go{display:inline-flex;align-items:center;gap:.5em;margin-top:.85em;font-family:var(--sans);
  font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  opacity:0;transform:translateY(6px);transition:opacity .45s var(--ease),transform .45s var(--ease)}
.pt:hover .pt-go,.pt:focus-visible .pt-go{opacity:1;transform:none}
.pt-go .arrow{color:var(--brass-hi)}
.pbento-cta{display:flex;flex-direction:column;justify-content:center;gap:.7em;min-height:212px;
  padding:clamp(20px,2.2vw,32px);background:linear-gradient(160deg,#1d1811,#0a0806);
  border:1px solid rgba(194,173,99,.42);color:#fff;transition:background .5s var(--ease)}
.pbento-cta:hover{background:linear-gradient(160deg,#26200f,#0c0906)}
.pbento-cta .eyebrow{color:var(--brass-hi)}
.pbento-cta b{font-family:var(--serif);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.4rem,2vw,1.9rem);line-height:.92}
.pbento-cta .pc-go{display:inline-flex;align-items:center;gap:.5em;font-size:.7rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--brass-hi);margin-top:.3em}
@media(prefers-reduced-motion:reduce){.pt-go{opacity:1;transform:none}}

/* bento tiles — guarantee text legibility over photos */
.pt::after{background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.5) 42%,rgba(0,0,0,.82) 74%,rgba(0,0,0,.96) 100%)}
.pt-body{text-shadow:0 2px 16px rgba(0,0,0,.7)}
.pt-name,.pt-lg .pt-desc,.pt-go{text-shadow:0 2px 18px rgba(0,0,0,.85)}
.pt-age{text-shadow:0 1px 10px rgba(0,0,0,.9)}

/* fix: bento tile titles are white even on light (bg-paper) sections */
.bg-paper .pt-name{color:#fff}
.bg-paper .pt .pt-age{color:var(--brass-hi)}

/* ============================================================
   PREMIUM DARK — stronger white+brass depth, all dark surfaces
   ============================================================ */
.section.bg-ink,.section-sm.bg-ink{
  background:
    radial-gradient(100% 72% at 12% -8%, rgba(255,255,255,.085), transparent 50%),
    radial-gradient(96% 86% at 103% 110%, rgba(132,116,39,.20), transparent 58%),
    linear-gradient(180deg,#0b0b0b 0%,#020202 100%)}
.coach2.bg-ink{
  background:
    radial-gradient(92% 72% at 6% -4%, rgba(255,255,255,.10), transparent 52%),
    radial-gradient(86% 86% at 102% 104%, rgba(132,116,39,.24), transparent 56%),
    linear-gradient(180deg,#0c0c0c,#030303)}
.pagehero3{
  background-color:#060606;
  background-image:
    radial-gradient(88% 72% at 7% -6%, rgba(255,255,255,.08), transparent 50%),
    radial-gradient(84% 84% at 101% 108%, rgba(132,116,39,.18), transparent 55%),
    linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:auto,auto,46px 46px,46px 46px}
.site-footer{
  background:
    radial-gradient(72% 100% at 100% 0%, rgba(132,116,39,.16), transparent 56%),
    radial-gradient(62% 92% at 0% 100%, rgba(255,255,255,.055), transparent 55%),
    var(--n-900)}

/* ============================================================
   PREMIUM LIGHT — stronger white+brass depth (all pages)
   ============================================================ */
.section.bg-paper,.section-sm.bg-paper{
  background:
    radial-gradient(110% 75% at 92% -8%, rgba(255,255,255,.92), transparent 52%),
    radial-gradient(100% 90% at 0% 112%, rgba(132,116,39,.18), transparent 56%),
    radial-gradient(72% 62% at 100% 104%, rgba(132,116,39,.09), transparent 60%),
    linear-gradient(180deg,#f8f6f1 0%,#e7e2d5 100%)}

/* ============================================================
   NAVIGATION REDESIGN — gradient bg, brass shimmer, shine CTA
   ============================================================ */
.site-header{background:linear-gradient(180deg,rgba(0,0,0,.85) 0%,rgba(0,0,0,.4) 55%,transparent 100%);
  border-bottom:1px solid transparent}
.site-header::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,rgba(132,116,39,.2) 14%,var(--brass) 44%,var(--brass-hi) 50%,var(--brass) 56%,rgba(132,116,39,.2) 86%,transparent 100%);
  background-size:230% 100%;animation:navshimmer 7s linear infinite}
@keyframes navshimmer{to{background-position:230% 0}}
.site-header.scrolled{
  background:linear-gradient(105deg,rgba(14,13,8,.96) 0%,rgba(8,8,8,.93) 55%,rgba(14,13,8,.96) 100%);
  backdrop-filter:saturate(150%) blur(16px);border-bottom-color:rgba(194,173,99,.32)}
.brand img{filter:drop-shadow(0 2px 8px rgba(0,0,0,.6));height:48px}
.site-header.scrolled .brand img{height:40px}
.nav-desktop a.nav-link,.nav-desktop button.nav-link{color:rgba(255,255,255,.92)}
.nav-desktop a.nav-link:hover,.nav-desktop button.nav-link:hover{color:var(--brass-hi)}
.nav-cta{position:relative;overflow:hidden}
.nav-cta::after{content:"";position:absolute;top:0;left:-60%;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-16deg);
  transition:left .75s var(--ease)}
.nav-cta:hover::after{left:135%}
.nav-toggle span{box-shadow:0 1px 4px rgba(0,0,0,.6)}
@media (prefers-reduced-motion:reduce){.site-header::before{animation:none}}

/* ============================================================
   NAVIGATION REDESIGN — gradient bg, readable, aggressive/lively
   ============================================================ */
.site-header{
  background:linear-gradient(180deg,rgba(6,5,2,.94) 0%,rgba(6,5,2,.55) 60%,rgba(6,5,2,0) 100%);
  border-bottom:1px solid transparent}
.site-header::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,var(--brass) 28%,var(--brass-hi) 50%,var(--brass) 72%,transparent 100%);
  background-size:220% 100%;animation:navsheen 7s linear infinite;opacity:.75}
@keyframes navsheen{0%{background-position:210% 0}100%{background-position:-210% 0}}
.site-header.scrolled{
  background:linear-gradient(100deg,rgba(10,10,10,.94) 0%,rgba(16,12,6,.94) 100%);
  border-bottom-color:rgba(194,173,99,.32)}
/* logo — clearly visible on any background */
.brand img{height:50px;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55))}
.site-header.scrolled .brand img{height:40px}
/* readable nav text */
.nav-desktop a.nav-link,.nav-desktop button.nav-link{color:rgba(255,255,255,.92);text-shadow:0 1px 8px rgba(0,0,0,.5)}
.nav-desktop a.nav-link:hover,.nav-desktop button.nav-link:hover,
.nav-desktop a.nav-link[aria-current="page"]{color:#fff}
/* aggressive gradient CTA with shine sweep */
.nav-cta{background:linear-gradient(135deg,var(--brass-hi) 0%,var(--brass) 100%);border-color:transparent;
  color:#0b0a05;position:relative;overflow:hidden;margin-left:16px}
.nav-cta::after{content:"";position:absolute;top:0;left:-65%;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-16deg);
  transition:left .65s var(--ease)}
.nav-cta:hover{background:linear-gradient(135deg,#d8c47c 0%,var(--brass-hi) 100%);transform:translateY(-2px)}
.nav-cta:hover::after{left:135%}
@media(prefers-reduced-motion:reduce){.site-header::before{animation:none}}

/* ============================================================
   NAVIGATION — completely new layout: numbered links + tall brass CTA block
   ============================================================ */
.site-header .bar{align-items:center;min-height:82px;padding-top:0;padding-bottom:0;padding-right:0}
.site-header.scrolled .bar{min-height:64px;padding-block:0}
.nav-desktop{align-self:stretch;align-items:center}
.nav-desktop > ul{counter-reset:nav;align-self:center}
.nav-desktop > ul > li{counter-increment:nav}
.nav-desktop a.nav-link,.nav-desktop button.nav-link{display:inline-flex;align-items:baseline;gap:.55em}
.nav-desktop > ul > li > .nav-link::before{content:counter(nav,decimal-leading-zero);
  font-family:var(--sans);font-size:.58rem;font-weight:600;letter-spacing:.08em;
  color:var(--brass-hi);font-variant-numeric:tabular-nums;opacity:.85}
/* tall angled brass CTA block, flush to the right edge */
.nav-cta{align-self:stretch;display:inline-flex;align-items:center;justify-content:center;
  margin-left:clamp(18px,2vw,34px);padding-inline:clamp(24px,2.4vw,44px);min-height:0;border:0;
  font-size:.8rem;letter-spacing:.16em;color:#0b0a05;overflow:hidden;position:relative;
  background:linear-gradient(135deg,var(--brass-hi) 0%,var(--brass) 100%);
  clip-path:polygon(16px 0,100% 0,100% 100%,0 100%)}
.nav-cta:hover{transform:none;background:linear-gradient(135deg,#dcc880 0%,var(--brass-hi) 100%)}
.nav-cta::after{content:"";position:absolute;top:0;left:-70%;width:48%;height:100%;pointer-events:none;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-16deg);
  transition:left .65s var(--ease)}
.nav-cta:hover::after{left:140%}
/* vertical brass divider between links and CTA */
.nav-desktop > ul{position:relative;padding-right:clamp(16px,2vw,28px)}
.nav-desktop > ul::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);
  width:1px;height:22px;background:rgba(194,173,99,.4)}

/* marquee — font change to clean tracked sans */
.ticker-item b{font-family:var(--sans);font-weight:700;letter-spacing:.16em;
  font-size:clamp(.72rem,1.15vw,.98rem);transform:none}
.ticker-item .sep{font-family:var(--sans);font-weight:700;transform:none;color:var(--brass-hi)}
.ticker-item{gap:clamp(16px,2vw,32px);padding-right:clamp(16px,2vw,32px)}
.ticker-item b.out{-webkit-text-stroke:.7px rgba(255,255,255,.85)}
@media(max-width:768px){.ticker-item b{font-size:clamp(.66rem,3vw,.85rem);letter-spacing:.12em}}

/* ============================================================
   CONTACT — premium/aggressive layout
   ============================================================ */
.contact2 .c2-grid{display:grid;grid-template-columns:1fr;gap:clamp(28px,4vw,56px);align-items:start}
@media(min-width:900px){.contact2 .c2-grid{grid-template-columns:1fr 1.05fr}}
.c2-left h2{font-size:clamp(2rem,4vw,3.4rem);line-height:.9;margin:.45em 0 .5em}
.c2-left > p{color:rgba(0,0,0,.68);max-width:44ch}
.c2-methods{margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--line-dark)}
.c2-method{display:flex;align-items:center;gap:18px;padding:clamp(15px,1.7vw,22px) 0;
  border-bottom:1px solid var(--line-dark);position:relative;transition:padding .4s var(--ease)}
.c2-method:hover{padding-left:12px}
.c2-ic{flex:none;width:46px;height:46px;display:grid;place-items:center;border:1px solid rgba(0,0,0,.2);
  color:var(--brass-deep);transition:background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease)}
.c2-method:hover .c2-ic{background:var(--brass);border-color:var(--brass);color:#0b0a05}
.c2-ic svg{width:20px;height:20px}
.c2-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25em}
.c2-k{font-size:.63rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep)}
.c2-v{font-family:var(--serif);font-weight:800;text-transform:uppercase;line-height:1;
  font-size:clamp(1.02rem,1.4vw,1.3rem);color:#000;overflow-wrap:anywhere}
.c2-ar{flex:none;color:var(--brass-deep);font-family:var(--serif);font-size:1.2rem;transition:transform .4s var(--ease)}
.c2-method:hover .c2-ar{transform:translateX(5px)}
/* dark notched form panel */
.c2-form{position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(160deg,#151515 0%,#0a0a0a 70%,#070707 100%);
  border:1px solid var(--line-strong);border-top:2px solid var(--brass);
  padding:clamp(26px,3vw,44px);
  clip-path:polygon(0 0,100% 0,100% calc(100% - 26px),calc(100% - 26px) 100%,0 100%)}
.c2-form::before{content:"";position:absolute;top:0;left:0;right:0;height:130px;z-index:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.06) 50%,transparent 60%)}
.c2-form::after{content:"Message";position:absolute;top:-.3em;right:-.02em;z-index:0;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.8;
  font-size:clamp(2.6rem,7vw,4rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.16);pointer-events:none}
.c2-form > *{position:relative;z-index:1}
.c2-form-kick{display:inline-flex;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:1.3em}
.c2-form .form{padding:0}
.c2-form .field label{color:var(--brass-hi)}

/* ============================================================
   MOBILE NAV — redesigned overlay
   ============================================================ */
.nav-mobile{padding:92px var(--gutter) 34px;
  background:
    radial-gradient(95% 55% at 100% 0%, rgba(132,116,39,.22), transparent 55%),
    radial-gradient(85% 50% at 0% 100%, rgba(255,255,255,.05), transparent 55%),
    linear-gradient(180deg,#0b0a08 0%,#040404 100%)}
.nav-mobile::before{opacity:.35}
.nav-mobile::after{content:"Black Cat";position:absolute;bottom:3%;right:-3%;z-index:0;pointer-events:none;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.78;
  font-size:clamp(4rem,22vw,8rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.1)}
.nav-mobile-inner{position:relative;z-index:1;gap:0}
.m-logo{display:inline-block;margin-bottom:28px}
.m-logo img{height:54px;width:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.55))}
.nav-mobile a.m-link{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;
  line-height:1;font-size:clamp(2.1rem,9vw,3rem);padding:.36em 0;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:.55em}
.nav-mobile a.m-link .idx{font-family:var(--sans);font-size:.6rem;font-weight:600;letter-spacing:.2em;color:var(--brass-hi)}
.nav-mobile a.m-link::after{content:"→";margin-left:auto;color:var(--brass-hi);font-size:1.15rem;opacity:.65}
.nav-mobile a.m-link:hover,.nav-mobile a.m-link:active{color:var(--brass-hi)}
.m-sub{border-left:2px solid var(--brass);padding-left:1.25em;margin:.5em 0 1.15em}
.m-sub a{font-family:var(--sans);font-size:1rem;color:rgba(255,255,255,.76);padding:.6em 0;
  border-bottom:1px solid var(--line);display:flex;align-items:center;letter-spacing:.02em}
.m-sub a::before{content:"";width:6px;height:6px;background:var(--brass);margin-right:.9em;flex:none}
.m-sub a:last-child{border-bottom:0}
.nav-mobile-foot{border-top:1px solid var(--line);margin-top:32px;padding-top:28px}
.nav-mobile-foot .btn{width:100%;justify-content:center;padding:1.2em;font-size:.82rem;letter-spacing:.16em;
  background:linear-gradient(135deg,var(--brass-hi) 0%,var(--brass) 100%);color:#0b0a05;border:0;
  clip-path:polygon(15px 0,100% 0,100% 100%,0 100%)}
.nav-mobile-foot .mf-row a{color:var(--brass-hi)}

/* mobile Programs dropdown toggle */
.nav-mobile button.m-link{background:transparent;border:0;width:100%;cursor:pointer;text-align:left;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;line-height:1;
  font-size:clamp(2.1rem,9vw,3rem);padding:.36em 0;border-bottom:1px solid var(--line);
  display:flex;align-items:center;gap:.55em;color:#fff}
.nav-mobile button.m-link .idx{font-family:var(--sans);font-size:.6rem;font-weight:600;letter-spacing:.2em;color:var(--brass-hi)}
.nav-mobile button.m-link:hover,.nav-mobile button.m-link:active{color:var(--brass-hi)}
.m-chev{margin-left:auto;width:11px;height:11px;border-right:2px solid var(--brass-hi);
  border-bottom:2px solid var(--brass-hi);transform:rotate(45deg);transition:transform .35s var(--ease)}
.m-drop-toggle[aria-expanded="true"] .m-chev{transform:rotate(-135deg)}
.nav-mobile .m-sub{overflow:hidden;max-height:0;opacity:0;margin:0;
  transition:max-height .5s var(--ease),opacity .4s var(--ease),margin .4s var(--ease)}
.nav-mobile .m-sub.open{max-height:760px;opacity:1;margin:.55em 0 1.15em}

/* ============================================================
   BOOKING PAGE — "you're not done yet"
   ============================================================ */
.book-page{padding-top:clamp(122px,16vh,182px)}
.book-alert{position:relative;max-width:860px;padding:clamp(24px,3vw,40px);
  border:1px solid rgba(194,173,99,.5);border-left:4px solid var(--brass);
  background:linear-gradient(120deg,rgba(132,116,39,.16),transparent 70%)}
.book-alert-tag{display:inline-flex;align-items:center;gap:.65em;font-size:.72rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brass-hi);font-weight:600;margin-bottom:1em}
.book-alert-tag .dot{width:9px;height:9px;border-radius:50%;background:var(--brass-hi);flex:none;
  box-shadow:0 0 0 0 rgba(194,173,99,.6);animation:ping 2s ease-out infinite}
.book-alert h1{font-size:clamp(2rem,4.8vw,3.7rem);line-height:.9;margin-bottom:.4em}
.book-alert p{color:rgba(255,255,255,.85);max-width:62ch}
.book-alert strong{color:var(--brass-hi)}
.book-panel{margin-top:clamp(28px,4vw,52px);background:#fff;color:#000;
  padding:clamp(18px,2.4vw,34px);border:1px solid var(--line-strong)}
.book-head{margin-bottom:1.3em;border-bottom:1px solid rgba(0,0,0,.12);padding-bottom:1em}
.book-step{display:block;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.5em;font-weight:600}
.book-head h2{font-size:clamp(1.5rem,2.4vw,2.1rem);color:#000}
.book-embed{min-height:760px}
.book-embed iframe{display:block;width:100%;border:0}
.book-fallback p{color:rgba(0,0,0,.72);max-width:60ch;margin-bottom:1.2em}
.book-fallback .btn-ghost{border-color:rgba(0,0,0,.28);color:#000}
.book-switch{margin-top:1.4em;font-size:.86rem;color:rgba(0,0,0,.6)}
.book-switch a{color:var(--brass-deep);text-decoration:underline;text-underline-offset:3px;white-space:nowrap}

/* booking page — back link */
.book-back{display:inline-flex;align-items:center;gap:.55em;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:600;color:var(--brass-hi);margin-bottom:clamp(20px,2.5vw,32px)}
.book-back .ba{display:inline-block;font-size:1.15em;transition:transform .3s var(--ease)}
.book-back:hover{color:#fff}
.book-back:hover .ba{transform:translateX(-4px)}

/* booking page — progress + banner header */
.book-progress{display:flex;align-items:center;gap:clamp(10px,1.5vw,18px);margin-bottom:clamp(24px,3vw,40px);flex-wrap:wrap}
.bp-step{display:inline-flex;align-items:center;gap:.65em;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.bp-step b{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--line);font-family:var(--serif);font-weight:800;font-size:.95rem}
.bp-step.done{color:rgba(255,255,255,.88)}
.bp-step.done b{background:var(--brass);border-color:var(--brass);color:#0b0a05}
.bp-step.active{color:#fff}
.bp-step.active b{border-color:var(--brass-hi);color:var(--brass-hi)}
.bp-line{flex:1;min-width:24px;height:1px;background:linear-gradient(90deg,var(--brass),rgba(255,255,255,.15))}
.book-banner{position:relative;border-top:2px solid var(--brass);padding-top:clamp(20px,2.5vw,32px);max-width:840px}
.warn-tag{display:inline-flex;align-items:center;gap:.6em;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:#0b0a05;background:var(--brass-hi);padding:.55em 1.05em;font-weight:700;margin-bottom:1.1em;
  clip-path:polygon(10px 0,100% 0,100% 100%,0 100%)}
.warn-tag .dot{width:8px;height:8px;border-radius:50%;background:#0b0a05;animation:ping 2s ease-out infinite}
.book-banner h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:.9;margin-bottom:.4em}
.book-banner p{color:rgba(255,255,255,.84);max-width:60ch}
.book-banner strong{color:var(--brass-hi)}
/* booking page — program chooser (image cards) */
.book-chooser .bc-hint{color:rgba(0,0,0,.6);margin-bottom:1.3em}
.book-progs{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:10px}
.book-progs .bcard{position:relative;overflow:hidden;aspect-ratio:5/4;display:flex;align-items:flex-end;
  background:#000;border:1px solid rgba(0,0,0,.12);padding:0}
.book-progs .bcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  filter:grayscale(.12) contrast(1.04);transition:transform .8s var(--ease),filter .5s var(--ease)}
.book-progs .bcard::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.05) 0%,rgba(0,0,0,.2) 45%,rgba(0,0,0,.82) 100%)}
.book-progs .bcard::before{content:"";position:absolute;top:0;left:0;width:0;height:3px;background:var(--brass);z-index:1;transition:width .5s var(--ease)}
.book-progs .bcard:hover img{transform:scale(1.06);filter:grayscale(0)}
.book-progs .bcard:hover::before{width:100%}
.bcard-body{padding:14px 16px;width:100%}
.bcard-age{display:block;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi);margin-bottom:.3em}
.book-progs .bcard b{font-family:var(--serif);font-weight:800;text-transform:uppercase;font-size:1.02rem;line-height:.95;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.75)}
.bcard-ar{position:absolute;top:12px;right:14px;color:#fff;opacity:0;transform:translateX(-4px);
  transition:opacity .3s var(--ease),transform .3s var(--ease);font-family:var(--serif);font-size:1.1rem}
.book-progs .bcard:hover .bcard-ar{opacity:1;transform:none}

/* booking page — selected program image banner */
.book-hero-img{position:relative;overflow:hidden;aspect-ratio:24/7;min-height:150px;
  margin-bottom:clamp(18px,2vw,26px);border:1px solid var(--line-strong)}
.book-hero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 28%}
.book-hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.85),rgba(0,0,0,.3) 70%,rgba(0,0,0,.2))}
.book-hero-img .bhi-tag{position:absolute;left:clamp(16px,2vw,26px);top:clamp(12px,1.5vw,18px);z-index:1;
  font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-hi)}
.book-hero-img .bhi-name{position:absolute;left:clamp(16px,2vw,26px);bottom:clamp(12px,1.5vw,20px);z-index:1;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;color:#fff;line-height:1;
  font-size:clamp(1.4rem,2.6vw,2.2rem);text-shadow:0 2px 12px rgba(0,0,0,.7)}

/* fix: booking chooser card image stacking (was hidden behind card bg) */
.book-progs .bcard{isolation:isolate}
.book-progs .bcard img{z-index:0}
.book-progs .bcard::after{z-index:1}
.book-progs .bcard::before{z-index:3}
.book-progs .bcard .bcard-body{position:relative;z-index:2}
.book-progs .bcard .bcard-ar{z-index:3}

/* ============================================================
   HERO (home) — proper spacing + rhythm
   ============================================================ */
.hero{min-height:clamp(560px,82vh,780px);align-items:flex-end}
.hero-inner{padding-block:clamp(122px,16vh,172px) clamp(56px,8vh,96px)}
.hero .eyebrow{margin-bottom:clamp(16px,2vw,24px)}
.hero h1,.hero .display{margin:0}
.hero .hero-sub{margin-top:clamp(18px,2.2vw,28px)}
.hero .btn-row{margin-top:clamp(26px,3.2vw,40px)}
.hero-meta{margin-top:clamp(30px,3.8vw,46px);padding-top:clamp(20px,2.2vw,28px)}
@media(max-width:768px){
  .hero{min-height:clamp(540px,88vh,720px)}
  .hero-inner{padding-block:118px clamp(48px,8vh,72px)}
}

/* hero spacing refine — fit content + stats, tighter rhythm */
.hero{min-height:clamp(540px,78vh,720px);align-items:flex-end}
.hero-inner{padding-block:clamp(110px,14vh,148px) clamp(44px,5.5vh,72px)}
.hero .eyebrow{margin-bottom:clamp(14px,1.8vw,20px)}
.hero h1,.hero .display{margin:0}
.hero .hero-sub{margin-top:clamp(15px,1.7vw,22px)}
.hero .btn-row{margin-top:clamp(22px,2.6vw,32px)}
.hero-meta{margin-top:clamp(22px,2.6vw,32px);padding-top:clamp(15px,1.7vw,22px)}
@media(max-width:768px){
  .hero{min-height:clamp(520px,86vh,700px)}
  .hero-inner{padding-block:112px clamp(40px,6vh,64px)}
}

/* ============================================================
   LOCAL AREA PAGES (programmatic SEO)
   ============================================================ */
.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));
  gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
.area-card{position:relative;background:#fff;color:#000;padding:clamp(24px,3vw,38px);
  display:flex;flex-direction:column;gap:.35em;transition:background .35s var(--ease),padding .35s var(--ease)}
.area-card:hover{background:#f4f1ea;padding-left:calc(clamp(24px,3vw,38px) + 8px)}
.area-card .ac-k{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep)}
.area-card b{font-family:var(--serif);font-weight:800;text-transform:uppercase;line-height:.95;
  font-size:clamp(1.5rem,2.4vw,2.1rem);color:#000}
.area-card .ac-sub{font-size:.85rem;color:rgba(0,0,0,.55)}
.area-card .ac-go{position:absolute;top:clamp(20px,2.4vw,30px);right:clamp(20px,2.4vw,30px);
  color:var(--brass-deep);font-family:var(--serif);font-size:1.3rem;transition:transform .4s var(--ease)}
.area-card:hover .ac-go{transform:translateX(5px)}
.area-chips{display:flex;flex-wrap:wrap;gap:10px}
.area-chip{display:inline-flex;align-items:center;gap:.7em;padding:.85em 1.3em;border:1px solid var(--line);
  color:#fff;font-family:var(--serif);font-weight:700;text-transform:uppercase;font-size:1rem;letter-spacing:.02em;
  transition:border-color .35s var(--ease),color .35s var(--ease),transform .35s var(--ease)}
.area-chip span{color:var(--brass-hi);transition:transform .35s var(--ease)}
.area-chip:hover{border-color:var(--brass);color:var(--brass-hi);transform:translateY(-2px)}
.area-chip:hover span{transform:translateX(3px)}
.bg-paper .area-chip{color:#000;border-color:var(--line-dark)}

/* ============================================================
   CLEAN WHITE — premium near-white light sections (final)
   Removes the muddy brass wash; crisp, high-contrast, aggressive.
   ============================================================ */
.section.bg-paper,.section-sm.bg-paper{
  background:
    radial-gradient(92% 66% at 86% -8%, #ffffff, transparent 55%),
    linear-gradient(180deg,#faf9f6 0%,#efedea 100%)}
.bg-paper .sfx-word{-webkit-text-stroke-color:rgba(0,0,0,.05)}
.bg-paper .sfx-label{-webkit-text-stroke-color:rgba(0,0,0,.045)}

/* ============================================================
   LOGO STAMP — refined seal/plaque
   ============================================================ */
.sec-head--stamp .logo-stamp{
  background:linear-gradient(150deg,#161616 0%,#0a0a0a 60%,#060606 100%);
  border:1px solid rgba(194,173,99,.55);
  padding:clamp(22px,2.4vw,34px);
  transform:rotate(-2.5deg);
  box-shadow:0 22px 46px -22px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.05);
  transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.sec-head--stamp:hover .logo-stamp{transform:rotate(0deg) translateY(-3px);
  box-shadow:0 30px 56px -22px rgba(0,0,0,.85), inset 0 1px 0 rgba(255,255,255,.06)}
/* brass corner ticks (official-seal detail) */
.sec-head--stamp .logo-stamp::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--brass-hi),var(--brass-hi)) left 11px top 11px/17px 1.6px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) left 11px top 11px/1.6px 17px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) right 11px top 11px/17px 1.6px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) right 11px top 11px/1.6px 17px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) left 11px bottom 11px/17px 1.6px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) left 11px bottom 11px/1.6px 17px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) right 11px bottom 11px/17px 1.6px no-repeat,
    linear-gradient(var(--brass-hi),var(--brass-hi)) right 11px bottom 11px/1.6px 17px no-repeat}
.sec-head--stamp .logo-stamp img{position:relative;z-index:1;width:clamp(120px,13vw,180px)}

/* ============================================================
   LOGO STAMP v2 — circular medallion / coin (entirely new)
   ============================================================ */
.sec-head--stamp .logo-stamp{
  width:clamp(146px,15vw,196px);aspect-ratio:1;border-radius:50%;
  display:grid;place-items:center;padding:0;border:1px solid rgba(194,173,99,.6);
  background:radial-gradient(circle at 36% 30%, #1c1c1c 0%, #0a0a0a 55%, #050505 100%);
  box-shadow:0 22px 46px -22px rgba(0,0,0,.85), inset 0 0 34px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,255,255,.06);
  transform:rotate(0);transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.sec-head--stamp:hover .logo-stamp{transform:scale(1.03) rotate(-3deg);
  box-shadow:0 30px 58px -22px rgba(0,0,0,.9), inset 0 0 34px rgba(0,0,0,.6)}
.sec-head--stamp .logo-stamp::before{content:"";position:absolute;inset:13px;border-radius:50%;
  border:1px solid rgba(194,173,99,.4);pointer-events:none;background:none}
.sec-head--stamp .logo-stamp::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:2;
  background:
    radial-gradient(circle 2.6px at 50% 7px, var(--brass-hi) 99%, transparent) no-repeat,
    radial-gradient(circle 2.6px at 50% calc(100% - 7px), var(--brass-hi) 99%, transparent) no-repeat,
    radial-gradient(circle 2.6px at 7px 50%, var(--brass-hi) 99%, transparent) no-repeat,
    radial-gradient(circle 2.6px at calc(100% - 7px) 50%, var(--brass-hi) 99%, transparent) no-repeat}
.sec-head--stamp .logo-stamp img{position:relative;z-index:1;width:66%;height:auto}

/* ============================================================
   PROGRAMS OVERVIEW — editorial discipline index (hover reveal)
   ============================================================ */
.dindex{margin-inline:calc(-1 * var(--gutter));border-top:1px solid var(--line-dark)}
.bg-ink .dindex{border-top-color:var(--line)}
.dindex-row{position:relative;isolation:isolate;display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto auto;align-items:center;
  gap:clamp(14px,2.4vw,40px);padding:clamp(20px,3vw,40px) var(--gutter);
  border-bottom:1px solid var(--line-dark);overflow:hidden;transition:padding .45s var(--ease)}
.bg-ink .dindex-row{border-bottom-color:var(--line)}
.dindex-row::before{content:"";position:absolute;inset:0;z-index:-2;background-image:var(--img);
  background-size:cover;background-position:center 28%;opacity:0;transform:scale(1.1);
  transition:opacity .6s var(--ease),transform 7s var(--ease)}
.dindex-row::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.64);
  opacity:0;transition:opacity .6s var(--ease)}
.dindex-row:hover::before{opacity:1;transform:scale(1)}
.dindex-row:hover::after{opacity:1}
.dindex-row:hover{padding-left:calc(var(--gutter) + 16px)}
.di-num{font-family:var(--serif);font-weight:700;font-size:clamp(.85rem,1.1vw,1rem);
  color:var(--brass-hi);font-variant-numeric:tabular-nums}
.di-name{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.01em;
  line-height:.88;font-size:clamp(1.55rem,4vw,3rem);transition:color .4s var(--ease),transform .5s var(--ease)}
.di-cat{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;opacity:.55;text-align:right}
.di-age{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi);white-space:nowrap}
.di-arrow{font-family:var(--serif);color:var(--brass-hi);font-size:1.5rem;line-height:1;
  transition:transform .45s var(--ease),color .4s var(--ease)}
.dindex-row:hover .di-name{color:#fff;transform:translateX(4px)}
.dindex-row:hover .di-cat{color:rgba(255,255,255,.8);opacity:1}
.dindex-row:hover .di-arrow{transform:translateX(10px);color:#fff}
@media(max-width:760px){.dindex-row{grid-template-columns:auto minmax(0,1fr) auto;gap:16px}.di-cat{display:none}}

/* PROGRAMS OVERVIEW — 2-column discipline index (overrides single-col) */
.dindex{margin-inline:calc(-1 * var(--gutter));display:grid;grid-template-columns:1fr;
  gap:1px;background:var(--line-dark);border:1px solid var(--line-dark)}
@media(min-width:820px){.dindex{grid-template-columns:1fr 1fr}}
.bg-ink .dindex{background:var(--line);border-color:var(--line)}
.dindex-row{border-bottom:0;grid-template-columns:auto minmax(0,1fr) auto;
  min-height:clamp(118px,13vw,150px);padding:clamp(22px,2.6vw,34px) clamp(20px,2.4vw,34px)}
.di-main{min-width:0;display:flex;flex-direction:column;gap:.5em}
.di-name{font-size:clamp(1.45rem,2.5vw,2.15rem)}
.di-meta{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi);
  opacity:.9;transition:color .4s var(--ease)}
.dindex-row:hover .di-meta{color:rgba(255,255,255,.85)}
.dindex-row:hover{padding-left:calc(clamp(20px,2.4vw,34px) + 12px)}

/* PROGRAMS OVERVIEW — livelier discipline cells (thumb + number + accents) */
.dindex-row{grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(14px,1.8vw,24px)}
.di-thumb{width:clamp(48px,4.2vw,60px);aspect-ratio:1;object-fit:cover;flex:none;position:relative;z-index:1;
  border:1px solid rgba(0,0,0,.16);filter:grayscale(.4) contrast(1.05);
  transition:opacity .45s var(--ease),filter .45s var(--ease)}
.bg-ink .di-thumb{border-color:rgba(255,255,255,.2)}
.dindex-row:hover .di-thumb{opacity:0}
.di-main{position:relative;z-index:1}
.di-big{position:absolute;right:clamp(10px,1.6vw,22px);top:50%;transform:translateY(-50%);z-index:0;
  font-family:var(--serif);font-weight:800;font-size:clamp(3.2rem,5.5vw,5.4rem);line-height:1;color:transparent;
  -webkit-text-stroke:1px rgba(0,0,0,.08);pointer-events:none;transition:-webkit-text-stroke-color .5s var(--ease)}
.bg-ink .di-big{-webkit-text-stroke-color:rgba(255,255,255,.1)}
.dindex-row:hover .di-big{-webkit-text-stroke-color:rgba(194,173,99,.55)}
.di-bar{position:absolute;top:0;left:0;height:3px;width:0;background:var(--brass);z-index:3;transition:width .55s var(--ease)}
.dindex-row:hover .di-bar{width:100%}
.di-arrow{position:relative;z-index:1;opacity:0;transform:translateX(-6px);
  transition:opacity .4s var(--ease),transform .4s var(--ease),color .4s var(--ease)}
.dindex-row:hover .di-arrow{opacity:1;transform:none;color:#fff}

/* mobile menu — explicit close (X) button */
.m-close{position:absolute;top:18px;right:var(--gutter);z-index:6;width:48px;height:48px;
  display:grid;place-items:center;background:rgba(0,0,0,.3);border:1px solid rgba(194,173,99,.4);
  color:#fff;cursor:pointer;transition:border-color .3s var(--ease),color .3s var(--ease),transform .35s var(--ease)}
.m-close:hover{border-color:var(--brass-hi);color:var(--brass-hi);transform:rotate(90deg)}
.m-close svg{width:20px;height:20px}

/* mobile close (X) — make it clearly visible (solid brass) */
.m-close{position:absolute;top:16px;right:16px;z-index:30;width:50px;height:50px;
  display:grid;place-items:center;background:var(--brass);border:0;color:#0b0a05;cursor:pointer;
  box-shadow:0 8px 22px -8px rgba(0,0,0,.7);transition:transform .35s var(--ease),background .3s var(--ease)}
.m-close:hover{background:var(--brass-hi);transform:rotate(90deg)}
.m-close svg{width:22px;height:22px}

/* ============================================================
   HERO v2 — aggressive full-bleed + big split title + stat bar
   ============================================================ */
.hero2{position:relative;overflow:hidden;isolation:isolate;display:flex;
  min-height:clamp(600px,92vh,880px)}
.hero2-media{position:absolute;inset:0;z-index:-2}
.hero2-media img{width:100%;height:100%;object-fit:cover;object-position:center 28%;
  filter:grayscale(.14) contrast(1.09);animation:herozoom 24s var(--ease) infinite alternate}
@keyframes herozoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero2-scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.32) 30%,rgba(0,0,0,.5) 60%,rgba(0,0,0,.95) 100%),
             radial-gradient(95% 75% at 10% 92%,rgba(0,0,0,.72),transparent 60%)}
.hero2-vlabel{position:absolute;right:clamp(8px,1.6vw,24px);top:40%;transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;z-index:1;font-size:.6rem;letter-spacing:.34em;text-transform:uppercase;
  color:rgba(255,255,255,.5);display:flex;align-items:center;gap:1.3em}
.hero2-vlabel::before{content:"";width:42px;height:1px;background:var(--brass)}
.hero2-body{position:relative;z-index:1;width:100%;max-width:1480px;margin-inline:auto;
  padding:clamp(122px,17vh,180px) var(--gutter) 0;display:flex;flex-direction:column;
  justify-content:flex-end;gap:clamp(32px,4.5vw,56px)}
.hero2 .eyebrow{color:var(--brass-hi);margin-bottom:clamp(16px,2vw,24px)}
.hero2-title{font-family:var(--serif);font-weight:800;text-transform:uppercase;color:#fff;
  font-size:clamp(2.7rem,7.6vw,6.2rem);line-height:.88;letter-spacing:0;max-width:15ch;
  text-shadow:0 4px 32px rgba(0,0,0,.55)}
.hero2-title .hl{color:var(--brass-hi)}
.hero2-sub{max-width:50ch;color:rgba(255,255,255,.86);font-size:var(--fs-lead);margin-top:clamp(16px,2vw,26px)}
.hero2 .btn-row{margin-top:clamp(24px,3vw,38px)}
.hero2-stats{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(255,255,255,.2)}
@media(min-width:760px){.hero2-stats{grid-template-columns:repeat(4,1fr)}}
.hero2-stats .hs{padding:clamp(18px,2vw,26px) clamp(14px,1.6vw,26px) clamp(26px,3.4vw,38px);
  border-left:1px solid rgba(255,255,255,.14)}
.hero2-stats .hs:first-child{border-left:0;padding-left:0}
@media(max-width:759px){.hero2-stats .hs:nth-child(odd){border-left:0;padding-left:0}}
.hero2-stats .hs b{display:block;font-family:var(--serif);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.55rem,2.7vw,2.3rem);color:#fff;line-height:.9}
.hero2-stats .hs span{display:block;margin-top:.55em;font-size:.66rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass-hi)}
@media (prefers-reduced-motion:reduce){.hero2-media img{animation:none}}

/* ============================================================
   SUB-PAGE HEADER v3.1 — pill badge, two-color title, tags, diagonal accent
   ============================================================ */
.pagehero3 .ph3-text .eyebrow{display:inline-flex;align-items:center;gap:.6em;
  border:1px solid rgba(194,173,99,.5);border-radius:999px;padding:.55em 1.15em;
  background:rgba(194,173,99,.09);color:var(--brass-hi);letter-spacing:.16em;margin-bottom:1.3em}
.pagehero3 .ph3-text .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;
  background:var(--brass-hi);box-shadow:0 0 0 0 rgba(194,173,99,.6);animation:ping 2s ease-out infinite}
.ph3-text h1 .hl{color:var(--brass-hi)}
.ph3-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(16px,2vw,22px)}
.ph3-tag{border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:.5em 1.05em;
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.82)}
.ph3-text .btn-row{margin-top:clamp(20px,2.6vw,32px)}
/* crisp brass diagonal accent along the photo cut */
.ph3-media::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:var(--brass);clip-path:polygon(16% 0, calc(16% + 5px) 0, 5px 100%, 0 100%)}
.ph3-media::after{background:linear-gradient(90deg,#000 0%,rgba(0,0,0,.4) 12%,rgba(0,0,0,0) 34%)}
@media(max-width:820px){.ph3-media::before{display:none}}

/* marquee — brass/brown background with dark, readable text */
.ticker-band{background:linear-gradient(180deg,#93832f 0%,#7c6d23 100%);
  border-top:1px solid rgba(0,0,0,.22);border-bottom:1px solid rgba(0,0,0,.22)}
.ticker-item b{color:#140f02}
.ticker-item b.out{-webkit-text-stroke:1px rgba(20,15,2,.8);color:transparent}
.ticker-item .sep{color:rgba(20,15,2,.5)}

/* marquee — white text on the brass band */
.ticker-item b{color:#fff}
.ticker-item b.out{-webkit-text-stroke:1px rgba(255,255,255,.9);color:transparent}
.ticker-item .sep{color:rgba(255,255,255,.75)}

/* ============================================================
   HERO v3 — two-column split (content | photo)
   ============================================================ */
.hero3{position:relative;display:grid;grid-template-columns:1fr;isolation:isolate;
  min-height:clamp(560px,88vh,840px)}
@media(min-width:920px){.hero3{grid-template-columns:1.02fr .98fr}}
.hero3-text{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;
  gap:clamp(18px,2vw,26px);padding:clamp(120px,16vh,168px) var(--gutter) clamp(48px,6vw,72px);
  background:
    radial-gradient(90% 70% at 10% 0%, rgba(255,255,255,.07), transparent 55%),
    radial-gradient(80% 80% at 100% 100%, rgba(132,116,39,.2), transparent 58%),
    linear-gradient(180deg,#0b0b0b,#040404)}
.hero3-text::after{content:"Black Cat";position:absolute;left:-2%;bottom:2%;z-index:0;pointer-events:none;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.8;
  font-size:clamp(4rem,13vw,10rem);color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.08)}
.hero3-text > *{position:relative;z-index:1}
.hero3-text .eyebrow{align-self:flex-start;display:inline-flex;align-items:center;gap:.6em;
  border:1px solid rgba(194,173,99,.5);border-radius:999px;padding:.55em 1.15em;background:rgba(194,173,99,.09);
  color:var(--brass-hi);letter-spacing:.16em}
.hero3-text .eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;background:var(--brass-hi);
  box-shadow:0 0 0 0 rgba(194,173,99,.6);animation:ping 2s ease-out infinite}
.hero3-title{font-family:var(--serif);font-weight:800;text-transform:uppercase;color:#fff;letter-spacing:0;
  font-size:clamp(2.6rem,5.4vw,4.8rem);line-height:.88;max-width:15ch}
.hero3-title .hl{color:var(--brass-hi)}
.hero3-sub{max-width:46ch;color:rgba(255,255,255,.82);font-size:var(--fs-lead)}
.hero3 .btn-row{margin-top:.4em}
.hero3-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:clamp(14px,1.6vw,22px);
  border-top:1px solid rgba(255,255,255,.18)}
@media(min-width:520px){.hero3-stats{grid-template-columns:repeat(4,1fr)}}
.hero3-stats .hs{padding:clamp(16px,1.6vw,20px) clamp(12px,1.4vw,20px) 0;border-left:1px solid rgba(255,255,255,.12)}
.hero3-stats .hs:first-child{border-left:0;padding-left:0}
@media(max-width:519px){.hero3-stats .hs:nth-child(odd){border-left:0;padding-left:0}}
.hero3-stats .hs b{display:block;font-family:var(--serif);font-weight:800;text-transform:uppercase;
  font-size:clamp(1.3rem,2vw,1.9rem);color:#fff;line-height:.9}
.hero3-stats .hs span{display:block;margin-top:.45em;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-hi)}
.hero3-media{position:relative;overflow:hidden;min-height:clamp(280px,44vw,100%)}
.hero3-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 26%;
  filter:grayscale(.14) contrast(1.08);animation:herozoom 24s var(--ease) infinite alternate}
.hero3-media::after{content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 32%)}
@media(min-width:920px){.hero3-media{border-left:3px solid var(--brass)}}
@media(max-width:919px){.hero3{grid-auto-flow:row}.hero3-media{order:-1;min-height:clamp(260px,52vw,360px)}
  .hero3-media::after{background:linear-gradient(180deg,transparent,rgba(0,0,0,.55))}
  .hero3-text{padding-top:clamp(40px,7vw,60px)}}
@media (prefers-reduced-motion:reduce){.hero3-media img{animation:none}}

/* HERO v3 — premium detailing */
.hero3-text{background:
  linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px) 0 0/48px 48px,
  linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px) 0 0/48px 48px,
  radial-gradient(90% 70% at 10% 0%, rgba(255,255,255,.07), transparent 55%),
  radial-gradient(80% 80% at 100% 100%, rgba(132,116,39,.2), transparent 58%),
  linear-gradient(180deg,#0b0b0b,#040404)}
.hero3-text::before{content:"";position:absolute;top:clamp(96px,13vh,128px);left:var(--gutter);z-index:1;
  width:26px;height:26px;border-left:2px solid var(--brass);border-top:2px solid var(--brass);opacity:.7;pointer-events:none}
.hero3-cap{position:absolute;left:0;bottom:0;z-index:4;background:#000;color:var(--brass-hi);
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:.85em 1.25em;border-top:1px solid var(--brass)}
@media(min-width:920px){
  .hero3-cap{left:auto;right:0}
  .hero3-media::after{background:linear-gradient(90deg,rgba(0,0,0,.5),transparent 30%)}
  .hero3-media{position:relative}
  .hero3-seam{position:absolute;left:-8px;top:50%;transform:translateY(-50%) rotate(45deg);
    width:13px;height:13px;background:var(--brass);z-index:6}
}
.hero3-seam{display:none}
@media(min-width:920px){.hero3-seam{display:block}}

/* ============================================================
   HERO v3 — right column as image CARD on decorated background
   ============================================================ */
.hero3-media{position:relative;overflow:hidden;display:grid;place-items:center;border-left:0;
  padding:clamp(30px,4.5vw,64px);
  background:
    linear-gradient(rgba(255,255,255,.028) 1px,transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg,rgba(255,255,255,.028) 1px,transparent 1px) 0 0/44px 44px,
    radial-gradient(80% 70% at 82% 8%, rgba(132,116,39,.24), transparent 55%),
    linear-gradient(160deg,#121212 0%,#060606 70%)}
.hero3-media::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,transparent 0 58px,rgba(194,173,99,.05) 58px 59px)}
.hm-ghost{position:absolute;right:-3%;bottom:-5%;z-index:0;pointer-events:none;font-family:var(--serif);
  font-weight:800;text-transform:uppercase;white-space:nowrap;line-height:.78;font-size:clamp(5rem,13vw,11rem);
  color:transparent;-webkit-text-stroke:1px rgba(194,173,99,.1)}
.hero3-card{position:relative;z-index:1;width:100%;max-width:520px;aspect-ratio:4/5;overflow:hidden;
  border:1px solid rgba(194,173,99,.55);box-shadow:0 32px 64px -26px rgba(0,0,0,.85)}
.hero3-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 24%;
  filter:grayscale(.12) contrast(1.08);animation:herozoom 24s var(--ease) infinite alternate}
.hero3-card::before{content:"";position:absolute;inset:10px;border:1px solid rgba(194,173,99,.32);z-index:2;pointer-events:none}
.hero3-card .hero3-cap{position:absolute;left:0;bottom:0;right:auto;z-index:3;background:#000;color:var(--brass-hi);
  font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;padding:.85em 1.25em;border-top:1px solid var(--brass)}
.hero3-badge{position:absolute;top:clamp(20px,3vw,42px);right:clamp(20px,3vw,42px);z-index:4;
  display:inline-flex;flex-direction:column;align-items:flex-end;gap:.25em;
  background:rgba(10,10,10,.72);backdrop-filter:blur(4px);border:1px solid rgba(194,173,99,.45);
  padding:.7em .9em;color:var(--brass-hi)}
.hero3-badge b{letter-spacing:.25em;font-size:.9rem;line-height:1}
.hero3-badge span{font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.hero3-seam{display:none!important}
@media(max-width:919px){.hero3-media{padding:clamp(22px,6vw,36px);min-height:auto}
  .hero3-card{aspect-ratio:4/3;max-width:none}}

/* ============================================================
   HERO v3 — spacing fix: card FILLS the right column
   ============================================================ */
.hero3-media{display:block;padding:clamp(104px,13vh,132px) clamp(30px,3.6vw,54px) clamp(46px,5vw,64px)}
.hero3-card{position:relative;z-index:1;width:100%;max-width:none;height:100%;aspect-ratio:auto;margin:0}
.hero3-card img{object-position:center 42%}
.hero3-badge{top:clamp(14px,1.4vw,20px);right:clamp(14px,1.4vw,20px)}
.hm-ghost{right:2%;bottom:-3%}
@media(max-width:919px){
  .hero3-media{padding:clamp(18px,5vw,30px);min-height:auto}
  .hero3-card{height:auto;aspect-ratio:16/10}
}

/* ============================================================
   NAVIGATION — v4 COMPLETE REDESIGN (centered-logo split)
   Overrides all earlier .site-header / .nav-* rules.
   ============================================================ */
.site-header{position:fixed;top:0;left:0;right:0;z-index:120;
  background:linear-gradient(180deg,rgba(0,0,0,.8) 0%,rgba(0,0,0,.34) 56%,transparent 100%);
  transition:background .4s var(--ease),box-shadow .4s var(--ease)}
.site-header::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;z-index:2;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--brass) 18%,var(--brass-hi) 50%,var(--brass) 82%,transparent);opacity:.85;animation:none}
.site-header.scrolled{background:rgba(8,8,8,.9);backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:0 14px 44px -20px rgba(0,0,0,.92)}

.site-header .bar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:clamp(14px,2vw,36px);
  width:100%;max-width:1560px;margin-inline:auto;min-height:88px;padding:0 var(--gutter);transition:min-height .35s var(--ease)}
.site-header.scrolled .bar{min-height:66px}

/* link groups */
.nav-left{justify-self:start}
.nav-right{justify-self:end;display:flex;align-items:center;gap:clamp(16px,1.8vw,28px)}
.nav-left ul,.nav-right ul{display:flex;align-items:center;gap:clamp(18px,2vw,34px);list-style:none;margin:0;padding:0}

/* centered brand */
.brand{justify-self:center;display:inline-flex;align-items:center;line-height:0;position:relative}
.brand img{height:clamp(46px,4.4vw,60px);width:auto;filter:drop-shadow(0 2px 12px rgba(0,0,0,.6));transition:height .35s var(--ease)}
.site-header.scrolled .brand img{height:42px}

/* links */
.nav-link{position:relative;display:inline-flex;align-items:center;gap:.5em;background:none;border:0;cursor:pointer;
  font-family:var(--serif);font-weight:700;text-transform:uppercase;letter-spacing:.15em;line-height:1;
  font-size:.82rem;color:rgba(255,255,255,.88);padding:.5em 0;text-shadow:0 1px 8px rgba(0,0,0,.45);transition:color .3s var(--ease)}
.nav-desktop > ul > li > .nav-link::before,.nav-link::before{content:none}
.nav-link::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;background:var(--brass-hi);
  transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-link:hover,.nav-link:focus-visible{color:#fff}
.nav-link:hover::after,.nav-link:focus-visible::after,.nav-link[aria-current="page"]::after{transform:scaleX(1)}
.nav-link[aria-current="page"]{color:#fff}

/* chevron */
.chev{width:7px;height:7px;border:0;border-right:2px solid var(--brass-hi);border-bottom:2px solid var(--brass-hi);
  transform:rotate(45deg) translateY(-1px);transition:transform .35s var(--ease)}
.has-drop[data-open="true"] .chev{transform:rotate(-135deg) translateY(1px)}
.has-drop{position:relative}

/* dropdown — mega panel */
.drop-panel{position:absolute;top:calc(100% + 14px);left:0;transform:translateY(10px);min-width:460px;
  background:linear-gradient(180deg,#121212,#050505);border:1px solid rgba(194,173,99,.26);
  box-shadow:0 34px 76px -26px rgba(0,0,0,.92);padding:18px;opacity:0;visibility:hidden;
  transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s;z-index:10}
.drop-panel::before{content:"";position:absolute;left:18px;top:0;height:3px;width:56px;background:var(--brass)}
.has-drop[data-open="true"] .drop-panel{opacity:1;visibility:visible;transform:translateY(0)}
.drop-head{display:block;font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.2em;
  font-size:.64rem;color:var(--brass-hi);padding:4px 10px 12px}
.drop-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.drop-panel a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:.72em .85em;
  font-family:var(--serif);font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.82);
  border-left:2px solid transparent;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),padding .25s var(--ease)}
.drop-panel a .age{font-family:var(--sans);font-size:.58rem;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:var(--brass-hi);white-space:nowrap;display:block}
.drop-panel a:hover{background:rgba(255,255,255,.05);color:#fff;border-left-color:var(--brass);padding-left:1.1em}
.drop-panel a[aria-current="page"]{color:#fff;border-left-color:var(--brass);background:rgba(194,173,99,.08)}

/* CTA — sharp brass button */
.nav-cta{align-self:center;height:auto;position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.11em;font-size:.82rem;line-height:1;
  color:#0a0a0a;background:linear-gradient(135deg,var(--brass-hi),var(--brass));border:0;margin:0;
  padding:.95em 1.5em;clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .3s var(--ease)}
.nav-cta .cta-arrow{transition:transform .3s var(--ease)}
.nav-cta:hover{transform:translateY(-2px);background:linear-gradient(135deg,#e0cc82,var(--brass-hi));
  box-shadow:0 16px 32px -12px rgba(194,173,99,.6)}
.nav-cta:hover .cta-arrow{transform:translateX(4px)}
.nav-cta::after{content:"";position:absolute;top:0;left:-70%;width:45%;height:100%;pointer-events:none;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-18deg);transition:left .6s var(--ease)}
.nav-cta:hover::after{left:140%}

/* hamburger */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:6px;padding:8px}
.nav-toggle span{display:block;width:26px;height:2px;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.6);
  transition:transform .4s var(--ease),opacity .3s var(--ease)}

/* mobile collapse */
@media(max-width:1024px){
  .site-header .bar{grid-template-columns:auto 1fr;min-height:72px}
  .site-header.scrolled .bar{min-height:60px}
  .nav-left,.nav-right{display:none}
  .brand{justify-self:start}
  .brand img{height:44px}
  .nav-toggle{display:flex;justify-self:end}
}
@media (prefers-reduced-motion:reduce){.site-header::before{animation:none}.nav-cta::after{transition:none}}

/* ---- dropdown readability fix: stack name over age chip ---- */
.drop-panel{min-width:min(560px,86vw);padding:20px}
.drop-grid{grid-template-columns:1fr 1fr;gap:4px}
.drop-panel a{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:.45em;
  padding:.8em .95em;line-height:1.15;font-size:.94rem;color:rgba(255,255,255,.9)}
.drop-panel a:hover{padding-left:1.25em}
.drop-panel a .age{margin:0;font-size:.6rem;letter-spacing:.12em;color:var(--brass-hi);opacity:.95}

/* ---- ph3 header: keep text clear of the diagonal brass slash ---- */
@media(min-width:821px){
  .pagehero3 .ph3-inner{max-width:none;margin-inline:0}
  .pagehero3 .ph3-text{max-width:min(600px, calc(41vw - 90px))}
  .pagehero3 .ph3-text .lede{max-width:100%}
  .pagehero3 .ph3-text h1{max-width:100%}
}

/* ============================================================
   NAVIGATION — v5: solid bar, grouped high-contrast links
   Logo left · links in one segmented pill · CTA right
   ============================================================ */
.site-header{
  background:linear-gradient(180deg,#121110 0%,#0b0b0a 100%);
  border-bottom:1px solid rgba(194,173,99,.38);
  box-shadow:0 10px 30px -14px rgba(0,0,0,.9)}
.site-header.scrolled{background:rgba(12,12,11,.96);border-bottom-color:rgba(194,173,99,.5)}

.site-header .bar{grid-template-columns:auto 1fr auto auto;column-gap:0;min-height:84px}
.site-header.scrolled .bar{min-height:68px}
.brand{grid-column:1;grid-row:1;justify-self:start}
.brand img{height:clamp(50px,4.4vw,62px)}
.site-header.scrolled .brand img{height:48px}
.nav-left{grid-column:3;grid-row:1;justify-self:end}
.nav-right{grid-column:4;grid-row:1;gap:16px}

/* one joined pill: left list + Contact */
.nav-left ul,.nav-right ul{gap:2px;padding:5px;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.16)}
.nav-left ul{border-radius:999px 0 0 999px;border-right:0;padding-right:0}
.nav-right ul{border-radius:0 999px 999px 0;border-left:0;padding-left:2px}

.nav-link{font-size:.98rem;letter-spacing:.09em;color:#fff;text-shadow:none;
  padding:.62em 1.1em;border-radius:999px;
  transition:background .25s var(--ease),color .25s var(--ease)}
.nav-link::after{content:none}
.nav-link:hover,.nav-link:focus-visible,.has-drop[data-open="true"] > .nav-link{
  background:rgba(194,173,99,.2);color:#f3e6b0}
.nav-link[aria-current="page"]{background:#f4f1e8;color:#0b0b0a}
.nav-link[aria-current="page"] .chev{border-color:#0b0b0a}
.nav-link:focus-visible{outline:2px solid var(--brass-hi);outline-offset:2px}
.chev{width:8px;height:8px}

.nav-cta{font-size:.92rem;padding:1em 1.55em}

/* dropdown: center under Programs so it never runs off-screen */
.drop-panel{left:50%;transform:translate(-50%,10px)}
.has-drop[data-open="true"] .drop-panel{transform:translate(-50%,0)}

@media(max-width:1024px){
  .site-header .bar{grid-template-columns:auto 1fr;min-height:72px}
  .site-header.scrolled .bar{min-height:60px}
  .brand img{height:46px}
  .nav-toggle{grid-column:2;grid-row:1}
}

/* ============================================================
   HERO — v4: centered container, balanced columns, even spacing
   ============================================================ */
.hero3{
  --hero-max:1320px;
  --hero-pad-y:clamp(48px,6vw,88px);
  min-height:auto;align-items:center;
  column-gap:clamp(40px,5vw,88px);
  padding:calc(84px + var(--hero-pad-y)) max(var(--gutter),calc((100% - var(--hero-max))/2)) var(--hero-pad-y);
  background:
    linear-gradient(rgba(255,255,255,.026) 1px,transparent 1px) 0 0/48px 48px,
    linear-gradient(90deg,rgba(255,255,255,.026) 1px,transparent 1px) 0 0/48px 48px,
    radial-gradient(60% 70% at 8% 0%, rgba(255,255,255,.06), transparent 60%),
    radial-gradient(60% 80% at 100% 100%, rgba(132,116,39,.2), transparent 60%),
    linear-gradient(180deg,#0b0b0b,#040404)}
@media(min-width:920px){.hero3{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}}

/* text column: no own background or side padding — the container handles it */
.hero3-text{background:none;padding:0;overflow:visible;gap:clamp(20px,2vw,28px)}
.hero3-text::before{display:none}
.hero3-text::after{left:-.04em;bottom:-.35em}
.hero3-title{font-size:clamp(2.6rem,5vw,4.6rem)}
.hero3-sub{max-width:44ch}
.hero3-stats{max-width:600px}

/* image column: card sized by aspect ratio, vertically centered */
.hero3-media{background:none;padding:0;overflow:visible;min-height:0;display:block}
.hero3-media::after{display:none}
.hm-ghost{display:none}
.hero3-card{height:auto;aspect-ratio:5/4;max-width:none}
.hero3-card img{object-position:50% 38%;filter:contrast(1.05) saturate(1.05)}

@media(max-width:919px){
  .hero3{padding:calc(72px + 28px) var(--gutter) var(--hero-pad-y);row-gap:clamp(32px,6vw,48px)}
  .hero3-media{order:-1;padding:0}
  .hero3-text{padding:0}
  .hero3-card{aspect-ratio:16/10}
}

/* ============================================================
   SCHEDULE PAGE — weekly timetable
   ============================================================ */
.sch-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;margin-bottom:clamp(28px,3.4vw,44px)}
.sch-head h2{font-size:var(--fs-h2);line-height:.95}
.sch-note{max-width:58ch;font-size:.95rem;color:rgba(0,0,0,.72);background:rgba(132,116,39,.1);
  border:1px dashed rgba(92,80,25,.45);padding:.75em 1.1em}
.sch-note b{color:var(--brass-deep)}
.sch-note a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.sch-filter{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.14);margin-top:6px}
.sch-chip{font:inherit;font-family:var(--serif);font-weight:700;text-transform:uppercase;letter-spacing:.09em;font-size:.86rem;
  padding:.6em 1.2em;border:0;border-radius:999px;background:transparent;color:var(--ink);cursor:pointer;
  transition:background .25s var(--ease),color .25s var(--ease)}
.sch-chip:hover{background:rgba(132,116,39,.14)}
.sch-chip[aria-pressed="true"]{background:var(--ink);color:#fff}
.sch-chip:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

.sch-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}
.sch-day{background:#fff;border:1px solid rgba(0,0,0,.1);border-top:3px solid var(--brass);display:flex;flex-direction:column;min-width:0}
.sch-day h3{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:1rem;
  padding:.85em 1em;background:var(--ink);color:#fff;margin:0}
.sch-day ul{list-style:none;margin:0;padding:8px;display:grid;gap:6px}
.sch-class[hidden]{display:none}
.sch-class a{display:flex;flex-direction:column;gap:.3em;padding:.75em .8em;background:var(--paper-2);
  border-left:3px solid transparent;color:var(--ink);transition:border-color .2s var(--ease),background .2s var(--ease)}
.sch-class[data-cat="kids"] a{background:#f3efe2}
.sch-class a:hover{border-left-color:var(--brass);background:#ece7d6}
.sch-time{font-size:.74rem;font-weight:700;letter-spacing:.1em;color:var(--brass-deep)}
.sch-name{font-family:var(--serif);font-weight:800;text-transform:uppercase;font-size:.98rem;line-height:1.05}
.sch-tag{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(0,0,0,.55)}
.sch-closed,.sch-day.is-empty::after{padding:1em;font-size:.88rem;color:rgba(0,0,0,.55)}
.sch-day.is-empty::after{content:"No classes"}
.sch-foot{margin-top:clamp(22px,2.6vw,32px);text-align:center;color:rgba(0,0,0,.7)}
.sch-foot a{color:var(--brass-deep);font-weight:600}

@media(max-width:1100px){.sch-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.sch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.sch-grid{grid-template-columns:1fr}.sch-filter{flex-wrap:wrap;justify-content:center}}
.sch-foot p{max-width:none;margin-inline:auto}

/* ---- nav v5.1: center the link pill (logo left · links centered · CTA right) ---- */
@media(min-width:1025px){
  .site-header .bar{grid-template-columns:1fr auto auto 1fr}
  .nav-right{display:contents}
  .nav-left{grid-column:2;justify-self:end}
  .nav-right ul{grid-column:3;grid-row:1;justify-self:start}
  .nav-cta{grid-column:4;grid-row:1;justify-self:end}
}

/* ---- CTA buttons: lighter, warmer gold (replaces olive brass) ---- */
:root{--cta-1:#ecd68f;--cta-2:#d4b35a;--cta-hover-1:#f5e4ab;--cta-hover-2:#e0c271}
.btn-primary,.nav-cta{background:linear-gradient(135deg,var(--cta-1) 0%,var(--cta-2) 100%);
  border-color:transparent;color:#14110a}
.btn-primary:hover,.nav-cta:hover{background:linear-gradient(135deg,var(--cta-hover-1) 0%,var(--cta-hover-2) 100%);
  border-color:transparent;color:#14110a;box-shadow:0 14px 30px -14px rgba(224,194,113,.7)}

/* ---- hero: second, smaller photo card overlapping the main one ---- */
.hero3-media{position:relative;padding-bottom:clamp(56px,6vw,90px)}
.hero3-card .hero3-cap{left:auto;right:0}
.hero3-sub-card{position:absolute;left:clamp(-44px,-3vw,-20px);bottom:0;z-index:5;margin:0;
  width:46%;aspect-ratio:16/10;overflow:hidden;
  border:4px solid #0b0b0b;outline:1px solid rgba(194,173,99,.6);
  box-shadow:0 28px 56px -18px rgba(0,0,0,.9)}
.hero3-sub-card img{width:100%;height:100%;object-fit:cover;object-position:60% 55%}
.hero3-sub-cap{position:absolute;left:0;bottom:0;background:#000;color:var(--brass-hi);
  font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;padding:.8em 1.1em;border-top:1px solid var(--brass)}
@media(max-width:919px){
  .hero3-media{padding-bottom:clamp(48px,12vw,80px)}
  .hero3-sub-card{left:auto;right:clamp(10px,3vw,20px);width:48%;border-width:3px}
  .hero3-card .hero3-cap{left:0;right:auto}
}

/* ---- inner-page variant of the home hero (About, etc.) ---- */
.hero3--page .crumbs{margin-bottom:-6px}
.hero3--page .hero3-card{aspect-ratio:16/11}
.hero3--page .hero3-card img{object-position:center top}
.hero3--page .hero3-sub-card img{object-position:50% 25%}
/* About hero: photos stay still (no slow zoom) */
.hero3--page .hero3-media img{animation:none;transform:none}
.sch-class .sch-item{display:flex;flex-direction:column;gap:.3em;padding:.75em .8em;background:var(--paper-2);border-left:3px solid transparent}
.sch-foot .sch-sub{margin-top:.4em;font-size:.9rem;color:rgba(0,0,0,.55)}

/* ============================================================
   INNER PAGE HEROES — shared hero3 layout on every page
   ============================================================ */
.hero3 .ph3-tags{margin-top:0}
/* text-only variant (Contact): one centered column, no photo */
.hero3--solo{grid-template-columns:1fr !important;justify-items:center;text-align:center;
  padding-bottom:calc(var(--hero-pad-y) + 8px)}
.hero3--solo .hero3-text{align-items:center;max-width:820px}
.hero3--solo .hero3-text .eyebrow,.hero3--solo .crumbs{align-self:center}
.hero3--solo .hero3-sub{margin-inline:auto;max-width:52ch}
.hero3--solo .btn-row{justify-content:center}
.hero3--solo .hero3-text::after{left:50%;transform:translateX(-50%);white-space:nowrap}
.hero3--solo .hero3-title{max-width:none;width:100%}
