/* === Self-hosted fonts (latin subset) ===
   Six Caps, Sora and Fragment Mono are not in public/fonts/, and no third-party
   stylesheet is loaded on any site in this network, so each role falls back to
   the nearest face already self-hosted here:
     display  Six Caps      -> Bebas Neue      (/fonts/latenight/)
     text     Sora 300      -> Space Grotesk   (/fonts/latenight/, variable 300-700)
     system   Fragment Mono -> IBM Plex Mono   (/fonts/latenight/)
   The files are referenced where they already sit. public/** is copied whole
   into every dist, so nothing is duplicated to carry this theme. */
@font-face {
  font-family: 'Bebas Neue';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/latenight/bebas-neue-normal-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/fonts/latenight/space-grotesk-normal-300-700.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/latenight/ibm-plex-mono-normal-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/fonts/latenight/ibm-plex-mono-normal-500.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================================
   LATE NIGHT MASSAGE AMSTERDAM, theme "latenight"
   A night desk. Near-black ground, one magenta signal, a condensed display
   line, mono micro-labels, a thin status strip, section numbers and stickers.

   Two jobs in one file:
     1. the theme's own design (strip, marquee, hours board, roster, ladder)
     2. a compatibility layer for the SHARED templates this theme inherits:
        faq, about, contact, booking, districts, legal, glossary, 404 and both
        index pages, which render .container/.reading/.hero/.btn/.t-card/
        .price-table and friends. Both are styled in the same language, so an
        inherited page is not an orphan inside this chrome.
   ============================================================================ */

:root{
  /* ground ---------------------------------------------------------------- */
  --bg:        #060606;
  --bg-2:      #0c0c0c;
  --bg-3:      #141414;
  --line:      rgba(255,255,255,0.12);
  --line-2:    rgba(255,255,255,0.28);

  /* signal ---------------------------------------------------------------- */
  --mg:        #ff2bd1;
  --mg-hi:     #ff6fe0;
  --mg-lo:     #c1009c;
  --glow:      rgba(255,43,209,0.45);
  --ok:        #b6ff3b;

  /* ink ------------------------------------------------------------------- */
  --text:      #f3f1ed;
  --muted:     rgba(243,241,237,0.70);
  --dim:       rgba(243,241,237,0.56);

  /* aliases: the inherited shared templates carry inline styles naming these
     tokens, so they resolve into this palette instead of dropping out */
  --ink:       #f3f1ed;
  --faint:     rgba(243,241,237,0.56);
  --rule:      rgba(255,255,255,0.12);
  --hair:      rgba(255,255,255,0.12);
  --cloud:     #060606;
  --sky-1:     #0c0c0c;
  --sky-2:     #141414;
  --sky-3:     #0c0c0c;
  --gold:      #ff6fe0;
  --white:     #f3f1ed;
  --white-rgb: 243,241,237;
  --header-bg: rgba(6,6,6,0.92);
  --wa:        #25D366;
  --wa-dark:   #1ea857;

  /* type ------------------------------------------------------------------ */
  --display: 'Bebas Neue', 'Oswald', 'Arial Narrow', Impact, sans-serif;
  --sans:    'Space Grotesk', 'Segoe UI', system-ui, Helvetica, Arial, sans-serif;
  --serif:   'Space Grotesk', 'Segoe UI', system-ui, Helvetica, Arial, sans-serif;
  --mono:    'IBM Plex Mono', 'SFMono-Regular', Menlo, Consolas, monospace;

  /* measure --------------------------------------------------------------- */
  --max:     1400px;
  --reading: 680px;
  --gutter:  clamp(16px,4vw,56px);
  --gut:     22px;
  --pad:     clamp(30px,5vw,68px);
  --ease:    cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg);overflow-x:hidden;overflow-x:clip}
body{
  margin:0;background:var(--bg);color:var(--text);
  font-family:var(--sans);font-weight:300;font-size:16px;line-height:1.62;
  overflow-x:hidden;overflow-x:clip;
  -webkit-font-smoothing:antialiased;font-synthesis-weight:none;
}
img{max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,h5,p,ul,ol,figure,dl,dd{margin:0}
ul{list-style:none;padding:0}
table{border-collapse:collapse;width:100%}
svg{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--mg);outline-offset:3px}
::selection{background:var(--mg);color:#050505}
[id]{scroll-margin-top:30px}

/* ---------- primitives ----------------------------------------------------- */
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.lbl,.label{
  font-family:var(--mono);font-size:10px;font-weight:400;
  letter-spacing:.16em;text-transform:uppercase;color:var(--dim);line-height:1.7;
}
.lbl--sig{color:var(--mg-hi)}
.brk{
  display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;
  font-family:var(--mono);font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted);
}
.brk::before{content:"[";color:var(--mg)}
.brk::after{content:"]";color:var(--mg)}
.brk b{color:var(--text);font-weight:400}
.dot{
  display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--ok);box-shadow:0 0 9px var(--ok);
}
.disp{
  font-family:var(--display);font-weight:400;text-transform:uppercase;
  letter-spacing:.015em;line-height:.84;
}
.h-xl{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.015em;line-height:.82;font-size:clamp(3.4rem,11vw,9rem)}
.h-lg{font-family:var(--display);font-weight:400;text-transform:uppercase;letter-spacing:.02em;line-height:.86;font-size:clamp(2.4rem,5.4vw,4.6rem)}
.out{color:transparent;-webkit-text-stroke:1.5px var(--text)}
.mgc{color:var(--mg-hi)}
.body{font-size:.95rem;line-height:1.7;color:var(--muted)}
.body-lg{font-size:1.05rem;line-height:1.62;color:var(--muted)}
.sub{margin-top:12px;max-width:62ch}
.o{color:var(--mg)}

/* ---------- status strip --------------------------------------------------- */
.strip{background:var(--bg-2);border-bottom:1px solid var(--line)}
.strip-in{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter);
  height:34px;display:flex;align-items:center;gap:20px;
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--dim);overflow:hidden;
}
.strip .live{display:inline-flex;align-items:center;gap:7px;color:var(--ok);flex:0 0 auto}
.strip .fact{flex:0 0 auto}
.strip .clock{margin-left:auto;flex:0 0 auto;color:var(--mg-hi)}
.strip .clock b{color:var(--dim);font-weight:400;margin-right:7px}

/* ---------- header --------------------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:70;
  background:var(--header-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-2);
}
.site-header .inner{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter);
  height:64px;display:flex;align-items:center;gap:18px;
}
.logo{display:flex;align-items:center;gap:11px;min-width:0;flex:0 0 auto}
.logo-mark{
  display:grid;place-items:center;height:34px;padding:0 9px;
  background:var(--mg);color:#050505;
  font-family:var(--display);font-size:1.5rem;line-height:1;letter-spacing:.04em;
  transform:rotate(-4deg);padding-top:5px;
}
.mark-txt{
  font-family:var(--display);font-size:1.6rem;line-height:.82;letter-spacing:.04em;
  text-transform:uppercase;white-space:nowrap;padding-top:4px;
}
.mark-txt small{
  display:block;margin-top:5px;font-family:var(--mono);font-size:8.5px;
  letter-spacing:.14em;color:var(--dim);
}
.site-header nav{display:flex;align-items:center;gap:0;margin-left:auto;min-width:0}
.site-header nav a{
  padding:7px 11px;font-family:var(--mono);font-size:10px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--muted);
  transition:color .18s ease,background .18s ease;
}
.site-header nav a:hover{color:#050505;background:var(--mg)}
.header-cta{display:flex;align-items:center;gap:9px;flex:0 0 auto}
.cta{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:10px 16px;background:var(--mg);color:#050505;
  font-family:var(--mono);font-size:10px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
  box-shadow:4px 4px 0 var(--text);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
.cta:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--text)}
.cta--ghost{background:transparent;color:var(--text);box-shadow:4px 4px 0 var(--mg);border:1px solid var(--text)}
.nav-toggle{
  display:none;width:42px;height:42px;flex:0 0 auto;
  background:transparent;border:1px solid var(--text);color:var(--text);
  font-size:19px;line-height:1;cursor:pointer;border-radius:0;
}

/* ---------- marquee -------------------------------------------------------- */
.ticker{overflow:hidden;background:var(--mg);color:#050505;border-bottom:1px solid var(--line-2)}
.ticker-track{display:flex;width:max-content;animation:tick 34s linear infinite}
.ticker span{
  display:inline-flex;align-items:center;gap:1rem;white-space:nowrap;
  padding:.28rem 1.1rem .1rem 0;
  font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.2rem);
  line-height:1;letter-spacing:.05em;text-transform:uppercase;
}
.ticker span::after{content:"";width:.42em;height:.42em;background:#050505;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.ticker i{font-style:normal;opacity:.55}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- sections ------------------------------------------------------- */
.sec{padding:var(--pad) 0;border-bottom:1px solid var(--line)}
.sec--dark{background:var(--bg-2)}
.sec--sig{background:var(--bg-3)}
.sechead{
  display:grid;grid-template-columns:120px minmax(0,1fr);gap:var(--gut);
  align-items:start;margin-bottom:clamp(22px,3vw,38px);
}
.sechead .idx{
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--mg-hi);padding-top:.5em;
}
.sechead .ttl{min-width:0}
.secbook{
  display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;
  margin-top:clamp(22px,3vw,34px);padding-top:20px;border-top:1px solid var(--line);
}
.act{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:46px;padding:13px 20px;border:1px solid var(--text);
  font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;color:var(--text);
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.act:hover{background:var(--text);color:#050505}
.act--sig{background:var(--mg);border-color:var(--mg);color:#050505;box-shadow:4px 4px 0 var(--text)}
.act--sig:hover{background:var(--mg-hi);border-color:var(--mg-hi);color:#050505}
.act-note{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}

/* ---------- masthead ------------------------------------------------------- */
.masthead{position:relative;border-bottom:1px solid var(--line-2);overflow:hidden;isolation:isolate}
.masthead::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:radial-gradient(ellipse 52% 58% at 82% 16%,rgba(255,43,209,0.16),transparent 70%);
}
.mast-top{
  max-width:var(--max);margin-inline:auto;padding:14px var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;
  border-bottom:1px solid var(--line);
}
.mast-body{max-width:var(--max);margin-inline:auto;padding:clamp(26px,4vw,44px) var(--gutter) 0}
.mast-kick{display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:clamp(16px,2.4vw,26px)}
.mast-kick span{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--dim);
}
.mast-kick b{color:var(--mg-hi);font-weight:400}
.mast-lede{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:var(--gut) clamp(24px,4vw,56px);margin-top:clamp(22px,3vw,34px);
}
.rule-top{border-top:1px solid var(--line);padding-top:16px}
.mast-act{max-width:var(--max);margin-inline:auto;padding:0 var(--gutter) clamp(26px,4vw,44px)}
.mast-act .secbook{margin-top:clamp(22px,3vw,32px)}

/* hours board: the night in four bands */
.board{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter) clamp(26px,4vw,44px);
}
.board-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line-2)}
.band{padding:16px 15px 18px;border-right:1px solid var(--line-2);min-width:0}
.band:last-child{border-right:0}
.band .hr{
  font-family:var(--display);font-size:clamp(2.2rem,4vw,3.4rem);line-height:.84;
  letter-spacing:.02em;padding-top:.06em;color:var(--text);
}
.band .hr em{font-style:normal;font-family:var(--mono);font-size:.62rem;color:var(--mg-hi);margin-left:.25em;letter-spacing:.1em}
.band .nm{margin-top:9px;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
.band p{margin-top:9px;font-size:.86rem;line-height:1.6;color:var(--muted)}
.band--now{background:var(--mg);color:#050505}
.band--now .hr,.band--now p{color:#050505}
.band--now .hr em,.band--now .nm{color:rgba(5,5,5,.72)}

/* metrics row */
.metrics{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter) clamp(26px,4vw,44px);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;
}
.metric{padding:0 18px 0 0;border-right:1px solid var(--line);min-width:0}
.metric:last-child{border-right:0}
.metric:not(:first-child){padding-left:18px}
.metric .v{
  font-family:var(--display);font-size:clamp(2rem,3.4vw,3rem);line-height:.86;
  letter-spacing:.02em;padding-top:.06em;
}
.metric .v em{font-style:normal;font-family:var(--mono);font-size:.56rem;letter-spacing:.12em;color:var(--mg-hi);margin-left:.3em;text-transform:uppercase}
.metric .k{margin-top:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);line-height:1.6}

/* ---------- stickers ------------------------------------------------------- */
.stk{position:absolute;z-index:5;pointer-events:none;filter:drop-shadow(0 10px 14px rgba(0,0,0,.55))}
.stk-open{
  right:clamp(10px,5vw,88px);top:clamp(58px,10vw,120px);
  display:grid;place-items:center;width:clamp(86px,10vw,140px);aspect-ratio:1;
  border-radius:50%;background:var(--mg);color:#050505;text-align:center;
  transform:rotate(11deg);
  box-shadow:inset 0 0 0 4px #050505,inset 0 0 0 6px var(--mg),inset 0 0 0 8px #050505;
}
.stk-open b{display:block;font-family:var(--display);font-size:clamp(1.7rem,2.6vw,2.6rem);line-height:.82;padding-top:.08em}
.stk-open small{display:block;margin-top:3px;font-family:var(--mono);font-size:7.5px;letter-spacing:.11em;text-transform:uppercase}
.stk-age{
  right:clamp(120px,20vw,300px);top:clamp(190px,22vw,300px);
  display:grid;place-items:center;width:clamp(52px,5.4vw,72px);aspect-ratio:1;
  border-radius:12px;background:#050505;border:2px solid var(--text);color:var(--text);
  font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:1;
  transform:rotate(-13deg);padding-top:.1em;
}

/* ---------- prose ---------------------------------------------------------- */
.prose{max-width:68ch}
.prose > * + *{margin-top:15px}
.prose p{font-size:.97rem;line-height:1.72;color:var(--muted)}
.prose h2{font-family:var(--display);font-size:clamp(1.5rem,2.4vw,2.1rem);line-height:.94;letter-spacing:.02em;text-transform:uppercase;color:var(--text);margin-top:30px}
.prose h3{font-size:1.02rem;font-weight:500;letter-spacing:.01em;color:var(--text);margin-top:24px}
.prose h2 + p,.prose h3 + p{margin-top:11px}
.prose strong{font-weight:500;color:var(--text)}
.prose a{color:var(--mg-hi);border-bottom:1px solid rgba(255,111,224,.4)}
.prose a:hover{border-bottom-color:var(--mg-hi)}
.prose ul,.prose ol{margin-top:16px;border-top:1px solid var(--line)}
.prose li{position:relative;padding:10px 0 10px 30px;border-bottom:1px solid var(--line);font-size:.94rem;line-height:1.62;color:var(--muted)}
.prose ul > li::before{content:"";position:absolute;left:0;top:1.15em;width:13px;height:2px;background:var(--mg)}
.prose ol{counter-reset:ol}
.prose ol > li{counter-increment:ol}
.prose ol > li::before{content:counter(ol,decimal-leading-zero);position:absolute;left:0;top:11px;font-family:var(--mono);font-size:10px;color:var(--mg-hi)}
.prose table{margin-top:16px;font-size:.88rem;border-top:1px solid var(--line-2)}
.prose th,.prose td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top;color:var(--muted)}
.prose th{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);font-weight:400}
.prose--long{max-width:70ch}
.prose--long > p:first-child{font-size:1.06rem;color:var(--text)}
.two-col{display:grid;grid-template-columns:minmax(0,1.32fr) minmax(0,1fr);gap:clamp(26px,4vw,48px) var(--gut);align-items:start}
.aside-stack > * + *{margin-top:26px}

/* spec plate */
.spec{border-top:1px solid var(--line-2)}
.spec > div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:9px 0;border-bottom:1px solid var(--line)}
.spec dt,.spec .k{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
.spec dd,.spec .v{margin:0;font-size:.9rem;color:var(--text);text-align:right}
.spec .v a{color:var(--mg-hi)}

/* ---------- dossier header (profiles, listings, files) --------------------- */
.dossier{border-bottom:1px solid var(--line-2);background:var(--bg-2)}
.dos-top{
  max-width:var(--max);margin-inline:auto;padding:13px var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border-bottom:1px solid var(--line);
}
.dos-body{
  max-width:var(--max);margin-inline:auto;padding:clamp(24px,3.4vw,40px) var(--gutter);
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);
  gap:clamp(24px,4vw,52px);align-items:start;
}
.dos-kick{display:flex;flex-wrap:wrap;gap:7px 18px;margin-bottom:16px}
.dos-kick span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.dos-kick b{color:var(--mg-hi);font-weight:400}
.dos-body h1{
  font-family:var(--display);font-weight:400;text-transform:uppercase;
  font-size:clamp(2.6rem,6vw,5rem);line-height:.84;letter-spacing:.02em;
  color:var(--text);text-wrap:balance;
}
.dos-plate > * + *{margin-top:20px}
.dossier--file .dos-body h1{font-size:clamp(2.1rem,4.4vw,3.6rem);line-height:.9;max-width:22ch}
.dossier--long .dos-body h1{font-size:clamp(1.9rem,3.6vw,2.9rem);line-height:.94;max-width:26ch}
.dossier .lede{max-width:58ch}
.mast-act,.dossier .mast-act{max-width:var(--max);margin-inline:auto;padding:0 var(--gutter) clamp(22px,3vw,34px)}

/* contents plate */
.toc{border-top:1px solid var(--line-2);counter-reset:toc}
.toc > .lbl{display:block;padding:9px 0;border-bottom:1px solid var(--line)}
.toc ol{counter-reset:none}
.toc li{counter-increment:toc;border-bottom:1px solid var(--line)}
.toc a{display:grid;grid-template-columns:32px minmax(0,1fr) 16px;gap:10px;align-items:baseline;padding:9px 0;font-size:.88rem;line-height:1.35;color:var(--muted);transition:color .18s ease}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--mono);font-size:10px;color:var(--dim)}
.toc a::after{content:"\2193";font-family:var(--mono);font-size:10px;color:var(--dim);text-align:right}
.toc a:hover,.toc a:hover::before,.toc a:hover::after{color:var(--mg-hi)}

/* file body grid */
.file-grid{display:grid;grid-template-columns:minmax(0,1fr) 296px;gap:clamp(26px,4vw,48px);align-items:start}
.file-grid > *{min-width:0}
.file-side{position:sticky;top:86px}
.file-side > * + *{margin-top:26px}
.file-side .lbl{display:block;margin-bottom:9px}

/* chapters */
.chaps{border-top:1px solid var(--line-2);counter-reset:chap}
.chap{counter-increment:chap;display:grid;grid-template-columns:58px minmax(0,1fr);gap:var(--gut);padding:26px 0 30px;border-bottom:1px solid var(--line)}
.chap:last-child{border-bottom:0}
.chap .cn{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--mg-hi);padding-top:.6em}
.chap .cn::before{content:counter(chap,decimal-leading-zero) " /"}
.chap h2{font-family:var(--display);font-size:clamp(1.4rem,2.4vw,2rem);line-height:.94;letter-spacing:.02em;text-transform:uppercase;margin:0 0 12px;max-width:32ch;color:var(--text)}
.chap:target h2{color:var(--mg-hi)}

/* link plates */
.rlist{border-top:1px solid var(--line-2)}
.rlist li{border-bottom:1px solid var(--line)}
.rlist a{display:grid;grid-template-columns:minmax(0,1fr) 16px;gap:10px;align-items:baseline;padding:11px 0;font-size:.9rem;line-height:1.35;color:var(--muted);transition:color .18s ease,padding-left .18s ease}
.rlist a::after{content:"\2192";font-family:var(--mono);font-size:10px;color:var(--dim);text-align:right}
.rlist a:hover{color:var(--mg-hi);padding-left:5px}
.rlist a:hover::after{color:var(--mg-hi)}
.rlist small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-bottom:3px}
.rlist--num{counter-reset:rl}
.rlist--num li{counter-increment:rl}
.rlist--num a{grid-template-columns:28px minmax(0,1fr) 16px}
.rlist--num a::before{content:counter(rl,decimal-leading-zero);font-family:var(--mono);font-size:9.5px;color:var(--dim)}

/* index rows */
.ix{border-top:1px solid var(--line-2);counter-reset:ix}
.ix-row{
  counter-increment:ix;display:grid;grid-template-columns:52px minmax(0,1fr) 140px;
  gap:var(--gut);padding:20px 0;border-bottom:1px solid var(--line);align-items:start;
  transition:background .2s ease;
}
.ix-row::before{content:counter(ix,decimal-leading-zero);font-family:var(--mono);font-size:10px;color:var(--dim);padding-top:.5em}
.ix-row:hover{background:var(--bg-3)}
.ix-row:hover::before,.ix-row:hover h3{color:var(--mg-hi)}
.ix-row h3{font-family:var(--display);font-size:clamp(1.2rem,2vw,1.7rem);line-height:.96;letter-spacing:.02em;text-transform:uppercase;max-width:42ch;color:var(--text)}
.ix-row p{margin-top:7px;font-size:.9rem;line-height:1.6;color:var(--muted);max-width:74ch}
.ix-d{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);text-align:right;padding-top:.5em}
.ix-d b{display:block;margin-top:7px;color:var(--mg-hi);font-weight:400}

/* directory */
.dir{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px var(--gut)}
.dir > *{min-width:0}
.dir h3{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--mg-hi);margin-bottom:10px}
.dir-wide{grid-column:span 2}
.dir-areas{margin-top:30px;border-top:1px solid var(--line);padding-top:16px}

/* ---------- roster --------------------------------------------------------- */
.roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut)}
.roster > *{min-width:0}
.card{display:block;min-width:0;border:1px solid var(--line-2);background:var(--bg-2);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.card:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--mg)}
.card .frame{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--bg-3);border-bottom:1px solid var(--line-2)}
.card .frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.card:hover .frame img{transform:scale(1.04)}
.card-meta{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:10px 11px 4px}
.card-meta .nm{font-family:var(--display);font-size:1.35rem;line-height:.9;letter-spacing:.03em;text-transform:uppercase;padding-top:.06em}
.card-meta .ag{font-family:var(--mono);font-size:10px;color:var(--mg-hi)}
.card-sub{display:flex;justify-content:space-between;gap:8px;padding:0 11px 11px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.roster-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 20px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.ulink{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--mg-hi);border-bottom:1px solid rgba(255,111,224,.4);padding-bottom:2px}
.ulink:hover{border-bottom-color:var(--mg-hi)}

/* ---------- rate ladder ---------------------------------------------------- */
.ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2)}
.lad{padding:16px 16px 18px 0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.lad:last-child{border-right:0}
.lad:not(:first-child){padding-left:16px}
.lad .lk{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim);line-height:1.6;min-height:2.6em}
.lad .lv{display:block;margin-top:10px;font-family:var(--display);font-size:clamp(2rem,3.4vw,2.9rem);line-height:.86;letter-spacing:.02em;padding-top:.06em;color:var(--text)}
.lad .lv em{font-style:normal;font-family:var(--mono);font-size:.5rem;letter-spacing:.1em;color:var(--mg-hi);margin-right:.35em;vertical-align:middle}
.ladder--aux{margin-top:20px}
.ladder--aux .lad .lv{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.tariff-note{
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 22px;margin-top:16px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);
}

/* ---------- steps ---------------------------------------------------------- */
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line-2)}
.step{padding:18px 16px 22px 0;border-right:1px solid var(--line);min-width:0}
.step:last-child{border-right:0}
.step:not(:first-child){padding-left:16px}
.step .sn{font-family:var(--display);font-size:2.1rem;line-height:1;letter-spacing:.03em;color:transparent;-webkit-text-stroke:1.5px var(--mg);padding-top:.06em}
.step h4{margin-top:10px;font-size:.98rem;font-weight:500;letter-spacing:.01em;color:var(--text)}
.step p{margin-top:8px;font-size:.87rem;line-height:1.62;color:var(--muted)}
.step .clock{margin-top:12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mg-hi)}

/* ---------- pay / note grid ------------------------------------------------ */
.pay{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gut);margin-top:22px}
.pay > div{border-top:1px solid var(--line);padding-top:14px;min-width:0}
.pay h4{font-size:.96rem;font-weight:500;color:var(--text)}
.pay p{margin-top:8px;font-size:.88rem;line-height:1.66;color:var(--muted)}
.pay a{color:var(--mg-hi)}

/* ---------- tags ----------------------------------------------------------- */
.tags{display:flex;flex-wrap:wrap;gap:7px}
.tags .tag,.tags span,.service-tags .tag{
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:7px 11px;border:1px solid var(--line-2);color:var(--muted);display:inline-block;
}
a.tag:hover{border-color:var(--mg);color:var(--mg-hi)}

/* ---------- questions ------------------------------------------------------ */
.faq{border-top:1px solid var(--line-2)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  display:grid;grid-template-columns:44px minmax(0,1fr) 24px;gap:14px;align-items:baseline;
  padding:15px 0;cursor:pointer;list-style:none;font-size:1rem;font-weight:400;color:var(--text);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--mg-hi)}
.faq .q{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--mg-hi)}
.faq .pm{font-family:var(--mono);font-size:1rem;color:var(--mg);text-align:right}
.faq .a{display:grid;grid-template-columns:44px minmax(0,1fr) 24px;gap:14px;padding:0 0 16px}
.faq .a p{grid-column:2;font-size:.93rem;line-height:1.7;color:var(--muted);max-width:66ch}

/* ============================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   The inherited pages (faq, about, contact, booking, districts, nationalities,
   combos, glossary, legal and 404, plus both index pages) render markup this
   theme does not own. They get the same chrome; these rules give their markup
   the same language.
   ============================================================================ */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);width:100%}
.reading{max-width:var(--reading);margin:0}
.reading.container{padding-inline:var(--gutter)}
section{padding:var(--pad) 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}

h1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.6rem,6vw,5rem);line-height:.84;letter-spacing:.02em;color:var(--text)}
h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(1.7rem,3.2vw,2.8rem);line-height:.9;letter-spacing:.02em;color:var(--text)}
h3{font-size:clamp(1rem,1.5vw,1.2rem);font-weight:500;line-height:1.25;letter-spacing:.005em;color:var(--text)}
h4,h5{font-size:.98rem;font-weight:500;color:var(--text)}
h1 em,h2 em,h3 em{font-style:normal;color:var(--mg-hi)}

.hero{padding:calc(var(--pad) + 6px) var(--gutter);border-bottom:1px solid var(--line-2);background:var(--bg-2);position:relative}
.hero-small{padding-top:var(--pad)}
.hero .label-top{display:block;margin-bottom:15px}
.lede{font-size:clamp(1rem,1.15vw,1.12rem);line-height:1.62;color:var(--muted);max-width:58ch;margin-top:16px}
.hero .lede{margin-top:18px}
section p{color:var(--muted);line-height:1.7}
.reading p{max-width:none}
.reading h2{margin-top:10px}
.reading h3{margin-top:8px}
.reading a{color:var(--mg-hi)}
.reading a:hover{border-bottom:1px solid var(--mg-hi)}
.reading ul{padding-left:0}
.reading ul li{border-top:1px solid var(--line);padding:12px 0;list-style:none;font-size:.94rem;color:var(--muted)}

.btn{
  display:inline-block;font-family:var(--mono);font-size:10.5px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;padding:14px 21px;
  border:1px solid var(--text);color:var(--text);
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn-primary{background:var(--mg);border-color:var(--mg);color:#050505;box-shadow:4px 4px 0 var(--text)}
.btn-primary:hover{background:var(--mg-hi);border-color:var(--mg-hi);color:#050505}
.btn-ghost{background:transparent;color:var(--text)}
.btn-ghost:hover{background:var(--text);color:#050505}

.t-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gut);border-top:1px solid var(--line-2);padding-top:var(--gut)}
.t-grid > *{min-width:0}
.t-card{display:block;min-width:0;border:1px solid var(--line-2);background:var(--bg-2);transition:transform .22s var(--ease),box-shadow .22s var(--ease)}
.t-card:hover{transform:translate(-3px,-3px);box-shadow:6px 6px 0 var(--mg)}
.t-card .photo{position:relative;aspect-ratio:3/4;background:var(--bg-3);overflow:hidden;border-bottom:1px solid var(--line-2)}
.t-card .photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.t-card:hover .photo img{transform:scale(1.04)}
.t-card .name{font-family:var(--display);font-size:1.35rem;line-height:.9;letter-spacing:.03em;text-transform:uppercase;color:var(--text);padding:10px 11px 4px}
.t-card .meta{padding:0 11px 11px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.t-card:hover .meta{color:var(--mg-hi)}

.s-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-2)}
.s-grid > *{min-width:0}
.s-card{display:block;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 18px 24px 0;transition:background .2s ease}
.s-card:not(:nth-child(3n+1)){padding-left:18px}
.s-card:nth-child(3n){border-right:0}
a.s-card:hover{background:var(--bg-3)}
.s-card .num{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
a.s-card:hover .num{color:var(--mg-hi)}
.s-card .nm{font-family:var(--display);font-size:1.5rem;line-height:.92;letter-spacing:.03em;text-transform:uppercase;color:var(--text);margin:9px 0 7px}
.s-card .ds{font-size:.85rem;line-height:1.55;color:var(--muted)}

.price-table,.stats-table,.rates-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12.5px}
.price-table td,.stats-table td,.rates-table td{padding:13px 0;border-bottom:1px solid var(--line);vertical-align:baseline;color:var(--muted)}
.price-table td:first-child,.stats-table td:first-child,.rates-table td:first-child{font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
.price-table td:last-child,.stats-table td:last-child,.rates-table td:last-child{text-align:right;color:var(--text);font-variant-numeric:tabular-nums;font-size:15px}
.price-table{border-top:1px solid var(--line-2)}

.tabs{margin:0}
.tab-nav{display:flex;border-bottom:1px solid var(--line);margin-bottom:24px;flex-wrap:wrap}
.tab-btn{padding:12px 16px;background:transparent;border:0;font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.tab-btn:hover{color:var(--text)}
.tab-btn.active{color:var(--mg-hi);border-bottom-color:var(--mg)}
.tab-panel{display:none}
.tab-panel.active{display:block}

.carousel{position:relative;overflow:hidden;background:var(--bg-3);border:1px solid var(--line-2)}
.carousel-track{display:flex;gap:6px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{flex:0 0 calc(25% - 5px);scroll-snap-align:start;aspect-ratio:3/4;background:var(--bg-3);overflow:hidden}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}
.carousel-prev,.carousel-next{position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:38px;height:38px;background:var(--bg);color:var(--text);border:1px solid var(--line-2);font-size:19px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.carousel-prev{left:11px}
.carousel-next{right:11px}
.carousel-prev:hover,.carousel-next:hover{background:var(--mg);border-color:var(--mg);color:#050505}
.carousel-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:5px;z-index:3;pointer-events:none}
.carousel-dot{width:15px;height:2px;background:rgba(243,241,237,.35)}
.carousel-dot.active{background:var(--mg)}

.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.gallery-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--bg-3)}

.service-tags{display:flex;flex-wrap:wrap;gap:7px}

.like-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gut)}
.like-grid > *{min-width:0}
.like-card{display:block;min-width:0}
.like-photo{position:relative;aspect-ratio:3/4;background:var(--bg-3);overflow:hidden;border:1px solid var(--line-2)}
.like-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.like-card:hover .like-photo img{transform:scale(1.04)}
.like-name{font-size:.93rem;font-weight:500;color:var(--text);padding:9px 0 5px;border-bottom:1px solid var(--line)}
.like-meta{padding-top:6px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}

.book-banner{background:var(--bg-3);padding:24px var(--gutter);border-bottom:1px solid var(--line)}
.book-banner p{color:var(--text)}
.book-banner a{color:var(--mg-hi)}

.journal-list{display:grid;border-top:1px solid var(--line-2)}
.journal-item{display:block;border-bottom:1px solid var(--line);padding:18px 0;transition:background .2s ease}
.journal-item:hover{background:var(--bg-3)}
.journal-item .date{font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--dim)}
.journal-item h3{margin:8px 0}
.journal-item:hover h3{color:var(--mg-hi)}
.journal-item .lede{font-size:.89rem;color:var(--muted);margin-top:5px;max-width:72ch}

.form-row{margin-top:18px}
.form-row label{display:block}
.form-row select,.form-row input{
  width:100%;max-width:100%;padding:12px 13px;border:1px solid var(--line-2);
  background:var(--bg-3);font-family:var(--mono);font-size:12.5px;color:var(--text);
  margin-top:8px;border-radius:0;
}
.form-row select:focus,.form-row input:focus{outline:2px solid var(--mg);outline-offset:1px}

.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.no-save img{-webkit-user-drag:none}

/* ---------- build-injected breadcrumbs + related pages --------------------- */
nav.crumbs{
  max-width:var(--max);margin:0 auto;padding:12px var(--gutter) 0;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;line-height:1.6;
}
nav.crumbs ol{opacity:1;gap:0 9px}
nav.crumbs li{color:var(--dim);gap:9px}
nav.crumbs li + li::before{content:"\2192";opacity:1;color:var(--mg)}
nav.crumbs a{color:var(--muted);border-bottom:1px solid transparent}
nav.crumbs a:hover{color:var(--mg-hi);border-bottom-color:var(--mg)}
nav.crumbs [aria-current]{opacity:1;color:var(--text)}
aside.seo-related{max-width:none;margin:0;padding:var(--pad) var(--gutter);background:var(--bg-2);border-top:1px solid var(--line)}
aside.seo-related .seo-related__in{max-width:var(--max);margin:0 auto;border-top:1px solid var(--line-2);padding-top:14px}
aside.seo-related .seo-related__h{margin:0 0 13px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mg-hi);opacity:1}
aside.seo-related ul{max-width:var(--max);margin:0 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 var(--gut);counter-reset:rel}
aside.seo-related li{counter-increment:rel;min-width:0}
aside.seo-related a{
  display:grid;grid-template-columns:28px minmax(0,1fr) 16px;gap:8px;align-items:baseline;
  padding:11px 0;border-bottom:1px solid var(--line);font-size:.91rem;line-height:1.35;color:var(--muted);
}
aside.seo-related a::before{content:counter(rel,decimal-leading-zero);font-family:var(--mono);font-size:9.5px;color:var(--dim)}
aside.seo-related a::after{content:"\2192";font-family:var(--mono);font-size:10px;color:var(--dim);text-align:right}
aside.seo-related a:hover{opacity:1;color:var(--mg-hi)}
aside.seo-related a:hover::before,aside.seo-related a:hover::after{color:var(--mg-hi)}

/* ---------- footer --------------------------------------------------------- */
.site-footer{background:#030303;border-top:1px solid var(--line-2);padding:var(--pad) 0 22px}
.site-footer .cols{
  max-width:var(--max);margin-inline:auto;padding:0 var(--gutter);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px var(--gut);
}
.site-footer .cols > *{min-width:0}
.site-footer h5{font-family:var(--mono);font-size:9.5px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--mg-hi);margin-bottom:11px}
.site-footer ul{display:grid;gap:7px}
.site-footer li{font-size:.88rem;color:var(--muted);line-height:1.5}
.site-footer a:hover{color:var(--mg-hi)}
.foot-brand p{margin-top:12px;font-size:.86rem;color:var(--dim);max-width:38ch;line-height:1.66}
.foot-all a{color:var(--mg-hi)}
.legal{
  max-width:var(--max);margin:26px auto 0;padding:15px var(--gutter) 0;
  border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 20px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--dim);
}
.legal a{color:var(--muted)}
.legal a:hover{color:var(--mg-hi)}
.age21{
  display:inline-grid;place-items:center;width:34px;height:34px;margin-right:9px;
  vertical-align:middle;background:var(--mg);color:#050505;
  font-family:var(--display);font-size:1.15rem;line-height:1;padding-top:.1em;transform:rotate(-6deg);
}

/* ---------- mobile dock ---------------------------------------------------- */
.m-dock{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:250;
  background:#030303;border-top:1px solid var(--line-2);padding-bottom:env(safe-area-inset-bottom);
}
.m-dock a{
  flex:1 1 0;min-width:0;height:52px;display:flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  color:var(--text);-webkit-tap-highlight-color:transparent;
}
.m-dock__wa{background:var(--mg);color:#050505}
.m-dock__tg{background:#030303;border-left:1px solid var(--line-2)}

/* ---------- 21+ strip ------------------------------------------------------ */
.age-bar{
  position:fixed;left:0;right:0;bottom:0;z-index:220;
  display:none;align-items:center;gap:14px;padding:11px var(--gutter);
  background:var(--bg-2);border-top:2px solid var(--mg);
}
body.age-bar-open .age-bar{display:flex}
body.age-bar-open{padding-bottom:60px}
body.age-confirmed .age-bar{display:none!important}
.ab-tag{
  flex:0 0 auto;font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;
  background:var(--text);color:#050505;padding:5px 9px 4px;
}
.ab-line{
  flex:1 1 auto;min-width:0;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted);line-height:1.7;
}
.ab-line em{font-style:normal;color:var(--mg-hi)}
.ab-ok,.age-bar button{
  flex:0 0 auto;border:0;cursor:pointer;border-radius:0;background:var(--mg);color:#050505;
  padding:10px 17px;font-family:var(--mono);font-size:9.5px;font-weight:500;
  letter-spacing:.15em;text-transform:uppercase;line-height:1;
}
.ab-ok:hover,.age-bar button:hover{background:var(--mg-hi)}

/* ---------- profile rates table (partials/rates.mustache) ------------------ */
.rates-card{width:100%;max-width:560px;margin:0;box-sizing:border-box}
.rates-card__title{margin:0 0 6px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--text)}
.rates-card__table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:20px}
.rates-card__table caption{caption-side:top;text-align:left;padding:0 0 8px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mg-hi)}
.rates-card__table th,.rates-card__table td{padding:10px 0;border-bottom:1px solid var(--line);font-weight:400;vertical-align:baseline}
.rates-card__table thead th{padding-top:0;font-family:var(--mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;text-align:right;color:var(--dim)}
.rates-card__table thead th:first-child{width:42%;text-align:left}
.rates-card__table tbody th{text-align:left;font-size:13.5px;line-height:1.3;padding-right:8px;color:var(--muted)}
.rates-card__table td{text-align:right;white-space:nowrap;font-size:17px;color:var(--text);font-weight:500}
.rates-card__table tbody tr:last-child th,.rates-card__table tbody tr:last-child td{border-bottom:0}
.rates-card__extra th{font-style:italic}
.rates-card__extra td{color:var(--mg-hi)}
.rates-card__cur{font-family:var(--mono);font-style:normal;font-weight:400;font-size:.62em;color:var(--dim);margin-right:.35em}
.rates-card__sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.rates-card__terms{margin:16px 0 0;font-size:12.5px}
.rates-card__terms a{color:var(--mg-hi);border-bottom:1px solid var(--mg-hi)}

/* ---------- profile line (partials/independence.mustache) ------------------ */
.independence{margin:16px 0 0;max-width:62ch;font-size:13.5px;line-height:1.7;color:var(--dim)}
.independence a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---------- reveal --------------------------------------------------------- */
.js .rv{opacity:0;transform:translateY(14px);transition:opacity .6s var(--ease),transform .6s var(--ease)}
.js .rv.in{opacity:1;transform:none}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width:1180px){
  .roster,.t-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .like-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .file-grid{grid-template-columns:minmax(0,1fr) 250px}
  .dir{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer .cols{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:1000px){
  .site-header nav{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    background:var(--bg);border-bottom:1px solid var(--line-2);padding:6px var(--gutter) 16px;
    display:none;
  }
  .site-header nav.open{display:flex}
  .site-header nav a{font-size:12px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--text)}
  .site-header nav a:hover{background:transparent;color:var(--mg-hi)}
  .nav-toggle{display:block;margin-left:auto;flex:0 0 auto}
  .site-header .inner{gap:12px}
  /* WhatsApp already sits in the fixed dock at the foot of the screen, so the
     header CTA stands down here rather than pushing the menu button off the edge */
  .header-cta{display:none}
  .logo{min-width:0;overflow:hidden}
  .mark-txt{overflow:hidden;text-overflow:ellipsis}
  .strip .fact{display:none}
  .mast-lede,.two-col,.dos-body,.cover-grid{grid-template-columns:1fr}
  .file-grid{grid-template-columns:1fr}
  .file-side{position:static}
  .board-grid{grid-template-columns:1fr 1fr}
  .band:nth-child(2){border-right:0}
  .band:nth-child(-n+2){border-bottom:1px solid var(--line-2)}
  .metrics{grid-template-columns:1fr 1fr;gap:0}
  .metric:nth-child(2){border-right:0}
  .metric:nth-child(n+3){border-top:1px solid var(--line);padding-top:14px;margin-top:14px}
  .metric:nth-child(3){padding-left:0}
  .steps,.ladder{grid-template-columns:1fr 1fr}
  .step:nth-child(2n),.lad:nth-child(2n){border-right:0}
  .step:nth-child(n+3){border-top:1px solid var(--line);padding-top:18px}
  .step:nth-child(3){padding-left:0}
  .pay{grid-template-columns:1fr}
  .s-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .s-card:nth-child(3n){border-right:1px solid var(--line)}
  .s-card:not(:nth-child(3n+1)){padding-left:0}
  .s-card:nth-child(2n){border-right:0;padding-left:18px}
  .carousel-slide{flex:0 0 calc(50% - 3px)}
  .like-grid,.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  aside.seo-related ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stk-age{display:none}
  .m-dock{display:flex}
  body{padding-bottom:calc(52px + env(safe-area-inset-bottom))}
  body.age-bar-open{padding-bottom:112px}
  .age-bar{bottom:calc(52px + env(safe-area-inset-bottom))}
  [id]{scroll-margin-top:64px}
}
@media (max-width:760px){
  .sechead{grid-template-columns:1fr;gap:8px}
  .sechead .idx{padding-top:0}
  .roster,.t-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dir,.dir .dir-wide{grid-column:auto;grid-template-columns:1fr}
  .dir{grid-template-columns:1fr}
  .site-footer .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ix-row{grid-template-columns:40px minmax(0,1fr);gap:6px 12px}
  .ix-d{grid-column:2;text-align:left;padding-top:0}
  .ix-d b{display:inline;margin:0 0 0 9px}
  .chap{grid-template-columns:1fr;gap:6px}
  .chap .cn{padding-top:0}
  .mast-top,.dos-top{grid-template-columns:1fr;gap:6px}
  .stk-open{width:78px;right:8px;top:auto;bottom:14px}
  .stk-open b{font-size:1.4rem}
  .stk-open small{font-size:6.5px}
}
@media (max-width:560px){
  :root{--gut:14px}
  .mark-txt small{display:none}
  .mark-txt{font-size:1.35rem}
  .board-grid,.steps,.ladder,.s-grid{grid-template-columns:1fr}
  .band,.step,.lad,.s-card{border-right:0;padding-left:0}
  .band,.step,.lad{border-bottom:1px solid var(--line)}
  .s-card:nth-child(2n){padding-left:0}
  .metrics{grid-template-columns:1fr}
  .metric{border-right:0;padding-left:0}
  .metric:nth-child(n+2){border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
  .like-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .carousel-slide{flex:0 0 100%}
  .site-footer .cols{grid-template-columns:1fr}
  aside.seo-related ul{grid-template-columns:1fr}
  .faq summary,.faq .a{grid-template-columns:32px minmax(0,1fr) 20px;gap:11px}
  .faq summary{font-size:.94rem}
  .roster{grid-template-columns:1fr 1fr}
  .tariff-note{gap:5px}
  .age-bar{flex-wrap:wrap;gap:8px 10px}
  .ab-tag{display:none}
  .ab-line{flex:1 1 100%;letter-spacing:.09em}
  .ab-ok,.age-bar button{flex:1 1 auto;text-align:center;padding:12px 17px}
  body.age-bar-open{padding-bottom:180px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .rv{opacity:1;transform:none}
  .ticker-track{animation:none}
}

/* ---- injected by build: breadcrumbs + related pages ---- */
.crumbs{position:relative;z-index:3;max-width:var(--max,1200px);margin:0 auto;padding:14px clamp(18px,4vw,40px) 0;font-size:12.5px;line-height:1.5;letter-spacing:.02em}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;opacity:.72}
.crumbs li{display:inline-flex;align-items:center;gap:8px;min-width:0}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.crumbs a:hover{border-bottom-color:currentColor}
.crumbs [aria-current]{opacity:.85;overflow-wrap:anywhere}
.seo-related{position:relative;z-index:3;max-width:var(--max,1200px);margin:0 auto;padding:clamp(28px,4vw,48px) clamp(18px,4vw,40px)}
.seo-related__in{border-top:1px solid rgba(128,128,128,.28);padding-top:22px}
.seo-related__h{margin:0 0 14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.seo-related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 28px}
.seo-related a{color:inherit;text-decoration:none;display:block;padding:6px 0;border-bottom:1px solid rgba(128,128,128,.16);font-size:15px;line-height:1.4}
.seo-related a:hover{opacity:.75}
