/* ==========================================================================
   REVO JIU JITSU — Burlington, ON
   Editorial / brutalist system. Hard edges, visible grid, oversized type.
   ========================================================================== */

:root{
  --bone:#e8e4da;
  --bone-2:#ddd8cc;
  --ink:#0a0a0a;
  --ink-soft:#1a1a1a;
  --gold:#f5b01e;
  --red:#d5261f;
  --grey:#6d6a63;
  --line:#0a0a0a;
  --display:"Anton",Impact,sans-serif;
  --body:"Archivo","Helvetica Neue",Arial,sans-serif;
  --mono:"Space Mono","Courier New",monospace;
  --gut:clamp(16px,4vw,44px);
  --maxw:1400px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:64px}
body{
  margin:0;background:var(--bone);color:var(--ink);
  font-family:var(--body);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:400;line-height:.86;text-transform:uppercase;letter-spacing:-.01em}
p{margin:0 0 1em}
p:last-child{margin-bottom:0}
::selection{background:var(--gold);color:var(--ink)}

/* Layout ------------------------------------------------------------------ */
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gut)}
.bleed{width:100%}
.rule{border-top:2px solid var(--line)}
.hair{border-top:1px solid rgba(10,10,10,.22)}

/* Monospace meta label */
.meta{
  font-family:var(--mono);font-size:.7rem;font-weight:700;
  letter-spacing:.18em;text-transform:uppercase;
}
.meta--gold{color:var(--gold)}
.meta--grey{color:var(--grey)}

/* Section head: 01 / TITLE / note ---------------------------------------- */
.sec{padding:clamp(48px,7vw,96px) 0}
.sec--ink{background:var(--ink);color:var(--bone)}
.sec--ink .hair{border-color:rgba(232,228,218,.25)}
.sec--ink .rule{border-color:var(--bone)}
.sec-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:clamp(14px,3vw,34px);
  align-items:end;border-top:2px solid var(--line);padding-top:14px;margin-bottom:clamp(28px,4vw,52px);
}
.sec--ink .sec-head{border-color:var(--bone)}
.sec-head .num{
  font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.14em;
  padding-top:6px;
}
.sec-head h2{font-size:clamp(2.6rem,7.6vw,6.4rem)}
.sec-head .note{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  text-align:right;max-width:22ch;line-height:1.5;padding-bottom:8px;color:var(--grey);
}
.sec--ink .sec-head .note{color:#9b968c}
@media (max-width:820px){
  .sec-head{grid-template-columns:auto 1fr;gap:12px}
  .sec-head .note{display:none}
}

/* Header ------------------------------------------------------------------ */
.bar{
  position:sticky;top:0;z-index:80;background:var(--bone);
  border-bottom:2px solid var(--line);
}
.bar__in{display:flex;align-items:stretch;height:62px}
.bar__brand{display:flex;align-items:center;gap:10px;padding-right:22px;border-right:2px solid var(--line)}
.bar__brand img{width:30px;height:30px;object-fit:contain}
.bar__brand b{font-family:var(--display);font-size:1.5rem;letter-spacing:-.02em;line-height:1}
.bar__brand i{font-family:var(--mono);font-style:normal;font-size:.56rem;letter-spacing:.2em;display:block;margin-top:-2px}
.bar nav{display:flex;align-items:stretch;margin-left:auto}
.bar nav a{
  display:flex;align-items:center;padding:0 clamp(12px,1.6vw,22px);
  font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  border-left:1px solid rgba(10,10,10,.2);transition:background .12s,color .12s;
}
.bar nav a:hover{background:var(--ink);color:var(--bone)}
.bar nav a.on{background:var(--gold)}
.bar nav a.cta{background:var(--ink);color:var(--bone);border-left:2px solid var(--line)}
.bar nav a.cta:hover{background:var(--gold);color:var(--ink)}
.burger{display:none;margin-left:auto;align-items:center;gap:9px;background:none;border:0;border-left:2px solid var(--line);padding:0 18px;cursor:pointer;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.burger u{display:block;width:22px;height:2px;background:var(--ink);position:relative;text-decoration:none}
.burger u::before,.burger u::after{content:"";position:absolute;left:0;width:22px;height:2px;background:var(--ink)}
.burger u::before{top:-6px}.burger u::after{top:6px}

.sheet{
  position:fixed;inset:62px 0 0;background:var(--ink);color:var(--bone);z-index:79;
  display:none;flex-direction:column;justify-content:center;padding:var(--gut);
}
.sheet.open{display:flex}
.sheet a{
  font-family:var(--display);font-size:clamp(2.4rem,11vw,4.5rem);text-transform:uppercase;
  border-bottom:1px solid rgba(232,228,218,.25);padding:10px 0;display:flex;justify-content:space-between;align-items:baseline;
}
.sheet a span{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;color:var(--gold)}
@media (max-width:1000px){
  .bar nav{display:none}
  .burger{display:flex}
}

/* Marquee ----------------------------------------------------------------- */
.marq{background:var(--ink);color:var(--bone);border-block:2px solid var(--line);overflow:hidden;padding:11px 0}
.marq__t{display:flex;gap:44px;white-space:nowrap;width:max-content;animation:slide 32s linear infinite}
.marq span{font-family:var(--mono);font-size:.76rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
.marq span::after{content:"◆";margin-left:44px;color:var(--gold)}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marq__t{animation:none}}

/* Hero -------------------------------------------------------------------- */
.hero{border-bottom:2px solid var(--line);background:var(--bone)}
.hero__grid{display:grid;grid-template-columns:1.05fr .95fr;min-height:min(78vh,700px)}
.hero__left{padding:clamp(26px,4vw,54px) var(--gut) clamp(26px,4vw,44px);display:flex;flex-direction:column;justify-content:space-between;border-right:2px solid var(--line)}
.hero__left h1{font-size:clamp(3.4rem,8.6vw,8.2rem);line-height:.82}
.hero__left h1 u{text-decoration:none;-webkit-text-stroke:2px var(--ink);color:transparent;display:block}
.hero__left h1 mark{background:var(--gold);color:var(--ink);padding:0 .08em}
.hero__blurb{max-width:42ch;margin-top:clamp(18px,2.6vw,30px);font-size:clamp(1rem,1.25vw,1.12rem)}
.hero__acts{display:flex;flex-wrap:wrap;gap:0;margin-top:clamp(24px,3vw,38px);border:2px solid var(--line);width:max-content;max-width:100%}
.hero__media{position:relative;overflow:hidden;min-height:340px}
.hero__media img{width:100%;height:100%;object-fit:cover;object-position:56% 36%;position:absolute;inset:0}
.hero__stamp{
  position:absolute;left:0;bottom:0;background:var(--ink);color:var(--bone);
  padding:12px 18px;border-top:2px solid var(--line);border-right:2px solid var(--line);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
}
.facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--line)}
.facts div{padding:16px var(--gut) 16px 0;border-right:1px solid rgba(10,10,10,.2)}
.facts div:last-child{border-right:0}
.facts b{display:block;font-family:var(--display);font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1}
.facts span{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--grey)}
@media (max-width:980px){
  .hero__grid{grid-template-columns:1fr}
  .hero__left{border-right:0;border-bottom:2px solid var(--line)}
  .hero__media{min-height:56vh;order:-1}
  .facts{grid-template-columns:repeat(2,1fr)}
  .facts div{padding-left:0;padding-right:14px}
  .facts div:nth-child(2){border-right:0}
}

/* Buttons ----------------------------------------------------------------- */
.b{
  display:inline-flex;align-items:center;gap:.6em;padding:16px 26px;
  font-family:var(--mono);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  background:var(--bone);color:var(--ink);border:0;cursor:pointer;transition:background .14s,color .14s;
}
.b + .b{border-left:2px solid var(--line)}
.b--fill{background:var(--ink);color:var(--bone)}
.b:hover{background:var(--gold);color:var(--ink)}
.b--solo{border:2px solid var(--line)}
.sec--ink .b--solo{border-color:var(--bone)}

/* Statement (big pull text) ---------------------------------------------- */
.state{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,64px);align-items:start}
.state__big{font-family:var(--display);font-size:clamp(1.9rem,3.6vw,3.2rem);line-height:.98;text-transform:uppercase}
.state__big em{font-style:normal;color:var(--gold);-webkit-text-stroke:0}
.state__cols{columns:2;column-gap:32px;font-size:.98rem}
@media (max-width:900px){.state{grid-template-columns:1fr}.state__cols{columns:1}}

/* Program rows ------------------------------------------------------------ */
.rows{border-top:2px solid var(--line)}
.row{
  display:grid;grid-template-columns:72px 1.25fr 1.6fr .9fr 110px;
  gap:clamp(12px,2vw,28px);align-items:center;
  border-bottom:1px solid rgba(10,10,10,.22);padding:clamp(16px,2.2vw,26px) 0;
  transition:background .14s,color .14s,padding .14s;
}
.sec--ink .row{border-color:rgba(232,228,218,.22)}
.row:hover{background:var(--ink);color:var(--bone);padding-inline:18px}
.sec--ink .row:hover{background:var(--gold);color:var(--ink)}
.row__n{font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.12em}
.row__t{font-family:var(--display);font-size:clamp(1.6rem,3.1vw,2.7rem);line-height:.92;text-transform:uppercase}
.row__d{font-size:.95rem;max-width:46ch}
.row__w{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.7}
.row__img{width:110px;height:78px;overflow:hidden;background:var(--ink)}
.row__img img{width:100%;height:100%;object-fit:cover}
@media (max-width:1000px){
  .row{grid-template-columns:48px 1fr;gap:6px 14px}
  .row__d{grid-column:2}
  .row__w{grid-column:2}
  .row__img{display:none}
}

/* Full-bleed photo band --------------------------------------------------- */
.band{position:relative;height:clamp(300px,52vh,520px);border-block:2px solid var(--line);overflow:hidden}
.band img{width:100%;height:100%;object-fit:cover}
.band__cap{
  position:absolute;right:0;top:0;background:var(--gold);color:var(--ink);
  padding:12px 18px;border-left:2px solid var(--line);border-bottom:2px solid var(--line);
  font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;max-width:30ch;
}

/* Schedule table ---------------------------------------------------------- */
.tt{width:100%;border-collapse:collapse;border-top:2px solid var(--line)}
.tt th,.tt td{text-align:left;padding:15px 14px;border-bottom:1px solid rgba(10,10,10,.22);vertical-align:middle}
.sec--ink .tt th,.sec--ink .tt td{border-color:rgba(232,228,218,.22)}
.tt th{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.sec--ink .tt th{color:#9b968c}
.tt .d{font-family:var(--display);font-size:clamp(1.3rem,2.2vw,1.9rem);text-transform:uppercase;white-space:nowrap;width:20%}
.tt .c{font-family:var(--body);font-weight:700;font-size:1.02rem;text-transform:uppercase;letter-spacing:.01em}
.tt .h{font-family:var(--mono);font-size:.84rem;white-space:nowrap}
.tt tr:hover td{background:rgba(245,176,30,.16)}
.tt .off td{color:var(--grey)}
.pill{display:inline-block;font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:4px 9px;border:1px solid currentColor}
.pill--k{color:var(--red)}
.pill--a{color:var(--ink)}
.sec--ink .pill--a{color:var(--gold)}
@media (max-width:760px){
  .tt thead{display:none}
  .tt tr{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:14px 0;border-bottom:1px solid rgba(10,10,10,.22)}
  .tt td{border:0;padding:0}
  .tt .d{grid-column:1/-1;width:auto}
  .tt .h{text-align:right}
}

/* Coaches — overlapping type, offset gold frame, vertical rank strip ------ */
.who{border-top:2px solid var(--bone)}
.who__row{
  position:relative;display:grid;grid-template-columns:minmax(0,330px) 1fr;
  gap:clamp(34px,6vw,86px);align-items:center;
  padding:clamp(34px,5vw,64px) 0;border-bottom:1px solid rgba(232,228,218,.22);
}
.who__row:last-child{border-bottom:0}
.who__row:nth-child(even){grid-template-columns:1fr minmax(0,330px)}
.who__row:nth-child(even) .who__fig{order:2}

.who__fig{position:relative;margin:0}
.who__fig::after{
  content:"";position:absolute;inset:20px -20px -20px 20px;border:2px solid var(--gold);
  z-index:0;transition:inset .28s ease,background .28s ease;
}
.who__row:hover .who__fig::after{inset:10px -10px -10px 10px;background:rgba(245,176,30,.14)}
.who__fig img{
  position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;
  border:2px solid var(--bone);filter:contrast(1.05);
}
.who__strip{
  position:absolute;z-index:2;left:-2px;top:-2px;writing-mode:vertical-rl;
  background:var(--gold);color:var(--ink);padding:16px 11px;border:2px solid var(--ink);
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
}

.who__txt{position:relative;z-index:3;display:grid;gap:14px;justify-items:start}
.who__row:nth-child(even) .who__txt{justify-items:end;text-align:right}
.who__n{
  position:absolute;top:-.42em;right:0;pointer-events:none;
  font-family:var(--display);font-size:clamp(6rem,15vw,13rem);line-height:.7;
  -webkit-text-stroke:2px var(--bone);color:transparent;opacity:.15;
}
.who__row:nth-child(even) .who__n{right:auto;left:0}
.who__txt h3{
  position:relative;font-size:clamp(2.2rem,5.4vw,4.4rem);line-height:.84;
  background:var(--ink);padding:.1em .3em .14em 0;
  margin-left:calc(-1 * clamp(20px,5vw,84px));
}
.who__row:nth-child(even) .who__txt h3{
  margin-left:0;margin-right:calc(-1 * clamp(20px,5vw,84px));padding:.1em 0 .14em .3em;
}
.who__r{margin:0;font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.belt{display:flex;gap:5px;margin:0}
.who__row:nth-child(even) .belt{justify-content:flex-end}
.belt i{display:block;width:36px;height:7px;background:rgba(232,228,218,.22)}
.belt i.on{background:var(--gold)}
.who__b{margin:0;max-width:54ch;font-size:1.02rem;color:#cfcbc2}
.who__meta{
  margin:0;width:100%;padding-top:12px;border-top:1px solid rgba(232,228,218,.22);
  font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:#9b968c;
}
@media (max-width:880px){
  .who__row,.who__row:nth-child(even){grid-template-columns:1fr;gap:22px;padding:30px 0}
  .who__row:nth-child(even) .who__fig{order:0}
  .who__row:nth-child(even) .who__txt{justify-items:start;text-align:left}
  .who__fig{max-width:300px}
  .who__fig::after{inset:14px -14px -14px 14px}
  .who__txt h3,.who__row:nth-child(even) .who__txt h3{margin:0;padding:0;background:none;font-size:clamp(2rem,9vw,3rem)}
  .who__n,.who__row:nth-child(even) .who__n{font-size:5rem;top:-.3em;right:0;left:auto}
  .who__row:nth-child(even) .belt{justify-content:flex-start}
}

/* Word of mouth — scrolling quote cards ---------------------------------- */
.qstrip{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 26px;margin-bottom:22px;
  font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark);
}
.qstrip b{
  display:inline-flex;align-items:center;gap:8px;background:var(--gold);color:var(--ink);
  padding:8px 13px;font-size:.66rem;letter-spacing:.14em;
}
.qstrip b i{font-style:normal;font-family:var(--display);font-size:1.1rem;letter-spacing:.04em}
.qstrip a{border-bottom:2px solid var(--gold);color:inherit}
.qstrip a:hover{color:var(--gold-deep)}

.qmarq{overflow:hidden;border-top:2px solid var(--line);border-bottom:2px solid var(--line);padding:18px 0}
.sec--ink .qmarq{border-color:var(--bone)}
.qmarq__t{display:flex;gap:16px;width:max-content;animation:qslide 80s linear infinite}
.qmarq:hover .qmarq__t{animation-play-state:paused}
@keyframes qslide{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.q{
  position:relative;flex:0 0 min(420px,84vw);margin:0;padding:26px 24px 22px;
  display:grid;gap:14px;align-content:start;white-space:normal;
  border:2px solid var(--line);transition:transform .25s ease;
}
.q:hover{transform:translateY(-4px)}
.q__mark{
  position:absolute;right:16px;top:2px;font-family:var(--display);font-size:5rem;line-height:1;
  color:currentColor;opacity:.16;pointer-events:none;
}
.q__stars{display:flex;align-items:center;gap:10px;font-size:.86rem;letter-spacing:.2em}
.q__stars b{
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;
  padding:4px 8px;border:1px solid currentColor;letter-spacing:.08em;
}
.q p{margin:0;font-size:.98rem;line-height:1.55}
.q figcaption{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid currentColor}
.q__av{
  flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;
  border:2px solid currentColor;font-family:var(--display);font-size:1.1rem;letter-spacing:.04em;
}
.q__who{display:grid;gap:3px;font-family:var(--display);font-size:1.15rem;text-transform:uppercase;line-height:1}
.q__who em{
  font-style:normal;font-family:var(--mono);font-size:.58rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;opacity:.7;
}

/* colour variants */
.q--paper{background:#fff;color:var(--ink);border-color:var(--ink)}
.q--paper .q__stars{color:var(--gold-deep)}
.q--gold{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.q--gold::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(10,10,10,.07) 0 6px,transparent 6px 14px);
}
.q--gold > *:not(.q__mark){position:relative;z-index:1}
.q--ink{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.q--ink .q__stars{color:var(--gold)}
.q--ink .q__mark{opacity:.26}

@media (prefers-reduced-motion:reduce){
  .qmarq{overflow-x:auto}
  .qmarq__t{animation:none}
}

/* CTA block --------------------------------------------------------------- */
.end{position:relative;border-top:2px solid var(--line);background:var(--ink);color:var(--bone);overflow:hidden}
.end__bg{position:absolute;inset:0;opacity:.38}
.end__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 34%;filter:none}
.end__in{position:relative;padding:clamp(48px,8vw,110px) 0}
.end h2{font-size:clamp(3rem,10vw,8rem);line-height:.84}
.end h2 u{text-decoration:none;-webkit-text-stroke:2px var(--bone);color:transparent}
.end p{max-width:52ch;margin-top:22px}
.end .acts{display:flex;flex-wrap:wrap;margin-top:34px;border:2px solid var(--bone);width:max-content;max-width:100%}
.end .b{background:transparent;color:var(--bone)}
.end .b + .b{border-left:2px solid var(--bone)}
.end .b:hover{background:var(--gold);color:var(--ink)}

/* Forms ------------------------------------------------------------------- */
.form{display:grid;gap:0;border:2px solid var(--line)}
.sec--ink .form{border-color:var(--bone)}
.f{display:grid;border-bottom:1px solid rgba(10,10,10,.22)}
.sec--ink .f{border-color:rgba(232,228,218,.22)}
.f:last-of-type{border-bottom:0}
.f label{font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:12px 16px 0;color:var(--grey)}
.sec--ink .f label{color:var(--gold)}
.f input,.f select,.f textarea{
  background:transparent;border:0;color:inherit;font-family:var(--body);font-size:1.05rem;
  padding:6px 16px 14px;width:100%;
}
.f textarea{min-height:120px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{outline:2px solid var(--gold);outline-offset:-2px}
.f2{display:grid;grid-template-columns:1fr 1fr}
.f2 .f{border-bottom:1px solid rgba(10,10,10,.22)}
.f2 .f:first-child{border-right:1px solid rgba(10,10,10,.22)}
.sec--ink .f2 .f:first-child{border-color:rgba(232,228,218,.22)}
@media (max-width:640px){.f2{grid-template-columns:1fr}.f2 .f:first-child{border-right:0}}
.form button{width:100%;justify-content:center;border-top:2px solid var(--line)}
.sec--ink .form button{border-top-color:var(--bone)}

/* Contact detail list ----------------------------------------------------- */
.dl{border-top:2px solid var(--line)}
.sec--ink .dl{border-color:var(--bone)}
.dl div{display:grid;grid-template-columns:130px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid rgba(10,10,10,.22)}
.sec--ink .dl div{border-color:rgba(232,228,218,.22)}
.dl dt{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--grey)}
.sec--ink .dl dt{color:var(--gold)}
.dl dd{margin:0;font-family:var(--display);font-size:clamp(1.15rem,1.9vw,1.6rem);text-transform:uppercase;line-height:1.05}
.dl dd small{display:block;font-family:var(--body);font-size:.84rem;text-transform:none;color:var(--grey);margin-top:6px;letter-spacing:0}
.dl dd a:hover{color:var(--gold)}
@media (max-width:620px){.dl div{grid-template-columns:1fr;gap:4px}}

.map{border:2px solid var(--line);height:clamp(280px,40vh,420px)}
.sec--ink .map{border-color:var(--bone)}
.map iframe{width:100%;height:100%;border:0;display:block;filter:contrast(1.1)}

/* Two-column page intro --------------------------------------------------- */
.intro{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(20px,4vw,56px);align-items:end;padding-block:clamp(30px,5vw,60px)}
.intro h1{font-size:clamp(3rem,9vw,7.5rem);line-height:.84}
.intro .lead{font-size:clamp(1rem,1.4vw,1.18rem);max-width:46ch}
@media (max-width:900px){.intro{grid-template-columns:1fr}}

/* Split blocks ------------------------------------------------------------ */
.pair{display:grid;grid-template-columns:1fr 1fr;gap:0;border:2px solid var(--line)}
.pair > div{padding:clamp(22px,3vw,40px)}
.pair > div + div{border-left:2px solid var(--line)}
.pair figure{margin:0;overflow:hidden;padding:0;min-height:320px}
.pair figure img{width:100%;height:100%;object-fit:cover}
@media (max-width:860px){
  .pair{grid-template-columns:1fr}
  .pair > div + div{border-left:0;border-top:2px solid var(--line)}
}

/* Value grid -------------------------------------------------------------- */
.vals{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--line)}
.vals article{border-right:1px solid rgba(10,10,10,.22);padding:22px 20px 26px 0}
.vals article:first-child{padding-left:0}
.vals article:not(:first-child){padding-left:20px}
.vals article:last-child{border-right:0}
.vals h3{font-size:clamp(1.2rem,1.8vw,1.55rem);margin-bottom:10px}
.vals p{font-size:.93rem}
.vals .n{font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;color:var(--gold);display:block;margin-bottom:12px}
@media (max-width:900px){
  .vals{grid-template-columns:1fr}
  .vals article{border-right:0;border-bottom:1px solid rgba(10,10,10,.22);padding:20px 0}
  .vals article:not(:first-child){padding-left:0}
}

/* Steps ------------------------------------------------------------------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--line)}
.steps article{padding:24px 24px 28px 0;border-right:1px solid rgba(10,10,10,.22)}
.sec--ink .steps,.sec--ink .steps article{border-color:rgba(232,228,218,.22)}
.steps article:last-child{border-right:0}
.steps article:not(:first-child){padding-left:24px}
.steps b{font-family:var(--display);font-size:clamp(2.6rem,5vw,4rem);display:block;line-height:.9;color:var(--gold)}
.steps h3{font-size:1.25rem;margin:10px 0 8px}
.steps p{font-size:.94rem}
@media (max-width:860px){
  .steps{grid-template-columns:1fr}
  .steps article{border-right:0;border-bottom:1px solid rgba(10,10,10,.22);padding:20px 0}
  .steps article:not(:first-child){padding-left:0}
}

/* Footer ------------------------------------------------------------------ */
.foot{background:var(--ink);color:var(--bone);border-top:2px solid var(--line)}
.foot__top{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;border-bottom:1px solid rgba(232,228,218,.22)}
.foot__top > div{padding:clamp(24px,3vw,40px) 24px clamp(24px,3vw,40px) 0;border-right:1px solid rgba(232,228,218,.22)}
.foot__top > div:last-child{border-right:0}
.foot__top > div:not(:first-child){padding-left:24px}
.foot h4{font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:16px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.foot a{font-size:.95rem}
.foot a:hover{color:var(--gold)}
.foot__mark{font-family:var(--display);font-size:clamp(3rem,8vw,6rem);line-height:.82;margin-bottom:14px}
.foot__mark span{-webkit-text-stroke:1.5px var(--bone);color:transparent}
.foot__bot{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:16px 0;font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:#8d887f}
@media (max-width:900px){
  .foot__top{grid-template-columns:1fr 1fr}
  .foot__top > div{border-bottom:1px solid rgba(232,228,218,.22)}
}
@media (max-width:560px){.foot__top{grid-template-columns:1fr}.foot__top > div{border-right:0;padding-left:0}}

/* Touch devices: no hover, so show portraits in colour and skip row shift */
@media (hover:none){
  .crew img{filter:none}
  .row:hover{background:transparent;color:inherit;padding-inline:0}
  .sec--ink .row:hover{background:transparent;color:inherit}
}

/* ==========================================================================
   Background layers — grain, grids, watermarks, edge marks, hazard rules
   All CSS: no new image files, nothing added to the markup.
   ========================================================================== */

/* Film grain over the whole page */
body::after{
  content:"";position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* Fixed edge tag on wide screens */
body::before{
  content:"REVO / BURLINGTON ONTARIO / EST. RMNU";
  position:fixed;left:6px;top:50%;transform:translateY(-50%);z-index:75;pointer-events:none;
  writing-mode:vertical-rl;font-family:var(--mono);font-size:.58rem;font-weight:700;
  letter-spacing:.34em;text-transform:uppercase;color:rgba(10,10,10,.28);
}
@media (max-width:1500px){body::before{display:none}}

/* Section canvases ------------------------------------------------------- */
.sec{position:relative;overflow:hidden}
.sec > .wrap{position:relative;z-index:2}

/* Paper sections: 12-column guide lines + outlined watermark */
.sec::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:repeating-linear-gradient(90deg,rgba(10,10,10,.055) 0 1px,transparent 1px 8.333%);
  mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
}
.sec::after{
  content:"REVO";position:absolute;right:-.06em;bottom:-.34em;z-index:0;pointer-events:none;
  font-family:var(--display);font-size:clamp(9rem,23vw,21rem);line-height:.7;
  -webkit-text-stroke:2px rgba(10,10,10,.07);color:transparent;
}

/* Ink sections: dot grid + light watermark */
.sec--ink::before{
  background-image:radial-gradient(rgba(232,228,218,.16) 1px,transparent 1px);
  background-size:24px 24px;
}
.sec--ink::after{-webkit-text-stroke-color:rgba(232,228,218,.09)}

/* Hazard rule under the hero and above the footer */
.hero::after,.foot::before{
  content:"";display:block;height:10px;
  background:repeating-linear-gradient(135deg,var(--gold) 0 14px,var(--ink) 14px 28px);
  border-top:2px solid var(--line);
}
.foot::before{border-top:0;border-bottom:2px solid var(--ink)}

/* Corner crosshairs on the big photo bands */
.band{position:relative}
.band::before,.band::after{
  content:"+";position:absolute;z-index:3;color:var(--bone);font-family:var(--mono);
  font-size:1.1rem;line-height:1;text-shadow:0 0 6px rgba(10,10,10,.6);
}
.band::before{left:14px;top:14px}
.band::after{right:14px;bottom:14px}

/* Ghost shield behind the CTA block */
.end__in{position:relative}
.end__in > *{position:relative;z-index:1}
.end__in::before{
  content:"";position:absolute;right:-40px;top:50%;transform:translateY(-50%);
  width:clamp(240px,34vw,460px);aspect-ratio:1/1;z-index:0;pointer-events:none;
  background:url("../Images/Logo/tmpokuiflbi.webp") center/contain no-repeat;
  opacity:.07;filter:brightness(3);
}

/* Programs rows: index ticks in the gutter */
.rows{position:relative}
.rows::before{
  content:"";position:absolute;left:-14px;top:0;bottom:0;width:2px;z-index:0;
  background:repeating-linear-gradient(180deg,var(--gold) 0 10px,transparent 10px 22px);
  opacity:.5;
}
@media (max-width:1000px){.rows::before{display:none}}

/* Intro blocks on inner pages get the same canvas */
.intro{position:relative;z-index:2}

@media (prefers-reduced-motion:no-preference){
  .sec::after{transition:opacity .4s}
}

/* Hero headline: mark sits on its own line without an empty row */
.hero__left h1 mark{display:inline-block;margin-top:.02em}

/* ==========================================================================
   Page header with background image (inner pages)
   ========================================================================== */
.phead{
  position:relative;overflow:hidden;background:var(--ink);color:var(--bone);
  border-bottom:2px solid var(--line);
  min-height:clamp(440px,68vh,660px);display:flex;align-items:flex-end;
}
.phead__bg{position:absolute;inset:0;z-index:0}
.phead__bg img{width:100%;height:100%;object-fit:cover}
.phead__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(6,6,7,.93) 0%,rgba(6,6,7,.72) 42%,rgba(6,6,7,.32) 72%,rgba(6,6,7,.62) 100%),
    linear-gradient(180deg,rgba(6,6,7,.72) 0%,rgba(6,6,7,0) 34%,rgba(6,6,7,.88) 100%);
}
.phead__bg::before{
  content:"";position:absolute;inset:0;z-index:1;
  background-image:radial-gradient(rgba(232,228,218,.16) 1px,transparent 1px);
  background-size:26px 26px;opacity:.5;
}
.phead__in{position:relative;z-index:2;width:100%;padding-block:clamp(40px,7vw,76px)}
.phead__crumb{
  display:flex;align-items:center;gap:12px;margin:0 0 18px;
  font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
}
.phead__crumb::before{content:"";width:34px;height:2px;background:var(--gold)}
.phead h1{font-size:clamp(3.2rem,10vw,8.4rem);line-height:.82}
.phead h1 u{text-decoration:none;-webkit-text-stroke:2px var(--bone);color:transparent}
.phead h1 mark{background:var(--gold);color:var(--ink);padding:0 .08em}

/* lede panel overlapping the image edge */
.phead__panel{
  margin-top:clamp(24px,4vw,40px);max-width:min(560px,92%);
  background:var(--bone);color:var(--ink);border:2px solid var(--bone);
  padding:clamp(18px,2.4vw,26px) clamp(20px,2.6vw,30px);
}
.phead__panel p{margin:0;font-size:clamp(1rem,1.3vw,1.12rem);line-height:1.5}
.phead__panel span{
  display:block;margin-top:12px;padding-top:12px;border-top:1px solid rgba(10,10,10,.2);
  font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-dark);
}

/* stat rail down the right edge */
.phead__rail{
  position:absolute;right:0;top:0;bottom:0;z-index:2;width:78px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;
  border-left:1px solid rgba(232,228,218,.22);background:rgba(6,6,7,.35);
}
.phead__rail span{
  writing-mode:vertical-rl;font-family:var(--mono);font-size:.62rem;font-weight:700;
  letter-spacing:.24em;text-transform:uppercase;color:#cfcbc2;
}
.phead__rail b{
  writing-mode:vertical-rl;font-family:var(--display);font-size:1.5rem;color:var(--gold);letter-spacing:.04em;
}
@media (max-width:900px){.phead__rail{display:none}}

/* corner marks */
.phead__in::before,.phead__in::after{
  content:"+";position:absolute;color:var(--bone);font-family:var(--mono);font-size:1rem;opacity:.6;
}
.phead__in::before{left:calc(var(--gut) - 8px);top:-18px}
.phead__in::after{right:calc(var(--gut) + 70px);bottom:6px}
@media (max-width:900px){.phead__in::after{right:var(--gut)}}

/* ==========================================================================
   Mission — edge-to-edge split, no dead space
   ========================================================================== */
.mission{
  display:grid;grid-template-columns:.92fr 1.08fr;
  background:var(--bone);color:var(--ink);border-bottom:2px solid var(--line);
}
.mission__img{position:relative;margin:0;overflow:hidden;min-height:clamp(420px,62vh,720px);border-right:2px solid var(--line)}
.mission__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 24%}
.mission__img figcaption{
  position:absolute;left:0;bottom:0;background:var(--gold);color:var(--ink);
  padding:11px 16px;border-top:2px solid var(--line);border-right:2px solid var(--line);
  font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.mission__img::after{
  content:"01";position:absolute;right:16px;top:10px;
  font-family:var(--display);font-size:clamp(3.4rem,7vw,6rem);line-height:1;
  -webkit-text-stroke:2px rgba(232,228,218,.5);color:transparent;
}
.mission__body{
  display:grid;align-content:center;gap:clamp(14px,1.8vw,20px);
  padding:clamp(30px,4.4vw,68px);
  background-image:radial-gradient(rgba(10,10,10,.13) 1px,transparent 1px);background-size:26px 26px;
}
.mission__body > *{position:relative}
.mission__body h2{font-size:clamp(2.4rem,4.6vw,4.2rem)}
.mission__lead{
  margin:0;font-family:var(--display);text-transform:uppercase;line-height:1.02;
  font-size:clamp(1.3rem,2.1vw,2rem);color:var(--ink);
  border-left:4px solid var(--gold);padding-left:16px;
}
.mission__body p{margin:0;color:#4a4947;font-size:.99rem;max-width:58ch}
.mission__stats{
  list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);
  border-top:2px solid var(--line);
}
.mission__stats li{padding:16px 12px 0 0;border-right:1px solid rgba(10,10,10,.22)}
.mission__stats li:last-child{border-right:0}
.mission__stats li:not(:first-child){padding-left:12px}
.mission__stats b{display:block;font-family:var(--display);font-size:clamp(1.1rem,1.55vw,1.55rem);line-height:1.02;color:var(--ink);white-space:nowrap}
.mission__stats span{
  display:block;margin-top:6px;font-family:var(--mono);font-size:.58rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark);
}
@media (max-width:900px){
  .mission{grid-template-columns:1fr}
  .mission__img{min-height:52vh;border-right:0;border-bottom:2px solid var(--line)}
  .mission__stats{grid-template-columns:1fr 1fr}
  .mission__stats li:nth-child(2n){border-right:0}
  .mission__stats li:nth-child(n+3){padding-top:14px;border-top:1px solid rgba(10,10,10,.22)}
}

/* ==========================================================================
   Standards — colour-blocked cards
   ========================================================================== */
.stds{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(28px,4vw,44px)}
.std{
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  padding:clamp(20px,2.2vw,28px);border:2px solid var(--line);min-height:330px;
  transition:transform .28s ease,background .28s ease,color .28s ease,border-color .28s ease;
}
.std:hover{transform:translateY(-5px)}
.std__n{
  position:absolute;right:-.06em;top:-.22em;font-family:var(--display);
  font-size:clamp(4.6rem,7vw,7rem);line-height:.8;
  -webkit-text-stroke:2px currentColor;color:transparent;opacity:.28;pointer-events:none;
}
.std__ico{width:40px;height:40px;margin-bottom:16px;display:block}
.std__ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6}
.std h3{position:relative;font-size:clamp(1.3rem,1.9vw,1.7rem);margin-bottom:12px}
.std h3::after{content:"";display:block;width:44px;height:3px;margin-top:12px;background:currentColor;opacity:.55}
.std p{position:relative;margin:0;font-size:.95rem;line-height:1.55}
.std__tag{
  margin-top:auto !important;padding-top:16px;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.75;
}

/* colour variants */
.std--gold{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.std--ink{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.std--ink .std__n{color:transparent;-webkit-text-stroke-color:var(--gold);opacity:.5}
.std--paper{background:#fff;color:var(--ink);border-color:var(--ink)}
.std--paper .std__n{-webkit-text-stroke-color:var(--red);opacity:.35}
.std--outline{background:var(--ink);color:var(--bone);border-color:var(--gold)}
.std--outline h3{color:var(--gold)}
.std--outline .std__n{-webkit-text-stroke-color:var(--bone);opacity:.3}
.std--gold:hover{background:var(--ink);color:var(--gold);border-color:var(--gold)}
.std--ink:hover{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.std--ink:hover .std__n{-webkit-text-stroke-color:var(--ink)}
.std--paper:hover{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.std--outline:hover{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.std--outline:hover h3{color:var(--ink)}

/* texture inside the dark cards */
.std--ink::before,.std--outline::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(rgba(232,228,218,.16) 1px,transparent 1px);background-size:22px 22px;opacity:.5;
}
.std--gold::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(135deg,rgba(10,10,10,.09) 0 6px,transparent 6px 14px);
}

@media (max-width:1080px){.stds{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.stds{grid-template-columns:1fr}.std{min-height:0}}

/* ==========================================================================
   Compete — full-bleed poster band, content on both sides
   ========================================================================== */
.comp{position:relative;overflow:hidden;background:var(--ink);color:var(--bone);border-top:2px solid var(--line)}
.comp__bg{position:absolute;inset:0;z-index:0}
.comp__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 26%;filter:contrast(1.06)}
.comp__bg::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(6,6,7,.96) 0%,rgba(6,6,7,.88) 46%,rgba(6,6,7,.55) 100%),
    linear-gradient(0deg,rgba(6,6,7,.9) 0%,rgba(6,6,7,.2) 60%);
}
.comp__in{
  position:relative;z-index:1;display:grid;grid-template-columns:1.04fr .96fr;
  gap:clamp(26px,4vw,64px);align-items:center;padding-block:clamp(44px,6.5vw,86px);
}
.comp__eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 16px;
  font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);
}
.comp__eyebrow::before{content:"";width:34px;height:2px;background:var(--gold)}
.comp h2{font-size:clamp(2.4rem,5.4vw,4.6rem);line-height:.86}
.comp h2 u{text-decoration:none;-webkit-text-stroke:2px var(--bone);color:transparent}
.comp__lead{margin:18px 0 0;max-width:46ch;color:#cfcbc2;font-size:1.02rem}
.comp__cta{display:flex;flex-wrap:wrap;gap:0;margin-top:26px;border:2px solid var(--bone);width:max-content;max-width:100%}
.comp__cta .b{background:transparent;color:var(--bone)}
.comp__cta .b + .b{border-left:2px solid var(--bone)}
.comp__cta .b:hover{background:var(--gold);color:var(--ink)}

/* numbered steps panel */
.comp__list{margin:0;padding:0;list-style:none;border:2px solid var(--bone);background:rgba(6,6,7,.62);backdrop-filter:blur(2px)}
.comp__list li{
  display:grid;grid-template-columns:62px 1fr;gap:16px;align-items:start;
  padding:clamp(16px,2vw,22px) clamp(18px,2.2vw,26px);
  border-bottom:1px solid rgba(232,228,218,.22);
}
.comp__list li:last-child{border-bottom:0}
.comp__list b{
  font-family:var(--display);font-size:2rem;line-height:.9;color:transparent;
  -webkit-text-stroke:2px var(--gold);
}
.comp__list h3{font-size:1.15rem;margin-bottom:6px}
.comp__list p{margin:0;color:#b9b5ad;font-size:.92rem}
.comp__tags{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;
}
.comp__tags span{
  padding:8px 12px;border:1px solid rgba(232,228,218,.35);
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#cfcbc2;
}
@media (max-width:900px){
  .comp__in{grid-template-columns:1fr;gap:26px}
  .comp__list li{grid-template-columns:46px 1fr;gap:12px}
}


/* ==========================================================================
   Footer — ported from the homepage so every page matches
   ========================================================================== */
    /* ---- Footer ------------------------------------------------------- */
    .footer { position: relative; overflow: hidden; border-top: 1px solid rgba(255,255,255,.15); background: #050505; }
    .footer__mark {
      position: absolute; right: -60px; bottom: -70px; width: min(460px, 46vw);
      opacity: .06; pointer-events: none; user-select: none;
    }
    .footer > *:not(.footer__mark) { position: relative; z-index: 1; }

    /* brand band */
    .footer__brand {
      display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 28px;
      padding: 54px 0 30px; border-bottom: 1px solid rgba(255,255,255,.15);
    }
    .footer__shield { width: 92px; height: 92px; object-fit: contain; }
    .footer__word { margin: 0; font: 400 clamp(3rem,7vw,6.4rem)/.78 var(--display); text-transform: uppercase; letter-spacing: -.01em; }
    .footer__word span { display: block; color: transparent; -webkit-text-stroke: 1.5px var(--gold); }
    .footer__social { display: flex; gap: 10px; }
    .footer__social a {
      display: grid; width: 46px; height: 46px; place-items: center;
      border: 1px solid rgba(255,255,255,.15); color: #cfccc5; transition: background .25s cubic-bezier(.2,.7,.2,1), color .25s cubic-bezier(.2,.7,.2,1), border-color .25s cubic-bezier(.2,.7,.2,1);
    }
    .footer__social a:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
    .footer__social svg { width: 19px; height: 19px; fill: currentColor; }

    /* facts strip */
    .footer__strip {
      display: flex; flex-wrap: wrap; gap: 10px 34px; padding: 18px 0;
      border-bottom: 1px solid rgba(255,255,255,.15);
      color: #8d8a83; font: 700 .64rem/1.5 var(--mono); letter-spacing: .12em; text-transform: uppercase;
    }
    .footer__strip b { color: var(--gold); font-weight: 700; }

    /* link columns */
    .footer__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; padding: 0 0 46px; }
    .footer__col { padding: 34px 26px 0 0; border-right: 1px solid rgba(255,255,255,.15); }
    .footer__col:first-child { padding-left: 0; }
    .footer__col:not(:first-child) { padding-left: 26px; }
    .footer__col:last-child { border-right: 0; }
    .footer h3 { margin: 0 0 20px; color: var(--gold); font: 700 .68rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
    .footer address { margin-bottom: 18px; color: #cfccc5; font: 400 1.02rem/1.5 var(--body); font-style: normal; }
    .footer__note { margin: 0; color: #86837c; font-size: .82rem; }
    .footer ul { margin: 0; padding: 0; list-style: none; }
    .footer li { border-bottom: 1px solid rgba(255,255,255,.08); }
    .footer li a {
      display: flex; align-items: baseline; gap: 10px; padding: 11px 0;
      color: #b4b1aa; font-size: .9rem; transition: color .22s cubic-bezier(.2,.7,.2,1), padding-left .22s cubic-bezier(.2,.7,.2,1);
    }
    .footer li a::before { content: attr(data-n); color: #55524c; font: 700 .6rem/1 var(--mono); }
    .footer li a:hover { color: var(--gold); padding-left: 8px; }
    .footer li a:hover::before { color: var(--gold); }

    /* bottom bar */
    .footer__bottom {
      display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px;
      padding: 20px 0; border-top: 1px solid rgba(255,255,255,.15);
      color: #6f6c66; font: 700 .62rem/1.4 var(--mono); letter-spacing: .1em; text-transform: uppercase;
    }
    .footer__up { display: inline-flex; align-items: center; gap: 9px; color: #cfccc5; }
    .footer__up:hover { color: var(--gold); }
    .footer__up i { font-style: normal; font-size: 1rem; }

    @media (max-width: 1100px) {
      .footer__grid { grid-template-columns: 1fr 1fr; }
      .footer__col { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.15); padding-bottom: 26px; }
      .footer__col:nth-child(odd) { padding-left: 0; padding-right: 26px; }
      .footer__col:nth-child(even) { padding-left: 26px; border-left: 1px solid rgba(255,255,255,.15); }
    }
    @media (max-width: 860px) {
      .footer__brand { grid-template-columns: auto 1fr; gap: 18px; padding-top: 42px; }
      .footer__social { grid-column: 1 / -1; }
      .footer__shield { width: 66px; height: 66px; }
    }
    @media (max-width: 620px) {
      .footer__grid { grid-template-columns: 1fr; }
      .footer__col, .footer__col:nth-child(odd), .footer__col:nth-child(even) {
        padding: 26px 0; border-left: 0; border-right: 0;
      }
      .footer__bottom { flex-direction: column; align-items: flex-start; }
    }

/* Compete: stack the CTA pair on small screens so nothing overflows */
@media (max-width:620px){
  .comp__cta{flex-direction:column;width:100%}
  .comp__cta .b{justify-content:center;font-size:.72rem;padding:15px 16px}
  .comp__cta .b + .b{border-left:0;border-top:2px solid var(--bone)}
  .comp__tags span{font-size:.56rem;padding:7px 10px}
}

/* ==========================================================================
   CTA band — tighter, with colour on the type and buttons
   ========================================================================== */
.end{border-top:3px solid var(--gold)}
.end__in{padding:clamp(34px,5vw,68px) 0}
.end__in .meta--gold{margin-bottom:10px}
.end h2{font-size:clamp(2.4rem,7vw,5.4rem)}
.end h2 u{-webkit-text-stroke:2px var(--gold)}
.end h2 em{font-style:normal;background:var(--gold);color:var(--ink);padding:0 .08em}
.end p{margin-top:14px;color:#d6d2ca;max-width:56ch}
.end .acts{margin-top:22px;border-color:var(--gold)}
.end .acts .b{padding:14px 24px;font-size:.74rem}
.end .acts .b:first-child{background:var(--gold);color:var(--ink)}
.end .acts .b:first-child:hover{background:var(--bone);color:var(--ink)}
.end .acts .b + .b{border-left:2px solid var(--gold);color:var(--gold)}
.end .acts .b + .b:hover{background:var(--gold);color:var(--ink)}
.end__bg img{filter:contrast(1.08)}
.end__bg::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(6,6,7,.92) 0%,rgba(6,6,7,.72) 52%,rgba(6,6,7,.42) 100%);
}
@media (max-width:620px){
  .end .acts{flex-direction:column;width:100%}
  .end .acts .b{justify-content:center}
  .end .acts .b + .b{border-left:0;border-top:2px solid var(--gold)}
}

/* ==========================================================================
   Timetable — week board
   ========================================================================== */
.legend{
  display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;margin-bottom:22px;
  font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark);
}
.legend i{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:-3px;border:2px solid var(--line)}
.legend i.am{background:#fff}
.legend i.pm{background:var(--ink)}
.legend i.kd{background:var(--gold)}

.week{display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:start}
.wday{display:flex;flex-direction:column;border:2px solid var(--line);background:var(--bone-2)}
.wday__h{
  display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  padding:12px 12px 11px;background:var(--ink);color:var(--bone);
}
.wday__h b{font-family:var(--display);font-size:1.5rem;line-height:1;text-transform:uppercase}
.wday__h span{font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.1em;color:var(--gold)}
.wday__b{display:grid;gap:10px;align-content:start;padding:10px;flex:1}

.slot{display:grid;gap:7px;padding:14px 12px;border:2px solid var(--line);position:relative}
.slot time{font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.06em;display:block}
.slot b{font-family:var(--display);font-size:1.12rem;line-height:.98;text-transform:uppercase}
.slot em{
  font-style:normal;font-family:var(--mono);font-size:.54rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;opacity:.8;
}
.slot--am{background:#fff;color:var(--ink)}
.slot--am::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold)}
.slot--pm{background:var(--ink);color:var(--bone)}
.slot--pm time{color:var(--gold)}
.slot--kids{background:var(--gold);color:var(--ink)}
.slot--kids::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(10,10,10,.08) 0 5px,transparent 5px 12px);
}
.wday--off{background:repeating-linear-gradient(135deg,var(--bone-2) 0 8px,var(--bone) 8px 16px)}
.wday--off .wday__h{background:#3a3833}
.wday__rest{
  margin:0;padding:26px 12px;text-align:center;
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dark);
}
.wday__rest span{display:block;font-family:var(--display);font-size:1.6rem;letter-spacing:0;color:#8d8a83;margin-bottom:6px}

@media (max-width:1200px){.week{grid-template-columns:repeat(4,1fr)}}
@media (max-width:880px){.week{grid-template-columns:repeat(2,1fr)}.wday{min-height:0}}
@media (max-width:560px){.week{grid-template-columns:1fr}.wday__b{grid-template-columns:1fr}}

/* ==========================================================================
   First class — step flow cards
   ========================================================================== */
.flow-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.flow-tags span{
  padding:8px 13px;border:1px solid rgba(232,228,218,.4);color:#cfcbc2;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.flow-tags span:first-child{background:var(--gold);color:var(--ink);border-color:var(--gold)}

.flow{display:grid;grid-template-columns:repeat(3,1fr);gap:46px;position:relative}
.flow__step{
  position:relative;display:flex;flex-direction:column;gap:12px;
  padding:clamp(22px,2.4vw,30px);border:2px solid var(--bone);min-height:300px;
  transition:transform .28s ease,background .28s ease,color .28s ease;
}
.flow__step:hover{transform:translateY(-5px)}
.flow__step:not(:last-child)::after{
  content:"\2192";position:absolute;right:-34px;top:50%;transform:translateY(-50%);
  font-family:var(--mono);font-size:1.5rem;color:var(--gold);z-index:2;
}
.flow__n{
  position:absolute;right:14px;top:6px;font-family:var(--display);font-size:clamp(3.4rem,5vw,4.6rem);
  line-height:.9;-webkit-text-stroke:2px currentColor;color:transparent;opacity:.3;pointer-events:none;
}
.flow__ico{width:42px;height:42px;display:block}
.flow__ico svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.flow__step h3{font-size:clamp(1.3rem,1.9vw,1.7rem)}
.flow__step h3::after{content:"";display:block;width:40px;height:3px;margin-top:11px;background:currentColor;opacity:.5}
.flow__step p{margin:0;font-size:.95rem;line-height:1.55}
.flow__meta{
  margin-top:auto !important;padding-top:16px;display:flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;opacity:.85;
}
.flow__meta::before{content:"";width:8px;height:8px;background:currentColor;flex:0 0 auto}
.flow__go{
  display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding-bottom:3px;
  border-bottom:2px solid currentColor;
  font-family:var(--mono);font-size:.64rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}

/* variants */
.flow--gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.flow--gold::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(10,10,10,.08) 0 6px,transparent 6px 14px);
}
.flow--gold > *:not(.flow__n){position:relative}
.flow--paper{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.flow--outline{background:transparent;color:var(--bone);border-color:var(--gold)}
.flow--outline h3{color:var(--gold)}
.flow--outline .flow__n{-webkit-text-stroke-color:var(--gold);opacity:.45}
.flow--gold:hover{background:var(--ink);color:var(--gold);border-color:var(--gold)}
.flow--paper:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}
.flow--outline:hover{background:var(--gold);color:var(--ink);border-color:var(--ink)}
.flow--outline:hover h3{color:var(--ink)}

@media (max-width:980px){
  .flow{grid-template-columns:1fr;gap:34px}
  .flow__step{min-height:0}
  .flow__step:not(:last-child)::after{right:auto;left:50%;top:auto;bottom:-30px;transform:translateX(-50%) rotate(90deg)}
}

/* ==========================================================================
   Instructors — dossier cards (team page)
   ========================================================================== */
.roster{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.dossier{
  position:relative;display:flex;flex-direction:column;background:#141418;
  border:2px solid rgba(232,228,218,.3);transition:border-color .25s ease,transform .25s ease;
}
.dossier:hover{border-color:var(--gold);transform:translateY(-5px)}
.dossier--lead{border-color:var(--gold)}
.dossier__top{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:11px 14px;background:rgba(232,228,218,.08);
  border-bottom:2px solid rgba(232,228,218,.3);
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#cfcbc2;
}
.dossier--lead .dossier__top{background:var(--gold);color:var(--ink);border-bottom-color:var(--gold)}
.dossier__top b{font-family:var(--display);font-size:1.1rem;letter-spacing:.04em}
.dossier__img{position:relative;margin:0;aspect-ratio:1/1;overflow:hidden;background:#000}
.dossier__img img{
  width:100%;height:100%;object-fit:cover;object-position:50% 16%;
  filter:contrast(1.12) brightness(.92);transition:filter .35s ease,transform .6s var(--ease,ease);
}
.dossier:hover .dossier__img img{filter:contrast(1.05) brightness(1);transform:scale(1.03)}
.dossier__img::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(9,9,10,.95) 0%,rgba(9,9,10,.25) 42%,transparent 70%);
}
.dossier__name{
  position:absolute;left:16px;right:16px;bottom:12px;z-index:2;margin:0;
  font-size:clamp(1.5rem,2.2vw,2.1rem);line-height:.9;color:var(--bone);
}
.dossier__rank{
  margin:0;padding:12px 16px;border-bottom:1px solid rgba(232,228,218,.22);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
}
.dossier .belt{padding:12px 16px 0}
.dossier .belt i{width:100%;height:8px;background:rgba(232,228,218,.18)}
.dossier .belt i.on{background:var(--gold)}
.dossier__data{margin:0;padding:14px 16px 0;display:grid;gap:0}
.dossier__data > div{
  display:grid;grid-template-columns:76px 1fr;gap:10px;align-items:baseline;
  padding:9px 0;border-bottom:1px dashed rgba(232,228,218,.2);
}
.dossier__data dt{
  font-family:var(--mono);font-size:.56rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#8d8a83;
}
.dossier__data dd{margin:0;font-size:.88rem;color:var(--bone)}
.dossier__bio{margin:0;padding:14px 16px 20px;color:#b3afa7;font-size:.9rem;line-height:1.55}
@media (max-width:980px){.roster{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.roster{grid-template-columns:1fr}.dossier__img{aspect-ratio:4/3}}

/* ==========================================================================
   Contact — booking panel, info tiles, framed map
   ========================================================================== */
.book{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;align-items:start}
@media (max-width:980px){.book{grid-template-columns:1fr}}

/* form panel */
.bform{background:#fff;border:2px solid var(--line);display:flex;flex-direction:column}
.bform__top{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;
  padding:14px 18px;background:var(--gold);color:var(--ink);border-bottom:2px solid var(--line);
  font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.bform__top b{font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;text-transform:uppercase}
.bform__top span{display:inline-flex;align-items:center;gap:8px}
.bform__top span::before{content:"";width:9px;height:9px;background:var(--ink)}
.bform__body{padding:clamp(18px,2.4vw,26px);display:grid;gap:14px}
.bgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:620px){.bgrid{grid-template-columns:1fr}}
.bf{display:grid;gap:7px}
.bf label{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#56534d;
}
.bf label i{font-style:normal;color:var(--gold-deep)}
.bf label u{text-decoration:none;color:var(--red);font-size:.8rem;line-height:0}
.bf input,.bf select{
  width:100%;padding:13px 14px;background:var(--bone);color:var(--ink);
  border:2px solid rgba(10,10,10,.28);font-family:var(--body);font-size:1rem;
  transition:border-color .2s ease,background .2s ease;
}
.bf input:focus,.bf select:focus{outline:0;border-color:var(--gold);background:#fff}
.bf select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.bform__send{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  padding:17px 22px;background:var(--ink);color:var(--bone);border:0;cursor:pointer;
  font-family:var(--mono);font-size:.76rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  transition:background .2s ease,color .2s ease;
}
.bform__send:hover{background:var(--gold);color:var(--ink)}
.bform__note{
  display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:12px 18px;
  border-top:2px solid var(--line);background:var(--bone-2);
  font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#56534d;
}
.bform__note b{color:var(--gold-deep)}

/* info tiles */
.tiles{display:grid;gap:16px}
.tile{
  display:grid;gap:10px;padding:20px;border:2px solid var(--line);
  transition:transform .22s ease;
}
.tile:hover{transform:translateY(-4px)}
.tile__k{
  display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:.85;
}
.tile__k svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.tile__v{font-family:var(--display);font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.05;text-transform:uppercase}
.tile small{font-family:var(--body);font-size:.84rem;text-transform:none;letter-spacing:0;opacity:.8}
.tile--gold{background:var(--gold);color:var(--ink)}
.tile--ink{background:var(--ink);color:var(--bone)}
.tile--paper{background:#fff;color:var(--ink)}
.tile a:hover{opacity:.72}
.tile__hours{margin:0;padding:0;list-style:none;display:grid;gap:7px}
.tile__hours li{
  display:flex;justify-content:space-between;gap:12px;padding-bottom:7px;
  border-bottom:1px dashed rgba(232,228,218,.25);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
}
.tile__hours li:last-child{border-bottom:0;padding-bottom:0}
.tile__hours b{color:var(--gold)}

/* framed map */
.gmap{position:relative;margin-top:16px;border:2px solid var(--line);height:clamp(300px,42vh,430px)}
.gmap iframe{width:100%;height:100%;border:0;display:block;filter:contrast(1.1)}
.gmap__tag{
  position:absolute;left:0;bottom:0;z-index:2;background:var(--gold);color:var(--ink);
  padding:11px 16px;border-top:2px solid var(--line);border-right:2px solid var(--line);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}

/* ==========================================================================
   Booking modal — split panel
   ========================================================================== */
.modal{
  position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;
  padding:18px;background:rgba(5,5,6,.9);backdrop-filter:blur(4px);
}
.modal.is-open{display:flex}
.modal__panel{
  position:relative;display:grid;grid-template-columns:.82fr 1.18fr;
  width:min(980px,100%);max-height:94vh;overflow:auto;
  background:var(--bone);border:2px solid var(--gold);
  box-shadow:14px 14px 0 rgba(242,183,5,.16);
  animation:modalIn .3s cubic-bezier(.2,.7,.2,1);
}
@keyframes modalIn{from{opacity:0;transform:translateY(22px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.modal__panel{animation:none}}
.modal__x{
  position:absolute;right:12px;top:12px;z-index:5;width:40px;height:40px;
  display:grid;place-items:center;background:var(--gold);color:var(--ink);border:2px solid var(--ink);
  cursor:pointer;font-family:var(--mono);font-size:.95rem;line-height:1;
  transition:transform .25s ease,background .25s ease,color .25s ease;
}
.modal__x:hover{transform:rotate(90deg);background:var(--ink);color:var(--gold)}

/* photo side */
.modal__side{position:relative;overflow:hidden;background:var(--ink);color:var(--bone);display:flex}
.modal__side > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:55% 32%;filter:contrast(1.1)}
.modal__side::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(6,6,7,.72) 0%,rgba(6,6,7,.86) 55%,rgba(6,6,7,.96) 100%);
}
.modal__side-in{position:relative;z-index:2;display:flex;flex-direction:column;gap:14px;padding:26px 24px 24px}
.modal__logo{width:46px;height:46px;object-fit:contain}
.modal__kicker{
  margin:0;display:inline-flex;align-items:center;gap:9px;align-self:flex-start;
  background:var(--gold);color:var(--ink);padding:7px 11px;
  font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
}
.modal__side h3{font-size:clamp(1.9rem,3vw,2.7rem);line-height:.9}
.modal__list{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:0}
.modal__list li{
  display:flex;gap:10px;align-items:flex-start;padding:10px 0;
  border-top:1px solid rgba(232,228,218,.22);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#cfcbc2;
}
.modal__list li::before{content:"\2713";color:var(--gold);font-size:.8rem;line-height:1.2}
.modal__call{
  margin:auto 0 0;padding-top:14px;border-top:2px solid var(--gold);
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#a9a59d;
}
.modal__call a{display:block;margin-top:5px;font-family:var(--display);font-size:1.5rem;letter-spacing:.02em;color:var(--bone)}
.modal__call a:hover{color:var(--gold)}

/* form side */
.modal__form{display:flex;flex-direction:column;background:var(--bone)}
.modal__head{
  position:relative;padding:22px 24px 18px;border-bottom:2px solid var(--line);
  background:repeating-linear-gradient(135deg,rgba(242,183,5,.16) 0 8px,transparent 8px 18px);
}
.modal__head b{display:block;font-family:var(--display);font-size:clamp(1.6rem,2.4vw,2.2rem);text-transform:uppercase;line-height:.92}
.modal__head span{
  display:block;margin-top:8px;font-family:var(--mono);font-size:.6rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:#56534d;
}
.modal__fields{display:grid;gap:13px;padding:22px 24px}
.modal__row{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.mf{display:grid;gap:6px}
.mf label{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:.57rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#56534d;
}
.mf label i{font-style:normal;display:grid;place-items:center;width:20px;height:20px;background:var(--ink);color:var(--gold);font-size:.52rem}
.mf label u{text-decoration:none;color:var(--red)}
.mf input,.mf select{
  width:100%;padding:13px 14px;background:#fff;color:var(--ink);
  border:2px solid rgba(10,10,10,.22);font-family:var(--body);font-size:1rem;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.mf input:focus,.mf select:focus{outline:0;border-color:var(--gold);box-shadow:4px 4px 0 rgba(242,183,5,.25)}
.mf select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px,6px 6px;background-repeat:no-repeat}
.modal__send{
  display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  margin-top:4px;padding:17px 20px;background:var(--ink);color:var(--bone);border:0;cursor:pointer;
  font-family:var(--mono);font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  transition:background .2s ease,color .2s ease;
}
.modal__send::after{content:"\2192";font-size:1.2rem}
.modal__send:hover{background:var(--gold);color:var(--ink)}
.modal__fine{
  margin:0;padding:12px 24px;border-top:2px solid var(--line);background:var(--bone-2);
  font-family:var(--mono);font-size:.55rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#56534d;
}
.modal__fine b{color:var(--red)}
body.no-scroll{overflow:hidden}
@media (max-width:820px){
  .modal__panel{grid-template-columns:1fr}
  .modal__side{min-height:180px}
  .modal__side-in{padding:20px}
  .modal__list,.modal__call{display:none}
  .modal__row{grid-template-columns:1fr}
}

/* ==========================================================================
   Header — ported from the homepage so every page shares one navigation
   ========================================================================== */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:38px;padding:8px max(24px,calc((100vw - 1380px) / 2));
  background:#f2b705;color:#090909;
  font:700 .68rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;
}
.topbar a{border-bottom:1px solid currentColor}
.site-nav{
  position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.15);
  background:#090909;color:#fff;
  transition:background .3s ease,box-shadow .3s ease;
}
.site-nav.scrolled{background:#090909;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.site-nav .nav{display:grid;grid-template-columns:230px 1fr auto;align-items:stretch;min-height:84px;max-width:1380px;margin:0 auto;padding-inline:max(24px,calc((100vw - 1380px) / 2))}
.site-nav .brand{display:flex;align-items:center;gap:13px;border-right:1px solid rgba(255,255,255,.15)}
.site-nav .brand img{width:50px;height:50px;object-fit:contain}
.site-nav .brand strong{font:400 1.45rem/.9 var(--display);letter-spacing:.04em;text-transform:uppercase}
.site-nav .brand strong span{display:block;margin-top:6px;color:#f2b705;font:700 .58rem/1 var(--mono);letter-spacing:.18em}
.nav__links{display:flex;align-items:center;justify-content:center;gap:clamp(20px,3vw,46px)}
.nav__links a{position:relative;font-family:var(--body);font-size:.78rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#fff}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-9px;height:2px;background:#f2b705;transition:right .25s ease}
.nav__links a:hover::after,.nav__links a[aria-current="page"]::after{right:0}
.nav__cta{display:flex;align-items:center;padding-left:22px}
.button{
  display:inline-flex;min-height:54px;align-items:center;justify-content:center;gap:14px;
  padding:14px 23px;border:1px solid rgba(255,255,255,.52);background:transparent;color:#fff;
  font:800 .76rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;
  transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s ease,background .25s ease,color .25s ease;
}
.button::after{content:"\2197";font-size:1.05rem}
.button:hover{transform:translateY(-3px);border-color:#f2b705}
.button--gold{border-color:#f2b705;background:#f2b705;color:#090909;box-shadow:7px 7px 0 rgba(242,183,5,.18)}
.button--gold:hover{background:#ffd33d}
.burger{display:none;border:0;background:none;color:#fff;cursor:pointer}
.mobile-menu{position:fixed;z-index:49;inset:122px 0 0;display:none;padding:38px 28px;background:#090909}
.mobile-menu.open{display:block}
.mobile-menu a{display:flex;justify-content:space-between;padding:19px 0;border-bottom:1px solid rgba(255,255,255,.15);font:400 2.2rem/1 var(--display);text-transform:uppercase;color:#fff}
.mobile-menu a span{color:#f2b705;font:700 .62rem/1 var(--mono)}
.mobile-menu .button{margin-top:28px}
body.menu-open{overflow:hidden}
@media (max-width:1100px){
  .site-nav .nav{grid-template-columns:220px 1fr auto}
  .nav__links{gap:20px}
}
@media (max-width:860px){
  .site-nav .nav{grid-template-columns:1fr auto;min-height:74px}
  .site-nav .brand{border-right:0}
  .nav__links,.nav__cta{display:none}
  .burger{display:flex;align-items:center;gap:12px;padding:0 2px 0 25px;font:700 .7rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
  .burger i,.burger i::before,.burger i::after{display:block;width:27px;height:2px;background:currentColor;transition:transform .25s ease}
  .burger i{position:relative}
  .burger i::before,.burger i::after{content:"";position:absolute;left:0}
  .burger i::before{top:-7px}
  .burger i::after{top:7px}
  .burger[aria-expanded="true"] i{background:transparent}
  .burger[aria-expanded="true"] i::before{top:0;transform:rotate(45deg)}
  .burger[aria-expanded="true"] i::after{top:0;transform:rotate(-45deg)}
  .mobile-menu{inset:112px 0 0}
  .topbar{font-size:.6rem;gap:10px}
  .topbar span:nth-child(2){display:none}
}
@media (max-width:620px){
  .site-nav .brand img{width:42px;height:42px}
  .site-nav .brand strong{font-size:1.18rem}
  .topbar span:first-child{display:none}
}

/* Modal legibility pass */
.modal__side::after{
  background:linear-gradient(180deg,rgba(6,6,7,.86) 0%,rgba(6,6,7,.93) 45%,rgba(6,6,7,.98) 100%);
}
.modal__side h3{color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.6)}
.modal__list li{color:#e4e1da;font-size:.64rem;border-top-color:rgba(232,228,218,.3)}
.modal__list li::before{font-size:.9rem}
.modal__call{color:#c8c4bc}
.modal__call a{color:#fff}
.modal__head{background:var(--bone-2)}
.modal__head::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(135deg,rgba(242,183,5,.22) 0 8px,transparent 8px 18px);
}
.modal__head b,.modal__head span{position:relative;z-index:1}
.modal__head b{color:var(--ink)}
.modal__head span{color:#3f3d38}
.mf label{color:#2f2d29}
.mf input,.mf select{color:var(--ink);border-color:rgba(10,10,10,.42)}
.mf input::placeholder{color:#7a766e;opacity:1}
.modal__fine{color:#3f3d38}

/* ==========================================================================
   Contact — reach stage (dark ledger + overlapping form + map with card)
   ========================================================================== */
.reach{position:relative;overflow:hidden;background:var(--ink);color:var(--bone);border-top:3px solid var(--gold)}
.reach__bg{position:absolute;right:0;top:0;bottom:0;width:46%;z-index:0}
.reach__bg img{width:100%;height:100%;object-fit:cover;object-position:52% 30%;filter:contrast(1.1)}
.reach__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--ink) 0%,rgba(9,9,10,.92) 40%,rgba(9,9,10,.78) 100%)}
.reach__in{
  position:relative;z-index:2;display:grid;grid-template-columns:1fr minmax(0,470px);
  gap:clamp(28px,4vw,64px);align-items:start;padding-block:clamp(48px,7vw,90px);
}
.reach__left h2{font-size:clamp(2.6rem,6vw,5rem);line-height:.86;margin-top:14px}
.reach__left h2 u{text-decoration:none;-webkit-text-stroke:2px var(--gold);color:transparent}
.reach__lead{margin:18px 0 0;max-width:42ch;color:#c9c5bc}

/* contact ledger rows */
.reach__rows{list-style:none;margin:26px 0 0;padding:0;border-top:2px solid rgba(232,228,218,.3)}
.reach__rows a{
  display:grid;grid-template-columns:130px 1fr auto;gap:16px;align-items:center;
  padding:16px 0;border-bottom:1px solid rgba(232,228,218,.22);
  transition:padding .22s ease,background .22s ease,color .22s ease;
}
.reach__rows a:hover{background:var(--gold);color:var(--ink);padding-inline:14px}
.reach__rows span{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.reach__rows a:hover span{color:var(--ink)}
.reach__rows b{font-family:var(--display);font-size:clamp(1.3rem,2.2vw,1.9rem);text-transform:uppercase;line-height:1}
.reach__rows i{font-style:normal;font-size:1.3rem;opacity:.65}
.reach__rows a:hover i{opacity:1;transform:translateX(4px)}

/* hours chips */
.reach__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.reach__chips span{
  display:inline-flex;gap:8px;padding:9px 12px;border:1px solid rgba(232,228,218,.34);
  font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#cfcbc2;
}
.reach__chips span b{color:var(--gold)}
.reach__chips span.off{border-color:rgba(232,228,218,.18);color:#8d8a83}

/* form card — larger, underline fields */
.reach__in{grid-template-columns:1fr minmax(0,560px)}
.reach__form{
  position:relative;background:var(--bone);color:var(--ink);
  border:2px solid var(--ink);border-left:10px solid var(--gold);
  box-shadow:16px 16px 0 rgba(242,183,5,.2);
}
.reach__head{position:relative;padding:30px 32px 22px;border-bottom:2px solid rgba(10,10,10,.18)}
.reach__head::after{
  content:"";position:absolute;left:32px;right:32px;bottom:-2px;height:2px;background:var(--gold);width:64px;
}
.reach__head p{
  margin:0 0 12px;display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#3f3d38;
}
.reach__head p b{background:var(--ink);color:var(--gold);padding:5px 9px;letter-spacing:.12em}
.reach__head h3{font-size:clamp(2rem,3.2vw,3rem);line-height:.9}
.reach__fields{display:grid;gap:22px;padding:28px 32px 30px}
.reach__row{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.rf{position:relative;display:grid;gap:8px}
.rf label{
  display:flex;align-items:baseline;gap:9px;
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#56534d;
  transition:color .2s ease;
}
.rf label i{font-style:normal;color:var(--gold-deep)}
.rf label u{text-decoration:none;color:var(--red)}
.rf input,.rf select{
  width:100%;padding:10px 2px 12px;background:transparent;color:var(--ink);
  border:0;border-bottom:2px solid rgba(10,10,10,.3);
  font-family:var(--display);font-size:1.45rem;letter-spacing:.01em;text-transform:uppercase;
  transition:border-color .2s ease;
}
.rf input::placeholder{font-family:var(--body);font-size:1rem;text-transform:none;color:#8b8780;letter-spacing:0}
.rf input:focus,.rf select:focus{outline:0;border-bottom-color:var(--gold);border-bottom-width:3px}
.rf:focus-within label{color:var(--ink)}
.rf select{
  appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 14px) 60%,calc(100% - 8px) 60%;background-size:7px 7px,7px 7px;background-repeat:no-repeat;
}
.reach__send{
  display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;
  margin-top:6px;padding:22px 26px;background:var(--ink);color:var(--bone);border:0;cursor:pointer;
  font-family:var(--mono);font-size:.82rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  transition:background .2s ease,color .2s ease,letter-spacing .2s ease;
}
.reach__send::after{content:"\2192";font-size:1.4rem}
.reach__send:hover{background:var(--gold);color:var(--ink);letter-spacing:.22em}
.reach__fine{
  display:flex;flex-wrap:wrap;gap:8px 20px;margin:0;padding:16px 32px;
  border-top:2px solid rgba(10,10,10,.18);background:var(--bone-2);
  font-family:var(--mono);font-size:.58rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#3f3d38;
}
.reach__fine b{color:var(--red)}
@media (max-width:620px){
  .reach__head,.reach__fields,.reach__fine{padding-inline:22px}
  .reach__form{border-left-width:6px}
}

/* map band with floating card */
.mapband{position:relative;border-top:2px solid var(--line)}
.mapband iframe{width:100%;height:clamp(340px,52vh,520px);border:0;display:block;filter:contrast(1.06)}
.mapcard{
  position:absolute;left:clamp(16px,6vw,90px);top:50%;transform:translateY(-50%);z-index:2;
  width:min(360px,calc(100% - 32px));background:var(--ink);color:var(--bone);
  border:2px solid var(--gold);padding:24px 22px;
}
.mapcard p{margin:0}
.mapcard .k{font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.mapcard h3{margin:10px 0 12px;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1}
.mapcard .sub{color:#c9c5bc;font-size:.9rem}
.mapcard .go{
  display:inline-flex;align-items:center;gap:10px;margin-top:18px;padding:13px 18px;
  background:var(--gold);color:var(--ink);
  font-family:var(--mono);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  transition:background .2s ease;
}
.mapcard .go:hover{background:var(--bone)}
@media (max-width:980px){
  .reach__in{grid-template-columns:1fr}
  .reach__bg{width:100%;opacity:.5}
  .mapcard{position:static;transform:none;width:auto;border-left:0;border-right:0}
  .mapband iframe{height:320px}
}
@media (max-width:620px){
  .reach__rows a{grid-template-columns:1fr auto}
  .reach__rows span{grid-column:1/-1}
  .reach__row{grid-template-columns:1fr}
}

/* ==========================================================================
   Booking page — step 2, premium glow
   ========================================================================== */
.bk{position:relative;overflow:hidden;background:var(--ink);color:var(--bone)}
.bk::before,.bk::after{content:"";position:absolute;pointer-events:none;z-index:0}
.bk::before{
  width:760px;height:760px;left:-220px;top:-240px;border-radius:50%;
  background:radial-gradient(circle,rgba(242,183,5,.22),rgba(242,183,5,0) 62%);filter:blur(10px);
}
.bk::after{
  width:620px;height:620px;right:-180px;bottom:-200px;border-radius:50%;
  background:radial-gradient(circle,rgba(242,183,5,.13),rgba(242,183,5,0) 64%);
}
.bk > *{position:relative;z-index:1}

/* not-done-yet alert */
.bk-alert{
  position:relative;z-index:3;display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;
  padding:16px max(24px,calc((100vw - 1380px) / 2));
  background:repeating-linear-gradient(135deg,var(--red) 0 16px,#b81f19 16px 32px);
  color:#fff;font-family:var(--mono);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.bk-alert b{
  display:inline-flex;align-items:center;gap:9px;background:#fff;color:var(--red);
  padding:8px 12px;font-size:.72rem;letter-spacing:.12em;
}
.bk-alert span{opacity:.96}

/* hero */
.bk-hero{padding-block:clamp(34px,5vw,64px)}
.bk-steps{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.bk-step{
  display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid rgba(232,228,218,.28);
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a9a59d;
}
.bk-step i{
  font-style:normal;display:grid;place-items:center;width:22px;height:22px;
  background:rgba(232,228,218,.14);color:#cfcbc2;font-size:.58rem;
}
.bk-step.done{border-color:rgba(242,183,5,.5);color:#e8e4da}
.bk-step.done i{background:var(--gold);color:var(--ink)}
.bk-step.now{
  border-color:var(--gold);color:var(--ink);background:var(--gold);
  box-shadow:0 0 0 4px rgba(242,183,5,.16),0 12px 40px rgba(242,183,5,.28);
}
.bk-step.now i{background:var(--ink);color:var(--gold)}
.bk-hero h1{font-size:clamp(2.6rem,7vw,5.6rem);line-height:.86}
.bk-hero h1 u{text-decoration:none;-webkit-text-stroke:2px var(--gold);color:transparent}
.bk-hero p{margin:18px 0 0;max-width:56ch;color:#cfcbc2;font-size:clamp(1rem,1.3vw,1.1rem)}
.bk-hero p b{color:var(--gold)}

/* layout */
.bk-grid{display:grid;grid-template-columns:1.55fr .95fr;gap:20px;padding-bottom:clamp(40px,6vw,80px);align-items:start}
@media (max-width:1040px){.bk-grid{grid-template-columns:1fr}}

/* calendar panel with gradient edge + glow */
.bk-cal{
  position:relative;padding:2px;
  background:linear-gradient(140deg,var(--gold),rgba(242,183,5,.15) 38%,rgba(232,228,218,.22) 70%,var(--gold));
  box-shadow:0 30px 80px rgba(0,0,0,.55),0 0 60px rgba(242,183,5,.12);
}
.bk-cal__in{background:#0f0f12;height:100%}
.bk-cal__top{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;border-bottom:1px solid rgba(232,228,218,.18);
  background:linear-gradient(180deg,rgba(242,183,5,.12),transparent);
}
.bk-cal__top p{
  margin:0;font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);
}
.bk-tabs{display:flex;gap:8px}
.bk-tab{
  padding:11px 16px;border:1px solid rgba(232,228,218,.3);background:transparent;color:#cfcbc2;cursor:pointer;
  font-family:var(--mono);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  transition:background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.bk-tab:hover{border-color:var(--gold);color:#fff}
.bk-tab.is-on{
  background:var(--gold);border-color:var(--gold);color:var(--ink);
  box-shadow:0 10px 30px rgba(242,183,5,.32);
}
.bk-panel{display:none;padding:10px 10px 4px;background:#fff}
.bk-panel.is-on{display:block}
.bk-panel iframe{width:100%;border:0;overflow:hidden;min-height:760px;display:block}

/* aside */
.bk-side{display:grid;gap:16px}
.bk-card{
  position:relative;padding:22px 20px;border:1px solid rgba(232,228,218,.22);
  background:linear-gradient(180deg,rgba(232,228,218,.07),rgba(232,228,218,.02));
  backdrop-filter:blur(2px);
}
.bk-card h2{font-size:1.35rem;margin-bottom:14px}
.bk-card--gold{
  background:linear-gradient(150deg,var(--gold),#ffd34d);color:var(--ink);border-color:var(--gold);
  box-shadow:0 20px 60px rgba(242,183,5,.24);
}
.bk-card--gold h2{color:var(--ink)}
.bk-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.bk-list li{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;font-size:.93rem;color:#cfcbc2}
.bk-card--gold .bk-list li{color:#231c04}
.bk-list li b{
  display:grid;place-items:center;width:30px;height:30px;background:var(--gold);color:var(--ink);
  font-family:var(--mono);font-size:.6rem;letter-spacing:.06em;
}
.bk-card--gold .bk-list li b{background:var(--ink);color:var(--gold)}
.bk-meta{
  margin:16px 0 0;padding-top:14px;border-top:1px solid rgba(232,228,218,.22);
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#a9a59d;
}
.bk-card--gold .bk-meta{border-top-color:rgba(10,10,10,.25);color:#4a3c07}
.bk-call{display:block;margin-top:8px;font-family:var(--display);font-size:1.7rem;letter-spacing:.02em;color:var(--bone)}
.bk-card--gold .bk-call{color:var(--ink)}
.bk-call:hover{color:var(--gold)}
@media (max-width:620px){
  .bk-alert{font-size:.62rem;letter-spacing:.1em}
  .bk-panel iframe{min-height:880px}
}

/* ==========================================================================
   Booking — obvious program chooser
   ========================================================================== */
.bk-pick{margin-bottom:18px}
.bk-pick__q{
  display:flex;align-items:center;gap:12px;margin:0 0 14px;
  font-family:var(--mono);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--bone);
}
.bk-pick__q b{
  display:grid;place-items:center;width:28px;height:28px;background:var(--gold);color:var(--ink);
  font-size:.66rem;letter-spacing:.04em;
}
.bk-pick__q span{color:#a9a59d;font-weight:700}
.bk-opts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:760px){.bk-opts{grid-template-columns:1fr}}
.bk-opt{
  position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
  padding:22px 22px;text-align:left;cursor:pointer;
  background:linear-gradient(180deg,rgba(232,228,218,.08),rgba(232,228,218,.02));
  border:2px solid rgba(232,228,218,.34);color:var(--bone);
  transition:border-color .22s ease,background .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.bk-opt:hover{transform:translateY(-3px);border-color:var(--gold);background:rgba(242,183,5,.1)}
.bk-opt__ico{
  display:grid;place-items:center;width:54px;height:54px;flex:0 0 auto;
  border:2px solid currentColor;
}
.bk-opt__ico svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7}
.bk-opt__txt{display:grid;gap:5px}
.bk-opt__txt b{font-family:var(--display);font-size:clamp(1.4rem,2vw,1.9rem);text-transform:uppercase;line-height:1}
.bk-opt__txt span{
  font-family:var(--mono);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#a9a59d;
}
.bk-opt__mark{
  display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;
  border:2px solid rgba(232,228,218,.4);border-radius:50%;font-size:.9rem;color:transparent;
  transition:background .22s ease,border-color .22s ease,color .22s ease;
}
.bk-opt.is-on{
  background:linear-gradient(150deg,var(--gold),#ffd34d);border-color:var(--gold);color:var(--ink);
  box-shadow:0 18px 50px rgba(242,183,5,.32),0 0 0 4px rgba(242,183,5,.16);
  transform:translateY(-3px);
}
.bk-opt.is-on .bk-opt__txt span{color:#4a3c07}
.bk-opt.is-on .bk-opt__mark{background:var(--ink);border-color:var(--ink);color:var(--gold)}
.bk-opt.is-on::after{
  content:"Selected";position:absolute;right:-2px;top:-13px;
  background:var(--ink);color:var(--gold);padding:5px 10px;
  font-family:var(--mono);font-size:.54rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
.bk-cal__top p b{color:var(--bone);font-family:var(--display);font-size:1.25rem;letter-spacing:.02em;margin-right:8px}

/* Booking: chooser sits full width above the calendar */
.bk-pickwrap{padding-bottom:6px}
.bk-opts{grid-template-columns:repeat(2,minmax(0,1fr));max-width:900px}
.bk-opt{padding:24px 24px}
.bk-panel{padding:14px 14px 6px}
.bk-panel iframe{min-height:820px}
@media (max-width:1040px){.bk-panel iframe{min-height:900px}}

/* Booking: info cards move under the calendar, three across */
.bk-grid{grid-template-columns:1fr;gap:18px}
.bk-side{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.bk-side .bk-card{display:flex;flex-direction:column}
.bk-side .bk-meta{margin-top:auto}
@media (max-width:900px){.bk-side{grid-template-columns:1fr}}

/* ==========================================================================
   NAVIGATION v2 — pill nav, right-side drawer, mobile action bar
   ========================================================================== */
.topbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:34px;padding:7px max(18px,calc((100vw - 1380px) / 2));
  background:#f2b705;color:#090909;
  font:700 .62rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;
}
.topbar a{border-bottom:1px solid currentColor}
@media (max-width:1024px){.topbar{display:none}}

.site-nav{
  position:sticky;top:0;z-index:100;background:#090909;color:#fff;
  border-bottom:1px solid rgba(255,255,255,.12);
  transition:box-shadow .3s ease;
}
.site-nav.scrolled{box-shadow:0 14px 40px rgba(0,0,0,.5)}
.site-nav .nav{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;
  max-width:1380px;margin:0 auto;padding:0 max(18px,calc((100vw - 1380px) / 2));
  height:74px;transition:height .28s ease;
}
.site-nav.scrolled .nav{height:62px}

/* brand */
.site-nav .brand{display:flex;align-items:center;gap:11px;border:0}
.site-nav .brand img{width:42px;height:42px;object-fit:contain;transition:width .28s ease,height .28s ease}
.site-nav.scrolled .brand img{width:36px;height:36px}
.site-nav .brand strong{font:400 1.3rem/.9 var(--display);letter-spacing:.04em;text-transform:uppercase}
.site-nav .brand strong span{display:block;margin-top:5px;color:#f2b705;font:700 .52rem/1 var(--mono);letter-spacing:.2em}

/* centred pill nav */
.nav__links{
  justify-self:center;display:flex;align-items:center;gap:2px;
  padding:5px;border:1px solid rgba(255,255,255,.14);border-radius:999px;
  background:rgba(255,255,255,.04);
}
.nav__links a{
  padding:9px 15px;border-radius:999px;color:#d7d4ce;
  font-family:var(--body);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  transition:background .2s ease,color .2s ease;
}
.nav__links a::after{display:none}
.nav__links a:hover{background:rgba(255,255,255,.1);color:#fff}
.nav__links a[aria-current="page"]{background:#f2b705;color:#090909}

/* right actions */
.nav__cta{display:flex;align-items:center;gap:10px;padding:0}
.nav__tel{
  display:inline-flex;align-items:center;gap:8px;padding:11px 14px;
  border:1px solid rgba(255,255,255,.2);border-radius:999px;color:#fff;
  font:700 .66rem/1 var(--mono);letter-spacing:.08em;white-space:nowrap;
  transition:border-color .2s ease,color .2s ease;
}
.nav__tel svg{width:14px;height:14px;fill:currentColor}
.nav__tel:hover{border-color:#f2b705;color:#f2b705}
@media (max-width:1240px){.nav__tel{display:none}}
.site-nav .button,.nav__cta .button{
  min-height:0;padding:13px 20px;border-radius:999px;border:0;
  background:#f2b705;color:#090909;box-shadow:0 8px 26px rgba(242,183,5,.26);
  font:700 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
}
.site-nav .button::after{content:"\2192";font-size:1rem}
.site-nav .button:hover{background:#ffd34d;transform:translateY(-2px)}

/* burger */
.burger{
  display:none;align-items:center;justify-content:center;gap:0;
  width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:12px;
  background:transparent;color:#fff;cursor:pointer;font-size:0;
}
.burger i,.burger i::before,.burger i::after{display:block;width:20px;height:2px;background:currentColor;transition:transform .25s ease,opacity .2s ease}
.burger i{position:relative}
.burger i::before,.burger i::after{content:"";position:absolute;left:0}
.burger i::before{top:-6px}
.burger i::after{top:6px}
.burger[aria-expanded="true"] i{background:transparent}
.burger[aria-expanded="true"] i::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] i::after{top:0;transform:rotate(-45deg)}
@media (max-width:1024px){
  .site-nav .nav{grid-template-columns:auto auto;justify-content:space-between;height:66px}
  .nav__links,.nav__cta{display:none}
  .burger{display:flex}
}

/* ---- right-side drawer ---- */
.drawer{position:fixed;inset:0;z-index:130;visibility:hidden}
.drawer.open{visibility:visible}
.drawer__bg{
  position:absolute;inset:0;background:rgba(5,5,6,.8);backdrop-filter:blur(3px);
  opacity:0;transition:opacity .3s ease;
}
.drawer.open .drawer__bg{opacity:1}
.drawer__panel{
  position:absolute;right:0;top:0;bottom:0;width:min(88vw,392px);
  display:flex;flex-direction:column;gap:16px;padding:16px 20px 24px;
  background:#0b0b0d;border-left:2px solid #f2b705;overflow-y:auto;
  transform:translateX(102%);transition:transform .34s cubic-bezier(.2,.7,.2,1);
}
.drawer.open .drawer__panel{transform:none}
.drawer__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.drawer__top .brand{display:flex;align-items:center;gap:10px;color:#fff}
.drawer__top .brand img{width:38px;height:38px;object-fit:contain}
.drawer__top .brand strong{font:400 1.15rem/.9 var(--display);letter-spacing:.04em;text-transform:uppercase}
.drawer__top .brand span{display:block;margin-top:4px;color:#f2b705;font:700 .5rem/1 var(--mono);letter-spacing:.2em}
.drawer__x{
  display:grid;place-items:center;width:46px;height:46px;flex:0 0 auto;
  border:1px solid rgba(255,255,255,.25);border-radius:12px;background:transparent;color:#fff;
  font:700 1rem/1 var(--mono);cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.drawer__x:hover{background:#f2b705;border-color:#f2b705;color:#090909}
.drawer__nav{display:flex;flex-direction:column;margin-top:4px}
.drawer__nav a{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:15px 0;border-bottom:1px solid rgba(255,255,255,.12);
  font:400 1.75rem/1 var(--display);text-transform:uppercase;color:#fff;
}
.drawer__nav a em{font-style:normal;font:700 .58rem/1 var(--mono);letter-spacing:.14em;color:#7d7a73}
.drawer__nav a[aria-current="page"]{color:#f2b705}
.drawer__nav a[aria-current="page"] em{color:#f2b705}
.drawer__foot{margin-top:auto;display:grid;gap:10px}
.drawer__btn{
  display:flex;align-items:center;justify-content:center;gap:10px;padding:17px 18px;border-radius:12px;
  font:700 .7rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
}
.drawer__btn--gold{background:#f2b705;color:#090909;box-shadow:0 12px 34px rgba(242,183,5,.28)}
.drawer__btn--ghost{border:1px solid rgba(255,255,255,.28);color:#fff}
.drawer__meta{
  margin:4px 0 0;font:700 .58rem/1.7 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#8d8a83;
}
body.menu-open,body.no-scroll{overflow:hidden}

/* ---- mobile action bar ---- */
.mbar{
  position:fixed;left:0;right:0;bottom:0;z-index:95;display:none;grid-template-columns:1fr 1fr;
  border-top:2px solid #f2b705;background:rgba(9,9,10,.97);backdrop-filter:blur(10px);
}
.mbar a{
  display:flex;align-items:center;justify-content:center;gap:9px;padding:17px 10px;color:#fff;
  font:700 .68rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
}
.mbar a svg{width:15px;height:15px;fill:currentColor}
.mbar a + a{border-left:1px solid rgba(255,255,255,.16)}
.mbar a.is-gold{background:#f2b705;color:#090909}
@media (max-width:860px){
  .mbar{display:grid}
  body{padding-bottom:62px}
  .drawer__panel{padding-bottom:84px}
}

/* ==========================================================================
   Mobile polish
   ========================================================================== */
@media (max-width:620px){
  :root{--gut:18px}
  .sec{padding:48px 0}
  h1,h2{overflow-wrap:break-word}
  .sec-head h2{font-size:clamp(2.1rem,12vw,3.2rem)}
  .phead h1,.bk-hero h1{font-size:clamp(2.3rem,12vw,3.4rem)}
  .footer li a,.footer__up,.flow__go,.pcard__go,.text-link{min-height:44px;align-items:center}
  .footer li a{padding:13px 0}
  .footer__up{padding:12px 0}
  .q{flex-basis:min(330px,86vw)}
  .bk-alert{padding-block:13px}
}
/* booking choice cards: keep the tick inside the card */
.bk-opt{grid-template-columns:auto minmax(0,1fr) auto}
.bk-opt__txt{min-width:0}
.bk-opt__txt b{overflow-wrap:break-word}
@media (max-width:430px){
  .bk-opt{padding:18px 16px;gap:12px}
  .bk-opt__ico{width:44px;height:44px}
  .bk-opt__mark{width:28px;height:28px}
}

/* Booking chooser: stack on phones (overrides the wide-screen rule above) */
.bk-pick__q{flex-wrap:wrap;line-height:1.5}
@media (max-width:820px){
  .bk-opts{grid-template-columns:1fr;max-width:none}
  .bk-opt{padding:18px 16px}
  .bk-opt__txt b{font-size:1.45rem}
  .bk-opt.is-on::after{top:-11px;right:0}
}

/* ==========================================================================
   Design pass — rhythm, anchors, reveal safety
   ========================================================================== */
/* sticky header must never cover a section it links to */
html{scroll-padding-top:92px}
section[id],div[id],header[id]{scroll-margin-top:92px}

/* mission statement: give the uppercase block room to breathe */
.mission__lead{
  font-size:clamp(1.25rem,1.9vw,1.75rem);line-height:1.14;letter-spacing:.005em;
  padding-left:18px;border-left-width:5px;
}
@media (max-width:900px){
  .mission__img{min-height:40vh}
  .mission__body{padding-block:30px}
}
/* contact ledger: a little more air between rows on phones */
@media (max-width:620px){
  .reach__rows a{padding:18px 0}
  .reach__chips{gap:7px}
  .reach__chips span{font-size:.55rem;padding:8px 10px}
}

/* CTA band: shorter on every page */
.end__in{padding:clamp(26px,3.4vw,48px) 0}
.end h2{font-size:clamp(2.2rem,5.2vw,4rem);line-height:.88}
.end p{margin-top:12px;font-size:.97rem}
.end .acts{margin-top:18px}
.end .acts .b{padding:13px 20px}
@media (max-width:620px){
  .end__in{padding:24px 0}
  .end h2{font-size:clamp(2rem,10vw,2.8rem)}
  .end p{font-size:.92rem}
}

/* CTA band: give the headline room and let the photo breathe */
.end{display:flex;align-items:center;min-height:clamp(400px,46vh,520px)}
.end__in{width:100%;padding:clamp(40px,5vw,72px) 0}
.end h2{line-height:1.04}
.end h2 em{display:inline-block;padding:.04em .12em .1em;margin-top:.1em}
.end__in > p:not(.meta){margin-top:16px}
.end .acts{margin-top:22px}
@media (max-width:620px){
  .end{min-height:clamp(360px,62vh,460px)}
  .end__in{padding:34px 0}
  .end h2{line-height:1.06}
}

/* CTA variant without a photo — used where a crop would fight the layout */
.end--flat{background:#0b0b0d;border-top:3px solid var(--gold)}
.end--flat .end__glow{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(760px 420px at 12% 20%,rgba(242,183,5,.22),rgba(242,183,5,0) 62%),
    radial-gradient(620px 380px at 88% 86%,rgba(242,183,5,.12),rgba(242,183,5,0) 66%),
    radial-gradient(rgba(232,228,218,.14) 1px,transparent 1px);
  background-size:auto,auto,26px 26px;
}
.end--flat .end__in{position:relative;z-index:1}
/* ==========================================================================
   NAVIGATION v3 — larger brand, open links, gold underline, bold CTA
   ========================================================================== */
.site-nav{
  position:sticky;top:0;z-index:100;color:#fff;
  background:rgba(9,9,9,.94);backdrop-filter:saturate(140%) blur(14px);-webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);
  transition:box-shadow .3s ease,background .3s ease;
}
.site-nav::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;pointer-events:none;
  background:linear-gradient(90deg,transparent 0,#f2b705 18%,#f2b705 82%,transparent 100%);
  opacity:.85;
}
.site-nav.scrolled{background:rgba(9,9,9,.97);box-shadow:0 18px 44px rgba(0,0,0,.55)}
.site-nav .nav{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:clamp(20px,3vw,48px);
  max-width:1380px;margin:0 auto;padding:0 max(20px,calc((100vw - 1380px) / 2));
  height:96px;transition:height .3s ease;
}
.site-nav.scrolled .nav{height:78px}

/* brand */
.site-nav .brand{display:flex;align-items:center;gap:14px;padding-right:clamp(20px,3vw,44px);border:0;border-right:1px solid rgba(255,255,255,.12);height:52px;color:#fff}
.site-nav .brand img{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(242,183,5,.28));transition:width .3s ease,height .3s ease,transform .3s ease}
.site-nav .brand:hover img{transform:rotate(-4deg) scale(1.04)}
.site-nav.scrolled .brand img{width:52px;height:52px}
.site-nav .brand strong{font:400 1.85rem/.88 var(--display);letter-spacing:.05em;text-transform:uppercase;transition:font-size .3s ease}
.site-nav .brand strong span{display:block;margin-top:7px;color:#f2b705;font:700 .64rem/1 var(--mono);letter-spacing:.26em}
.site-nav.scrolled .brand strong{font-size:1.6rem}

/* open link row */
.site-nav .nav__links{
  justify-self:start;display:flex;align-items:center;gap:clamp(18px,2.4vw,40px);
  padding:0;border:0;border-radius:0;background:none;
}
.site-nav .nav__links a{
  position:relative;padding:12px 0;border-radius:0;background:none;color:#e4e1da;
  font-family:var(--body);font-size:.9rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  transition:color .2s ease;
}
.site-nav .nav__links a::after{
  content:"";display:block;position:absolute;left:0;right:0;bottom:2px;height:3px;background:#f2b705;
  transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.2,.7,.2,1);
}
.site-nav .nav__links a:hover{background:none;color:#fff}
.site-nav .nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
.site-nav .nav__links a[aria-current="page"]{background:none;color:#f2b705}
.site-nav .nav__links a[aria-current="page"]::after{transform:scaleX(1)}
.site-nav .nav__links a:focus-visible,.site-nav .nav__tel:focus-visible,.site-nav .button:focus-visible{outline:2px solid #f2b705;outline-offset:4px}

/* actions */
.site-nav .nav__cta{display:flex;align-items:center;gap:14px;padding:0}
.site-nav .nav__tel{
  display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;padding:0;line-height:0;
  border:1px solid rgba(255,255,255,.22);border-radius:0;color:#fff;font-size:0;
  transition:border-color .2s ease,color .2s ease,background .2s ease;
}
.site-nav .nav__tel svg{width:19px;height:19px;fill:currentColor}
.site-nav .nav__tel:hover{border-color:#f2b705;background:rgba(242,183,5,.08);color:#f2b705}
@media (max-width:1240px){.site-nav .nav__tel{display:inline-flex}}
.site-nav .button{
  display:inline-flex;align-items:center;gap:12px;min-height:52px;padding:0 28px;
  border:2px solid #f2b705;border-radius:0;background:#f2b705;color:#090909;
  box-shadow:6px 6px 0 rgba(242,183,5,.24);
  font:700 .8rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.site-nav .button::after{content:"\2192";font-size:1.1rem;transition:transform .2s ease}
.site-nav .button:hover{background:#ffd33d;transform:translate(-2px,-2px);box-shadow:8px 8px 0 rgba(242,183,5,.32)}
.site-nav .button:hover::after{transform:translateX(4px)}

/* burger */
.site-nav .burger{width:52px;height:52px;border-radius:0;border-color:rgba(255,255,255,.25)}
.site-nav .burger i,.site-nav .burger i::before,.site-nav .burger i::after{width:22px}
.site-nav .burger i::before{top:-7px}
.site-nav .burger i::after{top:7px}
.site-nav .burger[aria-expanded="true"] i::before,.site-nav .burger[aria-expanded="true"] i::after{top:0}

/* tighten before collapsing */
@media (max-width:1240px){
  .site-nav .nav__links{gap:22px}
  .site-nav .nav__links a{font-size:.82rem;letter-spacing:.11em}
  .site-nav .brand strong{font-size:1.6rem}
}
@media (max-width:1100px){
  .site-nav .brand{padding-right:20px}
  .site-nav .brand strong{display:none}
}
@media (max-width:1024px){
  .site-nav .nav{grid-template-columns:auto auto;justify-content:space-between;height:78px}
  .site-nav.scrolled .nav{height:68px}
  .site-nav .brand{border-right:0;padding-right:0}
  .site-nav .brand img{width:54px;height:54px}
  .site-nav.scrolled .brand img{width:46px;height:46px}
  .site-nav .brand strong{display:block;font-size:1.5rem}
  .site-nav .nav__links,.site-nav .nav__cta{display:none}
  .site-nav .burger{display:flex}
}
@media (prefers-reduced-motion:reduce){
  .site-nav *, .site-nav{transition:none!important}
}
/* v3 consistency — identical rendering on every page regardless of page-level resets */
.site-nav{background:#090909;backdrop-filter:none;-webkit-backdrop-filter:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.site-nav.scrolled{background:#090909}
.site-nav .brand{flex-shrink:0;white-space:nowrap}
.site-nav .brand img{flex:0 0 auto;max-width:none}
.site-nav .brand strong{white-space:nowrap;font-family:"Anton",Impact,sans-serif}
.site-nav .brand strong span{font-family:"Space Mono",monospace}
.site-nav .nav__links a{font-family:"Archivo",Arial,sans-serif;line-height:1.2}
.site-nav .brand strong span{line-height:1}
.site-nav .button{font-family:"Space Mono",monospace}
.site-nav .button::after{font-family:Arial,sans-serif;font-weight:700}
section[id],div[id],header[id]{scroll-margin-top:104px}
/* ---- Programs dropdown ------------------------------------------------- */
.site-nav .nav__drop{position:relative}
.site-nav .nav__trig{
  position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 0;border:0;background:none;cursor:pointer;
  color:#e4e1da;font:700 .9rem/1.2 "Archivo",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase;transition:color .2s ease;
}
.site-nav .nav__trig svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2.4;transition:transform .25s ease}
.site-nav .nav__trig::after{
  content:"";position:absolute;left:0;right:18px;bottom:2px;height:3px;background:#f2b705;
  transform:scaleX(0);transform-origin:right;transition:transform .3s cubic-bezier(.2,.7,.2,1);
}
.site-nav .nav__drop:hover .nav__trig,.site-nav .nav__drop.open .nav__trig{color:#fff}
.site-nav .nav__drop:hover .nav__trig::after,.site-nav .nav__drop.open .nav__trig::after{transform:scaleX(1);transform-origin:left}
.site-nav .nav__drop:hover .nav__trig svg,.site-nav .nav__drop.open .nav__trig svg{transform:rotate(180deg)}
.site-nav .nav__trig.is-current{color:#f2b705}
.site-nav .nav__trig.is-current::after{transform:scaleX(1)}
.site-nav .nav__trig:focus-visible{outline:2px solid #f2b705;outline-offset:4px}

.site-nav .nav__menu{
  position:absolute;left:50%;top:calc(100% + 22px);z-index:120;width:340px;padding:8px;
  background:#0f0f10;border:1px solid rgba(255,255,255,.12);border-top:3px solid #f2b705;
  box-shadow:0 28px 60px rgba(0,0,0,.6);
  opacity:0;visibility:hidden;transform:translate(-50%,8px);
  transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s;
}
.site-nav .nav__menu::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px}
.site-nav .nav__drop:hover .nav__menu,.site-nav .nav__drop.open .nav__menu{
  opacity:1;visibility:visible;transform:translate(-50%,0);transition:opacity .22s ease,transform .22s ease,visibility 0s;
}
.site-nav .nav__menu a{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:14px 14px;
  border-left:3px solid transparent;color:#fff;letter-spacing:0;text-transform:none;
  transition:background .2s ease,border-color .2s ease;
}
.site-nav .nav__menu a::after{display:none}
.site-nav .nav__menu a + a{margin-top:2px}
.site-nav .nav__menu a i{font:700 .62rem/1 "Space Mono",monospace;font-style:normal;color:#7d7a73;letter-spacing:.1em}
.site-nav .nav__menu a b{display:block;font:400 1.35rem/1 "Anton",Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase}
.site-nav .nav__menu a small{display:block;margin-top:6px;font:700 .6rem/1.2 "Space Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:#a9a59c}
.site-nav .nav__menu a span:last-child{font-size:1.1rem;color:#f2b705;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease}
.site-nav .nav__menu a:hover,.site-nav .nav__menu a:focus-visible{background:rgba(242,183,5,.08);border-left-color:#f2b705;outline:0}
.site-nav .nav__menu a:hover span:last-child,.site-nav .nav__menu a:focus-visible span:last-child{opacity:1;transform:none}
.site-nav .nav__menu a[aria-current="page"]{background:rgba(242,183,5,.1);border-left-color:#f2b705}
.site-nav .nav__menu a[aria-current="page"] b{color:#f2b705}
.site-nav .nav__menu .nav__all{
  display:flex;justify-content:space-between;margin-top:6px;padding:13px 14px;border-top:1px solid rgba(255,255,255,.1);border-left:0;
  font:700 .62rem/1 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#cfcbc2;
}
.site-nav .nav__menu .nav__all:hover{background:none;color:#f2b705}
@media (max-width:1240px){.site-nav .nav__trig{font-size:.82rem;letter-spacing:.11em}}

/* drawer: programs group */
.drawer__group{border-bottom:1px solid rgba(255,255,255,.12);padding:15px 0 12px}
.drawer__label{display:flex;align-items:center;justify-content:space-between;font:400 1.75rem/1 "Anton",Impact,sans-serif;text-transform:uppercase;color:#fff}
.drawer__label em{font-style:normal;font:700 .58rem/1 "Space Mono",monospace;letter-spacing:.14em;color:#7d7a73}
.drawer__nav .drawer__group a{
  display:flex;justify-content:space-between;padding:11px 0 11px 16px;margin-top:4px;border-bottom:0;border-left:2px solid rgba(255,255,255,.18);
  font:700 .78rem/1 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#dcd8d0;
}
.drawer__nav .drawer__group a:first-of-type{margin-top:12px}
.drawer__nav .drawer__group a span{color:#f2b705}
.drawer__nav .drawer__group a[aria-current="page"]{border-left-color:#f2b705;color:#f2b705}
/* ==========================================================================
   PROGRAM PAGES — adult-gi / adult-no-gi / kids-gi
   ========================================================================== */
.prog{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(28px,5vw,72px);align-items:start}
.prog__main h2{font-size:clamp(2.6rem,6vw,5.2rem);margin-top:14px}
.prog__lead{margin-top:22px;max-width:56ch;font-size:clamp(1.05rem,1.4vw,1.22rem);line-height:1.55}
.prog__focus{list-style:none;margin:clamp(28px,4vw,44px) 0 0;padding:0;border-top:2px solid var(--line)}
.prog__focus li{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid rgba(10,10,10,.18)}
.prog__focus b{font:700 .78rem/1 var(--mono);letter-spacing:.14em;padding-top:6px}
.prog__focus h3{font-size:clamp(1.5rem,2.2vw,2rem);line-height:.95}
.prog__focus p{margin:8px 0 0;color:#3c3a36;max-width:52ch}

.prog__side{display:grid;gap:18px;position:sticky;top:110px}
.pbox{background:var(--ink);color:var(--bone);border:2px solid var(--ink)}
.pbox__h{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(232,228,218,.18);font:700 .66rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.pbox__h span{color:#9b968c}
.pbox ul{list-style:none;margin:0;padding:6px 20px}
.pbox__times li{display:flex;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px dashed rgba(232,228,218,.2);font:700 .74rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.pbox__times li:last-child{border-bottom:0}
.pbox__times li b{color:var(--gold);white-space:nowrap}
.pbox__times li small{display:block;margin-top:4px;font-size:.6rem;color:#9b968c;letter-spacing:.12em}
.pbox__go{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-top:1px solid rgba(232,228,218,.18);font:700 .66rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;transition:background .2s,color .2s}
.pbox__go:hover{background:var(--gold);color:var(--ink)}
.pbox__coach li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(232,228,218,.14)}
.pbox__coach li:last-child{border-bottom:0}
.pbox__coach img{width:54px;height:54px;object-fit:cover;object-position:50% 20%;border:2px solid var(--gold);flex:0 0 auto}
.pbox__coach b{display:block;font:400 1.25rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.pbox__coach span{display:block;margin-top:5px;font:700 .6rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#9b968c}
.pfacts{display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--ink)}
.pfacts li{list-style:none;padding:14px 16px;font:700 .64rem/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;background:var(--gold);color:var(--ink)}
.pfacts li:nth-child(odd){border-right:2px solid var(--ink)}
.pfacts li:nth-child(n+3){border-top:2px solid var(--ink)}
.pfacts{margin:0;padding:0}

/* other programs */
.pmore{background:var(--ink);color:var(--bone);padding:clamp(44px,6vw,80px) 0;border-top:2px solid var(--line)}
.pmore .sec-head{border-color:var(--bone)}
.pmore .sec-head .note{color:#9b968c}
.pmore__grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pmore__card{position:relative;display:flex;align-items:flex-end;min-height:260px;overflow:hidden;border:1px solid rgba(232,228,218,.2);transition:border-color .3s}
.pmore__card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.pmore__card::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,9,9,.92) 0%,rgba(9,9,9,.2) 70%)}
.pmore__in{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;width:100%;padding:22px}
.pmore__in small{display:block;margin-bottom:8px;font:700 .62rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.pmore__in b{font:400 clamp(2rem,3.4vw,3rem)/.9 var(--display);text-transform:uppercase}
.pmore__in i{font-style:normal;font-size:1.6rem;color:var(--gold);transition:transform .3s}
.pmore__card:hover{border-color:var(--gold)}
.pmore__card:hover img{transform:scale(1.05)}
.pmore__card:hover i{transform:translateX(6px)}

@media (max-width:960px){
  .prog{grid-template-columns:1fr}
  .prog__side{position:static}
}
@media (max-width:640px){
  .pmore__grid{grid-template-columns:1fr}
  .pmore__card{min-height:200px}
  .prog__focus li{grid-template-columns:44px 1fr;gap:12px}
}
/* ==========================================================================
   SIMPLE PAGE HEADER — no image, compact title band
   ========================================================================== */
.phead--simple{min-height:0;display:block;background:var(--ink);border-bottom:3px solid var(--gold)}
.phead--simple .phead__in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);align-items:end;gap:clamp(20px,5vw,80px);padding-block:clamp(40px,6vw,72px)}
.phead--simple .phead__in::before,.phead--simple .phead__in::after{display:none}
.phead--simple .phead__crumb{margin-bottom:14px}
.phead--simple h1{font-size:clamp(2.6rem,6.4vw,5.2rem);line-height:.9}
.phead--simple h1 span{color:var(--gold)}
.phead__lede{margin:0;padding-left:20px;border-left:2px solid var(--gold);color:#cfcbc2;font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.55}
.phead__lede small{display:block;margin-top:12px;font:700 .64rem/1.4 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:#8f8b83}
@media (max-width:760px){
  .phead--simple .phead__in{grid-template-columns:1fr;gap:18px}
  .phead--simple h1{font-size:clamp(2.4rem,11vw,3.4rem)}
}

/* =========================================================
   PAGE HEADER v3 — taller, static, more presence
   ========================================================= */
.phead--simple{position:relative;display:flex;align-items:stretch;min-height:clamp(400px,58vh,600px);overflow:hidden;isolation:isolate;
  background:repeating-linear-gradient(115deg,transparent 0 75px,rgba(255,255,255,.025) 76px 77px),radial-gradient(120% 90% at 0% 100%,rgba(242,183,5,.09),transparent 55%),var(--ink)}
.phead--simple::before{content:"REVO";position:absolute;z-index:-1;right:-.04em;bottom:-.2em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);font:400 clamp(12rem,30vw,30rem)/.8 var(--display,"Anton"),sans-serif;letter-spacing:-.02em;pointer-events:none;user-select:none}
.phead--simple .phead__in{align-items:end;grid-template-columns:minmax(0,1fr) minmax(0,420px);padding-top:clamp(96px,12vh,140px);padding-bottom:clamp(44px,7vh,80px)}
.phead--simple .phead__crumb{position:absolute;top:clamp(36px,6vh,60px);left:var(--gut);margin:0}
.phead--simple h1{font-size:clamp(3.6rem,9vw,8.4rem);line-height:.86;letter-spacing:-.005em}
.phead--simple h1 span{display:block}
.phead__lede{font-size:clamp(1.02rem,1.25vw,1.14rem)}
@media (max-width:900px){
  .phead--simple{min-height:clamp(360px,62vh,520px)}
  .phead--simple .phead__in{grid-template-columns:1fr;gap:22px;padding-top:88px;padding-bottom:44px}
  .phead--simple .phead__crumb{top:32px}
  .phead--simple h1{font-size:clamp(3.2rem,15vw,5.6rem)}
  .phead--simple::before{font-size:clamp(9rem,48vw,18rem);bottom:-.15em}
}
.phead--simple .phead__in{align-content:end}
.phead--simple h1{line-height:.96}

/* Instructor full bios (static disclosure, no animation) */
.dossier{display:flex;flex-direction:column}
.dossier__more{margin-top:auto;border-top:1px solid rgba(232,228,218,.14)}
.dossier__more summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;list-style:none;color:var(--gold);font:700 .66rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}
.dossier__more summary::-webkit-details-marker{display:none}
.dossier__more summary::after{content:"+";font:400 1.1rem/1 var(--mono)}
.dossier__more[open] summary::after{content:"\2212"}
.dossier__more summary:hover{background:rgba(242,183,5,.07)}
.dossier__more summary:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.dossier__full{padding:0 16px 20px}
.dossier__full p{margin:0 0 12px;color:#cfcbc2;font-size:.9rem;line-height:1.6}
.dossier__full blockquote{margin:16px 0 0;padding:2px 0 2px 14px;border-left:2px solid var(--gold);color:var(--bone);font-size:.92rem;line-height:1.55;font-style:italic}
.dossier__full cite{display:block;margin-top:8px;font:700 .62rem/1 var(--mono);font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:#8f8b83}
