/* Trinity Training Facility — editorial-cinema system v2
   Type: Bebas Neue (nav + chapter numerals) · DM Serif Text (editorial accents) · Inter Tight (body)
   Rule: asymmetric > symmetric. No center axis. No section labels. Chapters not eyebrows. */

:root{
  --ink:#0A0A09;
  --ink-2:#0F0F0E;
  --paper:#F5F1EA;
  --hair:rgba(245,241,234,.14);
  --hair-2:rgba(245,241,234,.06);
  --mute:rgba(245,241,234,.55);
  --mute-2:rgba(245,241,234,.78);
  --blood:#B7202E;

  --serif:'DM Serif Text','Times New Roman',serif;
  --sans:'Inter Tight','Inter',system-ui,-apple-system,sans-serif;
  --display:'Michroma','Bebas Neue',Impact,sans-serif;
  --display-condensed:'Bebas Neue',Impact,sans-serif;

  --gutter:1.25rem;
  --pad:1.5rem;
}
@media(min-width:768px){:root{--gutter:2rem;--pad:3rem}}
@media(min-width:1280px){:root{--gutter:3rem;--pad:5rem}}
@media(min-width:1600px){:root{--pad:6.5rem}}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--ink);color:var(--paper);
  font:400 16px/1.6 var(--sans);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;background:none;border:0;color:inherit;cursor:pointer}
::selection{background:var(--blood);color:var(--paper)}

.skip{position:fixed;top:-100px;left:0;background:var(--blood);color:var(--paper);padding:.75rem 1rem;z-index:200;font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase}
.skip:focus{top:0}

/* === TYPE PRIMITIVES === */
.chapter-num{
  display:inline-flex;align-items:center;gap:.875rem;
  font:400 .6875rem/1 var(--display);
  letter-spacing:.32em;color:var(--mute);
}
.chapter-num::before{content:"";display:inline-block;width:36px;height:1px;background:var(--blood)}

.editorial-h{
  font:400 clamp(1.5rem,3vw,2.75rem)/1.15 var(--display);
  letter-spacing:0;text-transform:uppercase;color:var(--paper);
}

/* Big H titles use Michroma (the new --display) — zero out tracking */
.hero-headline,.editorial-h,.display-xxl,.display-xl,.display-l,
.faqs h2,.section-h,.page-hero h1{
  letter-spacing:0;
}

/* Small inline display labels stay on Bebas-condensed for legibility (Michroma too wide at small sizes) */
.chapter-num,
.marquee-track span,
.room-name,.room-num,
.trainer-name,.trainer-info .name,
.amenity-name,.amenity-icon,
.city-name,.city-county,
.step-name,.step-num,
.recovery .name,.recovery .price,
.program-name,.program-num,
.card-h,.form-h,
.numbers-row strong,
.foot-brand .brand-mark,
.brand-mark,
.initials,.initials-xl,
.nav-drawer a{
  font-family:var(--display-condensed);
}

.display-mega{
  font:400 clamp(3.5rem,11vw,9rem)/.85 var(--display-condensed);
  letter-spacing:-.005em;color:var(--paper);white-space:nowrap;
}
.display-mega em{font-style:normal;color:var(--blood)}

.display-x{font:400 clamp(2.25rem,5vw,4.5rem)/.9 var(--display);letter-spacing:-.005em;color:var(--paper)}

.body-lg{font:400 1.0625rem/1.7 var(--sans);color:var(--mute-2);max-width:36rem}
.body{font:400 .9375rem/1.65 var(--sans);color:var(--mute-2)}
.micro{font:500 .6875rem/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}

/* === ACTIONS === */
.link-arrow{
  display:inline-flex;align-items:baseline;gap:.625rem;
  font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
  color:var(--paper);
  padding-bottom:.6rem;border-bottom:1px solid var(--blood);
  transition:transform .3s ease,color .2s;
}
.link-arrow:hover{color:var(--blood);transform:translateX(4px)}
.link-arrow .arr{font:400 italic 1.05rem/1 var(--serif);color:var(--blood)}

.btn-ghost{
  display:inline-flex;align-items:center;justify-content:center;gap:.75rem;
  font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
  padding:1.15rem 1.75rem;border:1px solid var(--hair);color:var(--paper);
  transition:.2s;background:transparent;
}
.btn-ghost:hover{border-color:var(--blood);color:var(--blood)}

/* === NAV === */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:1.25rem var(--pad);
  /* Solid-ish scrim across the full nav height so content scrolling
     under the logo never visually bleeds through. Subtle gradient
     keeps it editorial, not opaque-bar. */
  background:linear-gradient(to bottom,
    rgba(6,6,10,.94) 0%,
    rgba(6,6,10,.88) 50%,
    rgba(6,6,10,.78) 100%);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid rgba(245,241,234,.06);
  pointer-events:none;
}
.nav>*{pointer-events:auto}
.nav-links{display:none;gap:2rem;align-items:center}
@media(min-width:1024px){
  .nav-links{display:flex}
  .nav-links:first-of-type{grid-column:1;justify-self:start}
  .nav-links.right{grid-column:3;justify-self:end}
}
.nav-links a{
  font:500 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;
  color:var(--mute-2);transition:color .2s;
}
.nav-links a:hover{color:var(--paper)}
.nav-phone{color:var(--paper);font-variant-numeric:tabular-nums}
.nav-logo{justify-self:center;display:block;position:relative;isolation:isolate}
.nav-logo img{
  height:78px;width:auto;display:block;
  /* Pure white wordmark — NO color cast, red glow comes from the delta layer below */
  filter:brightness(0) invert(1);
  position:relative;z-index:2;
}
@media(min-width:1024px){.nav-logo img{height:104px}}

/* Red glow blooms from the delta (top of logo), not from the wordmark */
.nav-logo::before{
  content:"";position:absolute;left:50%;top:-6px;
  width:90px;height:46px;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center,
    rgba(255,80,95,.95) 0%,
    rgba(220,40,55,.7) 18%,
    rgba(220,40,55,.4) 38%,
    rgba(220,40,55,.15) 62%,
    rgba(220,40,55,0) 82%);
  filter:blur(6px);
  mix-blend-mode:screen;
  pointer-events:none;z-index:1;
  animation:deltaGlow 4.5s ease-in-out infinite;
}
@media(min-width:1024px){.nav-logo::before{width:120px;height:58px;top:-8px}}

/* Sparkle pulse on the delta tip */
.nav-logo::after{
  content:"";position:absolute;left:50%;top:2px;
  width:14px;height:14px;
  transform:translateX(-50%) scale(0);
  background:radial-gradient(circle,rgba(255,255,255,1) 0%,rgba(255,200,210,.65) 35%,rgba(220,40,55,0) 75%);
  border-radius:50%;
  mix-blend-mode:screen;pointer-events:none;z-index:3;
  animation:sparkle 3.6s ease-in-out infinite;
}
@keyframes deltaGlow{
  0%,100%{opacity:.85;transform:translateX(-50%) scale(1)}
  50%{opacity:1;transform:translateX(-50%) scale(1.08)}
}
@keyframes sparkle{
  0%,75%,100%{transform:translateX(-50%) scale(0);opacity:0}
  12%{transform:translateX(-50%) scale(1);opacity:1}
  28%{transform:translateX(-50%) scale(.3);opacity:.4}
  42%{transform:translateX(-50%) scale(1.6);opacity:.95}
  58%{transform:translateX(-50%) scale(.15);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .nav-logo::before{animation:none}
  .nav-logo::after{animation:none;opacity:0}
}

.nav-toggle{
  grid-column:3;justify-self:end;align-self:center;
  display:flex;align-items:center;justify-content:center;
  width:52px;height:52px;
  background:rgba(10,10,9,.55);
  border:1px solid var(--hair);
  color:var(--paper);cursor:pointer;
  transition:background .25s,border-color .25s;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.nav-toggle:hover{background:var(--blood);border-color:var(--blood)}
.nav-toggle span{width:22px;height:1.75px;background:currentColor;display:block;position:relative;transition:.3s}
.nav-toggle span::before,.nav-toggle span::after{content:"";position:absolute;left:0;width:22px;height:1.75px;background:currentColor;transition:.3s}
.nav-toggle span::before{top:-8px}
.nav-toggle span::after{bottom:-8px}
.nav-toggle[aria-expanded="true"] span{background:transparent}
.nav-toggle[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.nav-toggle[aria-expanded="true"] span::after{bottom:0;transform:rotate(-45deg)}
@media(min-width:1024px){.nav-toggle{display:none}}

/* === MOBILE NAV DRAWER — world-class === */
.nav-drawer{
  position:fixed;inset:0;z-index:99;
  background:radial-gradient(ellipse at top right,rgba(183,32,46,.12),transparent 55%),
             var(--ink);
  display:none;
  padding:6.5rem var(--pad) var(--pad);
  overflow-y:auto;
  opacity:0;transition:opacity .35s ease;
}
.nav-drawer[open]{display:block;opacity:1}
.nav-drawer-inner{
  max-width:540px;
  display:flex;flex-direction:column;justify-content:space-between;
  min-height:calc(100vh - 9rem);gap:3rem;
}
.nav-drawer-eyebrow{
  font:600 10px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;
  color:var(--mute);
  padding-bottom:1rem;border-bottom:1px solid var(--blood);
  display:inline-block;align-self:flex-start;
}

.nav-drawer-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.nav-drawer-links li{
  border-bottom:1px solid var(--hair);
  overflow:hidden;
}
.nav-drawer-links a{
  display:flex;align-items:baseline;gap:1.5rem;
  padding:1.125rem 0;
  font-family:var(--display);
  font-size:clamp(2rem,7vw,3rem);
  letter-spacing:0;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  position:relative;
  transition:color .35s,padding-left .4s cubic-bezier(.2,.7,.2,1);
}
.nav-drawer-links a:hover,
.nav-drawer-links a:active,
.nav-drawer-links a:focus-visible{
  color:var(--blood);
  padding-left:.75rem;
}
.nav-drawer-links .n{
  font-family:var(--sans);font-size:.6875rem;letter-spacing:.32em;
  color:var(--mute);font-weight:600;
  align-self:flex-start;margin-top:1rem;min-width:36px;
}
.nav-drawer-links .t{flex:1}
.nav-drawer-links a::after{
  content:"→";
  font-family:inherit;font-size:.65em;
  color:var(--blood);
  align-self:center;
  opacity:0;transform:translateX(-1rem);
  transition:opacity .3s,transform .35s cubic-bezier(.2,.7,.2,1);
}
.nav-drawer-links a:hover::after,
.nav-drawer-links a:active::after,
.nav-drawer-links a:focus-visible::after{
  opacity:1;transform:translateX(0);
}

.nav-drawer-foot{
  display:flex;flex-direction:column;gap:1rem;
  padding-top:2rem;border-top:1px solid var(--hair);
}
.nav-drawer-phone{
  font:400 clamp(1.625rem,5vw,2.25rem)/1 var(--display);
  letter-spacing:.02em;color:var(--paper);
  text-decoration:none;
}
.nav-drawer-phone:hover{color:var(--blood)}
.nav-drawer-address{
  font:500 10px/1.5 var(--sans);letter-spacing:.28em;text-transform:uppercase;
  color:var(--mute-2);
}
.nav-drawer-email{
  font:400 .9375rem/1 var(--sans);
  color:var(--mute-2);text-decoration:none;
}
.nav-drawer-email:hover{color:var(--paper)}
.nav-drawer-social{display:flex;gap:.5rem;margin-top:1rem}
.nav-drawer-social a{
  width:44px;height:44px;border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;
  color:var(--mute-2);text-decoration:none;transition:.2s;
}
.nav-drawer-social a svg{width:20px;height:20px;display:block}
.nav-drawer-social a:hover{border-color:var(--blood);color:var(--paper)}

/* Staggered link entrance */
.nav-drawer[open] .nav-drawer-links li{
  animation:drawerSlide .55s cubic-bezier(.2,.7,.2,1) backwards;
}
.nav-drawer[open] .nav-drawer-links li:nth-child(1){animation-delay:.08s}
.nav-drawer[open] .nav-drawer-links li:nth-child(2){animation-delay:.13s}
.nav-drawer[open] .nav-drawer-links li:nth-child(3){animation-delay:.18s}
.nav-drawer[open] .nav-drawer-links li:nth-child(4){animation-delay:.23s}
.nav-drawer[open] .nav-drawer-links li:nth-child(5){animation-delay:.28s}
.nav-drawer[open] .nav-drawer-links li:nth-child(6){animation-delay:.33s}
.nav-drawer[open] .nav-drawer-eyebrow{animation:drawerSlide .55s cubic-bezier(.2,.7,.2,1) .03s backwards}
.nav-drawer[open] .nav-drawer-foot{animation:drawerSlide .6s cubic-bezier(.2,.7,.2,1) .4s backwards}
@keyframes drawerSlide{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@media(prefers-reduced-motion:reduce){
  .nav-drawer,.nav-drawer-links li,.nav-drawer-foot,.nav-drawer-eyebrow{
    animation:none!important;transition:none!important;
  }
}

/* Keep toggle button above the drawer so the X stays clickable */
.nav-toggle{position:relative;z-index:101}

/* === HERO — Dogpound B&W cycling stack === */
.hero{position:relative;min-height:100vh;overflow:hidden;display:flex;align-items:flex-end}
.hero-stack{position:absolute;inset:0;z-index:0;background:#000}
.hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  filter:grayscale(100%) contrast(1.12) brightness(.78);
  z-index:0;
}
.hero-frame{
  position:absolute;inset:0;
  background:#000 center/cover no-repeat;
  filter:grayscale(100%) contrast(1.12) brightness(.88);
}
.hero-frame-static{
  background-position:70% 28%;
  animation:heroBreathe 18s ease-in-out infinite;
}
@media(min-width:1280px){.hero-frame-static{background-position:62% 32%}}
@keyframes heroBreathe{
  0%,100%{transform:scale(1.02)}
  50%{transform:scale(1.05)}
}
.hero-stack::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 95%,rgba(0,0,0,.95) 0%,rgba(0,0,0,.55) 35%,rgba(0,0,0,.1) 70%,rgba(0,0,0,0) 100%),
    linear-gradient(to top,rgba(0,0,0,.65) 0%,rgba(0,0,0,0) 55%),
    linear-gradient(to bottom,rgba(0,0,0,.4) 0%,rgba(0,0,0,0) 22%);
}
.hero-anchor{
  position:relative;z-index:5;
  padding:var(--pad);padding-bottom:clamp(3rem,6vw,5rem);
  max-width:80%;
}
@media(min-width:768px){.hero-anchor{max-width:75%}}
@media(min-width:1280px){.hero-anchor{max-width:70%}}
/* Hero new copy stack */
.hero-eyebrow{
  font:600 .75rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;
  color:#CFCFCC;margin-bottom:1.25rem;
  text-shadow:0 2px 6px rgba(0,0,0,.7);
}
.hero-headline{
  font:400 clamp(1.5rem,3vw,2.75rem)/1.1 var(--display);
  letter-spacing:0;text-transform:uppercase;
  margin:0;
}
.hero-sub{
  font:400 1.0625rem/1.6 var(--sans);color:#E2E0DA;
  max-width:36rem;margin-top:1.5rem;
  text-shadow:0 1px 4px rgba(0,0,0,.7);
}
.hero-foot{margin-top:2rem;padding-top:0;border-top:0}
.hero-anchor .hero-foot{display:flex;gap:1.5rem;align-items:center}

/* Founder section — full-bleed Adam portrait with fade + text overlay (same pattern as hero) */
.founder{
  position:relative;
  min-height:90vh;
  display:flex;align-items:flex-end;
  overflow:hidden;
  background:#000;border-bottom:1px solid var(--hair);
}
.founder-portrait{
  position:absolute;inset:0;z-index:0;
  aspect-ratio:auto;
}
.founder-portrait img{
  width:100%;height:100%;object-fit:cover;object-position:50% 22%;
  filter:grayscale(100%) contrast(1.1) brightness(.85);
  animation:heroBreathe 22s ease-in-out infinite;
}
.founder-portrait::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    radial-gradient(ellipse at 18% 95%,rgba(0,0,0,.95) 0%,rgba(0,0,0,.55) 35%,rgba(0,0,0,.1) 70%,rgba(0,0,0,0) 100%),
    linear-gradient(to top,rgba(0,0,0,.7) 0%,rgba(0,0,0,0) 55%),
    linear-gradient(to bottom,rgba(0,0,0,.45) 0%,rgba(0,0,0,0) 22%);
}
.founder-body{
  position:relative;z-index:5;
  padding:var(--pad);padding-bottom:clamp(3rem,6vw,5rem);
  display:flex;flex-direction:column;gap:1.25rem;
  max-width:90%;
}
@media(min-width:768px){.founder-body{max-width:70%}}
@media(min-width:1280px){.founder-body{max-width:60%}}
.founder-body .hero-quote{
  /* owner quote uses the H/display font (Michroma) to match wit-quote + pn-quote */
  font:400 clamp(1.375rem,2.6vw,2.25rem)/1.4 var(--display);
  letter-spacing:0;
}
.founder-body .hero-attr{
  margin-top:.5rem;
  display:flex;align-items:center;gap:.875rem;
  font:500 10px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;
  color:rgba(245,241,234,.75);
}
.founder-body .hero-attr::before{content:"";width:32px;height:1px;background:var(--blood);display:block}

.hero-quote{
  font:400 italic clamp(2.25rem,5.2vw,5.5rem)/1.05 var(--serif);
  letter-spacing:-.02em;
}

/* === SILVER METAL TEXT — applies to every display heading site-wide === */
.hero-quote,
.hero-headline,
.editorial-h,
.display-mega,
.display-x,
.display-xl,
.display-xxl,
.display-l,
.faqs h2,
.section-h,
.room-name,
.program-name,
.card-h,
.long-form h2,
.invite-nap .street,
.trainer-info .name,
.recovery .name,
.amenity-name,
.city-name,
.step-name,
.trainer-name,
.form-h{
  color:#E8E6DF;
  font-weight:700;
  font-synthesis:weight;
  -webkit-text-stroke:0;
  text-shadow:
    /* fake-bold ring — paints same-color around each glyph for thickness */
     1px 0    0 #E8E6DF,
    -1px 0    0 #E8E6DF,
     0   1px  0 #E8E6DF,
     0  -1px  0 #E8E6DF,
     1px 1px  0 #E8E6DF,
    -1px -1px 0 #E8E6DF,
     1px -1px 0 #E8E6DF,
    -1px 1px  0 #E8E6DF,
    /* subtle lift for legibility on photo bgs */
     0 2px 6px rgba(0,0,0,.5);
}
/* Keep red emphasis intact even with bevel applied */
.editorial-h em,
.display-mega em,
.display-xxl .blood,
.display-xl .blood,
.display-l .blood{
  color:var(--blood);
}
.hero-foot{
  margin-top:clamp(1.5rem,2.5vw,2.5rem);
  display:flex;justify-content:space-between;align-items:baseline;
  flex-wrap:wrap;gap:1.5rem;
  padding-top:1.25rem;border-top:1px solid var(--hair);
}
.hero-attr{
  font:500 10px/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;
  color:var(--mute-2);
}
@media(prefers-reduced-motion:reduce){
  .hero-frame{animation:none;opacity:1}
  .hero-frame:not(.hero-frame-1){opacity:0}
}

/* === SECTION BASE === */
section{position:relative}
.sec{padding:5.5rem var(--pad)}
@media(min-width:1024px){.sec{padding:8.5rem var(--pad)}}

/* === 01 — MARQUEE === */
.marquee{
  position:relative;overflow:hidden;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  background:var(--ink);
}
.marquee-track{display:flex;width:max-content;animation:scroll 70s linear infinite}
.marquee-track:hover{animation-play-state:paused}
.marquee-track img{
  height:240px;width:auto;flex-shrink:0;object-fit:cover;
  filter:saturate(.8) contrast(1.05);
}
@media(min-width:768px){.marquee-track img{height:380px}}
@media(min-width:1280px){.marquee-track img{height:460px}}
@keyframes scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.marquee-cap{
  padding:1.25rem var(--pad);
  display:flex;justify-content:space-between;align-items:center;
  border-top:1px solid var(--hair-2);
}

/* === 02 — NUMBERS === */
.numbers{
  display:grid;grid-template-columns:1fr;gap:3.5rem;align-items:end;
  padding:6rem var(--pad);
}
@media(min-width:1024px){.numbers{grid-template-columns:6fr 6fr;gap:2rem;padding:8.5rem var(--pad)}}
.numbers-l .editorial-h{margin-top:2rem}
.numbers-l .body-lg{margin-top:1.5rem}
.numbers-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;
  margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--hair);
}
.numbers-row .micro{display:block;margin-bottom:.5rem}
.numbers-row strong{font:400 1.625rem/1 var(--display);letter-spacing:.02em;color:var(--paper)}
.numbers-r{display:flex;flex-direction:column;align-items:flex-end;text-align:right;overflow:visible}
.numbers-r .micro{margin-top:1rem;max-width:18rem}

/* === 03 — ROOMS === */
.rooms-head{
  display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;
  margin-bottom:3rem;flex-wrap:wrap;
}
.rooms-head .body{max-width:28rem;text-align:right}
/* Legacy grid kept for /rooms hover-reveal cards used elsewhere; homepage uses .rooms-split */
.rooms-grid{display:grid;gap:2px;grid-template-columns:1fr;background:var(--hair-2)}
@media(min-width:768px){.rooms-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:420px}}
@media(min-width:1024px){.rooms-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:440px}}
@media(min-width:1280px){.rooms-grid{grid-auto-rows:480px}}

/* === EDITORIAL ROOMS INDEX (homepage section 01) === */
.rooms-sec{padding-top:5rem;padding-bottom:7rem}
.rooms-split{
  display:grid;grid-template-columns:1fr;gap:3rem;
  max-width:1320px;margin:0 auto;
}
@media(min-width:1024px){
  .rooms-split{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:6rem;align-items:start}
}

/* LEFT — index list */
.rooms-index{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.rooms-row{border-top:1px solid var(--hair)}
.rooms-row:last-child{border-bottom:1px solid var(--hair)}
.rooms-row-link{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.75rem;
  align-items:center;
  padding:1.75rem .25rem;
  color:inherit;text-decoration:none;
  transition:padding .35s cubic-bezier(.2,.6,.2,1),background .25s ease;
}
.rooms-row-n{
  font:400 .8rem/1 var(--display);letter-spacing:.22em;
  color:rgba(245,241,234,.4);
  font-feature-settings:"tnum" 1;min-width:2.5rem;
  transition:color .25s ease;
}
.rooms-row-body{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.rooms-row-name{
  font:400 clamp(1.5rem,2.6vw,2.4rem)/1.05 var(--display);
  letter-spacing:.005em;color:var(--paper);
  transition:color .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
  text-transform:uppercase;
}
.rooms-row-name em{
  font-family:inherit;font-style:italic;font-weight:inherit;
  color:var(--blood);-webkit-text-fill-color:var(--blood);
}
.rooms-row-cap{
  font:400 .9rem/1.55 var(--sans);
  color:rgba(245,241,234,.6);max-width:36rem;
  margin:0;
}
.rooms-row-arr{
  font:400 1.5rem/1 var(--display);
  color:rgba(245,241,234,.35);
  transition:color .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
}

/* Active / hover state — quiet, not flashy */
.rooms-row.is-active .rooms-row-n,
.rooms-row:hover .rooms-row-n{color:var(--blood)}
.rooms-row.is-active .rooms-row-name,
.rooms-row:hover .rooms-row-name{transform:translateX(8px)}
.rooms-row.is-active .rooms-row-arr,
.rooms-row:hover .rooms-row-arr{color:var(--blood);transform:translateX(6px)}
.rooms-row:hover .rooms-row-link{background:rgba(183,32,46,.025)}

/* RIGHT — sticky single image pane that swaps */
.rooms-feature{position:relative}
@media(min-width:1024px){.rooms-feature{position:sticky;top:7rem}}
.rooms-feature-frame{
  position:relative;
  aspect-ratio:4/5;
  background:#0E0E0D;
  overflow:hidden;
  border:1px solid var(--hair);
}
.rooms-feature-img{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0;transform:scale(1.04);
  transition:opacity .6s cubic-bezier(.2,.6,.2,1),transform 1.2s cubic-bezier(.2,.6,.2,1);
  filter:grayscale(.2) contrast(1.02) brightness(.92);
}
.rooms-feature-img.is-active{opacity:1;transform:scale(1)}
.rooms-feature-caption{
  margin:1rem 0 0;font:500 .68rem/1.4 var(--display);
  letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.4);text-align:center;
}

/* Mobile — image pane hides, the list itself becomes the focus.
   Each row keeps the same elegant structure, no thumbnails (the room detail page has the photo). */
@media(max-width:1023px){
  .rooms-feature{display:none}
  .rooms-row-link{padding:1.5rem .25rem;gap:1.25rem}
  .rooms-row-cap{font-size:.85rem}
}
@media(max-width:560px){
  .rooms-row-link{grid-template-columns:auto 1fr;gap:1rem}
  .rooms-row-arr{display:none}
}
.room{
  position:relative;overflow:hidden;
  background:#0E0E0D;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:1.75rem;min-height:260px;
  isolation:isolate;
}
.room-bg{
  position:absolute;inset:0;z-index:0;
  background:#16161a center/cover no-repeat;
  filter:grayscale(100%) contrast(1.06) brightness(.82);
  transform:scale(1.01);
  transition:filter .6s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);
}
.room:hover .room-bg{
  filter:grayscale(0%) contrast(1.04) brightness(.92);
  transform:scale(1.05);
}
.room::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,
    rgba(10,10,9,.95) 0%,
    rgba(10,10,9,.75) 20%,
    rgba(10,10,9,.35) 45%,
    rgba(10,10,9,.05) 72%,
    rgba(10,10,9,.3) 100%);
  transition:opacity .35s;
}
.room-content{position:relative;z-index:2}
.room-num{font:400 10px/1 var(--display);letter-spacing:.32em;color:var(--mute);margin-bottom:.625rem}
.room-name{font:400 clamp(1.5rem,2.5vw,2.25rem)/1 var(--display);letter-spacing:.02em;color:var(--paper);text-transform:uppercase}
/* Room name: white = thin, red = thick (override site-wide weights) */
.room-name{font-weight:400!important;text-shadow:0 2px 6px rgba(0,0,0,.5)!important}
.room-name em{
  font-family:inherit;
  font-style:inherit;
  font-size:1em!important;
  letter-spacing:inherit;
  text-transform:inherit;
  font-weight:700!important;
  color:var(--blood)!important;
  -webkit-text-fill-color:var(--blood)!important;
  text-shadow:
    1px 0 0 var(--blood),
   -1px 0 0 var(--blood),
    0 1px 0 var(--blood),
    0 -1px 0 var(--blood),
    1px 1px 0 var(--blood),
   -1px -1px 0 var(--blood),
    1px -1px 0 var(--blood),
   -1px 1px 0 var(--blood),
    0 2px 6px rgba(0,0,0,.5) !important;
}
.room-cap{margin-top:.625rem;font:400 .8125rem/1.55 var(--sans);color:var(--mute-2);max-width:24rem;position:relative;z-index:2}
/* Uniform 3-col grid: rows 1+2 hold rooms 1–6, row 3 = room 7 full-width feature */
@media(min-width:1024px){
  .room-1{grid-column:1/2;grid-row:1/2}
  .room-2{grid-column:2/3;grid-row:1/2}
  .room-3{grid-column:3/4;grid-row:1/2}
  .room-4{grid-column:1/2;grid-row:2/3}
  .room-5{grid-column:2/3;grid-row:2/3}
  .room-6{grid-column:3/4;grid-row:2/3}
  .room-7{grid-column:1/4;grid-row:3/4}
}
/* Tablet 2-col: keep flow natural, last tile spans both cols as feature */
@media(min-width:768px) and (max-width:1023px){
  .room-7{grid-column:1/3}
}

/* === 04 — COACHES === */
.trainers-head{display:grid;grid-template-columns:1fr;gap:2.5rem;margin-bottom:3.5rem;align-items:end}
@media(min-width:1024px){.trainers-head{grid-template-columns:7fr 5fr}}
.trainers-head .editorial-h{margin-top:1.5rem}
.trainers-grid{display:grid;gap:2px;grid-template-columns:repeat(2,1fr);background:var(--hair-2)}
@media(min-width:768px){.trainers-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1280px){.trainers-grid{grid-template-columns:repeat(4,1fr)}}
.trainer{background:var(--ink);display:block;overflow:hidden;position:relative}
.trainer-img{
  aspect-ratio:3/4;background:#16161a center/cover no-repeat;
  filter:saturate(.85);transition:transform .6s cubic-bezier(.2,.6,.2,1);
}
.trainer:hover .trainer-img{transform:scale(1.04)}
.trainer-info{padding:1.25rem 0 1.75rem}
.trainer-info .micro{display:block;margin-bottom:.5rem}
.trainer-info .name{font:400 1.375rem/1 var(--display);letter-spacing:.01em;color:var(--paper)}
.trainer-info .spec{margin-top:.5rem;font:400 .8125rem/1.45 var(--sans);color:var(--mute-2)}
.trainers-foot{
  margin-top:3rem;padding-top:1.75rem;border-top:1px solid var(--hair);
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;
}

/* === 05 — PROGRAMS === */
.programs{display:flex;flex-direction:column;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.program{
  display:grid;grid-template-columns:auto 1fr;gap:1.5rem;
  padding:3rem var(--pad);border-bottom:1px solid var(--hair-2);
  align-items:center;transition:background .3s;
}
.program:last-child{border-bottom:0}
.program:hover{background:var(--ink-2)}
@media(min-width:1024px){.program{grid-template-columns:auto 5fr 5fr auto;gap:3rem;padding:4.5rem var(--pad);align-items:center}}
.program-num{font:400 .75rem/1 var(--display);letter-spacing:.32em;color:var(--mute)}
.program-name{font:400 clamp(1.875rem,3.5vw,3rem)/.95 var(--display);letter-spacing:-.005em;color:var(--paper)}
.program-desc{font:400 .9375rem/1.65 var(--sans);color:var(--mute-2);max-width:32rem}
.program-link{justify-self:start}
@media(min-width:1024px){.program-link{justify-self:end}}

/* === 06 — RECOVERY === */
.recovery-head{margin-bottom:3rem}
.recovery-head .editorial-h{margin-top:1.5rem;max-width:38rem}
.recovery-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hair-2)}
@media(min-width:640px){.recovery-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.recovery-grid{grid-template-columns:repeat(4,1fr)}}
.recovery{background:var(--ink);padding:1.75rem;display:flex;flex-direction:column;transition:background .2s}
.recovery:hover{background:var(--ink-2)}
.recovery-img{aspect-ratio:4/5;width:calc(100% + 3.5rem);height:auto;background:#16161a center center/cover no-repeat;background-position:50% 40%;margin:-1.75rem -1.75rem 1.5rem;filter:saturate(.85)}
@supports not (aspect-ratio:4/5){.recovery-img{height:0;padding-bottom:125%}}
.recovery .micro{display:block}
.recovery .name{font:400 1.375rem/1.05 var(--display);letter-spacing:.01em;margin-top:.5rem;color:var(--paper)}
.recovery .desc{margin-top:.75rem;font:400 .8125rem/1.55 var(--sans);color:var(--mute-2);flex:1}
.recovery .foot{display:flex;justify-content:space-between;align-items:center;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--hair-2)}
.recovery .price{font:400 1rem/1 var(--display);letter-spacing:.05em;color:var(--paper)}
.recovery .res{font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--blood)}

/* === 07 — INVITE === */
.invite{
  display:grid;grid-template-columns:1fr;gap:3rem;
  padding:6rem var(--pad);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
@media(min-width:1024px){.invite{grid-template-columns:7fr 5fr;gap:4rem;padding:9rem var(--pad)}}
.invite-l .editorial-h{margin-top:2rem;max-width:36rem}
.invite-r{display:flex;flex-direction:column;justify-content:space-between;gap:2rem}
.invite-nap{font:400 .9375rem/1.7 var(--sans);color:var(--mute-2)}
.invite-nap a:hover{color:var(--blood)}
.invite-nap .street{font:400 italic 1.375rem/1.3 var(--serif);color:var(--paper);margin-bottom:.25rem;letter-spacing:-.005em}
.invite-actions{display:flex;flex-direction:column;align-items:flex-start;gap:1.25rem;margin-top:1.5rem}

/* === FAQ === */
.faqs{padding:5rem var(--pad);border-bottom:1px solid var(--hair)}
@media(min-width:1024px){.faqs{padding:7rem var(--pad)}}
.faqs h2{font:400 clamp(2rem,4vw,3rem)/1 var(--display);letter-spacing:-.005em;margin:1.5rem 0 2.5rem;color:var(--paper)}
.faq{padding:1.5rem 0;border-bottom:1px solid var(--hair-2)}
.faq summary{
  list-style:none;display:flex;justify-content:space-between;gap:1.5rem;
  cursor:pointer;font:500 1.0625rem/1.4 var(--sans);color:var(--paper);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{
  content:"+";flex-shrink:0;font:400 1.625rem/.8 var(--display);
  color:var(--blood);transition:transform .25s;
}
.faq[open] summary::after{content:"−"}
.faq-a{margin-top:1rem;font:400 .9375rem/1.7 var(--sans);color:var(--mute-2);max-width:48rem}

/* === FOOTER === */
.foot{padding:5rem var(--pad) 1.75rem;background:#08080A;border-top:1px solid var(--hair)}
.foot-top{display:grid;grid-template-columns:1fr;gap:3rem;margin-bottom:3.5rem}
@media(min-width:1024px){.foot-top{grid-template-columns:1.7fr 1fr 1fr 1fr;gap:2.5rem}}
.foot-brand img{
  height:72px;width:auto;margin-bottom:1.5rem;
  filter:
    brightness(0) invert(.82)
    drop-shadow(-1px -1px 0 rgba(255,255,255,.35))
    drop-shadow(0 2px 0 rgba(0,0,0,.85))
    drop-shadow(0 4px 8px rgba(0,0,0,.6));
}
.foot-brand p{font:400 .875rem/1.65 var(--sans);color:var(--mute-2);max-width:24rem}
.foot-social{display:flex;gap:.5rem;margin-top:1.5rem}
.foot-social a{
  width:42px;height:42px;border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;
  color:var(--mute-2);
  transition:.2s;
}
.foot-social a svg{width:18px;height:18px;display:block}
.foot-social a:hover{border-color:var(--blood);color:var(--paper)}
.foot-col h4{font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-bottom:1.25rem}
.foot-col ul{list-style:none;display:flex;flex-direction:column;gap:.625rem}
.foot-col a,.foot-col li{font:400 .875rem/1.4 var(--sans);color:var(--mute-2)}
.foot-col a:hover{color:var(--paper)}
.foot-bot{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;
  padding-top:1.75rem;border-top:1px solid var(--hair-2);
  font:400 .75rem/1.4 var(--sans);color:var(--mute);
}
.foot-bot a:hover{color:var(--paper)}

/* Inline contextual links in body prose — red, hairline underline, hover deeper */
.body-lg a,
.text-link,
.room-intro a,
.wit-intro-body a,
.numbers-l .body-lg a{
  color:var(--blood);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  transition:color .2s ease;
}
.body-lg a:hover,
.text-link:hover,
.room-intro a:hover,
.wit-intro-body a:hover,
.numbers-l .body-lg a:hover{color:#D63E48}

/* ============================================================
   PANATTA EQUIPMENT (/panatta)
   The Italian iron — editorial brand showcase
   Hero · Thesis · Stats · 4 lines · Spotlight · Origin · Quote · CTA · FAQ
   ============================================================ */

/* 1. HERO */
.pn-hero{
  min-height:78vh;
  padding:11rem var(--pad) 5rem;
  background-size:cover;background-position:center;
  color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-end;
  position:relative;overflow:hidden;
}
/* Autoplay video bg (Panatta product reel) — image poster falls back if blocked */
.pn-hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;pointer-events:none;
  filter:grayscale(.08) brightness(.78) contrast(1.04);
}
.pn-hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,9,.35) 0%,rgba(10,10,9,.55) 55%,rgba(10,10,9,1) 100%);
}
.pn-hero.has-video > *:not(.pn-hero-video):not(.pn-hero-scrim){position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.pn-hero-video{display:none}}
.pn-hero .breadcrumb{margin-bottom:2rem}
.pn-hero .chapter-num{margin-bottom:1.5rem}
.pn-hero-h{
  font-size:clamp(3rem,7.5vw,7.5rem);line-height:.92;
  margin:0 0 1.75rem;max-width:14ch;letter-spacing:-.015em;
}
.pn-hero-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-hero-sub{
  font-family:var(--display);font-size:clamp(1.05rem,1.5vw,1.3rem);
  color:rgba(245,241,234,.82);max-width:46rem;margin:0 0 2rem;line-height:1.5;letter-spacing:.01em;
}
.pn-hero-sub strong{color:var(--paper);font-weight:inherit;letter-spacing:.04em}
.pn-hero-badges{display:flex;flex-wrap:wrap;gap:.5rem}
.pn-hero-badge{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--paper);padding:.55rem .8rem;
  border:1px solid var(--blood);background:rgba(183,32,46,.08);
}

/* 2. INTRO */
.pn-intro-sec{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.pn-intro-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:2.5rem;
}
@media(min-width:1024px){.pn-intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:6rem;align-items:start}}
.pn-intro-left{position:sticky;top:8rem}
.pn-intro{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.6rem,2.8vw,2.4rem);line-height:1.22;letter-spacing:-.005em;
  margin:0 0 1.75rem;color:var(--paper);max-width:42rem;
}
.pn-prose{font:400 1.05rem/1.7 var(--sans);color:rgba(245,241,234,.78);margin:0 0 1.25rem;max-width:42rem}
.pn-prose:last-child{margin-bottom:0}

/* 3. STATS BAR */
.pn-stats{padding:0;background:var(--ink);border-bottom:1px solid var(--hair)}
.pn-stats-inner{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
}
@media(min-width:768px){.pn-stats-inner{grid-template-columns:repeat(4,1fr)}}
.pn-stat{
  padding:2.5rem 1.5rem;
  display:flex;flex-direction:column;gap:.625rem;
  border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.pn-stat:last-child{border-right:0}
@media(min-width:768px){.pn-stat{border-bottom:0}}
.pn-stat-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);
}
.pn-stat-val{
  font:400 clamp(2.5rem,4.5vw,4rem)/1 var(--display);
  color:var(--paper);letter-spacing:-.01em;
}
.pn-stat-val em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood);font-family:inherit;font-size:.7em;margin-left:.05em}
.pn-stat-italy em{color:var(--blood);-webkit-text-fill-color:var(--blood);font-size:1em;margin-left:0}

/* 4. THE LINES */
.pn-lines{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.pn-lines::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 85% 10%,rgba(183,32,46,.1),transparent 55%);pointer-events:none}
.pn-lines-head{position:relative;max-width:1320px;margin:0 auto 4rem}
.pn-lines-head .chapter-num{display:block;margin-bottom:1rem}
.pn-lines-head h2{margin:0 0 1.25rem;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.pn-lines-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-lines-head .body-lg{color:rgba(245,241,234,.72);margin:0;max-width:42rem}
.pn-lines-grid{
  position:relative;max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:0;
  border:1px solid var(--hair);background:var(--hair);
}
@media(min-width:768px){.pn-lines-grid{grid-template-columns:repeat(2,1fr)}}
.pn-line{
  background:#0E0E0D;padding:2.5rem 2rem 2.75rem;
  display:flex;flex-direction:column;gap:.875rem;position:relative;
  transition:background .3s ease;
}
.pn-line:hover{background:#141413}
.pn-line::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--blood);transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.2,.6,.2,1);
}
.pn-line:hover::before{transform:scaleX(1)}
.pn-line-mark{
  display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border:1px solid var(--blood);border-radius:50%;
  font:500 .82rem/1 var(--display);letter-spacing:.04em;
  color:var(--blood);
}
.pn-line-tier{
  font:500 .65rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);margin:.25rem 0 0;
}
.pn-line-h{
  font:400 clamp(1.8rem,2.8vw,2.4rem)/1 var(--display);
  margin:0;color:var(--paper);letter-spacing:-.005em;text-transform:uppercase;
}
.pn-line-desc{font:400 .95rem/1.6 var(--sans);color:rgba(245,241,234,.75);margin:0;max-width:34rem}
.pn-line-bullets{
  list-style:none;margin:.25rem 0 0;padding:0;
  display:flex;flex-direction:column;gap:.45rem;
  border-top:1px solid var(--hair);padding-top:.875rem;
}
.pn-line-bullets li{
  display:flex;align-items:center;gap:.625rem;
  font:500 .82rem/1.3 var(--sans);color:rgba(245,241,234,.85);letter-spacing:.005em;
}
.pn-line-bullets li::before{
  content:"";width:5px;height:5px;border-radius:50%;background:var(--blood);
  box-shadow:0 0 0 3px rgba(183,32,46,.18);flex-shrink:0;
}

/* 4b. GALLERY — real Panatta product photography */
.pn-gallery{
  padding:7rem var(--pad);background:var(--ink);
  border-bottom:1px solid var(--hair);
  position:relative;
}
.pn-gallery-head{max-width:1320px;margin:0 auto 3rem}
.pn-gallery-head .chapter-num{display:block;margin-bottom:1rem}
.pn-gallery-head h2{margin:0 0 1.25rem;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.pn-gallery-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-gallery-head .body-lg{color:rgba(245,241,234,.72);margin:0;max-width:46rem}

/* 4-cell editorial grid — 3 square machine close-ups + 1 wide athlete feature */
.pn-gallery-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:.5rem;
  background:transparent;
}
@media(min-width:768px){
  .pn-gallery-grid{
    grid-template-columns:repeat(3,1fr);
    grid-auto-rows:minmax(240px,auto);
    gap:.5rem;
  }
  /* 3 machine close-ups — thirds, top row */
  .pn-gallery-cell{grid-column:span 1;grid-row:span 2}
  /* Phil Heath athlete shot — full width feature, bottom row */
  .pn-gallery-cell--wide{grid-column:1/-1;grid-row:span 2}
}

.pn-gallery-cell{
  position:relative;overflow:hidden;
  background:#0E0E0D;border:1px solid var(--hair);
  margin:0;
}
.pn-gallery-cell img{
  width:100%;height:100%;display:block;
  object-fit:cover;object-position:center;
  filter:grayscale(.15) contrast(1.04) brightness(.94);
  transition:filter .55s cubic-bezier(.2,.6,.2,1),transform 1.2s cubic-bezier(.2,.6,.2,1);
  transform:scale(1.01);min-height:240px;
}
.pn-gallery-cell:hover img{filter:grayscale(0) contrast(1) brightness(1);transform:scale(1.04)}
.pn-gallery-cell figcaption{
  position:absolute;left:0;right:0;bottom:0;
  padding:1.25rem 1rem .875rem;
  background:linear-gradient(to top,rgba(6,6,10,.92) 0%,rgba(6,6,10,.4) 70%,transparent 100%);
  pointer-events:none;
}
.pn-gallery-cell figcaption span{
  font:500 .65rem/1.2 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);
}
/* Corner brackets — Trinity editorial signature */
.pn-gallery-cell::before,
.pn-gallery-cell::after{
  content:"";position:absolute;width:18px;height:18px;border:1px solid var(--blood);
  pointer-events:none;z-index:2;opacity:0;transition:opacity .35s ease;
}
.pn-gallery-cell::before{top:10px;left:10px;border-right:0;border-bottom:0}
.pn-gallery-cell::after{bottom:10px;right:10px;border-left:0;border-top:0}
.pn-gallery-cell:hover::before,
.pn-gallery-cell:hover::after{opacity:1}

.pn-gallery-credit{
  max-width:1320px;margin:2rem auto 0;
  font:400 .7rem/1.4 var(--sans);color:rgba(245,241,234,.45);text-align:center;
}
.pn-gallery-credit a{color:rgba(245,241,234,.7);text-decoration:underline;text-underline-offset:3px}
.pn-gallery-credit a:hover{color:var(--blood)}

@media(max-width:767px){
  .pn-gallery{padding:3.5rem var(--pad)}
  .pn-gallery-cell img{min-height:200px}
}

/* 5. SPOTLIGHT */
.pn-spotlight{
  padding:7rem var(--pad);
  background-size:cover;background-position:center;
  color:var(--paper);border-bottom:1px solid var(--hair);position:relative;
}
.pn-spotlight-inner{position:relative;max-width:1100px;margin:0 auto}
.pn-spotlight-inner .chapter-num{margin-bottom:1rem;display:block}
.pn-spotlight-inner h2{margin:0 0 3rem;font-size:clamp(2.25rem,4.5vw,3.75rem);line-height:1;max-width:18ch}
.pn-spotlight-inner em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-spotlight-list{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:1fr;gap:0;
  border-top:1px solid var(--hair);
}
@media(min-width:768px){.pn-spotlight-list{grid-template-columns:repeat(2,1fr);border-top:0}}
.pn-spotlight-list li{
  padding:1.75rem 0;
  border-bottom:1px solid var(--hair);
  display:flex;flex-direction:column;gap:.5rem;
}
@media(min-width:768px){
  .pn-spotlight-list li{padding:1.75rem;border-right:1px solid var(--hair);border-top:1px solid var(--hair)}
  .pn-spotlight-list li:nth-child(2n){border-right:0}
}
.pn-spot-num{
  font:500 .7rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin:0;
}
.pn-spot-name{
  font:400 clamp(1.4rem,2.2vw,1.9rem)/1.1 var(--display);
  margin:0;color:var(--paper);letter-spacing:-.005em;
}
.pn-spot-desc{font:400 .95rem/1.6 var(--sans);color:rgba(245,241,234,.78);margin:.25rem 0 0}

/* 6. ORIGIN */
.pn-origin{background:var(--ink);border-bottom:1px solid var(--hair)}
.pn-origin-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:0;
}
@media(min-width:1024px){.pn-origin-grid{grid-template-columns:1fr 1.1fr;align-items:stretch;min-height:78vh}}
.pn-origin-img{
  background-size:cover;background-position:center;
  min-height:340px;
  filter:grayscale(.2) brightness(.85) contrast(1.04);
}
.pn-origin-body{
  padding:5rem var(--pad);
  display:flex;flex-direction:column;gap:1.5rem;justify-content:center;
  max-width:40rem;margin:0 auto;
}
.pn-origin-body .chapter-num{margin:0}
.pn-origin-body h2{margin:0;font-size:clamp(2rem,4vw,3.25rem);line-height:1.02;max-width:18ch}
.pn-origin-body h2 em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-origin-meta{
  margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--hair);
  display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;
}
.pn-origin-meta div{display:flex;flex-direction:column;gap:.25rem}
.pn-origin-label{
  font:500 .62rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);
}
.pn-origin-val{font:500 .92rem/1.3 var(--display);color:var(--paper);letter-spacing:.005em}

/* 7. ADAM QUOTE */
.pn-quote{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.pn-quote::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 25% 30%,rgba(183,32,46,.1),transparent 55%);pointer-events:none}
.pn-quote-inner{position:relative;max-width:48rem;margin:0 auto;text-align:center}
.pn-quote-inner .chapter-num{margin-bottom:1.5rem;display:inline-flex}
.pn-quote-text{
  font:400 clamp(1.6rem,3vw,2.4rem)/1.3 var(--display);
  color:var(--paper);margin:0 0 1.5rem;letter-spacing:-.005em;
}
.pn-quote-text em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-quote-attr{
  font:500 .72rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);margin:0;
}
.pn-quote-attr span{color:rgba(245,241,234,.5);font-weight:400}

/* 8. FINAL CTA */
.pn-cta{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.pn-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 50%,rgba(183,32,46,.15),transparent 60%);pointer-events:none}
.pn-cta-inner{position:relative;max-width:1100px;margin:0 auto;text-align:center}
.pn-cta-inner .chapter-num{margin-bottom:1.25rem;display:inline-flex}
.pn-cta-inner h2{margin:0 0 1.25rem;font-size:clamp(2.75rem,5.5vw,5rem);line-height:.95;letter-spacing:-.01em}
.pn-cta-inner em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.pn-cta-inner .body-lg{color:rgba(245,241,234,.72);margin:0 auto 2rem;max-width:38rem}
.pn-cta-actions{display:inline-flex;flex-wrap:wrap;gap:.875rem;justify-content:center}
.pn-cta-primary{
  display:inline-flex;align-items:center;gap:.75rem;
  background:var(--blood);color:var(--paper);
  padding:1.125rem 2rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--blood);
  transition:background .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
}
.pn-cta-primary:hover{background:#D03340;transform:translateY(-2px)}
.pn-cta-primary .arr{transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.pn-cta-primary:hover .arr{transform:translateX(6px)}
.pn-cta-secondary{
  display:inline-flex;align-items:center;
  padding:1.125rem 2rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  border:1px solid var(--hair);
  transition:border-color .25s ease,background .25s ease;
}
.pn-cta-secondary:hover{border-color:var(--paper);background:rgba(245,241,234,.04)}

/* MOBILE polish */
@media(max-width:767px){
  .pn-hero{min-height:62vh;padding:8rem var(--pad) 3rem}
  .pn-hero-h{text-wrap:balance;max-width:11ch}
  .pn-intro-sec,.pn-lines,.pn-quote,.pn-cta{padding:3.5rem var(--pad)}
  .pn-stat{padding:1.75rem 1.25rem}
  .pn-line{padding:2rem 1.5rem}
  .pn-origin-body{padding:3rem var(--pad)}
  .pn-origin-meta{grid-template-columns:1fr}
  .pn-spotlight{padding:3.5rem var(--pad)}
  .pn-cta-actions{flex-direction:column;width:100%}
  .pn-cta-primary,.pn-cta-secondary{justify-content:center;width:100%;padding:1rem 1.25rem;font-size:.7rem}
}

/* ============================================================
   STAY UPDATED — reusable newsletter band (_newsletter.php)
   Drops in on home / blog / post / what-is-trinity / rooms / wellness.
   ============================================================ */
.nl-band{
  position:relative;background:var(--ink);
  padding:7rem var(--pad);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  overflow:hidden;
}
.nl-band::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse at 85% 20%,rgba(183,32,46,.12),transparent 55%),
    radial-gradient(ellipse at 10% 85%,rgba(183,32,46,.07),transparent 50%);
}
.nl-band-inner{
  position:relative;max-width:1240px;margin:0 auto;
  padding:0;
}

/* Corner brackets — editorial chrome */
.nl-band-bracket{
  position:absolute;width:28px;height:28px;border:1px solid var(--blood);
  pointer-events:none;z-index:2;
}
.nl-band-bracket--tl{top:0;left:0;border-right:0;border-bottom:0}
.nl-band-bracket--tr{top:0;right:0;border-left:0;border-bottom:0}
.nl-band-bracket--bl{bottom:0;left:0;border-right:0;border-top:0}
.nl-band-bracket--br{bottom:0;right:0;border-left:0;border-top:0}

.nl-band-grid{
  position:relative;
  display:grid;grid-template-columns:1fr;gap:3rem;align-items:start;
  padding:3rem;
}
@media(min-width:1024px){.nl-band-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:5rem;padding:4rem 4.5rem;align-items:center}}

/* LEFT — copy block */
.nl-band-left{display:flex;flex-direction:column;gap:1.25rem;max-width:38rem}
.nl-band-left .chapter-num{margin:0}
/* Cap headline so "UPDATED" (the widest Michroma word) never overflows the left column into the form card. */
.nl-band-h{
  font-size:clamp(2.25rem,3.6vw,3.5rem);line-height:.96;
  margin:0;letter-spacing:-.005em;
  max-width:100%;overflow-wrap:break-word;word-break:keep-all;
}
.nl-band-left{min-width:0}     /* enable grid column to actually shrink so children can be clipped instead of forcing overflow */
.nl-band-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.nl-band-sub{font:400 1.05rem/1.6 var(--sans);color:rgba(245,241,234,.78);margin:0;max-width:34rem}
.nl-band-bullets{
  list-style:none;margin:.5rem 0 0;padding:0;
  display:flex;flex-direction:column;gap:.5rem;
}
.nl-band-bullets li{
  display:flex;align-items:center;gap:.625rem;
  font:500 .8rem/1.4 var(--sans);
  color:rgba(245,241,234,.7);letter-spacing:.01em;
}
.nl-bullet-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--blood);flex-shrink:0;
  box-shadow:0 0 0 3px rgba(183,32,46,.18);
}

/* RIGHT — form card */
.nl-band-form{
  position:relative;
  background:#0A0A0B;border:1px solid var(--hair);
  padding:2rem;
  display:flex;flex-direction:column;gap:1.125rem;
}
.nl-band-form-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin:0 0 .25rem;padding-bottom:1rem;
  border-bottom:1px solid var(--hair);
}
.nl-band-field{display:flex;flex-direction:column;gap:.5rem}
.nl-band-field label{
  font:500 .65rem/1.2 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);
}
.nl-band-field label span{color:rgba(245,241,234,.3);font-weight:400;letter-spacing:.18em}
.nl-band-field input{
  background:transparent;border:0;border-bottom:1px solid var(--hair);
  padding:.75rem 0;
  font:400 1rem/1.3 var(--sans);color:var(--paper);
  outline:0;width:100%;
  transition:border-color .2s ease;
}
.nl-band-field input::placeholder{color:rgba(245,241,234,.3)}
.nl-band-field input:focus{border-bottom-color:var(--blood)}

.nl-band-submit{
  display:inline-flex;justify-content:center;align-items:center;gap:.75rem;
  background:var(--blood);color:var(--paper);
  padding:1.125rem 1.5rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--blood);cursor:pointer;
  margin-top:.375rem;
  transition:background .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
}
.nl-band-submit:hover{background:#D03340;transform:translateY(-2px)}
.nl-band-submit .arr{transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.nl-band-submit:hover .arr{transform:translateX(6px)}

.nl-band-status{
  font:400 .82rem/1.4 var(--sans);color:var(--paper);margin:0;
  padding:.75rem;background:rgba(183,32,46,.08);border:1px solid var(--blood);
}
.nl-band-fine{
  font:400 .7rem/1.4 var(--sans);color:rgba(245,241,234,.42);margin:0;
}

/* Mobile polish */
@media(max-width:767px){
  .nl-band{padding:4rem var(--pad)}
  .nl-band-grid{padding:2rem;gap:2.5rem}
  .nl-band-h{font-size:clamp(2.25rem,9vw,3.25rem);text-wrap:balance}
  .nl-band-form{padding:1.5rem}
  .nl-band-bracket{width:18px;height:18px}
}

/* ============================================================
   TRAINER DETAIL HERO (editorial split — replaces .page-hero + .trainer-detail)
   Full-bleed photo left, body right. Top padding clears fixed nav so the
   trainer name never bleeds under the logo on scroll.
   ============================================================ */
.tr-hero{
  position:relative;
  background:var(--ink);
  border-bottom:1px solid var(--hair);
  padding:9rem var(--pad) 5rem;     /* clears the fixed nav (~104px logo height) */
}
@media(min-width:1024px){.tr-hero{padding:10rem var(--pad) 7rem}}
.tr-hero .breadcrumb{margin-bottom:2.5rem}

.tr-hero-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:3rem;align-items:start;
}
@media(min-width:1024px){.tr-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:5rem;align-items:stretch}}

/* PHOTO */
.tr-hero-photo{
  position:relative;aspect-ratio:4/5;align-self:start;
  background:#0E0E0D;border:1px solid var(--hair);overflow:hidden;
}
.tr-hero-photo-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center top;
  filter:grayscale(.15) brightness(.95) contrast(1.03);
  transition:filter .6s cubic-bezier(.2,.6,.2,1),transform 1.2s cubic-bezier(.2,.6,.2,1);
  transform:scale(1.01);
}
.tr-hero-photo:hover .tr-hero-photo-bg{filter:grayscale(0) brightness(1) contrast(1);transform:scale(1.03)}
.tr-hero-photo-empty{
  display:flex;align-items:center;justify-content:center;
  background:#0E0E0D;
}
.tr-hero-initials{
  font:400 clamp(4rem,12vw,9rem)/1 var(--display);
  color:rgba(245,241,234,.18);letter-spacing:.04em;
}
/* corner brackets — same DNA as the map */
.tr-hero-photo::before,
.tr-hero-photo::after{
  content:"";position:absolute;width:22px;height:22px;
  border:1px solid var(--blood);z-index:2;
}
.tr-hero-photo::before{top:14px;left:14px;border-right:0;border-bottom:0}
.tr-hero-photo::after{bottom:14px;right:14px;border-left:0;border-top:0}

/* BODY */
.tr-hero-body{
  display:flex;flex-direction:column;gap:1.5rem;
  padding:0;max-width:46rem;
}
@media(min-width:1024px){.tr-hero-body{padding:1rem 0 1rem 1rem}}
.tr-hero-body .chapter-num{margin:0}

.tr-hero-name{
  font-size:clamp(2.75rem,5.5vw,5.5rem);line-height:.95;
  margin:0;letter-spacing:-.01em;
}
.tr-hero-name em{
  font-family:inherit;font-style:italic;font-weight:inherit;
  color:var(--blood);-webkit-text-fill-color:var(--blood);
}

.tr-hero-specs{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:.5rem;
}
.tr-hero-specs li{
  font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--blood);
  padding:.5rem .75rem;border:1px solid var(--blood);
  background:rgba(183,32,46,.06);
}

.tr-hero-bio{
  font:400 1.05rem/1.7 var(--sans);
  color:rgba(245,241,234,.82);margin:0;max-width:42rem;
}

.tr-hero-certs{
  margin-top:.5rem;padding-top:1.5rem;border-top:1px solid var(--hair);
}
.tr-hero-certs-label{
  font:500 .65rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);margin:0 0 .75rem;
}
.tr-hero-certs ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.tr-hero-certs li{
  font:500 .72rem/1 var(--display);letter-spacing:.18em;text-transform:uppercase;
  color:var(--paper);
  padding:.5rem .65rem;border:1px solid var(--hair);
}

.tr-hero-loc{
  display:inline-flex;align-items:center;gap:.625rem;
  font:500 .7rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.6);margin:.5rem 0 0;
}
.tr-hero-loc-dot{
  width:6px;height:6px;border-radius:50%;background:var(--blood);
  box-shadow:0 0 0 3px rgba(183,32,46,.2);
}

@media(max-width:767px){
  .tr-hero{padding:7rem var(--pad) 3.5rem}
  .tr-hero-name{font-size:clamp(2.25rem,9vw,3.25rem);text-wrap:balance}
  .tr-hero-bio{font-size:.98rem;line-height:1.6}
  .tr-hero-photo{aspect-ratio:1/1}
}

/* ============================================================
   CONTACT MAP — editorial "find the floor"
   Dark-themed OSM iframe + overlay marker + corner brackets
   + 3-col strip for parking / transit / landmarks
   ============================================================ */
.map-edit{
  padding:6rem var(--pad);background:var(--ink);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  position:relative;overflow:hidden;
}
.map-edit::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at 85% 15%,rgba(183,32,46,.08),transparent 55%);
  pointer-events:none;
}
.map-edit-grid{
  position:relative;max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:3rem;align-items:start;
}
@media(min-width:1024px){.map-edit-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:5rem}}

/* LEFT — address card */
.map-edit-side{display:flex;flex-direction:column;gap:1.5rem}
@media(min-width:1024px){.map-edit-side{position:sticky;top:7rem}}
.map-edit-side .chapter-num{margin:0}
.map-edit-h{
  font-size:clamp(2.5rem,4.6vw,4rem);line-height:.96;
  margin:0;letter-spacing:-.01em;
}
.map-edit-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.map-edit-sub{
  font:400 1rem/1.65 var(--sans);color:rgba(245,241,234,.78);
  margin:0;max-width:36rem;
}
.map-edit-sub strong{color:var(--paper);font-weight:600}

.map-edit-coords{
  display:flex;align-items:center;gap:.75rem;
  font:500 .78rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);
  padding:.875rem 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  font-feature-settings:"tnum" 1;
}
.map-edit-coords-sep{opacity:.5}

/* 3 deep-link buttons */
.map-edit-actions{
  display:grid;grid-template-columns:1fr;gap:.5rem;
}
@media(min-width:480px){.map-edit-actions{grid-template-columns:repeat(3,1fr)}}
.map-edit-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  padding:.875rem .75rem;
  font:500 .68rem/1 var(--display);letter-spacing:.18em;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  border:1px solid var(--hair);background:rgba(245,241,234,.02);
  transition:border-color .25s ease,background .25s ease,transform .3s ease,color .25s ease;
}
.map-edit-btn svg{color:rgba(245,241,234,.6);transition:color .25s ease}
.map-edit-btn:hover{
  border-color:var(--blood);background:rgba(183,32,46,.08);transform:translateY(-1px);
}
.map-edit-btn:hover svg{color:var(--blood)}

.map-edit-callbar{
  display:flex;flex-direction:column;gap:.5rem;
  padding-top:1.25rem;border-top:1px solid var(--hair);
}
.map-edit-call{
  font:500 clamp(1.5rem,2.4vw,2rem)/1 var(--display);
  color:var(--paper);text-decoration:none;letter-spacing:.02em;
  transition:color .2s ease;
}
.map-edit-call:hover{color:var(--blood)}
.map-edit-hours{
  font:500 .68rem/1.5 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);
}

/* RIGHT — dark-themed map frame */
.map-edit-frame{
  position:relative;
  aspect-ratio:4/5;
  border:1px solid var(--hair);
  background:#08080A;
  overflow:hidden;
}
@media(min-width:1024px){.map-edit-frame{aspect-ratio:1/1}}
.map-edit-iframe{
  position:absolute;inset:0;
  width:100%;height:100%;border:0;
  /* CSS dark-mode treatment for the light OSM tiles */
  filter:invert(.92) hue-rotate(180deg) brightness(.85) contrast(1.05) saturate(.6);
  pointer-events:auto;
}

/* Editorial overlay: corner brackets + center marker */
.map-edit-overlay{
  position:absolute;inset:0;pointer-events:none;z-index:2;
}
.map-bracket{
  position:absolute;width:28px;height:28px;
  border:1px solid var(--blood);
}
.map-bracket--tl{top:14px;left:14px;border-right:0;border-bottom:0}
.map-bracket--tr{top:14px;right:14px;border-left:0;border-bottom:0}
.map-bracket--bl{bottom:14px;left:14px;border-right:0;border-top:0}
.map-bracket--br{bottom:14px;right:14px;border-left:0;border-top:0}

.map-edit-marker{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;gap:.75rem;
}
.map-edit-marker-pulse{
  position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;
  background:rgba(183,32,46,.35);
  animation:mapPulse 2.2s cubic-bezier(.2,.6,.2,1) infinite;
}
.map-edit-marker-dot{
  position:relative;
  width:18px;height:18px;border-radius:50%;
  background:var(--blood);
  box-shadow:0 0 0 3px rgba(6,6,10,.85),0 0 14px rgba(183,32,46,.6);
  z-index:2;
}
.map-edit-marker-label{
  display:flex;align-items:center;gap:.625rem;
  background:rgba(6,6,10,.92);border:1px solid var(--blood);
  padding:.625rem .75rem;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  margin-left:.5rem;
}
.map-edit-marker-n{
  font:500 .9rem/1 var(--display);color:var(--blood);
  width:22px;height:22px;border:1px solid var(--blood);
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;
}
.map-edit-marker-t{
  font:500 .6rem/1.3 var(--display);letter-spacing:.18em;text-transform:uppercase;
  color:var(--paper);
}
@keyframes mapPulse{
  0%   {box-shadow:0 0 0 0 rgba(183,32,46,.55);opacity:1}
  70%  {box-shadow:0 0 0 28px rgba(183,32,46,0);opacity:0}
  100% {box-shadow:0 0 0 0 rgba(183,32,46,0);opacity:0}
}

.map-edit-attr{
  position:absolute;bottom:8px;right:14px;z-index:3;
  font:400 .6rem/1 var(--sans);
  color:rgba(245,241,234,.45);background:rgba(6,6,10,.6);
  padding:.3rem .5rem;
}
.map-edit-attr a{color:rgba(245,241,234,.7);text-decoration:underline}
.map-edit-attr a:hover{color:var(--paper)}

/* 3-col strip */
.map-edit-strip{
  position:relative;
  max-width:1320px;margin:4rem auto 0;
  display:grid;grid-template-columns:1fr;gap:0;
  border:1px solid var(--hair);
}
@media(min-width:768px){.map-edit-strip{grid-template-columns:repeat(3,1fr)}}
.map-edit-stripcell{
  padding:2rem 1.75rem;
  border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);
  background:#0F0F0E;display:flex;flex-direction:column;gap:.625rem;
  position:relative;transition:background .3s ease;
}
.map-edit-stripcell::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--blood);transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.2,.6,.2,1);
}
.map-edit-stripcell:hover::before{transform:scaleX(1)}
.map-edit-stripcell:hover{background:#141413}
.map-edit-stripcell:last-child{border-right:0}
@media(min-width:768px){.map-edit-stripcell{border-bottom:0}}
.map-edit-stripn{
  font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--blood);margin:0;
}
.map-edit-striph{
  font:400 1.25rem/1 var(--display);
  margin:0 0 .375rem;color:var(--paper);
  letter-spacing:.005em;text-transform:uppercase;
}
.map-edit-stripcell p:not(.map-edit-stripn){
  font:400 .9rem/1.55 var(--sans);color:rgba(245,241,234,.7);margin:0;
}

/* Mobile polish */
@media(max-width:767px){
  .map-edit{padding:3.5rem var(--pad)}
  .map-edit-h{font-size:clamp(2rem,8vw,2.75rem);text-wrap:balance}
  .map-edit-frame{aspect-ratio:3/4}
  .map-edit-marker-label{display:none}    /* keep marker dot, hide label clutter on small screens */
  .map-bracket{width:20px;height:20px}
  .map-edit-strip{margin-top:2.5rem}
  .map-edit-stripcell{padding:1.5rem 1.25rem}
}

/* Reduced motion: kill pulse */
@media(prefers-reduced-motion:reduce){
  .map-edit-marker-pulse{animation:none}
}

/* ============================================================
   WELLNESS (/wellness)
   Editorial: hero · intro · 5 alternating services · numbers · book · FAQ
   ============================================================ */
.wel-hero{
  min-height:72vh;
  padding:11rem var(--pad) 5rem;
  background-size:cover;background-position:center;
  color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-end;
  border-bottom:1px solid var(--hair);
}
.wel-hero .breadcrumb{margin-bottom:2rem}
.wel-hero .chapter-num{margin-bottom:1.25rem}
.wel-hero-h{
  font-size:clamp(3rem,7vw,6.5rem);line-height:.95;
  margin:0 0 1.5rem;max-width:18ch;letter-spacing:-.015em;
}
.wel-hero-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wel-hero-sub{
  font-family:var(--display);font-size:clamp(1.05rem,1.6vw,1.35rem);
  color:rgba(245,241,234,.8);max-width:44rem;margin:0;line-height:1.45;letter-spacing:.01em;
}

.wel-intro-sec{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.wel-intro-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:2.5rem;
}
@media(min-width:1024px){.wel-intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:6rem;align-items:start}}
.wel-intro-left{position:sticky;top:8rem}
.wel-intro{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,2.6vw,2.25rem);line-height:1.25;letter-spacing:-.005em;
  margin:0 0 1.5rem;color:var(--paper);max-width:42rem;
}
.wel-intro-body{color:rgba(245,241,234,.78);margin:0;max-width:42rem;line-height:1.7}

/* SERVICES — alternating image / body editorial split */
.wel-services{background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.wel-services::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 85% 10%,rgba(183,32,46,.08),transparent 55%);pointer-events:none}
.wel-services-head{
  max-width:1320px;margin:0 auto;padding:6rem var(--pad) 3rem;
  position:relative;
}
.wel-services-head .chapter-num{display:block;margin-bottom:1rem}
.wel-services-head h2{margin:0;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.wel-services-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}

.wel-service{
  display:grid;grid-template-columns:1fr;
  border-top:1px solid var(--hair);
  position:relative;
}
.wel-service:last-of-type{border-bottom:1px solid var(--hair)}
@media(min-width:1024px){
  .wel-service{grid-template-columns:1fr 1fr;min-height:520px;align-items:stretch}
  .wel-service.is-alt .wel-service-img{order:2}
  .wel-service.is-alt .wel-service-body{order:1}
}
.wel-service-img{
  background-size:cover;background-position:center;
  min-height:320px;
  filter:grayscale(.2) brightness(.92) contrast(1.02);
  transition:filter .6s cubic-bezier(.2,.6,.2,1);
}
.wel-service:hover .wel-service-img{filter:grayscale(0) brightness(1) contrast(1)}
.wel-service-body{
  padding:4rem var(--pad);
  display:flex;flex-direction:column;gap:1.25rem;justify-content:center;
  max-width:680px;
}
@media(min-width:1024px){.wel-service-body{padding:5rem clamp(2.5rem,5vw,5rem)}}
.wel-service-n{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);
}
.wel-service-h{
  font:400 clamp(2rem,3.6vw,3.25rem)/1.02 var(--display);
  margin:0;color:var(--paper);letter-spacing:-.005em;
  text-transform:uppercase;
}
.wel-service-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wel-service-desc{
  font:400 1.05rem/1.65 var(--sans);color:rgba(245,241,234,.78);
  margin:0;max-width:42rem;
}
.wel-service-specs{
  margin:.5rem 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.wel-service-specs > div{
  flex:1 1 33%;min-width:140px;
  padding:1rem 1rem 1rem 0;
  border-right:1px solid var(--hair);
}
.wel-service-specs > div:last-child{border-right:0}
.wel-service-specs dt{
  font:500 .65rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.5);margin:0 0 .375rem;
}
.wel-service-specs dd{font:500 .95rem/1.3 var(--display);color:var(--paper);margin:0;letter-spacing:.005em}
.wel-service-bullets{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:.45rem .875rem;
}
.wel-service-bullets li{
  display:flex;align-items:center;gap:.6rem;
  font:500 .825rem/1.3 var(--sans);
  color:rgba(245,241,234,.85);letter-spacing:.01em;
}
.wel-bullet-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--blood);flex-shrink:0;
  box-shadow:0 0 0 3px rgba(183,32,46,.18);
}
.wel-service-cta{margin-top:.5rem}

/* NUMBERS — same DNA as wit-numbers */
.wel-numbers{padding:5rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.wel-numbers-inner{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border:1px solid var(--hair);
}
@media(min-width:768px){.wel-numbers-inner{grid-template-columns:repeat(4,1fr)}}
.wel-num-cell{
  padding:2.25rem 1.5rem;
  display:flex;flex-direction:column;gap:.625rem;
  border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.wel-num-cell:last-child{border-right:0}
@media(min-width:768px){.wel-num-cell{border-bottom:0}}
.wel-num-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);
}
.wel-num-val{
  font:400 clamp(2.25rem,4vw,3.5rem)/1 var(--display);
  color:var(--paper);letter-spacing:-.01em;
}
.wel-num-val em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood);font-family:inherit;font-size:.65em;margin-left:.1em}

/* BOOKING — editorial split form */
.wel-book{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.wel-book::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 15% 30%,rgba(183,32,46,.1),transparent 55%);pointer-events:none}
.wel-book-grid{
  position:relative;max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:3rem;align-items:start;
}
@media(min-width:1024px){.wel-book-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:5rem}}
.wel-book-side{position:relative;display:flex;flex-direction:column;gap:1.25rem;max-width:36rem}
.wel-book-side .chapter-num{margin:0}
.wel-book-side h2{margin:0;font-size:clamp(2rem,3.8vw,3.25rem);line-height:1;max-width:18ch}
.wel-book-side h2 em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wel-book-side .body-lg{color:rgba(245,241,234,.7);margin:0;max-width:38rem}
.wel-book-contact{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--hair)}
.wel-book-phone{
  font:500 clamp(1.4rem,2.2vw,1.85rem)/1 var(--display);
  color:var(--paper);text-decoration:none;letter-spacing:.02em;
  transition:color .2s ease;
}
.wel-book-phone:hover{color:var(--blood)}
.wel-book-email{
  font:400 .92rem/1.4 var(--sans);color:rgba(245,241,234,.65);
  text-decoration:none;transition:color .2s ease;
}
.wel-book-email:hover{color:var(--paper)}

.wel-book-form{
  position:relative;
  background:#0A0A0B;border:1px solid var(--hair);
  padding:2.5rem;
  display:flex;flex-direction:column;gap:1.25rem;
}
.wel-book-form-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin:0 0 .5rem;padding-bottom:1rem;border-bottom:1px solid var(--hair);
}
.wel-field{display:flex;flex-direction:column;gap:.5rem}
.wel-field label{
  font:500 .65rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);
}
.wel-field input,
.wel-field select,
.wel-field textarea{
  background:transparent;border:0;border-bottom:1px solid var(--hair);
  padding:.75rem 0;
  font:400 1rem/1.3 var(--sans);color:var(--paper);
  outline:0;width:100%;
  transition:border-color .2s ease;
}
.wel-field input::placeholder,
.wel-field textarea::placeholder{color:rgba(245,241,234,.3)}
.wel-field input:focus,
.wel-field select:focus,
.wel-field textarea:focus{border-bottom-color:var(--blood)}
.wel-field select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--paper) 50%),linear-gradient(135deg,var(--paper) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:2rem;cursor:pointer}
.wel-field select option{background:#0A0A0B;color:var(--paper)}
.wel-field-row{display:grid;grid-template-columns:1fr;gap:1.25rem}
@media(min-width:560px){.wel-field-row{grid-template-columns:1fr 1fr;gap:1.5rem}}
.wel-field textarea{resize:vertical;min-height:80px;font-family:var(--sans)}

.wel-book-submit{
  margin-top:.5rem;
  display:inline-flex;justify-content:center;align-items:center;gap:.75rem;
  background:var(--blood);color:var(--paper);
  padding:1.125rem 1.5rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--blood);cursor:pointer;
  transition:background .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
}
.wel-book-submit:hover{background:#D03340;transform:translateY(-2px)}
.wel-book-submit .arr{transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.wel-book-submit:hover .arr{transform:translateX(6px)}

/* MOBILE polish for wellness */
@media(max-width:1023px){
  .wel-service-body{padding:2.5rem var(--pad)}
}
@media(max-width:767px){
  .wel-hero{min-height:60vh;padding:8rem var(--pad) 3rem}
  .wel-hero-h{font-size:clamp(2.5rem,9vw,3.75rem);text-wrap:balance;max-width:14ch}
  .wel-intro-sec{padding:3.5rem var(--pad)}
  .wel-services-head{padding:3.5rem var(--pad) 1.5rem}
  .wel-service-img{min-height:240px}
  .wel-service-body{padding:2.5rem var(--pad);gap:1rem}
  .wel-service-h{font-size:clamp(1.65rem,7vw,2.25rem);text-wrap:balance}
  .wel-service-bullets{grid-template-columns:1fr}
  .wel-service-specs > div{flex:1 1 50%}
  .wel-numbers{padding:2.5rem var(--pad)}
  .wel-num-cell{padding:1.5rem 1.25rem}
  .wel-book{padding:3.5rem var(--pad)}
  .wel-book-form{padding:1.75rem}
}

/* ============================================================
   WHAT IS TRINITY (/what-is-trinity)
   Editorial: hero · intro · pillars · numbers · process · rooms · founder · visit · FAQ
   ============================================================ */
.wit-hero{
  min-height:78vh;
  padding:11rem var(--pad) 5rem;
  background-size:cover;background-position:center;
  color:var(--paper);
  display:flex;flex-direction:column;justify-content:flex-end;
  position:relative;overflow:hidden;
}
/* Autoplay video bg — image poster falls back if blocked */
.wit-hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;pointer-events:none;
  filter:grayscale(.1) brightness(.78) contrast(1.04);
}
.wit-hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,9,.35) 0%,rgba(10,10,9,.55) 55%,rgba(10,10,9,1) 100%);
}
.wit-hero.has-video > *:not(.wit-hero-video):not(.wit-hero-scrim){position:relative;z-index:2}
@media(prefers-reduced-motion:reduce){.wit-hero-video{display:none}}
.wit-hero .breadcrumb{margin-bottom:2rem}
.wit-hero .chapter-num{margin-bottom:1.5rem}
.wit-hero-h{
  font-size:clamp(3rem,7vw,7.5rem);line-height:.95;
  margin:0 0 1.75rem;max-width:18ch;letter-spacing:-.015em;
}
.wit-hero-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-hero-sub{
  font-family:var(--display);font-size:clamp(1.1rem,1.6vw,1.4rem);
  color:rgba(245,241,234,.8);max-width:42rem;margin:0;line-height:1.4;letter-spacing:.01em;
}

.wit-intro-sec{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.wit-intro-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:1fr;gap:2.5rem;
}
@media(min-width:1024px){.wit-intro-grid{grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:6rem;align-items:start}}
.wit-intro-left{position:sticky;top:8rem}
.wit-intro{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.7rem,3vw,2.6rem);line-height:1.2;letter-spacing:-.005em;
  margin:0 0 2rem;color:var(--paper);max-width:42rem;
}
.wit-intro-body{color:rgba(245,241,234,.78);margin:0 0 1.25rem;max-width:38rem;line-height:1.7}

/* PILLARS — 3 large editorial cards */
.wit-pillars{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.wit-pillars::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 85% 20%,rgba(183,32,46,.1),transparent 55%);pointer-events:none}
.wit-pillars-head{max-width:1320px;margin:0 auto 4rem;position:relative}
.wit-pillars-head .chapter-num{display:block;margin-bottom:1rem}
.wit-pillars-head h2{margin:0;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.wit-pillars-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-pillars-grid{
  max-width:1320px;margin:0 auto;position:relative;
  display:grid;grid-template-columns:1fr;gap:2px;background:var(--hair);
  border:1px solid var(--hair);
}
@media(min-width:768px){.wit-pillars-grid{grid-template-columns:repeat(3,1fr)}}
.wit-pillar{
  background:#0E0E0D;padding:3rem 2.5rem 3.5rem;
  display:flex;flex-direction:column;gap:1rem;
  position:relative;transition:background .3s ease;
}
.wit-pillar:hover{background:#141413}
.wit-pillar::before{
  content:"";position:absolute;top:0;left:0;right:0;height:2px;
  background:var(--blood);transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.2,.6,.2,1);
}
.wit-pillar:hover::before{transform:scaleX(1)}
.wit-pillar-n{
  font:400 .75rem/1 var(--display);letter-spacing:.22em;
  color:var(--blood);margin-bottom:.5rem;
}
.wit-pillar-h{
  font:400 clamp(2rem,3.5vw,3rem)/1 var(--display);
  margin:0 0 1rem;color:var(--paper);letter-spacing:-.005em;
  text-transform:uppercase;
}
.wit-pillar-body{font:400 .95rem/1.65 var(--sans);color:rgba(245,241,234,.72);margin:0}

/* NUMBERS STRIP */
.wit-numbers{padding:5rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.wit-numbers-inner{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border:1px solid var(--hair);
}
@media(min-width:768px){.wit-numbers-inner{grid-template-columns:repeat(5,1fr)}}
.wit-num-cell{
  padding:2.25rem 1.5rem;
  display:flex;flex-direction:column;gap:.625rem;
  border-right:1px solid var(--hair);border-bottom:1px solid var(--hair);
  position:relative;text-align:left;
}
.wit-num-cell:last-child{border-right:0}
@media(min-width:768px){.wit-num-cell{border-bottom:0}}
.wit-num-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);
}
.wit-num-val{
  font:400 clamp(2.25rem,4vw,3.75rem)/1 var(--display);
  color:var(--paper);letter-spacing:-.01em;
}
.wit-num-val em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood);font-family:inherit}

/* PROCESS — 4 chapter-numbered steps */
.wit-process{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.wit-process-head{max-width:48rem;margin:0 auto 4rem;text-align:center}
.wit-process-head .chapter-num{margin-bottom:1rem;display:block}
.wit-process-head h2{margin:0 0 1.25rem;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.wit-process-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-process-head .body-lg{color:rgba(245,241,234,.7);margin:0}
.wit-steps{list-style:none;margin:0 auto;padding:0;max-width:920px;display:flex;flex-direction:column}
.wit-step{
  display:grid;grid-template-columns:auto 1fr;gap:2.5rem;
  padding:2.5rem 0;border-top:1px solid var(--hair);
  align-items:start;transition:padding-left .3s ease;
}
.wit-step:last-child{border-bottom:1px solid var(--hair)}
.wit-step:hover{padding-left:.75rem}
.wit-step-n{
  font:400 .8rem/1 var(--display);letter-spacing:.24em;
  color:var(--blood);padding-top:.6rem;min-width:3rem;
}
.wit-step-body h3{
  font:400 clamp(1.5rem,2.6vw,2.25rem)/1.1 var(--display);
  margin:0 0 .75rem;color:var(--paper);letter-spacing:.005em;
  text-transform:uppercase;
}
.wit-step-body p{font:400 1.05rem/1.65 var(--sans);color:rgba(245,241,234,.78);margin:0;max-width:48rem}
.wit-step-body a{color:var(--blood);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.wit-step-body a:hover{color:#D63E48}

/* ROOMS TEASER — reuses .rooms-index from homepage */
.wit-rooms-teaser{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair)}
.wit-rooms-head{max-width:1320px;margin:0 auto 3rem}
.wit-rooms-head .chapter-num{display:block;margin-bottom:1rem}
.wit-rooms-head h2{margin:0;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1}
.wit-rooms-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-rooms-teaser .rooms-index{max-width:1320px;margin:0 auto}

/* FOUNDER PULL — split image + quote */
.wit-founder{
  display:grid;grid-template-columns:1fr;
  background:var(--ink);border-bottom:1px solid var(--hair);
}
@media(min-width:1024px){.wit-founder{grid-template-columns:1fr 1fr;min-height:80vh}}
.wit-founder-img{
  background-size:cover;background-position:center top;
  min-height:60vh;
  filter:grayscale(.15) contrast(1.05) brightness(.95);
}
.wit-founder-body{
  padding:5rem var(--pad);display:flex;flex-direction:column;justify-content:center;gap:1.5rem;
  max-width:38rem;margin:0 auto;
}
.wit-founder-body .chapter-num{margin:0}
.wit-quote{
  font:400 clamp(1.75rem,3.2vw,2.75rem)/1.25 var(--display);
  color:var(--paper);margin:0;letter-spacing:-.005em;
  border-left:2px solid var(--blood);padding-left:1.5rem;
}
.wit-quote em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-attr{
  font:500 .75rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);margin:0;
}
.wit-attr span{color:rgba(245,241,234,.5);font-weight:400}
.wit-founder-body .link-arrow{margin-top:1rem}

/* VISIT — 4-card grid */
.wit-visit{padding:7rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair)}
.wit-visit-inner{max-width:1320px;margin:0 auto}
.wit-visit-inner > .chapter-num{display:block;margin-bottom:1rem}
.wit-visit-inner > h2{margin:0 0 3rem;font-size:clamp(2.25rem,4.5vw,4rem);line-height:1;max-width:24ch}
.wit-visit-inner > h2 em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.wit-visit-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0;
  border:1px solid var(--hair);background:var(--hair);
}
@media(min-width:768px){.wit-visit-grid{grid-template-columns:repeat(4,1fr)}}
.wit-visit-card{
  background:#0E0E0D;padding:2.25rem 1.75rem;
  display:flex;flex-direction:column;gap:.875rem;
  min-height:200px;
}
.wit-visit-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin:0;
}
.wit-visit-val{
  font:400 1.05rem/1.45 var(--display);color:var(--paper);
  margin:0;letter-spacing:.005em;
}
.wit-visit-val a{color:var(--paper);text-decoration:none;transition:color .2s ease}
.wit-visit-val a:hover{color:var(--blood)}
.wit-visit-mini{font-size:.85em;color:rgba(245,241,234,.55);display:inline-block;margin-top:.25rem;font-family:var(--sans)}

@media(max-width:767px){
  .wit-hero{min-height:60vh;padding:8rem var(--pad) 3rem}
  .wit-intro-sec,.wit-pillars,.wit-process,.wit-rooms-teaser,.wit-visit{padding:3.5rem var(--pad)}
  /* mobile overflow fixes: stack the visit grid, let cards/headings shrink + wrap */
  .wit-visit-grid{grid-template-columns:1fr}
  .wit-visit-card{min-width:0;min-height:0;padding:1.75rem 1.5rem}
  .wit-visit-val,.wit-visit-val a{overflow-wrap:anywhere}
  .wit-pillar{min-width:0;padding:2.25rem 1.5rem 2.5rem}
  .wit-pillar-h{overflow-wrap:anywhere}
  .wit-step{grid-template-columns:1fr;gap:1rem;padding:1.75rem 0}
  .wit-step-n{padding-top:0}
  .wit-numbers{padding:2.5rem var(--pad)}
  .wit-num-cell{padding:1.5rem 1.25rem}
  .wit-founder-img{min-height:50vh}
  .wit-founder-body{padding:3rem var(--pad)}
}

/* ============================================================
   WORLD-CLASS FOOTER (.foot-v2)
   1. CTA banner   2. NAP marquee   3. Body grid
   4. Social strip 5. Giant wordmark 6. Legal bar
   ============================================================ */
.foot-v2{
  background:#06060A;color:var(--paper);
  border-top:1px solid var(--hair);
  position:relative;overflow:hidden;
}

/* 1 — CTA BANNER ========================================== */
.foot-cta{
  padding:7rem var(--pad) 5rem;
  position:relative;
  border-bottom:1px solid var(--hair);
  background:
    radial-gradient(ellipse at 80% 30%,rgba(183,32,46,.18),transparent 55%),
    radial-gradient(ellipse at 10% 90%,rgba(183,32,46,.08),transparent 50%),
    #06060A;
}
.foot-cta-inner{max-width:1100px;margin:0 auto;text-align:center}
.foot-cta-eyebrow{margin-bottom:1.5rem}
.foot-status{
  display:inline-flex;align-items:center;gap:.625rem;
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.6);
  padding:.5rem .875rem;border:1px solid var(--hair);border-radius:999px;
  background:rgba(245,241,234,.02);
}
.foot-status-dot{
  width:6px;height:6px;border-radius:50%;
  background:rgba(245,241,234,.4);
  display:inline-block;
}
.foot-status.is-open .foot-status-dot{
  background:#3FCF6E;
  box-shadow:0 0 0 3px rgba(63,207,110,.18);
  animation:footPulse 2.4s ease-in-out infinite;
}
.foot-status.is-open{color:var(--paper);border-color:rgba(63,207,110,.35)}
@keyframes footPulse{0%,100%{box-shadow:0 0 0 3px rgba(63,207,110,.18)}50%{box-shadow:0 0 0 6px rgba(63,207,110,.05)}}

.foot-cta-h{
  font-size:clamp(3.5rem,8vw,7.5rem);line-height:.92;
  margin:0 0 1.5rem;letter-spacing:-.015em;
}
.foot-cta-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.foot-cta-sub{
  font:400 1.125rem/1.55 var(--sans);
  color:rgba(245,241,234,.7);max-width:36rem;margin:0 auto 2.5rem;
}
.foot-cta-actions{display:inline-flex;flex-wrap:wrap;gap:.875rem;justify-content:center}
.foot-cta-primary{
  display:inline-flex;align-items:center;gap:.75rem;
  background:var(--blood);color:var(--paper);
  padding:1.125rem 2rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  text-decoration:none;border:1px solid var(--blood);
  transition:background .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
}
.foot-cta-primary:hover{background:#D03340;transform:translateY(-2px)}
.foot-cta-primary .arr{transition:transform .35s cubic-bezier(.2,.6,.2,1)}
.foot-cta-primary:hover .arr{transform:translateX(6px)}
.foot-cta-secondary{
  display:inline-flex;align-items:center;
  padding:1.125rem 2rem;
  font:500 .78rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);text-decoration:none;
  border:1px solid var(--hair);
  transition:border-color .25s ease,background .25s ease;
}
.foot-cta-secondary:hover{border-color:var(--paper);background:rgba(245,241,234,.04)}

/* 2 — NAP MARQUEE ========================================= */
.foot-marquee{
  border-bottom:1px solid var(--hair);
  padding:1.5rem 0;
  overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.foot-marquee-track{
  display:flex;gap:3rem;align-items:center;
  white-space:nowrap;
  animation:footMarquee 50s linear infinite;
  width:max-content;
}
.foot-marquee-item{
  font:400 clamp(1.25rem,2.2vw,1.9rem)/1 var(--display);
  letter-spacing:.18em;color:rgba(245,241,234,.85);
}
.foot-marquee-dot{color:var(--blood);font-size:.85rem;line-height:1}
@keyframes footMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* 3 — BODY GRID =========================================== */
.foot-body{
  padding:5rem var(--pad);
  display:grid;grid-template-columns:1fr;gap:3.5rem;
  max-width:1320px;margin:0 auto;
  border-bottom:1px solid var(--hair);
}
@media(min-width:1024px){.foot-body{grid-template-columns:minmax(0,1.4fr) minmax(0,2.6fr);gap:5rem}}

.foot-brand-v2{display:flex;flex-direction:column;gap:1.5rem}
.foot-brand-logo{display:inline-block;width:fit-content}
.foot-brand-logo img{
  height:72px;width:auto;
  filter:
    brightness(0) invert(.92)
    drop-shadow(0 2px 4px rgba(0,0,0,.6));
}
.foot-brand-tag{
  font:400 .92rem/1.65 var(--sans);
  color:rgba(245,241,234,.65);max-width:26rem;margin:0;
}

/* Newsletter */
.foot-newsletter{margin-top:1rem;display:flex;flex-direction:column;gap:.625rem;max-width:26rem}
.foot-newsletter-label{
  font:500 .7rem/1.4 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);
}
.foot-newsletter-row{
  display:flex;align-items:stretch;
  border:1px solid var(--hair);
  transition:border-color .25s ease;
}
.foot-newsletter-row:focus-within{border-color:var(--blood)}
.foot-newsletter-row input{
  flex:1;background:transparent;border:0;outline:0;
  padding:.95rem 1rem;
  font:400 .9rem/1 var(--sans);color:var(--paper);
}
.foot-newsletter-row input::placeholder{color:rgba(245,241,234,.35)}
.foot-newsletter-row button{
  background:var(--blood);color:var(--paper);
  border:0;cursor:pointer;
  padding:0 1.25rem;
  font-size:1rem;
  transition:background .25s ease;
}
.foot-newsletter-row button:hover{background:#D03340}
.foot-newsletter-row button .arr{transition:transform .3s ease}
.foot-newsletter-row button:hover .arr{transform:translateX(4px)}
.foot-newsletter-mini{font:400 .72rem/1.4 var(--sans);color:rgba(245,241,234,.4);margin:0}

/* Link columns */
.foot-cols{
  display:grid;grid-template-columns:repeat(2,1fr);gap:2.5rem 2rem;
}
@media(min-width:768px){.foot-cols{grid-template-columns:repeat(4,1fr)}}

.foot-col-v2 h4{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin:0 0 1.25rem;
  padding-bottom:.75rem;border-bottom:1px solid var(--hair);
}
.foot-col-v2 ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.625rem}
.foot-col-v2 a{
  font:400 .9rem/1.4 var(--sans);color:rgba(245,241,234,.72);
  text-decoration:none;transition:color .2s ease,padding .25s ease;
  position:relative;display:inline-block;
}
.foot-col-v2 a:hover{color:var(--paper);padding-left:6px}
.foot-col-v2 a:hover::before{
  content:"";position:absolute;left:-2px;top:50%;transform:translateY(-50%);
  width:4px;height:4px;background:var(--blood);
}

/* NAP block (Visit column) */
.foot-nap{font-style:normal;display:flex;flex-direction:column;gap:.5rem}
.foot-nap a{
  font:400 .9rem/1.5 var(--sans);color:rgba(245,241,234,.72);
  text-decoration:none;transition:color .2s ease;
}
.foot-nap a:hover{color:var(--paper)}
.foot-nap-street{font-family:var(--display)!important;letter-spacing:.02em;color:var(--paper)!important}
.foot-nap-phone{font:500 1.1rem/1 var(--display)!important;color:var(--paper)!important;letter-spacing:.04em;margin-top:.5rem}

.foot-hours{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--hair)}
.foot-hours-head{
  font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);margin:0 0 .75rem;
}
.foot-hours dl{margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}
.foot-hours dl > div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.foot-hours dt{font:400 .8rem/1.3 var(--sans);color:rgba(245,241,234,.6);margin:0}
.foot-hours dd{font:500 .8rem/1.3 var(--display);color:var(--paper);margin:0;letter-spacing:.02em}

/* 4 — SOCIAL + CREDS STRIP ================================ */
.foot-strip{
  padding:2rem var(--pad);
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;
  border-bottom:1px solid var(--hair);
  max-width:1320px;margin:0 auto;
}
.foot-strip-social{display:flex;align-items:center;gap:.625rem}
.foot-strip-label{
  font:500 .68rem/1 var(--display);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.5);margin-right:.5rem;
}
.foot-strip-social a{
  width:40px;height:40px;border:1px solid var(--hair);
  display:flex;align-items:center;justify-content:center;
  color:rgba(245,241,234,.7);
  transition:border-color .25s ease,color .25s ease,transform .3s ease;
}
.foot-strip-social a:hover{border-color:var(--blood);color:var(--paper);transform:translateY(-2px)}
.foot-strip-social a svg{width:18px;height:18px;display:block}

.foot-strip-creds{
  list-style:none;margin:0;padding:0;
  display:flex;flex-wrap:wrap;gap:.5rem .875rem;align-items:center;
}
.foot-strip-creds li{
  font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.5);
  padding:.4rem .65rem;border:1px solid var(--hair);
}

/* 5 — GIANT WORDMARK ====================================== */
.foot-wordmark{
  padding:3rem var(--pad) 2rem;text-align:center;
  border-bottom:1px solid var(--hair);
  overflow:hidden;
}
.foot-wordmark span{
  display:inline-block;
  font:400 clamp(5rem,18vw,16rem)/1 var(--display);
  letter-spacing:-.02em;
  color:transparent;
  -webkit-text-stroke:1px rgba(245,241,234,.18);
  background:linear-gradient(180deg,rgba(245,241,234,.04) 0%,rgba(245,241,234,0) 80%);
  -webkit-background-clip:text;background-clip:text;
  transition:-webkit-text-stroke .4s ease;
}
.foot-wordmark span em{
  font-style:italic;color:var(--blood);
  -webkit-text-fill-color:var(--blood);
  -webkit-text-stroke:0;
}
.foot-wordmark:hover span{-webkit-text-stroke:1px rgba(245,241,234,.4)}

/* 6 — LEGAL BAR =========================================== */
.foot-legal{
  padding:1.75rem var(--pad);
  display:grid;grid-template-columns:1fr;gap:.75rem;
  max-width:1320px;margin:0 auto;
  text-align:center;
}
@media(min-width:768px){.foot-legal{grid-template-columns:1fr auto 1fr;align-items:center;text-align:left}.foot-legal-built{text-align:right}}
.foot-legal-copy{
  font:400 .72rem/1.4 var(--sans);color:rgba(245,241,234,.45);margin:0;
}
.foot-legal-copy span{color:rgba(245,241,234,.35)}
.foot-legal-links{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;align-items:center}
.foot-legal-links a{
  font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.55);text-decoration:none;transition:color .2s ease;
}
.foot-legal-links a:hover{color:var(--paper)}
.foot-legal-links .dot{color:rgba(245,241,234,.3)}
.foot-legal-built{
  font:400 .72rem/1.4 var(--sans);color:rgba(245,241,234,.4);margin:0;
}
.foot-legal-built a{color:rgba(245,241,234,.65);text-decoration:none;transition:color .2s ease}
.foot-legal-built a:hover{color:var(--blood)}

/* Reduced motion: kill marquee + pulse */
@media(prefers-reduced-motion:reduce){
  .foot-marquee-track{animation:none}
  .foot-status.is-open .foot-status-dot{animation:none}
}

/* === MOBILE FOOTER POLISH ===
   Fixes: oversized CTA wrap, stretched buttons, 2-col link grid cramping,
   NAP wrap, hours dl breaking, cert chips overflow, wordmark spill, pin-cta overlap. */
@media(max-width:767px){

  /* CTA banner — balanced headline, stacked buttons, no orphan "?" */
  .foot-cta{padding:4rem var(--pad) 3rem}
  .foot-status{font-size:.58rem;letter-spacing:.18em;padding:.45rem .75rem}
  .foot-cta-h{
    font-size:clamp(2.75rem,11vw,4rem);line-height:.95;
    text-wrap:balance;max-width:9ch;margin:0 auto 1.25rem;letter-spacing:-.01em;
  }
  .foot-cta-sub{font-size:.95rem;line-height:1.5;max-width:32ch;margin:0 auto 1.75rem}
  .foot-cta-actions{flex-direction:column;gap:.625rem;width:100%}
  .foot-cta-primary,.foot-cta-secondary{
    justify-content:center;width:100%;padding:1rem 1.25rem;
    font-size:.7rem;letter-spacing:.18em;
  }

  /* Marquee — smaller text, less padding */
  .foot-marquee{padding:1rem 0}
  .foot-marquee-item{font-size:1.05rem;letter-spacing:.14em}
  .foot-marquee-track{gap:1.75rem}

  /* Body — stack everything single-column on phone, not 2-col cram */
  .foot-body{padding:3rem var(--pad) 2.5rem;gap:2.5rem}
  .foot-brand-logo img{height:60px}
  .foot-brand-tag{font-size:.875rem;line-height:1.55;max-width:none}

  /* Newsletter — full width, taller tap targets */
  .foot-newsletter{max-width:none}
  .foot-newsletter-row input{padding:1rem 1rem;font-size:.95rem}
  .foot-newsletter-row button{padding:0 1.25rem;min-width:56px}

  /* Link columns — SINGLE column on phone, hairline dividers between */
  .foot-cols{grid-template-columns:1fr;gap:0}
  .foot-col-v2{padding:1.5rem 0;border-top:1px solid var(--hair)}
  .foot-col-v2:first-of-type{border-top:0;padding-top:.5rem}
  .foot-col-v2:last-of-type{padding-bottom:.5rem}
  .foot-col-v2 h4{margin-bottom:1rem;padding-bottom:.625rem}
  .foot-col-v2 ul{gap:.875rem}
  .foot-col-v2 a{font-size:.95rem;display:inline-block}

  /* NAP + Hours — keep readable, no cramped wrap */
  .foot-nap-street{font-size:.95rem;line-height:1.5}
  .foot-nap-phone{font-size:1.05rem}
  .foot-hours{margin-top:1.25rem;padding-top:1rem}
  .foot-hours dl > div{gap:1.5rem}
  .foot-hours dt,.foot-hours dd{font-size:.85rem}

  /* Social + creds strip — stack tight, centered */
  .foot-strip{
    padding:1.5rem var(--pad);
    flex-direction:column;justify-content:center;align-items:center;
    gap:1.25rem;
  }
  .foot-strip-social{justify-content:center}
  .foot-strip-creds{
    justify-content:center;gap:.4rem .5rem;
  }
  .foot-strip-creds li{font-size:.62rem;letter-spacing:.18em;padding:.35rem .55rem}

  /* Giant wordmark — keep dramatic but tighten section */
  .foot-wordmark{padding:1.75rem var(--pad) 1rem}

  /* Legal bar — centered single column, tighter type, balanced wrapping */
  .foot-legal{padding:1.5rem var(--pad);gap:.625rem;text-align:center}
  .foot-legal-copy,.foot-legal-built{font-size:.65rem;line-height:1.5}
  .foot-legal-links{gap:.4rem;justify-content:center}
  .foot-legal-links a{font-size:.6rem;letter-spacing:.18em}

  /* Pin-cta clearance — never overlap legal bar */
  .foot-legal{padding-bottom:6rem}
}

/* Small phones (≤380px) — last-mile tightening */
@media(max-width:380px){
  .foot-cta-h{font-size:clamp(2.4rem,12vw,3.25rem);max-width:8ch}
  .foot-cta-sub{font-size:.9rem;max-width:30ch}
  .foot-marquee-item{font-size:.95rem}
  .foot-brand-logo img{height:54px}
  .foot-strip-creds li{font-size:.58rem;padding:.3rem .5rem}
}

/* === MOBILE PINNED CTA === */
.pin-cta{
  position:fixed;bottom:0;left:0;right:0;z-index:90;
  padding:.875rem 1rem;
  background:linear-gradient(to top,var(--ink) 70%,rgba(10,10,9,0));
  display:none;
}
.pin-cta a{
  display:flex;width:100%;justify-content:center;align-items:center;gap:.75rem;
  padding:1rem;background:var(--blood);color:var(--paper);
  font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
}
@media(max-width:1023px){.pin-cta.show{display:block}}
@media(max-width:1023px){body{padding-bottom:4.5rem}}

/* === FORM (kept for /contact reuse) === */
.form-card{background:var(--ink-2);border:1px solid var(--hair);padding:2rem;display:flex;flex-direction:column;gap:1rem}
.form-h{font:400 1.375rem/1 var(--display);letter-spacing:.01em;color:var(--paper);margin-bottom:.5rem}
.form-card input,.form-card select,.form-card textarea{
  background:transparent;border:0;border-bottom:1px solid var(--hair);
  padding:.875rem 0;color:var(--paper);font:400 .9375rem var(--sans);width:100%;
  transition:border-color .2s;
}
.form-card input::placeholder,.form-card textarea::placeholder{color:var(--mute)}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{border-bottom-color:var(--blood);outline:0}
.form-card button{
  margin-top:1rem;padding:1.125rem 2rem;background:var(--blood);color:var(--paper);
  font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;border:0;
}
.form-row,.form-row-2{display:grid;grid-template-columns:1fr;gap:1rem}
@media(min-width:640px){.form-row-2{grid-template-columns:1fr 1fr}}
.muted{color:var(--mute)}
.small{font-size:.75rem}
.center{text-align:center}
.w-full{width:100%}
.form-status,.form-success{padding:1rem;border:1px solid var(--blood);background:rgba(183,32,46,.08);color:var(--paper);font:400 .875rem var(--sans)}

/* === LEGACY COMPAT — keeps inner pages (trainers/wellness/what-is/contact/city/etc) rendering with editorial system === */

/* Containers */
.container{max-width:1440px;margin:0 auto;padding:0 var(--pad)}
.container-narrow{max-width:64rem;margin:0 auto;padding:0 var(--pad)}

/* Old page-hero → editorial (top padding clears fixed nav incl. enlarged silver logo) */
.page-hero{padding:9rem var(--pad) 4rem;position:relative;background:var(--ink)}
@media(min-width:1024px){.page-hero{padding:12rem var(--pad) 6rem}}
.hero-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.35;filter:grayscale(85%) contrast(1.1)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,var(--ink),rgba(10,10,9,.85) 50%,rgba(10,10,9,.45))}
.hero-content{position:relative;z-index:5}
/* Inner-page hero variant — clear the fixed nav, no full-bleed video */
.hero-sm{min-height:auto;display:block;padding:11rem var(--pad) 4rem}
@media(min-width:1024px){.hero-sm{padding:14.5rem var(--pad) 6rem}}
.hero-sm .hero-stack,.hero-sm .hero-video{display:none}
.hero-sm .hero-content,.hero-sm > .container{position:relative;z-index:5}
.hero-sub{font:400 1.0625rem/1.7 var(--sans);color:var(--mute-2);max-width:42rem;margin-top:2rem}

/* Old display scale → uniform on Michroma (same as hero-headline + editorial-h) */
.display-xxl{font:400 clamp(2rem,4vw,3.5rem)/1.05 var(--display);letter-spacing:0;text-transform:uppercase;color:var(--paper)}
.display-xl{font:400 clamp(1.75rem,3.5vw,3rem)/1.1 var(--display);letter-spacing:0;text-transform:uppercase;color:var(--paper)}
.display-l{font:400 clamp(1.5rem,3vw,2.5rem)/1.15 var(--display);letter-spacing:0;text-transform:uppercase;color:var(--paper)}

/* === RED-WORD ACCENT — clean red, no silver outline === */
.hero-headline em,
.editorial-h em,
.display-mega em,
.display-xxl em,.display-xl em,.display-l em,
.display-xxl .blood,.display-xl .blood,.display-l .blood,
.faqs h2 em,
.section-h em,
.room-name em,
.program-name em,
.card-h em,
.invite-nap .street em{
  color:var(--blood)!important;
  -webkit-text-fill-color:var(--blood)!important;
  font-style:inherit;
  font-size:1.2em;
  vertical-align:baseline;
  text-shadow:none!important;
  -webkit-text-stroke:0!important;
}

/* Old eyebrow → chapter-style */
.eyebrow{font:500 .6875rem/1 var(--display);letter-spacing:.32em;text-transform:uppercase;color:var(--mute);margin-bottom:1rem;display:inline-flex;align-items:center;gap:.875rem}
.eyebrow::before{content:"";display:inline-block;width:36px;height:1px;background:var(--blood)}
.eyebrow.small{font-size:.625rem;letter-spacing:.28em}

/* Lead */
.lead{font:400 1.125rem/1.7 var(--sans);color:var(--mute-2);max-width:42rem}

/* Section variants */
.section{padding:5rem var(--pad)}
@media(min-width:1024px){.section{padding:8rem var(--pad)}}
.section-dark{background:var(--ink)}
.section-carbon{background:var(--ink-2)}
.section-h{font:400 clamp(1.5rem,2.5vw,2.25rem)/1 var(--display);letter-spacing:.01em;color:var(--paper);margin-bottom:2rem}
.section-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.5rem;margin-bottom:3rem}
.section-head .muted{max-width:32rem}

/* Two-col + three-col layouts */
.two-col,.two-col-7-5,.two-col-5-7,.two-col-1-1,.three-col{display:grid;gap:3rem}
@media(min-width:1024px){
  .two-col{grid-template-columns:5fr 7fr}
  .two-col-7-5{grid-template-columns:7fr 5fr}
  .two-col-5-7{grid-template-columns:5fr 7fr}
  .two-col-1-1{grid-template-columns:1fr 1fr}
  .three-col{grid-template-columns:repeat(3,1fr)}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;padding:1.1rem 1.875rem;transition:.2s;border:1px solid transparent;cursor:pointer}
.btn-blood{background:var(--blood);color:var(--paper);border-color:var(--blood)}
.btn-blood:hover{background:transparent;color:var(--blood)}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem;align-items:center}
.btn-row.center{justify-content:center}

/* Old trainer-card pattern (gets nicer treatment) */
.trainer-card{background:var(--ink);display:block;overflow:hidden;position:relative;transition:background .2s}
.trainer-card:hover{background:var(--ink-2)}
.trainer-photo{aspect-ratio:3/4;background:#16161a center/cover no-repeat;filter:saturate(.9);position:relative;display:flex;align-items:flex-end;justify-content:flex-start;overflow:hidden}
.trainer-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,9,.55) 0%,rgba(10,10,9,0) 50%)}
.initials,.initials-xl{font:400 4rem/1 var(--display);color:var(--mute);letter-spacing:.05em;align-self:center;justify-self:center;margin:auto}
.coming-badge{position:absolute;top:1rem;left:1rem;font:600 9px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;background:var(--blood);color:var(--paper);padding:.4rem .625rem;z-index:2}
.trainer-body{padding:1.25rem 0 1.5rem}
.trainer-name{font:400 1.375rem/1 var(--display);letter-spacing:.01em;color:var(--paper)}
.trainer-role{font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-top:.625rem}
.trainer-specs{font:400 .8125rem/1.45 var(--sans);color:var(--mute-2);margin-top:.625rem}
.trainer-grid-4{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;background:var(--hair-2)}
@media(min-width:768px){.trainer-grid-4{grid-template-columns:repeat(4,1fr)}}

/* Trainer detail page */
.trainer-detail{display:grid;gap:3rem}
@media(min-width:1024px){.trainer-detail{grid-template-columns:5fr 7fr}}
.photo-box{aspect-ratio:3/4;background:var(--ink-2) center/cover no-repeat;border:1px solid var(--hair);display:flex;align-items:center;justify-content:center}
.bio{margin-top:2rem;font:400 1.0625rem/1.7 var(--sans);color:var(--mute-2)}
.trainer-loc{margin-top:2rem;font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}

/* Chips */
.chips,.chip-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem}
.chip{border:1px solid var(--hair);color:var(--mute-2);font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;padding:.5rem .75rem;display:inline-flex;align-items:center;transition:.2s}
.chip:hover{border-color:var(--blood);color:var(--blood)}
.chip-blood{border-color:var(--blood);color:var(--blood)}

/* Amenity grid */
.amenity-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hair-2);margin-top:2rem}
@media(min-width:640px){.amenity-grid{grid-template-columns:repeat(2,1fr)}}
.amenity{background:var(--ink);padding:2rem 1.75rem;transition:background .2s}
.amenity:hover{background:var(--ink-2)}
.amenity-icon{font:400 1.5rem/1 var(--display);color:var(--blood);margin-bottom:1.25rem}
.amenity-name{font:400 1.25rem/1 var(--display);color:var(--paper);letter-spacing:.01em}
.amenity-desc{margin-top:.625rem;font:400 .8125rem/1.55 var(--sans);color:var(--mute-2)}

/* Wellness page */
.wellness-card{display:block;background:var(--ink);border:1px solid var(--hair-2);padding:1.75rem;transition:border-color .2s}
.wellness-card:hover{border-color:var(--blood)}
.card-h{font:400 1.375rem/1.05 var(--display);letter-spacing:.01em;color:var(--paper);margin-top:.75rem}
.card-desc{margin-top:.625rem;font:400 .8125rem/1.55 var(--sans);color:var(--mute-2)}
.card-price{margin-top:1rem;font:400 1rem/1 var(--display);color:var(--paper)}
.wellness-detail{display:flex;flex-direction:column}
.wellness-detail .wellness-row{display:grid;gap:2rem;padding:2.5rem 0;border-bottom:1px solid var(--hair-2)}
@media(min-width:768px){.wellness-detail .wellness-row{grid-template-columns:auto 7fr 4fr;align-items:center}}
.wellness-icon{font:400 1.5rem/1 var(--display);color:var(--blood)}
.wellness-meta div{margin-bottom:1.25rem}
.wellness-body{font:400 1.0625rem/1.7 var(--sans);color:var(--mute-2)}
.benefits{list-style:none;color:var(--mute-2);font:400 .875rem/1.6 var(--sans)}
.benefits li{margin-bottom:.5rem;padding-left:1.25rem;position:relative}
.benefits li::before{content:"";position:absolute;left:0;top:.6rem;width:8px;height:1px;background:var(--blood)}

/* City cards */
.city-card{display:block;background:var(--ink);border:1px solid var(--hair-2);padding:1.5rem;transition:border-color .2s}
.city-card:hover{border-color:var(--blood)}
.city-county{font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute)}
.city-name{font:400 1.375rem/1 var(--display);letter-spacing:.01em;color:var(--paper);margin-top:.625rem}
.city-meta{margin-top:1rem;display:flex;justify-content:space-between;font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mute)}

/* Benefits / steps */
.benefit-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hair-2);margin-top:1.5rem}
@media(min-width:640px){.benefit-grid{grid-template-columns:repeat(2,1fr)}}
.benefit{background:var(--ink);padding:1.5rem;display:flex;align-items:flex-start;gap:.875rem;font:400 .9375rem/1.5 var(--sans);color:var(--mute-2)}
.check{color:var(--blood);font:400 1.25rem/1 var(--display);flex-shrink:0}
.step-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-top:3rem}
@media(min-width:640px){.step-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.step-grid{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--ink-2);padding:1.75rem;border:1px solid var(--hair-2)}
.step-num{font:400 3rem/1 var(--display);color:var(--blood);letter-spacing:.02em}
.step-name{font:400 1.25rem/1 var(--display);color:var(--paper);letter-spacing:.01em;margin-top:.875rem}
.step-text{margin-top:.625rem;font:400 .8125rem/1.55 var(--sans);color:var(--mute-2)}

/* Contact + NAP */
.nap{margin-top:1.5rem}
.nap .contact-row{display:flex;gap:1rem;margin-bottom:1.25rem;align-items:flex-start;font:400 .9375rem/1.55 var(--sans);color:var(--mute-2)}
.nap .contact-row strong{color:var(--paper);font-weight:500}
.icon{font:400 1.125rem/1 var(--display);color:var(--blood);flex-shrink:0;margin-top:.125rem}
.hours{list-style:none;font:400 .875rem/1.6 var(--sans);color:var(--mute-2);margin-top:1rem}
.hours li{display:flex;justify-content:space-between;max-width:18rem;padding:.375rem 0;border-bottom:1px solid var(--hair-2)}
.hours li strong{color:var(--paper);font-weight:500}
.map{width:100%;height:24rem;border:0;margin-top:2rem}
.nap-block{border-left:2px solid var(--blood);padding-left:1.25rem;margin-top:2rem;font:400 .9375rem/1.65 var(--sans);color:var(--mute-2)}
.nap-block p{margin:.25rem 0}

/* Form rows */
.form-row{display:grid;gap:1rem}
.form-row-2{display:grid;gap:1rem}
@media(min-width:640px){.form-row-2{grid-template-columns:1fr 1fr}}

/* Breadcrumb + back link */
.breadcrumb{font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-bottom:1.5rem}
.breadcrumb a:hover{color:var(--paper)}
.back-link{display:inline-flex;align-items:center;gap:.5rem;font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-bottom:2rem}
.back-link:hover{color:var(--paper)}
.border-top{border-top:1px solid var(--hair-2)}
.min-h-screen-half{min-height:60vh;display:flex;align-items:center}
.align-center{align-items:center}

/* Utility colors */
.blood{color:var(--blood)}
.uppercase{text-transform:uppercase;letter-spacing:.22em}

/* Long-form prose */
.long-form{margin-top:2.5rem;font:400 1.0625rem/1.75 var(--sans);color:var(--mute-2);max-width:48rem}
.long-form h2{font:400 italic clamp(1.5rem,3vw,2.25rem)/1.15 var(--serif);letter-spacing:-.01em;color:var(--paper);margin:2.5rem 0 1rem}
.long-form h3{font:400 1.25rem/1 var(--display);letter-spacing:.01em;color:var(--paper);margin:2rem 0 .75rem}
.long-form p{margin-bottom:1.25rem}
.long-form a{color:var(--paper);border-bottom:1px solid var(--blood);transition:.2s}
.long-form a:hover{color:var(--blood)}

/* Dot list */
.dot-list{list-style:none;color:var(--mute-2);font:400 .9375rem/1.65 var(--sans);margin-top:1rem}
.dot-list li{padding-left:1.25rem;position:relative;margin-bottom:.625rem}
.dot-list li::before{content:"";position:absolute;left:0;top:.7rem;width:8px;height:1px;background:var(--blood)}

/* Hero meta on inner pages */
.hero-meta{display:flex;flex-wrap:wrap;gap:1rem;font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--mute);margin-top:1.5rem}

/* === TRAINERS PAGE — premium roster grid === */
.t-hero{
  padding:10rem var(--pad) 3.5rem;
  border-bottom:1px solid var(--hair);
  background:var(--ink);
  display:flex;flex-direction:column;gap:1.25rem;
}
@media(min-width:1024px){.t-hero{padding:13rem var(--pad) 4.5rem}}
.t-hero .breadcrumb{margin-bottom:0}
.t-hero .editorial-h{max-width:42rem;margin:.5rem 0 .5rem}
.t-hero .body-lg{margin-top:.25rem;max-width:42rem}

.t-filters{
  display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;
  padding-top:1.75rem;border-top:1px solid var(--hair-2);
}
.t-filter{
  background:transparent;border:1px solid var(--hair);
  padding:.625rem 1rem;cursor:pointer;
  font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;
  color:var(--mute-2);
  display:inline-flex;align-items:center;gap:.625rem;
  transition:.2s;
}
.t-filter span{
  font:600 9px/1 var(--sans);letter-spacing:0;
  background:var(--hair-2);color:var(--mute);
  padding:.25rem .5rem;
  transition:.2s;
}
.t-filter:hover{border-color:var(--blood);color:var(--paper)}
.t-filter.is-active{border-color:var(--blood);color:var(--paper);background:rgba(183,32,46,.08)}
.t-filter.is-active span{background:var(--blood);color:var(--paper)}

.t-grid-wrap{padding:0;background:var(--ink)}
.t-grid-wrap--coming{padding-top:5rem;background:var(--ink-2)}
.t-section-head{padding:0 var(--pad) 3rem;display:flex;flex-direction:column;gap:1rem}
.t-grid{
  display:grid;gap:1px;background:var(--hair-2);
  grid-template-columns:1fr;
}
@media(min-width:560px){.t-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.t-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1440px){.t-grid{grid-template-columns:repeat(4,1fr)}}

/* The premium trainer card */
.t-card{
  position:relative;display:block;
  background:#0E0E0D;
  aspect-ratio:3/4;overflow:hidden;
  isolation:isolate;text-decoration:none;color:inherit;
}
.t-card-photo{
  position:absolute;inset:0;
  background:#16161a center/cover no-repeat;
  filter:grayscale(100%) contrast(1.06) brightness(.74);
  transform:scale(1.01);
  transition:filter .6s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);
}
.t-card:hover .t-card-photo{
  filter:grayscale(0%) contrast(1.04) brightness(.82);
  transform:scale(1.06);
}
.t-card-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to top,
      rgba(10,10,9,.98) 0%,
      rgba(10,10,9,.85) 18%,
      rgba(10,10,9,.45) 42%,
      rgba(10,10,9,.05) 70%,
      rgba(10,10,9,.35) 100%);
  transition:opacity .4s;
}
.t-card:hover .t-card-photo::after{opacity:.96}

.t-card-initials{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font:400 4.5rem/1 var(--display-condensed);
  color:rgba(245,241,234,.18);letter-spacing:.05em;
}

.t-card-num{
  position:absolute;top:1.25rem;left:1.25rem;z-index:3;
  font:400 .6875rem/1 var(--display-condensed);
  letter-spacing:.32em;color:rgba(245,241,234,.6);
  display:flex;align-items:center;gap:.5rem;
}
.t-card-num::before{content:"";width:18px;height:1px;background:var(--blood)}

.t-card-badge{
  position:absolute;top:1.25rem;right:1.25rem;z-index:3;
  font:600 9px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);background:var(--blood);
  padding:.4rem .625rem;
}

.t-card-body{
  position:absolute;left:0;right:0;bottom:0;z-index:3;
  padding:1.75rem 1.5rem;
  color:var(--paper);
}
.t-card-spec{
  font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
  color:var(--blood);margin-bottom:.5rem;
}
.t-card-name{
  font:400 1.5rem/1.05 var(--display-condensed);letter-spacing:.01em;
  text-transform:uppercase;color:var(--paper);
  text-shadow:0 2px 8px rgba(0,0,0,.7);
}
.t-card-role{
  margin-top:.5rem;
  font:500 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
  color:rgba(245,241,234,.7);
}

/* Hover-reveal panel */
.t-card-reveal{
  margin-top:.875rem;
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .5s cubic-bezier(.2,.7,.2,1),opacity .3s ease .1s;
}
.t-card:hover .t-card-reveal,
.t-card:focus-visible .t-card-reveal{max-height:260px;opacity:1}
.t-card-bio{
  font:400 .8125rem/1.55 var(--sans);
  color:rgba(245,241,234,.88);
  margin-bottom:.875rem;
}
.t-card-certs{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:1rem}
.t-card-cert{
  font:600 9px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;
  color:rgba(245,241,234,.85);
  border:1px solid var(--hair);
  padding:.375rem .5rem;
}
.t-card-cta{
  display:inline-flex;align-items:baseline;gap:.5rem;
  font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;
  color:var(--paper);
  border-bottom:1px solid var(--blood);padding-bottom:.4rem;
}
.t-card-cta .arr{font:400 italic .875rem/1 var(--serif);color:var(--blood)}

/* Red corner accent — draws across bottom on hover */
.t-card::before{
  content:"";position:absolute;left:0;bottom:0;height:2px;width:0;
  background:var(--blood);z-index:4;
  transition:width .6s cubic-bezier(.2,.7,.2,1);
}
.t-card:hover::before,.t-card:focus-visible::before{width:100%}

/* Coming-soon variant */
.t-card.is-coming .t-card-photo{filter:grayscale(100%) contrast(.95) brightness(.5)}
.t-card.is-coming:hover .t-card-photo{filter:grayscale(100%) contrast(1) brightness(.6);transform:scale(1.02)}

/* CTA band */
.t-cta{
  padding:6rem var(--pad);
  background:var(--ink);border-top:1px solid var(--hair);
  position:relative;overflow:hidden;
}
.t-cta::before{
  content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse at bottom left,rgba(183,32,46,.16),transparent 55%);
  pointer-events:none;
}
.t-cta-inner{position:relative;max-width:48rem;display:flex;flex-direction:column;gap:1.25rem}
.t-cta .editorial-h{max-width:36rem}

/* === EDITORIAL FAQ === */
.faq-edit{
  background:var(--ink);color:var(--paper);
  padding:7rem var(--pad);
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  position:relative;overflow:hidden;
}
.faq-edit::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(ellipse at 90% 10%,rgba(183,32,46,.12),transparent 55%),
    radial-gradient(ellipse at 10% 90%,rgba(183,32,46,.06),transparent 50%);
  pointer-events:none;
}
.faq-edit-inner{
  position:relative;max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:minmax(280px,1fr) minmax(0,1.5fr);
  gap:6rem;align-items:start;
}
.faq-edit-side{position:sticky;top:8rem;display:flex;flex-direction:column;gap:1.5rem;min-width:0}
/* Cap headline so "EVERYTHING" (the widest Michroma word) never overflows the left column into the FAQ list. */
.faq-edit-h{
  font-size:clamp(2rem,3.4vw,3.25rem);line-height:.96;margin:0;
  letter-spacing:-.005em;max-width:100%;
  overflow-wrap:break-word;word-break:keep-all;
}
.faq-edit-h em{font-family:inherit;font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood);font-weight:inherit}
.faq-edit-sub{color:rgba(245,241,234,.6);max-width:24rem;font-size:1rem;line-height:1.55;margin:0}
.faq-edit-cta{align-self:flex-start;margin-top:.5rem}

.faq-edit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.faq-edit-item{border-top:1px solid var(--hair)}
.faq-edit-item:last-child{border-bottom:1px solid var(--hair)}
.faq-edit-item summary{
  list-style:none;cursor:pointer;
  display:grid;grid-template-columns:auto 1fr auto;
  gap:1.75rem;align-items:baseline;padding:1.75rem 0;
  transition:padding .35s ease;
}
.faq-edit-item summary::-webkit-details-marker{display:none}
.faq-edit-n{
  font-family:var(--display);font-weight:400;
  font-size:.8rem;letter-spacing:.18em;color:rgba(245,241,234,.4);
  font-feature-settings:"tnum" 1;min-width:2.5rem;
  transition:color .25s ease;
}
.faq-edit-qt{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.4rem,2.4vw,2.1rem);line-height:1.15;letter-spacing:-.005em;
  color:var(--paper);transition:color .25s ease,transform .35s ease;
}
.faq-edit-toggle{
  width:38px;height:38px;flex:0 0 38px;
  border:1px solid var(--hair);border-radius:999px;position:relative;
  transition:border-color .25s ease,background .25s ease;
  align-self:center;
}
.faq-edit-toggle::before,.faq-edit-toggle::after{
  content:"";position:absolute;background:var(--paper);
  left:50%;top:50%;transform:translate(-50%,-50%);
  transition:transform .3s cubic-bezier(.6,.05,.3,1),opacity .25s ease;
}
.faq-edit-toggle::before{width:12px;height:1px}
.faq-edit-toggle::after{width:1px;height:12px}

.faq-edit-item details[open] summary{padding-bottom:1.25rem}
.faq-edit-item details[open] .faq-edit-qt{color:var(--blood)}
.faq-edit-item details[open] .faq-edit-n{color:var(--blood)}
.faq-edit-item details[open] .faq-edit-toggle{border-color:var(--blood);background:var(--blood)}
.faq-edit-item details[open] .faq-edit-toggle::after{transform:translate(-50%,-50%) rotate(90deg);opacity:0}

.faq-edit-a{
  display:grid;grid-template-columns:auto 1fr auto;gap:1.75rem;
  padding:0 0 2rem;animation:faqReveal .45s cubic-bezier(.2,.6,.2,1) both;
}
.faq-edit-a > *{grid-column:2}
.faq-edit-a p{
  color:rgba(245,241,234,.78);font-size:1.05rem;line-height:1.65;
  max-width:42rem;margin:0;font-family:var(--body);font-weight:400;
}
@keyframes faqReveal{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}

.faq-edit-item summary:hover .faq-edit-qt{transform:translateX(4px)}
.faq-edit-item summary:hover .faq-edit-toggle{border-color:var(--paper)}

@media(max-width:880px){
  .faq-edit{padding:4.5rem var(--pad)}
  .faq-edit-inner{grid-template-columns:1fr;gap:3rem}
  .faq-edit-side{position:static}
  .faq-edit-h{font-size:clamp(2rem,8vw,3rem)}
  .faq-edit-item summary{gap:1rem;padding:1.25rem 0}
  .faq-edit-qt{font-size:clamp(1.1rem,4.5vw,1.5rem)}
  .faq-edit-a{gap:1rem;padding-bottom:1.5rem}
  .faq-edit-toggle{width:32px;height:32px;flex-basis:32px}
}

/* === ROOMS HOVER REVEAL — trainer-card move applied to room tiles === */
.room{
  position:relative;display:block;
  text-decoration:none;color:inherit;
  overflow:hidden;cursor:pointer;
  isolation:isolate;
}
.room .room-bg{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  filter:grayscale(.55) brightness(.7) contrast(1.05);
  transform:scale(1.02);
  transition:filter .6s cubic-bezier(.2,.6,.2,1),transform .9s cubic-bezier(.2,.6,.2,1);
  z-index:0;
}
.room .room-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,transparent 35%,rgba(10,10,9,.45) 65%,rgba(10,10,9,.92) 100%);
  transition:opacity .5s ease,background .5s ease;
}
.room .room-content{position:relative;z-index:2}
.room .room-cap{
  transition:opacity .4s ease,transform .4s ease;
  will-change:opacity,transform;
}
.room-reveal{
  margin-top:1rem;
  max-height:0;opacity:0;
  transform:translateY(8px);
  overflow:hidden;
  transition:max-height .55s cubic-bezier(.2,.6,.2,1),opacity .35s ease .05s,transform .45s cubic-bezier(.2,.6,.2,1);
  pointer-events:none;
}
.room-features{
  list-style:none;margin:0 0 1rem;padding:0;
  display:flex;flex-direction:column;gap:.45rem;
}
.room-features li{
  display:flex;align-items:center;gap:.625rem;
  font:500 .8125rem/1.3 var(--sans);
  color:rgba(245,241,234,.88);
  letter-spacing:.01em;
}
.room-feat-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--blood);flex-shrink:0;
  box-shadow:0 0 0 3px rgba(183,32,46,.18);
}
.room-cta{
  display:inline-flex;align-items:center;gap:.6rem;
  font:500 .75rem/1 var(--display);
  letter-spacing:.22em;text-transform:uppercase;
  color:var(--paper);
  padding-top:.875rem;border-top:1px solid rgba(245,241,234,.18);
  width:100%;
}
.room-cta .arr{
  transition:transform .35s cubic-bezier(.2,.6,.2,1);
  color:var(--blood);
}

/* hover state */
.room:hover .room-bg,
.room:focus-visible .room-bg{
  filter:grayscale(0) brightness(.85) contrast(1);
  transform:scale(1.06);
}
.room:hover .room-scrim,
.room:focus-visible .room-scrim{
  background:linear-gradient(180deg,rgba(10,10,9,.35) 0%,rgba(10,10,9,.7) 45%,rgba(10,10,9,.95) 100%);
}
.room:hover .room-cap,
.room:focus-visible .room-cap{
  opacity:0;transform:translateY(-4px);
}
.room:hover .room-reveal,
.room:focus-visible .room-reveal{
  max-height:300px;opacity:1;transform:translateY(0);
  margin-top:-.875rem; /* absorb removed cap space */
  pointer-events:auto;
}
.room:hover .room-cta .arr,
.room:focus-visible .room-cta .arr{transform:translateX(6px)}

/* accent rail that grows on hover */
.room::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;z-index:3;
  background:var(--blood);
  transform:scaleX(0);transform-origin:left;
  transition:transform .55s cubic-bezier(.2,.6,.2,1);
}
.room:hover::after,
.room:focus-visible::after{transform:scaleX(1)}

/* keyboard a11y */
.room:focus-visible{outline:2px solid var(--blood);outline-offset:-2px}

/* mobile: collapse reveal, always show features inline (no hover on touch) */
@media(hover:none){
  .room-reveal{max-height:none;opacity:1;transform:none;pointer-events:auto;margin-top:1rem!important}
  .room:hover .room-cap{opacity:1;transform:none}
}

/* === ROOM NAME WEIGHT SWAP (final override — beats unified em-red rule) === */
/* Michroma is 400-only; thickness must come from paint-ring text-shadow. */
section .room-name,
body .room-name{
  font-weight:400!important;
  -webkit-text-stroke:0!important;
  text-shadow:0 2px 4px rgba(0,0,0,.45)!important;
  color:var(--paper)!important;
}
section .room-name em,
body .room-name em{
  font-weight:400!important;
  font-size:1em!important;
  color:var(--blood)!important;
  -webkit-text-fill-color:var(--blood)!important;
  -webkit-text-stroke:0!important;
  text-shadow:0 2px 4px rgba(0,0,0,.45)!important;
}

/* === ROOM DETAIL PAGE === */
.room-hero{
  min-height:72vh;display:flex;flex-direction:column;justify-content:flex-end;
  padding:11rem var(--pad) 5rem;
  background-size:cover;background-position:center;
  color:var(--paper);position:relative;
  overflow:hidden;
}
/* Optional autoplay bg video — replaces the static hero image when present.
   Poster image remains the fallback for browsers blocking autoplay. */
.room-hero-video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:center;
  z-index:0;pointer-events:none;
  /* desaturate slightly so the hero copy stays readable on top */
  filter:grayscale(.15) brightness(.7) contrast(1.04);
}
.room-hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,10,9,.35) 0%,rgba(10,10,9,.55) 55%,rgba(10,10,9,1) 100%);
}
.room-hero.has-video > *:not(.room-hero-video):not(.room-hero-scrim){
  position:relative;z-index:2;
}
@media(prefers-reduced-motion:reduce){
  .room-hero-video{display:none}      /* honor user preference, keep static image */
}
.room-hero .breadcrumb{margin-bottom:2rem}
.room-hero .chapter-num{margin-bottom:1rem}
.room-hero-h{font-size:clamp(3rem,7vw,7rem);line-height:.95;margin:0 0 1.5rem;max-width:18ch}
.room-hero-tag{font-family:var(--display);font-size:clamp(1.1rem,1.6vw,1.4rem);color:rgba(245,241,234,.75);max-width:36rem;margin:0;letter-spacing:.01em;line-height:1.4}

.room-body{padding:6rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.room-body-grid{
  max-width:1320px;margin:0 auto;
  display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);
  gap:5rem;align-items:start;
}
.room-body-main .chapter-num{margin-bottom:1rem}
.room-intro{font-family:var(--display);font-weight:400;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.3;letter-spacing:-.005em;color:var(--paper);margin:0 0 2rem;max-width:48rem}
.room-prose{font-size:1.05rem;line-height:1.7;color:rgba(245,241,234,.78);max-width:42rem;margin:0}
.room-body-aside{position:sticky;top:8rem;border-left:1px solid var(--hair);padding-left:2.5rem}
.room-body-aside .chapter-num{margin-bottom:1.5rem}
.room-specs{margin:0 0 2rem;padding:0;display:flex;flex-direction:column;gap:0}
.room-spec-row{display:flex;justify-content:space-between;align-items:baseline;padding:.95rem 0;border-bottom:1px solid var(--hair);gap:1rem}
.room-spec-row dt{font:500 .68rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;color:rgba(245,241,234,.5);margin:0;flex-shrink:0}
.room-spec-row dd{font:500 .9rem/1.3 var(--sans);color:var(--paper);margin:0;text-align:right}
.room-aside-cta{display:inline-flex}

.room-equip{padding:6rem var(--pad);background:#0F0F0E;border-bottom:1px solid var(--hair);position:relative;overflow:hidden}
.room-equip::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(183,32,46,.08),transparent 50%);pointer-events:none}
.room-equip-inner{position:relative;max-width:1320px;margin:0 auto}
.room-equip-head{margin-bottom:3rem;max-width:48rem}
.room-equip-head .chapter-num{margin-bottom:1rem}
.room-equip-head h2{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:1}
.room-equip-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.room-equip-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0;border-top:1px solid var(--hair)}
.room-equip-item{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.5rem 1.25rem;border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);align-items:baseline;transition:background .25s ease}
.room-equip-item:hover{background:rgba(183,32,46,.05)}
.room-equip-n{font:400 .75rem/1 var(--display);letter-spacing:.18em;color:rgba(245,241,234,.4)}
.room-equip-t{font:500 1rem/1.4 var(--sans);color:var(--paper)}

.room-rules{padding:6rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.room-rules-inner{max-width:48rem;margin:0 auto}
.room-rules-inner .chapter-num{margin-bottom:1rem;display:block}
.room-rules-inner h2{margin:0 0 2.5rem;font-size:clamp(1.8rem,3.5vw,3rem);line-height:1}
.room-rules-inner em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.room-rules-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.room-rules-list li{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;padding:1.25rem 0;border-top:1px solid var(--hair);align-items:baseline}
.room-rules-list li:last-child{border-bottom:1px solid var(--hair)}
.room-rule-n{font:400 .75rem/1 var(--display);letter-spacing:.18em;color:var(--blood)}
.room-rule-t{font-size:1rem;line-height:1.55;color:rgba(245,241,234,.85)}

.room-coaches{padding-top:6rem!important}
.room-related{padding:5rem var(--pad);background:var(--ink);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.room-related-inner{max-width:1100px;margin:0 auto}
.room-related-inner .chapter-num{margin-bottom:1.5rem;display:block}
.room-related-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.5rem}
.room-related-link{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.25rem;border:1px solid var(--hair);color:var(--paper);text-decoration:none;font:500 .9rem/1.3 var(--sans);transition:border-color .25s ease,background .25s ease}
.room-related-link:hover{border-color:var(--blood);background:rgba(183,32,46,.05)}
.room-related-link .arr{color:var(--blood);transition:transform .3s ease}
.room-related-link:hover .arr{transform:translateX(4px)}

.room-cta-band{padding:7rem var(--pad);background:var(--ink);position:relative;overflow:hidden;text-align:left;border-top:1px solid var(--hair)}
.room-cta-band::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(183,32,46,.12),transparent 60%);pointer-events:none}
.room-cta-inner{position:relative;max-width:48rem;margin:0 auto;display:flex;flex-direction:column;gap:1.25rem}
.room-cta-inner em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}

@media(max-width:880px){
  .room-hero{min-height:62vh;padding:8rem var(--pad) 3rem}
  .room-hero-h{font-size:clamp(2.5rem,10vw,4rem)}
  .room-body{padding:3.5rem var(--pad)}
  .room-body-grid{grid-template-columns:1fr;gap:3rem}
  .room-body-aside{position:static;border-left:0;border-top:1px solid var(--hair);padding-left:0;padding-top:2.5rem}
  .room-equip,.room-rules,.room-related,.room-cta-band{padding:3.5rem var(--pad)}
  .room-equip-grid{grid-template-columns:1fr}
  .room-equip-item{border-right:0}
}

/* === BLOG INDEX === */
.blog-hero{
  padding:11rem var(--pad) 4rem;background:var(--ink);color:var(--paper);
  border-bottom:1px solid var(--hair);
}
.blog-hero .breadcrumb{margin-bottom:2rem}
.blog-hero .chapter-num{margin-bottom:1rem}
.blog-hero h1{font-size:clamp(2.5rem,5.5vw,5.5rem);line-height:.95;margin:0 0 1.25rem;max-width:18ch}
.blog-hero em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.blog-hero .body-lg{max-width:42rem;color:rgba(245,241,234,.7)}

.blog-featured{padding:4rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.blog-featured-card{
  display:grid;grid-template-columns:1.1fr 1fr;gap:0;max-width:1320px;margin:0 auto;
  color:inherit;text-decoration:none;
  background:#0F0F0E;border:1px solid var(--hair);overflow:hidden;
  transition:border-color .3s ease;
}
.blog-featured-card:hover{border-color:var(--blood)}
.blog-featured-img{
  min-height:480px;background-size:cover;background-position:center;
  filter:grayscale(.35) brightness(.85);transition:filter .5s ease,transform .8s ease;
}
.blog-featured-card:hover .blog-featured-img{filter:grayscale(0) brightness(.95);transform:scale(1.02)}
.blog-featured-body{padding:3.5rem;display:flex;flex-direction:column;gap:1.25rem;justify-content:center}
.blog-featured-body .chapter-num{margin:0}
.blog-featured-h{font-size:clamp(2rem,3.2vw,2.75rem);line-height:1.05;margin:0;letter-spacing:-.01em}
.blog-featured-body .body-lg{color:rgba(245,241,234,.78);margin:0}
.blog-meta{display:flex;flex-wrap:wrap;gap:.6rem;font:500 .72rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:rgba(245,241,234,.55);align-items:center}
.blog-meta .dot{opacity:.6}

.blog-grid-wrap{padding:5rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair)}
.blog-grid-head{max-width:1320px;margin:0 auto 3rem}
.blog-grid-head .chapter-num{display:block;margin-bottom:1rem}
.blog-grid-head h2{margin:0;font-size:clamp(2rem,4vw,3rem)}
.blog-grid-head em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}
.blog-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:2rem}
.blog-card{
  display:flex;flex-direction:column;
  background:#0F0F0E;border:1px solid var(--hair);
  color:inherit;text-decoration:none;overflow:hidden;
  transition:border-color .3s ease,transform .35s ease;
}
.blog-card:hover{border-color:var(--blood);transform:translateY(-4px)}
.blog-card-img{
  height:240px;background-size:cover;background-position:center;
  filter:grayscale(.4) brightness(.85);transition:filter .4s ease,transform .6s ease;
}
.blog-card:hover .blog-card-img{filter:grayscale(0) brightness(.95);transform:scale(1.04)}
.blog-card-body{padding:1.75rem;display:flex;flex-direction:column;gap:.875rem;flex:1}
.blog-card-cat{font:500 .7rem/1 var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--blood)}
.blog-card-h{font:400 1.35rem/1.2 var(--display);margin:0;color:var(--paper);letter-spacing:-.005em}
.blog-card-ex{font-size:.92rem;line-height:1.55;color:rgba(245,241,234,.7);margin:0;flex:1}
.blog-meta-sm{font-size:.65rem}

.blog-cta{margin-top:0;border-top:1px solid var(--hair)}

@media(max-width:880px){
  .blog-hero{padding:8rem var(--pad) 3rem}
  .blog-featured-card{grid-template-columns:1fr}
  .blog-featured-img{min-height:280px}
  .blog-featured-body{padding:2rem}
  .blog-grid-wrap{padding:3rem var(--pad)}
}

/* === POST (single) === */
.post-hero{
  min-height:62vh;padding:10rem var(--pad) 4rem;
  background-size:cover;background-position:center;
  display:flex;flex-direction:column;justify-content:flex-end;
  color:var(--paper);border-bottom:1px solid var(--hair);
}
.post-hero .breadcrumb{margin-bottom:1.5rem}
.post-hero .chapter-num{margin-bottom:1rem}
.post-h{font-size:clamp(2.25rem,5vw,4.5rem);line-height:1;margin:0 0 1.25rem;max-width:22ch;letter-spacing:-.01em}
.post-lead{font-family:var(--display);font-size:clamp(1.1rem,1.6vw,1.35rem);color:rgba(245,241,234,.8);max-width:42rem;margin:0 0 1.5rem;line-height:1.4}
.post-meta{display:flex;flex-wrap:wrap;gap:.6rem;font:500 .72rem/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:rgba(245,241,234,.55);align-items:center}
.post-meta .dot{opacity:.6}

.post-body-wrap{
  background:var(--ink);padding:5rem var(--pad);
  display:grid;grid-template-columns:minmax(220px,260px) minmax(0,1fr);gap:4rem;
  max-width:1240px;margin:0 auto;align-items:start;
}
.post-toc{position:sticky;top:8rem;border-left:1px solid var(--hair);padding-left:1.75rem}
.post-toc .chapter-num{margin-bottom:1rem;display:block}
.post-tags{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.45rem}
.post-tags li{font:500 .72rem/1 var(--display);letter-spacing:.18em;text-transform:uppercase;color:rgba(245,241,234,.6)}
.post-room-link{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border:1px solid var(--hair);color:var(--paper);text-decoration:none;transition:border-color .25s ease,background .25s ease;margin-top:.5rem}
.post-room-link:hover{border-color:var(--blood);background:rgba(183,32,46,.05)}
.post-room-link .room-link-name{font:500 .9rem/1.2 var(--sans);color:var(--paper)}
.post-room-link .room-link-arr{color:var(--blood);transition:transform .25s ease}
.post-room-link:hover .room-link-arr{transform:translateX(3px)}

.post-body{max-width:42rem;color:rgba(245,241,234,.85);font:400 1.075rem/1.78 var(--sans)}
.post-body .lead{font-family:var(--display);font-size:clamp(1.25rem,1.8vw,1.55rem);line-height:1.45;color:var(--paper);margin:0 0 2rem;letter-spacing:-.005em}
.post-body p{margin:0 0 1.5rem}
.post-body h2{font:400 clamp(1.75rem,2.6vw,2.25rem)/1.15 var(--display);margin:3rem 0 1rem;color:var(--paper);letter-spacing:-.005em}
.post-body h3{font:500 1.2rem/1.3 var(--display);margin:2rem 0 .75rem;color:var(--paper)}
.post-body ul,.post-body ol{margin:0 0 1.5rem;padding-left:1.5rem;color:rgba(245,241,234,.85)}
.post-body li{margin-bottom:.5rem;line-height:1.65}
.post-body a{color:var(--blood);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:color .25s ease}
.post-body a:hover{color:#D63E48}
.post-body strong{color:var(--paper);font-weight:600}
.post-body em{font-style:italic;color:rgba(245,241,234,.9)}
.post-body blockquote{border-left:2px solid var(--blood);padding-left:1.5rem;margin:2rem 0;font-family:var(--display);font-size:1.25rem;line-height:1.45;color:var(--paper);font-style:italic}

.post-author{padding:3.5rem var(--pad);background:#0F0F0E;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.post-author-inner{max-width:42rem;margin:0 auto}
.post-author-inner .chapter-num{margin-bottom:1rem;display:block}
.post-author-name{font:400 1.5rem/1 var(--display);color:var(--paper);margin:0 0 .5rem;letter-spacing:.01em}
.post-author-bio{font-size:.95rem;line-height:1.55;color:rgba(245,241,234,.65);margin:0}

.post-related{padding:5rem var(--pad);background:var(--ink);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.post-related-inner{max-width:1320px;margin:0 auto}
.post-related-inner .chapter-num{display:block;margin-bottom:1rem}
.post-related-inner h2{margin:0 0 2.5rem;font-size:clamp(2rem,3.5vw,2.75rem)}
.post-related-inner em{font-style:italic;color:var(--blood);-webkit-text-fill-color:var(--blood)}

@media(max-width:880px){
  .post-hero{min-height:auto;padding:8rem var(--pad) 3rem}
  .post-body-wrap{grid-template-columns:1fr;gap:2.5rem;padding:3rem var(--pad)}
  .post-toc{position:static;border-left:0;border-top:1px solid var(--hair);padding-left:0;padding-top:2rem;order:2}
  .post-body{order:1}
  .post-related,.post-author{padding:3rem var(--pad)}
}

/* === MOBILE FOUNDER (Adam) SECTION ALIGNMENT POLISH ===
   Same treatment as hero: tighter chapter eyebrow, balanced quote wrap,
   no orphan words, attribution sits in its own breathing space. */
@media(max-width:767px){
  .founder{min-height:80vh}
  .founder-body{
    max-width:100%;
    padding-bottom:5rem;
    gap:1rem;
  }
  .founder-body .chapter-num{
    font-size:.62rem;letter-spacing:.22em;
    margin-bottom:.5rem;
  }
  .founder-body .hero-quote{
    font-size:clamp(1.4rem,5.6vw,1.85rem);
    line-height:1.32;letter-spacing:-.005em;
    text-wrap:balance;                                        /* prevents 1-word orphan lines */
    max-width:30ch;
    margin:0;
  }
  .founder-body .hero-attr{
    margin-top:1rem;
    font-size:.62rem;letter-spacing:.22em;
    gap:.75rem;
  }
  .founder-body .hero-attr::before{width:24px}
}
@media(max-width:380px){
  .founder-body .hero-quote{font-size:clamp(1.25rem,6vw,1.65rem);max-width:26ch}
  .founder-body .chapter-num{font-size:.58rem}
}

/* === NAV SOCIAL CLUSTER (desktop right nav) === */
.nav-social-divider{
  display:none;
  width:1px;height:18px;background:rgba(245,241,234,.18);
  margin:0 .25rem;align-self:center;
}
.nav-social{display:none;align-items:center;gap:.45rem}
@media(min-width:1024px){
  .nav-social-divider{display:inline-block}
  .nav-social{display:inline-flex}
}
.nav-social-link{
  width:32px;height:32px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  color:rgba(245,241,234,.75);
  border:1px solid rgba(245,241,234,.18);
  background:rgba(245,241,234,.02);
  transition:color .25s ease,border-color .25s ease,background .25s ease,transform .35s cubic-bezier(.2,.6,.2,1);
  position:relative;isolation:isolate;
}
.nav-social-link svg{width:14px;height:14px;display:block;position:relative;z-index:2}
.nav-social-link::after{
  content:"";position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle,rgba(183,32,46,.6),rgba(183,32,46,0) 70%);
  opacity:0;transform:scale(.7);
  transition:opacity .35s ease,transform .55s cubic-bezier(.2,.6,.2,1);
  z-index:1;
}
.nav-social-link:hover{
  color:var(--paper);border-color:var(--blood);
  background:rgba(183,32,46,.08);transform:translateY(-2px);
}
.nav-social-link:hover::after{opacity:1;transform:scale(1)}
.nav-social-link:focus-visible{outline:2px solid var(--blood);outline-offset:2px}

/* === SECTION 01 — EDITORIAL STATS LINE
   Replaces the plain caption "Seven distinct training environments..."
   with three oversized stats separated by hairline dividers. */
.rooms-head--editorial{
  display:flex;flex-direction:column;gap:1.5rem;
  padding:5rem var(--pad) 3rem;
  max-width:1320px;margin:0 auto;
}
.rooms-head--editorial > .chapter-num{margin:0}
.rooms-stat-line{
  display:grid;grid-template-columns:auto 1px auto 1px auto;
  align-items:start;gap:1.75rem;justify-content:space-between;
  padding-top:1rem;border-top:1px solid var(--hair);
  margin-top:.5rem;
}
.rooms-stat{
  display:flex;flex-direction:column;gap:.625rem;
  min-width:0;             /* allow grid track to shrink rather than overflow */
}
.rooms-stat-n{
  /* Reduced from 7vw → 5vw and capped at 5.25rem so "14,000" actually fits its column at 1280–1920 */
  font:400 clamp(3rem,5vw,5.25rem)/1 var(--display);
  color:var(--paper);letter-spacing:-.015em;
  font-feature-settings:"tnum" 1;
  white-space:nowrap;       /* keep "14,000" on one line */
}
.rooms-stat-n em{
  font-family:inherit;font-style:italic;font-weight:inherit;
  color:var(--blood);-webkit-text-fill-color:var(--blood);
  font-size:.95em;letter-spacing:-.005em;
}
.rooms-stat-l{
  font:500 .68rem/1.45 var(--display);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(245,241,234,.6);
}
.rooms-stat-l em{
  font-family:inherit;font-style:italic;color:var(--blood);
  -webkit-text-fill-color:var(--blood);letter-spacing:.18em;
}
.rooms-stat-sep{
  align-self:stretch;width:1px;min-height:5.5rem;
  background:linear-gradient(180deg,transparent,var(--hair) 25%,var(--hair) 75%,transparent);
  margin-top:.5rem;justify-self:center;
}
@media(max-width:767px){
  .rooms-head--editorial{padding:3rem var(--pad) 2rem}
  /* stack the 3 stats vertically so "14,000" can't blow out its column */
  .rooms-stat-line{grid-template-columns:1fr;gap:0}
  .rooms-stat{min-width:0}
  .rooms-stat-n{font-size:clamp(2.5rem,12vw,3.5rem)}
  .rooms-stat-sep{display:none}
  .rooms-stat{border-top:1px solid var(--hair);padding-top:.875rem;margin-top:.875rem}
  .rooms-stat:first-of-type{border-top:0;padding-top:0;margin-top:0}
}

/* === MOBILE HERO ALIGNMENT POLISH ===
   Fixes: eyebrow wrapping mid-phrase, headline orphan "IT.", loose sub line-height,
   stranded CTA above pin-cta. Tighter rhythm, no sloppy widow lines. */
@media(max-width:767px){
  .hero-anchor{max-width:100%;padding-bottom:8rem}            /* breathing room above fixed .pin-cta */
  .hero-eyebrow{
    font-size:.62rem;letter-spacing:.22em;line-height:1.35;
    margin-bottom:1rem;max-width:22ch;                        /* forces a clean two-line wrap, not mid-segment */
  }
  .hero-headline{
    font-size:clamp(2.15rem,8.8vw,2.75rem);
    line-height:1.04;letter-spacing:-.005em;
    text-wrap:balance;                                        /* eliminates the "IT." orphan */
    max-width:14ch;
  }
  .hero-sub{
    font-size:.95rem;line-height:1.5;max-width:30rem;
    margin-top:1.25rem;
  }
  .hero-foot{margin-top:1.5rem;gap:1rem}
  .hero-foot .link-arrow{
    font-size:.72rem;letter-spacing:.2em;                     /* match button cadence below */
  }
}

/* Small-phone tightening — keep iPhone SE / 375 clean */
@media(max-width:380px){
  .hero-eyebrow{font-size:.58rem;max-width:20ch}
  .hero-headline{font-size:clamp(1.85rem,9.2vw,2.4rem);max-width:13ch}
}

/* === REDUCED MOTION === */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .marquee-track{animation:none}
  .hero-video{display:none}
  .hero-frame{display:block}
}

/* ============================================================
   VIP MEMBERSHIP PAGE (/vip)
   ============================================================ */

/* HERO */
.vip-hero{
  position:relative;min-height:88vh;padding:clamp(8rem,14vw,12rem) clamp(1.25rem,4vw,4rem) clamp(4rem,6vw,6rem);
  background-size:cover;background-position:center;color:#F5F1EA;
  display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(1rem,2vw,1.75rem);
}
.vip-hero .breadcrumb{color:rgba(245,241,234,.7);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:auto}
.vip-hero .breadcrumb a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(245,241,234,.3)}
.vip-hero-h{font-size:clamp(3rem,8vw,7.5rem);line-height:.95;color:#F5F1EA;max-width:18ch;margin:0}
.vip-hero-h em{color:#B7202E;font-style:italic}
.vip-hero-sub{font-size:clamp(1.05rem,1.5vw,1.35rem);line-height:1.5;color:rgba(245,241,234,.86);max-width:54ch;margin:0}
.vip-hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(.75rem,1.5vw,1.5rem);margin-top:.5rem}
.vip-price-tag{display:inline-flex;align-items:baseline;gap:.35rem;color:#F5F1EA}
.vip-price-tag-n{font-family:'Michroma',sans-serif;font-size:clamp(1.5rem,2.5vw,2.1rem);letter-spacing:.04em;color:#B7202E}
.vip-price-tag-l{font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(245,241,234,.7)}
.vip-hero-divider{width:1px;height:1.25rem;background:rgba(245,241,234,.3)}
.vip-hero-meta-item{font-size:.95rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(245,241,234,.85)}
.vip-hero-cta{align-self:flex-start;margin-top:.75rem}

/* PAIR — what you get */
.vip-pair{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem);background:#0A0A09;color:#F5F1EA}
.vip-pair-head{max-width:1200px;margin:0 auto clamp(2.5rem,5vw,4rem);text-align:left}
.vip-pair-head .editorial-h{font-size:clamp(2.25rem,4.5vw,4rem);color:#F5F1EA;margin:.5rem 0 0;max-width:18ch}
.vip-pair-head .editorial-h em{color:#B7202E;font-style:italic}
.vip-pair-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem)}
.vip-pair-card{position:relative;padding:clamp(1.75rem,2.5vw,2.5rem);background:rgba(245,241,234,.025);border:1px solid rgba(245,241,234,.1);border-radius:2px}
.vip-pair-n{display:block;font-family:'Michroma',sans-serif;font-size:.75rem;letter-spacing:.22em;color:#B7202E;margin-bottom:.75rem}
.vip-pair-h{font-size:clamp(1.75rem,3vw,2.75rem);color:#F5F1EA;margin:0 0 1.25rem;line-height:1.05;max-width:14ch}
.vip-pair-h em{color:#B7202E;font-style:italic}
.vip-pair-card .body-lg{color:rgba(245,241,234,.85);margin:0 0 1.25rem}
.vip-pair-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}
.vip-pair-list li{position:relative;padding-left:1.25rem;color:rgba(245,241,234,.78);font-size:.98rem;line-height:1.45}
.vip-pair-list li::before{content:'';position:absolute;left:0;top:.65rem;width:.5rem;height:1px;background:#B7202E}
@media (max-width:760px){.vip-pair-grid{grid-template-columns:1fr}}

/* PRICE PANEL */
.vip-price-sec{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem);background:#0A0A09;color:#F5F1EA;border-top:1px solid rgba(245,241,234,.06)}
.vip-price-head{max-width:1200px;margin:0 auto clamp(2.5rem,5vw,4rem)}
.vip-price-head .editorial-h{font-size:clamp(2.25rem,4.5vw,4rem);color:#F5F1EA;margin:.5rem 0 0;max-width:18ch}
.vip-price-head .editorial-h em{color:#B7202E;font-style:italic}
.vip-price-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.vip-price-panel{background:#0A0A09;color:#F5F1EA;padding:clamp(2rem,3.5vw,3.5rem);border-radius:2px;position:relative;overflow:hidden}
.vip-price-panel::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:#B7202E}
.vip-price-eyebrow{font-family:'Michroma',sans-serif;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;color:#B7202E;margin:0 0 1.25rem}
.vip-price-figure{display:flex;align-items:baseline;gap:.25rem;margin:0 0 2rem;line-height:1}
.vip-price-currency{font-family:'Michroma',sans-serif;font-size:clamp(1.5rem,2.5vw,2rem);color:rgba(245,241,234,.6)}
.vip-price-num{font-family:'Michroma',sans-serif;font-size:clamp(4.5rem,9vw,7rem);letter-spacing:-.02em;color:#F5F1EA}
.vip-price-unit{font-size:.95rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(245,241,234,.6);margin-left:.5rem}
.vip-price-includes{list-style:none;padding:0;margin:0 0 2rem;display:flex;flex-direction:column;gap:.7rem}
.vip-price-includes li{position:relative;padding-left:1.5rem;color:rgba(245,241,234,.88);font-size:1rem;line-height:1.45}
.vip-price-includes li::before{content:'';position:absolute;left:0;top:.45rem;width:.85rem;height:.85rem;border:1px solid #B7202E;border-radius:50%;background:transparent}
.vip-price-includes li::after{content:'';position:absolute;left:.25rem;top:.7rem;width:.35rem;height:.35rem;background:#B7202E;border-radius:50%}
.vip-price-cta{width:100%;text-align:center;margin-top:.5rem}
.vip-price-aside{padding-top:1rem}
.vip-price-aside .chapter-num{color:#B7202E;margin-bottom:.5rem}
.vip-price-aside-h{font-size:clamp(1.75rem,3vw,2.5rem);color:#F5F1EA;margin:0 0 1.25rem;line-height:1.1;max-width:18ch}
.vip-price-aside-h em{color:#B7202E;font-style:italic}
.vip-price-aside .body-lg{color:rgba(245,241,234,.85);margin:0 0 1.25rem}
.vip-price-aside .muted{color:rgba(245,241,234,.5)}
@media (max-width:880px){.vip-price-grid{grid-template-columns:1fr}}

/* HOURS */
.vip-hours-sec{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem);background:#0A0A09;color:#F5F1EA}
.vip-hours-head{max-width:900px;margin:0 auto clamp(2rem,4vw,3.5rem);text-align:center}
.vip-hours-head .editorial-h{font-size:clamp(2.25rem,4.5vw,4rem);color:#F5F1EA;margin:.5rem 0 1rem}
.vip-hours-head .editorial-h em{color:#B7202E;font-style:italic}
.vip-hours-sub{color:rgba(245,241,234,.78);max-width:50ch;margin:0 auto}
.vip-hours-grid{max-width:760px;margin:0 auto;border-top:1px solid rgba(245,241,234,.12)}
.vip-hours-row{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:1rem;padding:1.1rem 0;border-bottom:1px solid rgba(245,241,234,.12)}
.vip-hours-day{font-family:'Michroma',sans-serif;font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:#F5F1EA}
.vip-hours-time{font-size:1.05rem;color:rgba(245,241,234,.85);letter-spacing:.04em}
.vip-hours-sep{color:#B7202E;margin:0 .5rem}
.vip-hours-foot{margin-top:1.5rem;color:rgba(245,241,234,.55)}

/* WHY VIP */
.vip-why{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem);background:#0A0A09;color:#F5F1EA;border-top:1px solid rgba(245,241,234,.06)}
.vip-why-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:.4fr .6fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.vip-why-left .editorial-h{font-size:clamp(2.25rem,4vw,3.75rem);color:#F5F1EA;margin:.5rem 0 0;line-height:1;max-width:14ch}
.vip-why-left .editorial-h em{color:#B7202E;font-style:italic}
.vip-why-right .body-lg{color:rgba(245,241,234,.85);margin:0 0 1.25rem;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.55}
.vip-why-line{font-family:'DM Serif Text',serif;font-style:italic;font-size:clamp(1.3rem,1.8vw,1.55rem)!important;color:#F5F1EA;border-left:2px solid #B7202E;padding-left:1.25rem;margin-top:1.75rem!important}
@media (max-width:880px){.vip-why-grid{grid-template-columns:1fr}}

/* APPLY */
.vip-apply{padding:clamp(4rem,7vw,8rem) clamp(1.25rem,4vw,4rem);background:#0A0A09;color:#F5F1EA}
.vip-apply-head{max-width:900px;margin:0 auto clamp(2.5rem,5vw,4rem);text-align:center}
.vip-apply-head .editorial-h{font-size:clamp(2.25rem,4.5vw,4rem);color:#F5F1EA;margin:.5rem 0 1rem}
.vip-apply-head .editorial-h em{color:#B7202E;font-style:italic}
.vip-apply-head .body-lg{color:rgba(245,241,234,.82);max-width:55ch;margin:0 auto}
.vip-apply-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.vip-apply-side{padding:clamp(1.5rem,2vw,2rem);background:rgba(245,241,234,.03);border:1px solid rgba(245,241,234,.1);border-radius:2px}
.vip-apply-side .chapter-num{color:#B7202E;margin-bottom:.75rem;display:block}
.vip-apply-phone{display:block;font-family:'Michroma',sans-serif;font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:.02em;color:#F5F1EA;text-decoration:none;margin:0 0 .5rem;line-height:1}
.vip-apply-phone:hover{color:#B7202E}
.vip-apply-side .muted{color:rgba(245,241,234,.55)}
.vip-apply-side .hairline{border:0;border-top:1px solid rgba(245,241,234,.15);margin:1.75rem 0}
.vip-apply-addr{font-size:1rem;line-height:1.5;color:rgba(245,241,234,.85);margin:0 0 1rem}
.vip-apply-map{color:#B7202E;text-decoration:none;font-size:.95rem;letter-spacing:.04em;border-bottom:1px solid rgba(183,32,46,.4)}
.vip-apply-map:hover{border-bottom-color:#B7202E}
@media (max-width:880px){.vip-apply-grid{grid-template-columns:1fr}}

/* ============================================================
   /coaches + /coaches/[slug]  —  specialty pillar pages
   /personal-training/california/[city]  —  city near-me pages
   Added 2026-06-17. Uses only --ink, --paper, --blood, --display, --serif, --sans, --mute.
   ============================================================ */

/* SPEC HERO — shared by specialty + coaches hub */
.spec-hero{min-height:78vh;padding:11rem 0 4.5rem;background-size:cover;background-position:center 32%;background-repeat:no-repeat;color:var(--paper);display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.spec-hero .container{max-width:1280px;margin:0 auto;padding:0 1.5rem}
.spec-h1{margin:1.25rem 0 1.5rem}
.spec-intro{max-width:46rem;margin-bottom:1.75rem;color:var(--mute-2)}
.spec-meta{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;font:500 .8125rem/1 var(--sans);color:var(--mute);letter-spacing:.02em;margin-bottom:2rem}
.spec-meta strong{color:var(--paper);font-weight:600}
.spec-meta .muted{opacity:.35}
.spec-hero-cta{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center}

/* SPEC EXPECT GRID — 4 numbered cards */
.spec-expect-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2.25rem;margin-top:2.5rem}
.spec-expect-card{padding:2rem 0;border-top:1px solid rgba(245,241,234,.15)}
.spec-expect-num{display:block;font:400 .75rem/1 var(--display);color:var(--blood);letter-spacing:.18em;margin-bottom:1.25rem}
.spec-expect-title{font:400 1.0625rem/1.3 var(--display);letter-spacing:0;color:var(--paper);margin:0 0 .85rem;max-width:24ch;text-wrap:balance}
.spec-expect-body{font:400 .9375rem/1.65 var(--sans);color:var(--mute-2);max-width:36rem}

/* SPEC MATCHED ROOM split */
.spec-room .container{align-items:stretch}
.spec-room-img{min-height:360px;position:relative;overflow:hidden}
.spec-room-photo{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat;filter:saturate(.85) contrast(1.05)}
.spec-room-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(10,10,9,.45))}

/* SPEC RELATED specialties grid */
.spec-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem;margin-top:2rem}
.spec-related-card{display:block;padding:1.75rem;background:var(--ink-2);border:1px solid rgba(245,241,234,.08);border-radius:4px;text-decoration:none;transition:border-color .2s,transform .2s}
.spec-related-card:hover{border-color:var(--blood);transform:translateY(-2px)}
.spec-related-card .chapter-num{margin-bottom:.85rem}
.spec-related-title{font:400 1.125rem/1.25 var(--display);color:var(--paper);letter-spacing:0;margin:0 0 1.25rem}

/* SPEC FINAL CTA + COMING-SOON sub-block */
.spec-final-cta .editorial-h em{font-style:italic;color:var(--blood)}
.spec-coming{margin-top:3rem;padding-top:2.5rem;border-top:1px solid rgba(245,241,234,.1)}
.spec-coming .eyebrow{color:var(--mute);margin-bottom:1.25rem}
.spec-coaches-foot{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(245,241,234,.08)}

/* SPEC HUB grid (/coaches index) — 8 large editorial cards */
.spec-hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2.5rem}
.spec-hub-card{display:block;padding:2.25rem 2rem;background:var(--ink);border:1px solid rgba(245,241,234,.1);border-radius:4px;text-decoration:none;transition:border-color .25s,transform .25s,background .25s;position:relative;overflow:hidden}
.spec-hub-card::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--blood);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.spec-hub-card:hover{border-color:var(--blood);background:var(--ink-2);transform:translateY(-3px)}
.spec-hub-card:hover::before{transform:scaleX(1)}
.spec-hub-num{display:block;font:400 .6875rem/1 var(--display);color:var(--blood);letter-spacing:.22em;margin-bottom:.85rem}
.spec-hub-card .chapter-num{margin-bottom:.85rem}
.spec-hub-title{font:400 1.25rem/1.25 var(--display);letter-spacing:0;color:var(--paper);margin:0 0 .85rem;max-width:18ch;text-wrap:balance}
.spec-hub-blurb{font:400 .875rem/1.55 var(--sans);color:var(--mute-2);max-width:42ch;margin:0 0 1.25rem}
.spec-hub-meta{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center;font:500 .75rem/1 var(--sans);color:var(--mute);letter-spacing:.02em;margin-bottom:1.5rem}
.spec-hub-meta strong{color:var(--paper);font-weight:600}
.spec-hub-meta .muted{opacity:.35}

/* CITY HERO — variant of spec-hero, gym-near-me focused */
.city-hero{padding:9rem 0 4rem;background:var(--ink)}
.city-hero .container{max-width:1280px;margin:0 auto;padding:0 1.5rem}
.city-h1{margin:1.25rem 0 1.75rem}
.city-h1 em{font-style:italic;color:var(--blood)}
.city-hero .intro-copy{max-width:48rem;margin-bottom:1.75rem;color:var(--mute-2);font:400 1.0625rem/1.65 var(--sans)}
.city-hero .intro-copy strong{color:var(--paper);font-weight:600}
.city-hero-meta{display:flex;flex-wrap:wrap;gap:.85rem;align-items:center;font:500 .8125rem/1 var(--sans);color:var(--mute);letter-spacing:.02em;margin-bottom:2rem}
.city-hero-meta strong{color:var(--paper);font-weight:600}
.city-hero-meta .muted{opacity:.35}
.city-hero-cta{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:center}

/* NEAR-ME ANCHOR BLOCK — search-intent dual-card + keyword strip */
.city-near-me{padding:5rem 0}
.city-near-me .editorial-h em{font-style:italic;color:var(--blood)}
.city-near-me-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin:2.5rem 0 2rem}
.city-near-me-card{padding:2rem;background:var(--ink);border:1px solid rgba(245,241,234,.1);border-radius:4px;display:flex;flex-direction:column;gap:1rem}
.city-near-me-card .chapter-num{color:var(--blood);margin-bottom:.25rem}
.city-near-me-card h3{font:400 1.125rem/1.25 var(--display);letter-spacing:0;color:var(--paper);margin:0;text-wrap:balance}
.city-near-me-card p{font:400 .9375rem/1.65 var(--sans);color:var(--mute-2);margin:0;flex-grow:1}
.city-near-me-card .link-arrow{align-self:flex-start;margin-top:.5rem}
.city-keyword-strip{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(245,241,234,.08)}
.city-keyword-strip span{padding:.45rem .85rem;background:rgba(245,241,234,.04);border:1px solid rgba(245,241,234,.08);border-radius:999px;font:500 .6875rem/1 var(--sans);color:var(--mute);letter-spacing:.02em;text-transform:lowercase}

/* CITY SPECIALTY GRID — 8 pillar links on each city page */
.city-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}
.city-spec-card{display:block;padding:1.5rem 1.25rem;background:var(--ink);border:1px solid rgba(245,241,234,.1);border-radius:4px;text-decoration:none;transition:border-color .2s,transform .2s,background .2s;position:relative}
.city-spec-card::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--blood);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.city-spec-card:hover{border-color:var(--blood);background:var(--ink-2);transform:translateY(-2px)}
.city-spec-card:hover::before{transform:scaleX(1)}
.city-spec-num{display:block;font:400 .6875rem/1 var(--display);color:var(--blood);letter-spacing:.22em;margin-bottom:.5rem}
.city-spec-card .chapter-num{margin-bottom:.65rem;font-size:.625rem}
.city-spec-title{font:400 .875rem/1.3 var(--display);letter-spacing:0;color:var(--paper);margin:0 0 .85rem;text-wrap:balance}
.city-spec-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font:500 .6875rem/1 var(--sans);color:var(--mute);letter-spacing:.02em;margin-bottom:.85rem}
.city-spec-meta strong{color:var(--paper);font-weight:600}
.city-spec-meta .muted{opacity:.35}

/* BUTTONS */
.btn-blood{display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.5rem;background:var(--blood);color:var(--paper);font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:background .2s,transform .2s}
.btn-blood:hover{background:#931922;transform:translateY(-1px)}
.btn-blood .arr{font:400 italic 1rem/1 var(--serif)}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;padding:.95rem 1.5rem;background:transparent;color:var(--paper);font:600 11px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border:1px solid var(--paper);border-radius:2px;transition:border-color .2s,color .2s,background .2s}
.btn-outline:hover{border-color:var(--blood);color:var(--blood);background:rgba(183,32,46,.05)}
.btn-outline .arr{font:400 italic 1rem/1 var(--serif)}

/* BULLET LIST utility */
.bullet-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.85rem}
.bullet-list li{font:400 1rem/1.55 var(--sans);color:var(--mute-2);padding-left:1.5rem;position:relative}
.bullet-list li::before{content:"";position:absolute;left:0;top:.7em;width:.75rem;height:1px;background:var(--blood)}

/* INLINE link variant */
.link-inline{color:var(--blood);text-decoration:underline;text-decoration-color:rgba(183,32,46,.4);text-underline-offset:3px}
.link-inline:hover{text-decoration-color:var(--blood)}

/* CHIP-ARR variant — "all cities" / "more" at end of chip rows */
.chip-arr{background:rgba(183,32,46,.08);border-color:rgba(183,32,46,.3)}
.chip-arr:hover{background:var(--blood);color:var(--paper);border-color:var(--blood)}

/* ============================================================
   MOBILE @ 767px and @ 380px
   ============================================================ */
@media (max-width: 767px) {
  .spec-hero{min-height:66vh;padding:8rem 0 3rem;background-position:center 35%}
  .spec-hero-cta{flex-direction:column;align-items:stretch;gap:1rem}
  .spec-hero-cta .btn-blood,.spec-hero-cta .btn-outline,.city-hero-cta .btn-blood,.city-hero-cta .btn-outline{width:100%;justify-content:center}

  .spec-expect-grid{grid-template-columns:1fr;gap:1.25rem}
  .spec-expect-card{padding:1.5rem 0}
  .spec-expect-title{font-size:1.25rem;max-width:none}

  .spec-hub-grid{grid-template-columns:1fr;gap:1rem}
  .spec-hub-card{padding:1.75rem 1.5rem}
  .spec-hub-title{font-size:1.375rem;max-width:none}

  .spec-room .container{display:flex;flex-direction:column}
  .spec-room-img{min-height:240px;margin-top:1.5rem}

  .spec-related-grid{grid-template-columns:1fr}

  .city-hero{padding:6.5rem 0 3rem}
  .city-h1{font-size:clamp(2.25rem,9vw,3.5rem);text-wrap:balance;max-width:14ch}
  .city-hero .intro-copy{font-size:1rem;max-width:none}
  .city-hero-cta{flex-direction:column;align-items:stretch;gap:1rem}

  .city-near-me-grid{grid-template-columns:1fr;gap:1rem}
  .city-near-me-card{padding:1.5rem}
  .city-near-me-card h3{font-size:1.25rem;text-wrap:balance}
  .city-keyword-strip{gap:.4rem;margin-top:1.5rem;padding-top:1.5rem}
  .city-keyword-strip span{font-size:.625rem;padding:.35rem .65rem}

  .city-spec-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}
  .city-spec-card{padding:1.25rem 1rem}
  .city-spec-title{font-size:.9375rem}
}

@media (max-width: 380px) {
  .city-spec-grid{grid-template-columns:1fr}
  .spec-hero-cta,.city-hero-cta{gap:.75rem}
  .spec-h1,.city-h1{font-size:clamp(1.875rem,9.5vw,3rem)}
  .city-hero-meta,.spec-meta{font-size:.75rem;gap:.5rem}
}

/* end pillars + city additions */

/* === 2026-06-17 mobile/iPad overflow hardening (synced from live; see also inline fixes above) === */
/* wit-pillar + wit-visit: allow grid tracks to shrink + long words to wrap at ALL widths (fixes 768 iPad overflow) */
.wit-pillar{min-width:0}
.wit-pillar-h{overflow-wrap:anywhere}
.wit-visit-card{min-width:0}
.wit-visit-val,.wit-visit-val a{overflow-wrap:anywhere}
/* wit-numbers: 5 cols is too tight on iPad portrait — 3 cols at 768-1023 */
@media(min-width:768px) and (max-width:1023px){
  .wit-numbers-inner{grid-template-columns:repeat(3,1fr)}
  .wit-num-cell{min-width:0;border-bottom:1px solid var(--hair)}
}
/* recovery cards: clip the full-bleed image to the card so it can't overflow at the 1024 breakpoint */
.recovery{overflow:hidden}

/* === 2026-06-17 nav fix (synced from live): full bar only fits >=1280; hamburger for iPad (<=1279); cap logo + tighten gaps 1280-1439 === */
@media(max-width:1279px){
  .nav-links{display:none !important}
  .nav-toggle{display:flex !important}
}
@media(min-width:1280px){
  .nav-links{gap:1.4rem}
  .nav-links a{letter-spacing:.16em}
}
@media(min-width:1024px) and (max-width:1439px){
  .nav-logo img{height:74px}
  .nav-logo::before{width:96px;height:46px;top:-6px}
}

/* Trainer "photo coming soon" placeholder — show the full branded logo (no crop / no grayscale) */
.t-card-photo-placeholder{background-size:contain !important;background-repeat:no-repeat;background-position:center;background-color:#0a0a09}
.t-card.is-coming .t-card-photo-placeholder{filter:none}

/* === HEADER "THE ROOMS" DROPDOWN === */
/* Desktop: pure CSS disclosure — reveals on hover OR keyboard focus-within (a11y).
   No JS dependency. Sits inside the left .nav-links flex row. */
.nav-has-sub{position:relative;display:inline-flex;align-items:center}
.nav-sub-trigger{display:inline-flex;align-items:center}
.nav-sub-trigger::after{
  content:"";margin-left:.45em;width:0;height:0;
  border-left:3.5px solid transparent;border-right:3.5px solid transparent;
  border-top:4px solid currentColor;opacity:.55;transition:opacity .2s,transform .2s;
}
.nav-has-sub:hover .nav-sub-trigger::after,
.nav-has-sub:focus-within .nav-sub-trigger::after{opacity:1;transform:rotate(180deg)}
.nav-sub{
  position:absolute;top:100%;left:0;margin-top:.55rem;min-width:236px;
  display:grid;gap:.05rem;padding:.5rem;
  background:rgba(10,10,9,.97);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);backdrop-filter:blur(14px) saturate(1.1);
  border:1px solid rgba(245,241,234,.10);border-radius:10px;
  box-shadow:0 20px 48px rgba(0,0,0,.55);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .2s ease,transform .2s ease,visibility .2s;
  z-index:130;pointer-events:none;
}
/* Invisible bridge closes the gap between trigger and menu so hover doesn't drop */
.nav-sub::before{content:"";position:absolute;top:-.6rem;left:0;right:0;height:.6rem}
.nav-has-sub:hover .nav-sub,
.nav-has-sub:focus-within .nav-sub{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.nav-sub a{
  display:block;padding:.62rem .8rem;border-radius:6px;white-space:nowrap;
  letter-spacing:.16em !important;color:var(--mute-2);
}
.nav-sub a:hover,.nav-sub a:focus-visible{background:rgba(183,32,46,.16);color:var(--paper)}

/* Mobile drawer: nested rooms sub-list under "The Rooms" */
.nav-drawer-sub{list-style:none;margin:.35rem 0 .2rem;padding:0 0 0 2.6rem;display:grid;gap:.1rem}
.nav-drawer-sub a{
  display:block;padding:.4rem 0;
  font:500 .82rem/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;
  color:var(--mute-2);
}
.nav-drawer-sub a:hover{color:var(--blood)}

/* === PANATTA — "IN MOTION" Instagram reel grid === */
.pn-videos{padding:7rem var(--pad);background:var(--ink);border-bottom:1px solid var(--hair);text-align:center}
.pn-videos .eyebrow{justify-content:center}
.pn-videos .editorial-h{margin:.4rem 0 0}
.pn-videos-lead{max-width:44rem;margin:1.25rem auto 0;color:var(--mute-2);font-size:1.05rem;line-height:1.6}
.pn-videos-grid{display:grid;grid-template-columns:repeat(auto-fit,336px);gap:1.75rem;justify-content:center;align-items:start;margin:3rem auto 0}
.pn-videos-grid .instagram-media{margin:0 auto !important;min-width:0 !important}
.pn-videos-foot{margin:2.5rem 0 0}
.pn-videos-foot a{color:var(--blood);letter-spacing:.06em;font-weight:600;text-transform:uppercase;font-size:.8rem;transition:color .2s}
.pn-videos-foot a:hover{color:var(--paper)}
@media(max-width:420px){.pn-videos-grid{grid-template-columns:minmax(0,336px)}}

/* === DISCIPLINE HERO — coach-montage background === */
.spec-hero--montage{background:var(--ink)}
.spec-hero-montage{position:absolute;inset:0;z-index:0;display:grid;grid-template-columns:repeat(9,1fr);grid-auto-rows:1fr}
.spec-montage-cell{display:block;width:100%;height:100%;background-size:cover;background-position:center 22%;filter:grayscale(.3) brightness(.72) contrast(1.04)}
.spec-hero-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(10,10,9,.42) 0%,rgba(10,10,9,.6) 48%,rgba(10,10,9,1) 100%)}
.spec-hero--montage .container{position:relative;z-index:2}
@media(max-width:760px){.spec-hero-montage{grid-template-columns:repeat(4,1fr)}}

/* === PANATTA — "IN MOTION" video motion wall + lightbox === */
.pn-wall{padding:7rem 0;background:var(--ink);border-bottom:1px solid var(--hair);overflow:hidden}
.pn-wall .container{text-align:center}
.pn-wall .eyebrow{justify-content:center}
.pn-wall .editorial-h{margin:.4rem 0 0}
.pn-wall-lead{max-width:42rem;margin:1.1rem auto 0;color:var(--mute-2);font-size:1.05rem;line-height:1.6}
.pn-wall-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;max-width:1100px;margin:3rem auto 0;padding:0 var(--pad)}
.pn-wall-cell{position:relative;aspect-ratio:9/16;border:0;padding:0;margin:0;border-radius:14px;overflow:hidden;cursor:pointer;background:#000;isolation:isolate;box-shadow:0 18px 40px rgba(0,0,0,.45);transition:transform .35s ease}
.pn-wall-cell:hover{transform:translateY(-4px) scale(1.012)}
.pn-wall-cell:focus-visible{outline:2px solid var(--blood);outline-offset:3px}
.pn-wall-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.pn-wall-cell::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,9,.04) 58%,rgba(10,10,9,.55) 100%);pointer-events:none;z-index:1}
.pn-wall-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;background:rgba(10,10,9,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1.5px solid rgba(245,241,234,.7);z-index:2;transition:opacity .3s,background .3s,border-color .3s;pointer-events:none}
.pn-wall-play::before{content:"";position:absolute;left:54%;top:50%;transform:translate(-50%,-50%);border-style:solid;border-width:10px 0 10px 16px;border-color:transparent transparent transparent var(--paper)}
.pn-wall-cell:hover .pn-wall-play{background:var(--blood);border-color:var(--blood)}
@media(max-width:900px){.pn-wall-grid{grid-template-columns:repeat(2,1fr);max-width:640px}}
@media(max-width:480px){.pn-wall-grid{gap:.6rem}}
.pn-lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(6,6,8,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:2rem}
.pn-lb[hidden]{display:none}
.pn-lb-vid{max-width:min(90vw,520px);max-height:90vh;width:auto;height:auto;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.6);background:#000}
.pn-lb-close{position:absolute;top:1.2rem;right:1.4rem;width:44px;height:44px;border-radius:50%;border:1px solid rgba(245,241,234,.25);background:rgba(10,10,9,.6);color:var(--paper);font-size:1.6rem;line-height:1;cursor:pointer;transition:background .2s,border-color .2s}
.pn-lb-close:hover{background:var(--blood);border-color:var(--blood)}

/* Wellness booking consent microcopy */
.wel-consent{font-size:.72rem;line-height:1.55;color:rgba(242,240,235,.5);margin:.4rem 0 1.1rem;max-width:34rem}
.wel-consent a{color:rgba(242,240,235,.72);text-decoration:underline}

/* By Discipline (home) — discipline card grid [restored 2026-06-19] */
.h-disc{padding:4rem var(--pad) 6rem;max-width:1340px;margin:0 auto}
.h-disc-head{max-width:48rem;margin:0 0 2.75rem}
.h-disc-head .body-lg{margin-top:1.1rem;color:rgba(242,240,235,.68)}
.h-disc-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--hair);border:1px solid var(--hair)}
@media(min-width:600px){.h-disc-grid{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.h-disc-grid{grid-template-columns:repeat(4,1fr)}}
.h-disc-card{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:1.85rem 1.6rem 1.5rem;background:var(--ink);text-decoration:none;color:inherit;transition:background .25s ease}
.h-disc-card:hover{background:#15140f}
.h-disc-num{font-family:var(--display-condensed);font-size:1.4rem;line-height:1;color:rgba(242,240,235,.3);letter-spacing:.04em}
.h-disc-card .chapter-num{color:var(--blood)}
.h-disc-title{font-family:var(--display-condensed);font-size:1.55rem;line-height:1.05;margin:.1rem 0 0;color:#f2f0eb}
.h-disc-room{font-size:.82rem;color:rgba(242,240,235,.5);margin:0}
.h-disc-card .link-arrow{margin-top:1rem;font-size:.78rem}
.h-disc-foot{margin-top:2.5rem;text-align:center}

/* ── How To Start (home) — visible HowTo steps [audit 2026-06-19] ── */
.h-start-steps{list-style:none;margin:0 auto;padding:0;max-width:1320px;display:grid;grid-template-columns:1fr;gap:1.75rem}
@media(min-width:760px){.h-start-steps{grid-template-columns:repeat(2,1fr);gap:2rem}}
@media(min-width:1024px){.h-start-steps{grid-template-columns:repeat(4,1fr);gap:2.25rem}}
.h-start-step{display:flex;gap:1rem;align-items:flex-start;border-top:1px solid var(--hair);padding-top:1.25rem}
.h-start-num{font:700 12px/1 var(--sans);letter-spacing:.2em;color:var(--blood);padding-top:.25rem}
.h-start-title{font-size:1.05rem;margin:0 0 .4rem}
.h-start-body p{color:var(--mute-2);font-size:.92rem;line-height:1.55;margin:0}
.h-start-body a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.h-start-body a:hover{color:var(--blood)}

/* ── Room → specialty pillar links [audit 2026-06-19] ── */
.room-train-in{padding:4.5rem var(--pad);border-top:1px solid var(--hair)}
@media(min-width:1024px){.room-train-in{padding:6rem var(--pad)}}

/* ── Trainer profile → specialty pillar links [audit 2026-06-19] ── */
.tr-hero-pillars{margin-top:2rem}
.tr-hero-pillars-label{font:500 10px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--mute-2);margin:0 0 .25rem}

/* ── Peptides page — disclaimer + wellness compliance note [2026-06-19] ── */
.pep-disclaimer{max-width:780px;margin:2.5rem auto 0;padding:1.25rem 1.5rem;border:1px solid var(--hair);border-left:3px solid var(--blood);background:rgba(245,241,234,.02);color:var(--mute-2);font-size:.82rem;line-height:1.65}
.pep-disclaimer strong{color:var(--paper);font-weight:600}
.wel-service-note{margin-top:.85rem;font-size:.78rem;color:var(--mute-2);line-height:1.55;opacity:.9}

/* ── .city-grid — area/city card grid (was undefined; used by city.php + peptides.php) [2026-06-19] ── */
.city-grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:1.5rem}

/* ── Peptides wellness card — transparent glass DNA helix: smaller + gently floating (peptideclub-style product float) [2026-06-19] ──
   The helix is set inline (style="background-image:url(...)") in wellness.php; here we only size it down, center it on the dark card, and bob it via background-position. */
#peptide-therapy .wel-service-img{
  background-size:58%;               /* smaller — floats, doesn't fill the card */
  background-repeat:no-repeat;
  background-position:center 50%;
  background-color:#0A0A09;
  animation:pepFloat 6s ease-in-out infinite;
}
@keyframes pepFloat{
  0%,100%{background-position:center 56%}
  50%    {background-position:center 44%}
}
@media (prefers-reduced-motion:reduce){
  #peptide-therapy .wel-service-img{animation:none;background-position:center 50%}
}
