/* === Self-hosted fonts (latin subset), public/fonts/bikelight/ ===
   Stick No Bills        display: every plate legend, every number, every heading
   Atkinson Hyperlegible text: body prose, labels, buttons
   No third-party stylesheet is loaded on any page of this network, so the four
   faces below are the whole type system. The build rewrites this run from
   sites/massage-amsterdam.json theme.fonts.faces; keep the two in step. */
@font-face {
  font-family: 'Stick No Bills';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/bikelight/stick-no-bills-normal-400-800.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: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/bikelight/atkinson-hyperlegible-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: 'Atkinson Hyperlegible';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/bikelight/atkinson-hyperlegible-normal-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: 'Atkinson Hyperlegible';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/bikelight/atkinson-hyperlegible-italic-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;
}

/* ============================================================================
   MASSAGE-AMSTERDAM.COM (Cobblestone Amsterdam), theme "bikelight"

   A dark street at night, read through its signage. Enamel plates carry the
   headings, a fingerpost strip carries the numbers, a route board carries every
   list, and the tariff sits on one enamel card. Lime is the only accent.

   NOTHING ON ANY PAGE MOVES. No keyframe rule, no timed property, no easing, no
   script of this theme's own, nothing that fades or travels on scroll. A hover
   changes a colour or an underline and does it at once, in a single frame, so
   there is no reduced-motion block here: it would have nothing to say. Keep it
   that way when this file grows.

   NOTHING IS DRAWN except the one scene the chosen design already carried: the
   still lamp beam over an empty street, in the home hero only, and the two
   messenger glyphs on the buttons. No second object is ever added.

   Two jobs in one file:
     1. this theme's own pages (home, profile, technique, hub, guide, indexes)
     2. a compatibility layer for the SHARED templates it inherits: about, faq,
        contact, booking, terms, privacy, dmca, the age statement, the glossary,
        the cancellation policy and 404, which render .container / .reading /
        .hero / .btn / .label-top / .form-row.
   ============================================================================ */

:root{
  --ground:#07090F;
  --ground2:#0B0F17;
  --night:#05070C;
  --panel:#111825;
  --panel2:#161F2E;
  --panel3:#1B2537;
  --line:#222D3F;
  --line2:#31405A;
  --lime:#C6FF2E;
  --lime-dim:#9ECB17;
  --lime-ink:#0A0E03;
  --lime-soft:#DBFF74;
  --enamel:#F1F3EC;
  --enamel2:#E2E6DA;
  --enamel-ink:#0C1017;
  --enamel-line:#2A3240;
  --enamel-mute:#3B4453;
  --enamel-rule:#B9BFB1;
  /* tokens the SHARED templates reference from inline styles: keep them declared
     so an inherited page never falls back to an invalid value */
  --ink:#EEF2F7;
  --muted:#AAB5C6;
  --faint:#8E9AAD;
  --dim:#8E9AAD;
  --mute:#AAB5C6;
  --rule:#222D3F;
  --hair:#222D3F;
  --cloud:#07090F;
  --sky-3:#0B0F17;
  --white:#EEF2F7;
  --gold:#C6FF2E;
  --wa:#25D366;
  --display:'Stick No Bills','Arial Narrow',Impact,sans-serif;
  --sans:'Atkinson Hyperlegible', system-ui, 'Segoe UI', Arial, sans-serif;
  --serif:'Atkinson Hyperlegible', system-ui, 'Segoe UI', Arial, sans-serif;
  --max:1180px;
  --reading:680px;
  --gutter:16px;
  --pad:56px;
}

/* ---------- ground -------------------------------------------------------- */
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden;}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
main{display:block;}
img{max-width:100%;display:block;border:0;}
p{margin:0 0 14px;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;}
button{font:inherit;color:inherit;border-radius:0;}
table{border-collapse:collapse;width:100%;}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px;}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter);}
.sr-only,.rates-card__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.wrap-any{overflow-wrap:anywhere;}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}

/* ---------- the enamel street plate: the motif that carries the site ------ */
.plate{
  display:inline-block;background:var(--enamel);color:var(--enamel-ink);
  border-radius:5px;padding:9px 18px 6px;position:relative;max-width:100%;
  box-shadow:0 2px 0 rgba(0,0,0,.5),0 10px 26px rgba(0,0,0,.45);
}
.plate::before{content:"";position:absolute;inset:4px;border:1.5px solid var(--enamel-line);border-radius:2px;pointer-events:none;}
.plate .pl,.plate.pl{
  display:block;font-family:var(--display);font-weight:800;text-transform:uppercase;
  line-height:.98;letter-spacing:.015em;position:relative;padding:2px 6px;margin:0;
  overflow-wrap:break-word;
}
.plate .sub{
  display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--enamel-mute);font-weight:700;padding:0 6px 2px;position:relative;
}
/* The shared-template layer further down sets a colour on every h1/h2 inside a
   <section>. A heading that sits on an enamel plate must keep the plate's ink,
   so these two rules out-rank it by one class and settle the question here. */
.plate h1.pl,.plate h2.pl,.plate .pl{color:var(--enamel-ink);}
.plate-dark{background:var(--panel);color:var(--ink);box-shadow:0 2px 0 rgba(0,0,0,.5);}
.plate-dark::before{border-color:var(--line2);}
.plate-dark .sub{color:var(--dim);}
.plate-dark h1.pl,.plate-dark h2.pl,.plate-dark .pl{color:var(--ink);}
a.brand{display:inline-block;max-width:100%;}
a.brand .plate{padding:6px 12px 4px;}
a.brand .pl{font-size:19px;padding:1px 4px;}

/* ---------- headings ------------------------------------------------------ */
h1,h2,h3,h4,h5{margin:0;}
.plate h1,.plate h2{font-size:inherit;}
.head{margin-bottom:30px;}
.head .plate{margin-bottom:16px;}
.head .pl{font-size:clamp(24px,3.4vw,38px);}
.head p{max-width:64ch;color:var(--mute);font-size:16px;margin:0;}
.street h1.pl{font-size:clamp(26px,4.1vw,50px);}
.phero h1.pl{font-size:clamp(24px,3.6vw,44px);}
.kick{
  display:block;font-size:12px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--lime);margin:0 0 16px;font-weight:700;
}
.lede{margin:26px 0 0;max-width:62ch;font-size:clamp(16px,1.5vw,18px);color:#cfd7e3;}
.lede b{color:var(--ink);font-weight:700;}

/* ---------- 21+ bar (shared app.js raises it) ----------------------------- */
.age-bar{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 14px;
  background:#04060a;border-bottom:1px solid var(--line);
  padding:7px var(--gutter);
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);
}
.age-bar__txt b{color:var(--lime);font-weight:700;margin-right:6px;letter-spacing:.14em;}
.age-bar__ok{
  background:none;border:1px solid var(--line2);color:var(--ink);
  font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
  padding:6px 11px;cursor:pointer;border-radius:3px;
}
.age-bar__ok:hover{background:var(--lime);color:var(--lime-ink);border-color:var(--lime);}
body.age-confirmed .age-bar{display:none;}

/* ---------- header -------------------------------------------------------- */
.site-header{border-bottom:1px solid var(--line);background:var(--ground2);}
.topbar{
  display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;
  max-width:var(--max);margin:0 auto;padding:12px var(--gutter);
}
.agepill{
  font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--lime);border:1px solid #475a12;border-radius:3px;
  padding:4px 8px;white-space:nowrap;margin-left:auto;
}
.site-header nav{
  display:flex;flex-wrap:wrap;gap:2px 22px;width:100%;order:3;
  font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;
  padding-top:10px;border-top:1px solid var(--line);
}
.site-header nav a{color:var(--mute);padding:5px 0;border-bottom:1px solid transparent;}
.site-header nav a:hover{color:var(--lime);border-bottom-color:var(--lime);}
.nav-toggle{
  display:none;background:none;border:1px solid var(--line2);color:var(--ink);border-radius:3px;
  font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;padding:7px 10px;cursor:pointer;
}
.nav-toggle:hover{background:var(--lime);border-color:var(--lime);color:var(--lime-ink);}
@media (max-width:760px){
  .nav-toggle{display:inline-block;}
  .site-header nav{display:none;}
  .site-header nav.open{display:flex;flex-direction:column;gap:0;}
  .site-header nav.open a{border-bottom:1px solid var(--line);padding:10px 0;}
}

/* ---------- buttons ------------------------------------------------------- */
.cta,.btns{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.05em;
  text-decoration:none;border-radius:4px;font-size:18px;padding:12px 20px;cursor:pointer;
  line-height:1.1;
}
.btn svg{width:18px;height:18px;flex:none;}
.btn-lime{background:var(--lime);color:var(--lime-ink);border:1px solid var(--lime);}
.btn-lime:hover{background:var(--lime-soft);border-color:var(--lime-soft);}
.btn-ghost{border:1.5px solid var(--line2);color:var(--ink);background:none;}
.btn-ghost:hover{border-color:var(--lime);color:var(--lime);}
.btn-plate{background:var(--enamel);color:var(--enamel-ink);border:1px solid var(--enamel2);}
.btn-plate:hover{background:#fff;}

/* ============================ HOME: THE STREET ============================ */
.street{position:relative;background:var(--night);border-bottom:1px solid var(--line);overflow:hidden;}
.street .bg{position:absolute;inset:0;width:100%;height:100%;}
.street .scrim{
  position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(5,7,12,.93) 0%,rgba(5,7,12,.88) 38%,rgba(5,7,12,.48) 58%,rgba(5,7,12,.06) 78%,rgba(5,7,12,0) 100%);
}
.street .wrap{position:relative;padding-top:52px;padding-bottom:56px;}
.street-inner{max-width:640px;}
.scene-narrow{display:none;}
.posts{display:flex;flex-wrap:wrap;gap:10px;margin:30px 0 30px;list-style:none;}
.posts li{
  background:var(--panel);border:1px solid var(--line2);border-left:4px solid var(--lime);
  padding:10px 28px 8px 14px;
  clip-path:polygon(0 0,calc(100% - 15px) 0,100% 50%,calc(100% - 15px) 100%,0 100%);
}
.posts small{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);}
.posts b{display:block;font-family:var(--display);font-weight:800;font-size:25px;line-height:1.05;letter-spacing:.02em;color:var(--ink);}
.posts b i{font-style:normal;color:var(--lime);}
.street .btn-lime{font-size:21px;padding:14px 24px;}
.street .btn-ghost,.street .btn-plate{font-size:18px;padding:13px 20px;}

/* ---------- inner-page hero: type and one plate, never the scene ---------- */
.phero{background:var(--ground2);border-bottom:1px solid var(--line);}
.phero .wrap{padding-top:40px;padding-bottom:40px;}
.phero .lede{max-width:66ch;}
.phero .btns{margin-top:26px;}
.phero .btn{font-size:17px;padding:12px 18px;}

/* ---------- generic band -------------------------------------------------- */
.band{padding:var(--pad) 0;border-bottom:1px solid var(--line);}
.band.alt{background:var(--ground2);}
.band.tight{padding:40px 0;}

/* ---------- note cards ---------------------------------------------------- */
.notes{display:grid;grid-template-columns:1fr;gap:14px;list-style:none;margin:0;padding:0;}
.notes li{background:var(--panel);border:1px solid var(--line);border-top:3px solid var(--lime-dim);padding:20px 20px 22px;}
.notes h3{font-family:var(--display);font-weight:800;font-size:26px;text-transform:uppercase;line-height:1;letter-spacing:.02em;margin:0 0 9px;color:var(--ink);}
.notes p{color:var(--mute);font-size:15.5px;margin:0;}

/* ---------- numbered steps ------------------------------------------------ */
.steps{list-style:none;display:grid;grid-template-columns:1fr;gap:18px;margin:0;padding:0;counter-reset:s;}
.steps li{display:flex;gap:15px;align-items:flex-start;counter-increment:s;}
.steps li::before{
  content:counter(s);flex:none;width:42px;height:42px;border-radius:4px;
  background:var(--enamel);color:var(--enamel-ink);font-family:var(--display);font-weight:800;font-size:26px;
  display:grid;place-items:center;line-height:1;box-shadow:0 2px 0 rgba(0,0,0,.45);
}
.steps h3{font-family:var(--display);font-weight:800;font-size:24px;text-transform:uppercase;line-height:1;margin:0 0 7px;color:var(--ink);}
.steps p{color:var(--mute);font-size:15.5px;margin:0;}
.steps > li > div{min-width:0;}

/* ============================ THE ROUTE BOARD ============================= */
.board{border:1px solid var(--line2);background:var(--panel2);border-radius:6px;overflow:hidden;}
.board .bhead{
  display:flex;justify-content:space-between;gap:14px;background:var(--panel);
  border-bottom:1px solid var(--line2);padding:10px 16px;
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);
}
.board ul,.board ol{list-style:none;margin:0;padding:0;}
.board li{border-bottom:1px solid var(--line);}
.board li:last-child{border-bottom:0;}
.board a,.board .brow{display:flex;align-items:baseline;gap:12px;padding:12px 16px;}
.board a:hover{background:var(--panel3);}
.board .ar{color:var(--lime);font-family:var(--display);font-weight:800;font-size:20px;line-height:1;flex:none;}
.board .rt{
  font-family:var(--display);font-weight:600;font-size:clamp(20px,2.3vw,28px);
  text-transform:uppercase;line-height:1.02;letter-spacing:.02em;color:var(--ink);min-width:0;
}
.board a:hover .rt{color:var(--lime);}
.board .dots{flex:1;border-bottom:1px dotted var(--line2);min-width:14px;position:relative;top:-5px;}
.board .km{
  font-family:var(--display);font-weight:600;font-size:19px;color:var(--lime);
  letter-spacing:.05em;flex:none;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.board-note{margin:16px 0 0;color:var(--mute);font-size:15px;max-width:66ch;}
.board .bnote{display:block;font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);line-height:1.5;margin-top:6px;}
.board .stack{display:flex;flex-direction:column;gap:0;min-width:0;flex:1;}
.board .stack .rt{white-space:normal;}

/* ============================ TARIFF ====================================== */
.tariff{display:grid;grid-template-columns:1fr;gap:26px;align-items:start;}
.card-enamel{background:var(--enamel);color:var(--enamel-ink);border-radius:6px;padding:8px;box-shadow:0 2px 0 rgba(0,0,0,.5),0 14px 34px rgba(0,0,0,.45);}
.card-enamel .in{border:1.5px solid var(--enamel-line);border-radius:3px;padding:18px 20px 20px;}
.card-enamel h3,.card-enamel .ch{
  font-family:var(--display);font-weight:800;font-size:24px;text-transform:uppercase;letter-spacing:.06em;
  line-height:1;padding-bottom:12px;border-bottom:1.5px solid var(--enamel-line);margin:0;color:var(--enamel-ink);
}
.tariff-rows{list-style:none;margin:0;padding:0;}
.tariff-rows li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:12px 0;border-bottom:1px solid var(--enamel-rule);}
.tariff-rows li:last-child{border-bottom:0;}
.tariff-rows span{font-size:14px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#343d4b;}
.tariff-rows b{font-family:var(--display);font-weight:800;font-size:clamp(30px,5vw,38px);line-height:1;letter-spacing:.01em;}
.card-enamel .fine{margin:12px 0 0;font-size:13px;color:#39424f;line-height:1.5;}
.tariff-side p{color:var(--mute);margin-bottom:14px;}
.tariff-side b{color:var(--ink);}
.tariff-side .btn{font-size:19px;}

/* ---------- the profile rate card (shared partials/rates.mustache) -------- */
.rates-card{margin-top:18px;}
.rates-card__title{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:24px;letter-spacing:.04em;margin:0 0 12px;color:var(--ink);}
.rates-card__table{width:100%;max-width:760px;margin:0 0 20px;font-variant-numeric:tabular-nums;}
.rates-card__table caption{text-align:left;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:0 0 8px;color:var(--dim);}
.rates-card__table th,.rates-card__table td{text-align:left;padding:10px 10px 10px 0;border-top:1px solid var(--line);font-size:15px;color:var(--mute);}
.rates-card__table td{text-align:right;padding-right:0;font-family:var(--display);font-weight:600;font-size:21px;color:var(--lime);}
.rates-card__table thead th{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;border-top:0;color:var(--dim);}
.rates-card__table thead th + th{text-align:right;}
.rates-card__extra th,.rates-card__extra td{opacity:.92;}
.rates-card__terms{font-size:13.5px;margin:0;}
.rates-card__terms a{color:var(--lime);border-bottom:1px solid var(--lime-dim);}

/* ---------- the plain ladder (technique and hub pages) -------------------- */
.ladder{margin:0;max-width:620px;font-variant-numeric:tabular-nums;}
.ladder th,.ladder td{text-align:left;padding:12px 0;border-bottom:1px solid var(--enamel-rule);font-size:14px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:#343d4b;}
.ladder td{text-align:right;font-family:var(--display);font-size:clamp(26px,4.6vw,34px);letter-spacing:.01em;color:var(--enamel-ink);text-transform:none;}
.ladder tr:last-child th,.ladder tr:last-child td{border-bottom:0;}

/* ============================ ROSTER TABLE ================================ */
.tablewrap{border:1px solid var(--line2);border-radius:6px;overflow:hidden;background:var(--panel2);}
table.roster{width:100%;border-collapse:collapse;text-align:left;}
table.roster caption{text-align:left;}
table.roster th{
  background:var(--panel);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--dim);font-weight:700;padding:11px 12px;border-bottom:1px solid var(--line2);
}
table.roster td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;}
table.roster tr:last-child td{border-bottom:0;}
table.roster tr:hover td{background:var(--panel3);}
.who{display:flex;align-items:center;gap:12px;min-width:0;}
.who img{width:46px;height:60px;object-fit:cover;object-position:50% 20%;border-radius:3px;border:1px solid var(--line2);flex:none;background:var(--panel);}
.who a{font-family:var(--display);font-weight:800;font-size:23px;text-transform:uppercase;line-height:1;letter-spacing:.02em;}
.who a:hover{color:var(--lime);}
td.age{font-family:var(--display);font-weight:600;font-size:21px;color:var(--lime);width:1%;white-space:nowrap;}
td.dist{color:var(--mute);font-size:13.5px;}
.tfoot{margin:16px 0 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--mute);font-size:14.5px;}
.tfoot a{color:var(--lime);font-weight:700;border-bottom:1px solid var(--lime-dim);}

/* ---------- photographs on the profile ------------------------------------ */
.portrait{background:var(--panel);border:1px solid var(--line2);border-radius:6px;padding:7px;box-shadow:0 2px 0 rgba(0,0,0,.5),0 14px 34px rgba(0,0,0,.45);}
.portrait img{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%;border-radius:3px;}
.shots{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;}
.shots li{min-width:0;}
.shots img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 18%;border-radius:4px;border:1px solid var(--line2);background:var(--panel);}

/* ============================ DISTRICT PLATES ============================= */
.areas{display:grid;grid-template-columns:1fr;gap:28px;align-items:start;}
.dplates{display:flex;flex-wrap:wrap;gap:9px;list-style:none;margin:0;padding:0;}
.dplates li{
  background:var(--enamel2);color:var(--enamel-ink);border-radius:4px;padding:7px 13px 5px;
  font-family:var(--display);font-weight:600;font-size:19px;text-transform:uppercase;
  letter-spacing:.03em;line-height:1.1;box-shadow:0 2px 0 rgba(0,0,0,.45);position:relative;
}
.dplates li::before{content:"";position:absolute;inset:3px;border:1px solid #6d7686;border-radius:2px;}
.dplates a{position:relative;}
.dplates a:hover{color:#3d5000;}
.areas-note{margin:22px 0 0;color:var(--mute);font-size:15.5px;max-width:58ch;}
.eta{border:1px solid var(--line2);background:var(--panel);border-radius:6px;padding:20px 20px 16px;}
.eta h3,.eta .eh{font-family:var(--display);font-weight:800;font-size:25px;text-transform:uppercase;line-height:1;margin:0 0 9px;color:var(--ink);}
.eta p{color:var(--mute);font-size:15.5px;}
.eta .rows{margin-top:16px;border-top:1px solid var(--line);}
.eta .row{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px;color:var(--mute);}
.eta .row b{font-family:var(--display);font-weight:600;font-size:19px;color:var(--lime);letter-spacing:.04em;white-space:nowrap;}

/* ============================ QUESTIONS =================================== */
.qa{max-width:860px;margin-top:6px;}
.qa details{border-bottom:1px solid var(--line);}
.qa details:first-of-type{border-top:1px solid var(--line);}
.qa summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:18px 0;font-family:var(--display);font-weight:600;font-size:clamp(20px,2.4vw,27px);
  text-transform:uppercase;line-height:1.08;color:var(--ink);
}
.qa summary::-webkit-details-marker{display:none;}
.qa summary::after{content:"+";font-family:var(--display);font-size:29px;color:var(--lime);line-height:1;}
.qa details[open] summary::after{content:"\2013";}
.qa summary:hover{color:var(--lime);}
.qa .a{padding:0 0 20px;}
.qa .a p{margin:0 0 12px;color:var(--mute);max-width:72ch;}
.qa .a p:last-child{margin-bottom:0;}

/* ============================ PROSE ======================================= */
.prose{max-width:var(--reading);}
.prose--wide{max-width:74ch;}
.prose p{font-size:16.5px;line-height:1.7;color:var(--mute);}
.prose h2{
  font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;
  line-height:1.02;font-size:clamp(23px,3vw,32px);margin:36px 0 12px;color:var(--ink);
}
.prose h3{font-family:var(--display);font-weight:600;text-transform:uppercase;font-size:clamp(19px,2.3vw,24px);letter-spacing:.03em;margin:26px 0 8px;color:var(--ink);}
.prose > h2:first-child,.prose > h3:first-child{margin-top:0;}
.prose ul,.prose ol{margin:0 0 18px;padding-left:20px;}
.prose li{margin:0 0 8px;font-size:16px;line-height:1.65;color:var(--mute);}
.prose a{color:var(--ink);border-bottom:1px solid var(--lime-dim);}
.prose a:hover{color:var(--lime);border-bottom-color:var(--lime);}
.prose .lede{color:#cfd7e3;}
.prose table{margin:0 0 20px;font-size:15px;}
.prose th,.prose td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);color:var(--mute);}
.independence{border-top:1px solid var(--line);padding-top:14px;margin-top:24px;font-size:14.5px;color:var(--dim);}
.independence a{color:var(--ink);border-bottom:1px solid var(--lime-dim);}

/* ---------- facts panel --------------------------------------------------- */
.facts{background:var(--panel);border:1px solid var(--line2);border-radius:6px;padding:20px 18px 22px;}
.spec{margin:0;}
.spec > div{display:flex;gap:14px;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);padding:9px 0;}
.spec > div:first-child{border-top:0;padding-top:0;}
.spec dt{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);}
.spec dd{margin:0;font-size:15px;font-weight:700;text-align:right;color:var(--ink);}
.spec dd a{color:var(--lime);}
.label{display:block;margin:18px 0 9px;font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;}
.tags .tag,.tag-pill{
  display:inline-block;background:var(--enamel2);color:var(--enamel-ink);border-radius:3px;
  font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;
}
.tags a.tag:hover{background:var(--lime);}
.cols{display:grid;gap:30px;}

/* ---------- index lists (guides, journal) --------------------------------- */
.index{list-style:none;margin:0;padding:0;display:grid;gap:12px;}
.index li{min-width:0;}
.index a{display:block;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--lime-dim);padding:18px 18px 20px;border-radius:4px;}
.index a:hover{background:var(--panel3);border-left-color:var(--lime);}
.index__t{display:block;font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.05;font-size:clamp(19px,2.4vw,25px);color:var(--ink);}
.index a:hover .index__t{color:var(--lime);}
.index__d{display:block;margin-top:8px;font-size:15px;color:var(--mute);max-width:64ch;}
.index__m{display:block;margin-top:10px;font-size:10.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);}

/* ---------- link lists (hubs, districts, related) ------------------------- */
.linklist{list-style:none;margin:0;padding:0;display:grid;gap:0;}
.linklist li{border-bottom:1px solid var(--line);}
.linklist li:first-child{border-top:1px solid var(--line);}
.linklist a{display:flex;gap:12px;align-items:baseline;padding:13px 0;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.02em;font-size:clamp(18px,2.1vw,23px);line-height:1.08;color:var(--ink);}
.linklist a::after{content:"\203A";font-family:var(--sans);margin-left:auto;color:var(--lime);font-size:20px;line-height:1;}
.linklist a:hover{color:var(--lime);}
.linklist .ll-note{display:block;font-family:var(--sans);font-size:13.5px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--dim);margin-top:5px;line-height:1.5;}
.more{margin:20px 0 0;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;}
.more a{color:var(--lime);border-bottom:1px solid var(--lime-dim);padding-bottom:2px;}
.more a:hover{color:var(--lime-soft);border-bottom-color:var(--lime-soft);}

/* ---------- closing band -------------------------------------------------- */
.last{
  padding:64px 0;border-bottom:1px solid var(--line);
  background:radial-gradient(70% 120% at 50% 0%,rgba(198,255,46,.07),transparent 62%),var(--ground);
}
.last .wrap{text-align:center;}
.last .plate{margin-bottom:20px;}
.last .pl{font-size:clamp(24px,3.6vw,42px);}
.last p{color:var(--mute);max-width:56ch;margin:0 auto 22px;}
.last .cta{justify-content:center;}
.last .btn-lime{font-size:21px;padding:15px 26px;}

/* ---------- home prose, written in content/<site>/pages.json -------------- */
.home-copy h2{
  font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;
  line-height:1.02;font-size:clamp(24px,3.4vw,38px);margin:0 0 14px;color:var(--ink);
}
.home-copy > h2:first-child{margin-top:0;}
.home-copy > p{max-width:66ch;color:var(--mute);}
.home-copy .head h2{margin:0;}

/* ============================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   about, faq, contact, booking, terms, privacy, dmca, age statement, glossary,
   cancellation policy and 404 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);}
.reading.container{max-width:var(--max);padding:0 var(--gutter);}
section .reading > *{max-width:var(--reading);}
section{padding:42px 0;}
.hero{max-width:var(--max);margin:0 auto;padding:42px var(--gutter) 30px;}
.hero-small{padding-top:36px;}
.hero .container{padding:0;}
.hero h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.02;font-size:clamp(27px,4.4vw,46px);max-width:22ch;color:var(--ink);}
.hero .lede{margin:22px 0 0;}
.label-top{font-size:11.5px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--lime);margin-bottom:13px;}
section .container > h1{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.02;font-size:clamp(26px,4vw,40px);margin-bottom:16px;color:var(--ink);}
section h2{font-family:var(--display);font-weight:800;text-transform:uppercase;letter-spacing:.02em;line-height:1.04;color:var(--ink);}
section h3{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);}
section p{color:var(--mute);line-height:1.7;}
section .reading h2{margin:38px 0 12px;font-size:clamp(23px,3vw,32px);}
section .reading h3{margin:24px 0 8px;font-size:clamp(18px,2.2vw,23px);}
/* Body links inside an inherited page, but NOT the two shared buttons: the shared
   templates put .btn.btn-primary and .btn.btn-ghost inside .reading, and a plain
   "section .reading a" outranks .btn-primary. :not(.btn) hands the buttons back. */
section .reading a:not(.btn){color:var(--ink);border-bottom:1px solid var(--lime-dim);}
section .reading a:not(.btn):hover{color:var(--lime);border-bottom-color:var(--lime);}
section .reading ul{padding-left:0;margin:0 0 20px;}
section .reading ul li{list-style:none;border-top:1px solid var(--line);padding:11px 0;font-size:15.5px;color:var(--mute);}
section .reading em{font-style:italic;color:var(--ink);}
.btn-primary{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:var(--lime);color:var(--lime-ink);border:1px solid var(--lime);border-radius:4px;
  font-family:var(--display);font-weight:800;font-size:18px;letter-spacing:.05em;text-transform:uppercase;padding:12px 20px;
}
.btn-primary:hover{background:var(--lime-soft);border-color:var(--lime-soft);}
.form-row{margin-top:16px;}
.form-row .label{margin:0 0 8px;}
.form-row select,.form-row input{
  width:100%;max-width:100%;padding:12px;border:1px solid var(--line2);border-radius:4px;
  background:var(--panel);font-family:var(--sans);font-size:15px;color:var(--ink);
}
.form-row select:focus,.form-row input:focus{outline:3px solid var(--lime);outline-offset:1px;}
.faq{margin-top:20px;}
.faq details{border-bottom:1px solid var(--line);}
.faq details:first-of-type{border-top:1px solid var(--line);}
.faq summary{
  list-style:none;cursor:pointer;padding:16px 32px 16px 0;position:relative;
  font-family:var(--display);font-weight:600;font-size:clamp(19px,2.3vw,25px);
  text-transform:uppercase;line-height:1.1;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:2px;top:14px;font-family:var(--display);font-size:27px;color:var(--lime);}
.faq details[open] summary::after{content:"\2013";}
.faq summary:hover{color:var(--lime);}
.faq .a{padding:0 0 18px;}
.faq .a p{margin:0 0 12px;font-size:16px;line-height:1.68;color:var(--mute);max-width:70ch;}
.faq .a p:last-child{margin-bottom:0;}
.chips{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px;}
.chips li{background:var(--enamel2);color:var(--enamel-ink);border-radius:3px;font-weight:700;font-size:13px;padding:6px 10px;text-transform:uppercase;letter-spacing:.05em;}

/* ---------- build-injected breadcrumbs and related pages ------------------ */
nav.crumbs{
  max-width:var(--max);margin:0 auto;padding:14px var(--gutter) 0;
  font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
}
nav.crumbs ol{opacity:1;gap:4px 10px;}
nav.crumbs li{color:var(--dim);gap:10px;}
nav.crumbs li+li::before{content:"\203A";opacity:1;color:var(--lime);}
nav.crumbs a{color:var(--dim);border-bottom:1px solid transparent;}
nav.crumbs a:hover{color:var(--lime);border-bottom-color:var(--lime);}
nav.crumbs [aria-current]{opacity:1;color:var(--ink);}
aside.seo-related{max-width:var(--max);margin:0 auto;padding:40px var(--gutter) 48px;}
aside.seo-related .seo-related__in{border-top:1px solid var(--line2);padding-top:18px;}
aside.seo-related .seo-related__h{
  margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--lime);opacity:1;
}
aside.seo-related ul{gap:0 24px;}
aside.seo-related a{border-bottom:1px solid var(--line);font-size:15px;font-weight:700;color:var(--mute);padding:11px 0;}
aside.seo-related a:hover{opacity:1;color:var(--lime);}

/* ============================ FOOTER ====================================== */
.site-footer{border-top:1px solid var(--line);background:var(--ground2);padding:42px 0 34px;color:var(--mute);font-size:14.5px;}
.site-footer__in{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:grid;gap:28px;}
.site-footer__h{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink);margin:0 0 11px;font-weight:700;}
.site-footer ul{list-style:none;display:grid;gap:7px;}
.site-footer li{line-height:1.5;}
.site-footer a{color:var(--mute);}
.site-footer a:hover{color:var(--lime);}
.site-footer__note{max-width:42ch;line-height:1.6;margin:12px 0 0;}
.site-footer__legal{
  max-width:var(--max);margin:30px auto 0;padding:16px var(--gutter) 0;border-top:1px solid var(--line);
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;font-size:12px;
}
.age21{color:var(--lime);font-weight:700;letter-spacing:.16em;text-transform:uppercase;}

/* ============================ MOBILE DOCK ================================= */
.m-dock{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;gap:9px;padding:9px 12px calc(9px + env(safe-area-inset-bottom));
  background:#04060a;border-top:1px solid var(--line2);
}
.m-dock a{
  flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 6px;border-radius:4px;font-family:var(--display);font-weight:800;
  font-size:17px;letter-spacing:.05em;text-transform:uppercase;line-height:1.1;
}
.m-dock svg{width:17px;height:17px;flex:none;}
.m-dock__wa{background:var(--lime);color:var(--lime-ink);}
.m-dock__tg{background:var(--enamel);color:var(--enamel-ink);}
.m-dock__alt{border:1.5px solid var(--line2);color:var(--ink);}
.m-dock__wa:hover{background:var(--lime-soft);}
.m-dock__tg:hover{background:#fff;}
.m-dock__alt:hover{border-color:var(--lime);color:var(--lime);}
@media (min-width:761px){.m-dock{display:none;}}
@media (max-width:760px){body{padding-bottom:78px;}}

/* ============================ WIDER SCREENS =============================== */
@media (min-width:620px){
  .shots{grid-template-columns:repeat(3,1fr);}
  .index{grid-template-columns:repeat(2,1fr);}
  .site-footer__in{grid-template-columns:repeat(2,1fr);}
  .who img{width:54px;height:70px;}
  .who a{font-size:27px;}
  td.age{font-size:24px;}
  td.dist{font-size:15px;white-space:nowrap;}
  table.roster th,table.roster td{padding:12px 18px;}
}
@media (min-width:900px){
  :root{--gutter:28px;--pad:74px;}
  body{font-size:17px;}
  .street .wrap{padding-top:60px;padding-bottom:62px;}
  .street-inner{max-width:640px;}
  .posts b{font-size:27px;}
  .notes{grid-template-columns:repeat(3,1fr);gap:16px;}
  .steps{grid-template-columns:repeat(3,1fr);}
  .tariff{grid-template-columns:1.05fr .95fr;gap:34px;}
  .areas{grid-template-columns:1.15fr .85fr;gap:40px;}
  .index{grid-template-columns:repeat(3,1fr);}
  .shots{grid-template-columns:repeat(4,1fr);}
  .cols{grid-template-columns:minmax(0,1fr) 330px;gap:44px;align-items:start;}
  .cols--flip{grid-template-columns:330px minmax(0,1fr);}
  .profile-top{display:grid;grid-template-columns:330px minmax(0,1fr);gap:40px;align-items:start;}
  .site-footer__in{grid-template-columns:repeat(4,1fr);gap:32px;}
  .phero .wrap{padding-top:50px;padding-bottom:48px;}
}
@media (max-width:760px){
  .street .bg-wide{display:none;}
  .street .scrim{display:none;}
  .scene-narrow{display:block;position:relative;width:100%;height:190px;border-top:1px solid var(--line);}
  .street .btn,.last .btn,.tariff-side .btn{width:100%;}
  .board a,.board .brow{padding:11px 12px;gap:10px;}
  .board .bhead{padding:10px 12px;}
  .board .rt{font-size:19px;}
  .board .km{font-size:17px;}
  .dplates li{font-size:17px;padding:6px 11px 4px;}
  .card-enamel .in{padding:15px 15px 17px;}
}
@media (max-width:400px){
  .street h1.pl{font-size:25px;}
  .posts b{font-size:21px;}
  .who a{font-size:20px;}
  .who img{width:40px;height:52px;}
  td.age{font-size:18px;}
  table.roster th,table.roster td{padding:9px 9px;}
  td.dist{font-size:12.5px;}
}

/* ---- 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}
