/* === Self-hosted fonts (latin subset), public/fonts/lastferry/ ===
   Passion One      display: the brand mark, every headline, every figure
   Source Sans 3    text: variable 400 to 700, roman and italic
   No third-party stylesheet is loaded on any page of this network, so the five
   faces below are the whole type system. The build rewrites this run from
   sites/amsterdam-massage.json theme.fonts.faces; keep the two in step. */
@font-face {
  font-family: 'Passion One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/lastferry/passion-one-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: 'Passion One';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/fonts/lastferry/passion-one-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: 'Passion One';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url('/fonts/lastferry/passion-one-normal-900.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: 'Source Sans 3';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/lastferry/source-sans-3-normal-400-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: 'Source Sans 3';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/lastferry/source-sans-3-italic-400-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;
}

/* ============================================================================
   AMSTERDAM-MASSAGE.COM, theme "lastferry"
   A horizon split. Harbour ink above, a lit waterline across the middle, the
   practical card carried over it in port signal orange. Passion One set very
   large over Source Sans 3, which is the plainest text face in the network and
   the reason it is here: this domain is written to be read by a visitor whose
   English is a second language.

   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 a border 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 this design was chosen with, the
   harbour horizon in templates/lastferry/home.mustache, carried over from the
   preview unchanged and used on the home page only. Every other page is
   photographs, type and flat material: a colour field, a rule, a border, a
   gradient. The messenger glyphs in the mobile dock are the only other marks.

   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:#030b1f;
  --ground2:#06142c;
  --ground3:#0b1b36;
  --panel:#08182f;
  --sky-top:#02091c;
  --sky-mid:#061a35;
  --sky-low:#12314f;
  --sky-horizon:#1b4467;
  --deep:#02091a;
  --line:rgba(190,220,255,.14);
  --line2:rgba(190,220,255,.26);
  --ink:#f2f6fa;
  --mute:#c3cede;
  --dim:#a6b3c3;
  --sig:#ff5c1f;
  --sig-hi:#ffa27a;
  --sig-lo:#d9420a;
  --sig-ink:#1a0700;
  --lamp:#cfe6ff;
  --win:#ffd9a8;
  /* tokens the SHARED templates and the build-injected blocks read: keep them
     declared so an inherited page never falls back to an invalid value */
  --muted:#c3cede;
  --faint:#a6b3c3;
  --rule:rgba(190,220,255,.14);
  --hair:rgba(190,220,255,.26);
  --paper:#08182f;
  --wa:#25d366;
  --serif:'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  --sans:'Source Sans 3', 'Segoe UI', system-ui, sans-serif;
  /* the display face is not configurable: it is the design */
  --head:'Passion One', 'Arial Black', Impact, sans-serif;
  --max:1280px;
  --reading:680px;
  --g:clamp(18px,4.2vw,58px);
}

/* ---------- ground -------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;background:var(--ground);}
html,body{overflow-x:hidden;max-width:100%;}
@supports (overflow:clip){html,body{overflow-x:clip;}}
body{
  background:var(--ground);
  color:var(--ink);
  font:400 17px/1.62 var(--sans);
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--sig);color:var(--sig-ink);}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
img,svg{display:block;max-width:100%;}
img{border:0;}
p{margin:0 0 14px;}
:focus-visible{outline:2px solid var(--sig-hi);outline-offset:3px;}
h1,h2,h3{font-family:var(--head);font-weight:900;line-height:.94;text-transform:uppercase;letter-spacing:.012em;}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--g);width:100%;}
.wrap-any{overflow-wrap:anywhere;}
.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;}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}

/* ---------- atoms --------------------------------------------------------- */
.kick{display:block;font:700 .74rem/1.3 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sig-hi);margin:0 0 .9rem;}
.sec-h{display:grid;gap:.85rem;}
.sec-h h1,.sec-h h2{font-size:clamp(2rem,3.6vw,3.1rem);max-width:21ch;}
.sec-h p{color:var(--mute);max-width:60ch;margin:0;}
.sec-h .kick{margin:0;}
.more{margin:1.6rem 0 0;font-weight:700;font-size:.95rem;}
.more a{color:var(--sig-hi);border-bottom:1px solid var(--line2);padding-bottom:2px;}
.more a:hover{color:var(--ink);border-bottom-color:var(--sig);}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:0 1.5rem;
  font:700 1rem/1 var(--sans);letter-spacing:.01em;border-radius:2px;text-align:center;}
.btn svg{width:20px;height:20px;flex:none;}
.btn-wa{background:var(--sig);color:var(--sig-ink);}
.btn-wa:hover{background:var(--sig-hi);}
.btn-tg{border:1px solid var(--line2);color:var(--ink);background:transparent;}
.btn-tg:hover{border-color:var(--sig-hi);color:var(--sig-hi);}
.ctas{display:flex;gap:.7rem;flex-wrap:wrap;}

/* ---------- 21+ bar ------------------------------------------------------- */
.age-bar{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:center;
  background:var(--sky-top);border-bottom:1px solid var(--line);
  padding:10px var(--g);font-size:13px;color:var(--mute);
}
.age-bar__txt b{color:var(--sig);letter-spacing:.14em;font-weight:700;margin-right:6px;}
.age-bar__ok{
  font:700 12px/1 var(--sans);letter-spacing:.06em;color:var(--ink);cursor:pointer;
  background:transparent;border:1px solid var(--line2);border-radius:2px;padding:9px 13px;
}
.age-bar__ok:hover{border-color:var(--sig);color:var(--sig-hi);}
body.age-confirmed .age-bar{display:none;}

/* ---------- header, reading as the top of the sky ------------------------- */
.site-header{background:var(--sky-top);position:relative;z-index:6;}
.topbar{display:flex;align-items:center;gap:1.2rem;min-height:74px;}
.mark{font:900 1.45rem/1 var(--head);text-transform:uppercase;letter-spacing:.03em;margin-right:auto;
  display:flex;align-items:center;gap:.6rem;color:var(--ink);min-width:0;}
.mark i{width:11px;height:11px;border-radius:50%;background:var(--sig);flex:none;}
.site-header nav{display:flex;gap:1.4rem;font-weight:600;font-size:.94rem;color:#cfdae6;flex-wrap:wrap;}
.site-header nav a{padding:4px 0;}
.site-header nav a:hover{color:var(--sig-hi);}
.chip{font:700 .7rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:#cfdae6;
  border:1px solid var(--line2);padding:.5rem .6rem;border-radius:2px;flex:none;}
.chip b{color:var(--sig-hi);}
.nav-toggle{display:none;font:700 12px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);background:transparent;border:1px solid var(--line2);border-radius:2px;padding:9px 12px;cursor:pointer;}
.nav-toggle:hover{border-color:var(--sig);color:var(--sig-hi);}

/* ---------- the horizon: sky above, water below --------------------------- */
.sky{position:relative;display:grid;align-items:end;min-height:clamp(500px,70vh,700px);
  padding-top:clamp(4.5rem,9vw,8rem);padding-bottom:clamp(150px,21vw,300px);
  background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 40%,var(--sky-low) 74%,var(--sky-horizon) 100%);
  overflow:hidden;}
.scene{position:absolute;inset:0;width:100%;height:100%;}
.sky::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg,rgba(2,9,26,0) 22%,rgba(2,9,26,.44) 44%,rgba(2,9,26,.44) 62%,rgba(2,9,26,.08) 76%,rgba(2,9,26,0) 100%);}
.sky-copy{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(1.1rem,3vw,3rem);align-items:end;}
.sky-copy h1{font-size:clamp(2.05rem,3.7vw,3.15rem);line-height:.94;text-shadow:0 3px 26px rgba(1,7,22,.85);}
.sky-copy h1 em{font-style:normal;color:var(--sig-hi);}
.said{border-top:2px solid var(--sig);padding-top:.9rem;}
.said .lede{color:#e9f0f7;max-width:48ch;margin:0;text-shadow:0 2px 14px rgba(1,7,22,.9);}

.water{position:relative;background:linear-gradient(180deg,var(--deep) 0%,#020c1f 30%,var(--ground) 100%);
  padding-bottom:clamp(2.4rem,5vw,4rem);}
.water::before{content:"";position:absolute;left:0;right:0;top:0;height:300px;pointer-events:none;
  background:repeating-linear-gradient(180deg,rgba(140,188,236,.09) 0 1px,transparent 1px 26px);
  -webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9) 0%,transparent 90%);
  mask-image:linear-gradient(180deg,rgba(0,0,0,.9) 0%,transparent 90%);}
.deck{position:relative;z-index:4;margin-top:clamp(-150px,-12vw,-56px);}
.card{max-width:1010px;background:var(--panel);border:1px solid var(--line2);border-top:3px solid var(--sig);
  box-shadow:0 40px 90px -50px #000;padding:clamp(1.4rem,3vw,2.2rem);}
.card-h{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:.4rem;}
.card-h h2{font-size:clamp(1.55rem,2.4vw,2rem);}
.card-h span{font:700 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sig-hi);}
.card-cta{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;padding-top:1.3rem;}
.card-cta .note{color:var(--mute);font-size:.9rem;max-width:30ch;margin:0;}

/* the card's own copy comes from content/amsterdam-massage/pages.json */
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);margin:1.2rem 0 0;}
.facts>div{background:var(--panel);display:grid;gap:.42rem;align-content:start;padding:.95rem 1rem 1.1rem;}
.facts dt{font:700 .68rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sig-hi);}
.facts dd{color:var(--ink);font-size:.97rem;line-height:1.45;margin:0;}
.facts dd b{font-family:var(--head);font-weight:900;font-size:1.3em;letter-spacing:.02em;color:var(--sig);vertical-align:-.04em;}
.card .run{margin-top:1.6rem;border-top:1px solid var(--line2);}
.card .qa{margin-top:1.6rem;}
.card>h2{font-size:clamp(1.2rem,2vw,1.5rem);margin:1.8rem 0 .2rem;}
.card>p{color:var(--mute);max-width:66ch;}

/* ---------- ledger (techniques) ------------------------------------------- */
.ledger-sec{padding-block:clamp(3.4rem,7vw,6rem);}
.ledger{margin-top:clamp(1.8rem,3.5vw,2.6rem);border-top:1px solid var(--line2);}
.ledger li{display:grid;grid-template-columns:3.4rem minmax(11rem,17rem) 1fr auto;gap:1.2rem;align-items:baseline;
  padding:1.05rem .6rem;border-bottom:1px solid var(--line);}
.ledger li:hover{background:var(--ground3);}
.ledger .no{font:700 .95rem/1 var(--head);color:var(--sig);letter-spacing:.12em;}
.ledger h3{font-size:1.35rem;letter-spacing:.02em;}
.ledger a{color:inherit;}
.ledger li:hover h3{color:var(--sig-hi);}
.ledger p{color:var(--mute);font-size:.98rem;margin:0;}
.ledger .px{font:900 1.15rem/1 var(--head);color:var(--sig);white-space:nowrap;letter-spacing:.02em;}
.ledger .len{display:inline-block;font-size:.86rem;color:var(--dim);letter-spacing:.04em;}
.ledger .len+.len::before{content:"·";margin:0 .45rem;color:var(--line2);}

/* ---------- roster strip -------------------------------------------------- */
.roster{padding-block:clamp(3.2rem,6vw,5.4rem);background:var(--ground2);border-block:1px solid var(--line);}
.roster-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;}
.roster-head .hint{font:600 .8rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);margin:0;}
.strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;
  padding:clamp(1.6rem,3vw,2.2rem) var(--g) 1.2rem;scrollbar-color:var(--sig) var(--ground3);scrollbar-width:thin;}
.strip::-webkit-scrollbar{height:7px;}
.strip::-webkit-scrollbar-track{background:var(--ground3);}
.strip::-webkit-scrollbar-thumb{background:var(--sig-lo);}
.strip li{flex:0 0 clamp(198px,21vw,248px);scroll-snap-align:start;background:var(--ground3);border:1px solid var(--line);}
.strip li:hover{border-color:var(--sig);}
.strip figure{aspect-ratio:3/4;overflow:hidden;background:#07152d;}
.strip img{width:100%;height:100%;object-fit:cover;}
.strip .who{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.8rem .9rem .9rem;}
.strip h3{font-size:1.45rem;}
.strip .dis{display:block;font:600 .8rem/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);}
.strip .age{font:900 1.3rem/1 var(--head);color:var(--sig);}

/* a wall of the same cards, for /therapists/ and the "also on the roster" runs */
.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;
  margin-top:clamp(1.6rem,3vw,2.4rem);}
.wall li{background:var(--ground3);border:1px solid var(--line);}
.wall li:hover{border-color:var(--sig);}
.wall figure{aspect-ratio:3/4;overflow:hidden;background:#07152d;}
.wall img{width:100%;height:100%;object-fit:cover;}
.wall .who{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;padding:.8rem .9rem .9rem;}
.wall h3{font-size:1.4rem;}
.wall .dis{display:block;font:600 .78rem/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--dim);}
.wall .age{font:900 1.25rem/1 var(--head);color:var(--sig);}

/* ---------- timetable ----------------------------------------------------- */
.fares{padding-block:clamp(3.4rem,7vw,6rem);}
.tt{width:100%;border-collapse:collapse;margin-top:clamp(1.6rem,3vw,2.4rem);font-variant-numeric:tabular-nums;}
.tt caption{text-align:left;color:var(--mute);font-size:.9rem;padding:1rem 0 0;caption-side:bottom;}
.tt th,.tt td{text-align:left;padding:1rem 1.1rem;border-bottom:1px solid var(--line);}
.tt thead th{background:var(--sig);color:var(--sig-ink);font:700 .74rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;border-bottom:0;}
.tt tbody th{font:900 1.5rem/1 var(--head);text-transform:uppercase;color:var(--ink);letter-spacing:.02em;width:30%;}
.tt .dur{color:var(--mute);width:22%;}
.tt .fare{font:900 1.8rem/1 var(--head);color:var(--win);width:20%;}
.tt tbody tr:first-child .fare{color:var(--sig);}
.tt .nb{color:var(--mute);font-size:.95rem;}
.tt tbody tr:hover{background:var(--ground2);}

/* ---------- stops (link rows in two columns) ------------------------------ */
.stops-sec{padding-block:clamp(3.4rem,7vw,6rem);background:var(--ground2);border-block:1px solid var(--line);}
.stops-in{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(1.8rem,4vw,4rem);align-items:start;}
.stops{columns:2;column-gap:clamp(1.4rem,3vw,2.6rem);}
.stops li{break-inside:avoid;display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;
  padding:.68rem 0;border-bottom:1px solid var(--line);}
.stops b{font:700 1.02rem/1.35 var(--sans);color:var(--ink);}
.stops li:hover b{color:var(--sig-hi);}
.stops span{color:var(--dim);font-size:.85rem;white-space:nowrap;}
.stops li.far b{color:var(--lamp);}
.airport{margin-top:1.6rem;border-left:3px solid var(--sig);padding:.2rem 0 .2rem 1.1rem;}
.airport strong{display:block;font:700 .95rem/1.3 var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--sig-hi);margin-bottom:.35rem;}
.airport p{color:var(--mute);font-size:.97rem;margin:0;}

/* ---------- numbered run + questions -------------------------------------- */
.run-sec{padding-block:clamp(3.4rem,7vw,6rem);}
.run-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start;}
.run{border-top:1px solid var(--line2);}
.run li{display:grid;grid-template-columns:2.6rem 1fr;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line);}
.run .n{font:900 1.6rem/1 var(--head);color:var(--sig);}
.run h3{font-size:1.2rem;margin-bottom:.3rem;}
.run a:hover h3{color:var(--sig-hi);}
.run p{color:var(--mute);font-size:.97rem;margin:0;}
.qa details{border-bottom:1px solid var(--line);}
.qa details:first-of-type{border-top:1px solid var(--line2);}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;padding:1.05rem 0;
  font:700 1.04rem/1.45 var(--sans);color:var(--ink);}
.qa summary::-webkit-details-marker{display:none;}
.qa summary:hover{color:var(--sig-hi);}
.qa summary::after{content:"+";font-family:var(--head);font-size:1.5rem;line-height:1;color:var(--sig);}
.qa details[open] summary::after{content:"\2013";}
.qa .a p,.qa>p{color:var(--mute);padding-bottom:1.1rem;max-width:60ch;font-size:.98rem;margin:0;}

/* ---------- closing band -------------------------------------------------- */
.close{position:relative;background:linear-gradient(180deg,var(--ground) 0%,#061c3a 100%);border-top:1px solid var(--line);
  padding-block:clamp(3.4rem,7vw,5.6rem);overflow:hidden;}
.close-in{display:flex;align-items:end;justify-content:space-between;gap:2rem;flex-wrap:wrap;position:relative;z-index:2;}
.close h2{font-size:clamp(2rem,4vw,3.4rem);max-width:17ch;}
.close h2 em{font-style:normal;color:var(--sig);}
.close-line{position:absolute;left:0;right:0;bottom:0;height:150px;z-index:1;
  background:repeating-linear-gradient(180deg,rgba(255,92,31,.09) 0 2px,transparent 2px 9px);}

/* ---------- page hero, every page that is not the home page --------------- */
.phero{position:relative;background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 58%,var(--sky-low) 100%);
  padding-block:clamp(2.4rem,5vw,4rem) clamp(2.6rem,5vw,4.4rem);border-bottom:2px solid var(--sig);}
.phero h1{font-size:clamp(2rem,4.4vw,3.4rem);max-width:19ch;text-shadow:0 3px 26px rgba(1,7,22,.7);}
.phero .said{margin-top:clamp(1.2rem,2.4vw,1.8rem);border-top-width:1px;border-top-color:var(--line2);}
.phero .lede{color:#e9f0f7;max-width:62ch;margin:0;}
.phero .ctas{margin-top:clamp(1.4rem,2.6vw,2rem);}
.phero-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(1.2rem,3vw,3rem);align-items:end;}
.phero-in .said{margin-top:0;border-top:2px solid var(--sig);padding-top:.9rem;}

/* ---------- prose --------------------------------------------------------- */
.sec{padding-block:clamp(3rem,6vw,5rem);}
.sec--tight{padding-block:clamp(2.2rem,4vw,3.4rem);}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,19rem);gap:clamp(1.8rem,4vw,3.4rem);align-items:start;}
.prose{max-width:var(--reading);}
.prose--wide{max-width:74ch;}
.prose p{font-size:17px;line-height:1.7;color:var(--mute);}
.prose h2{margin:2.4rem 0 .8rem;font-size:clamp(1.5rem,3vw,2.2rem);color:var(--ink);}
.prose h3{margin:1.8rem 0 .6rem;font-size:1.2rem;color:var(--ink);}
.prose ul,.prose ol{margin:0 0 1.2rem;padding-left:1.2rem;list-style:disc;}
.prose ol{list-style:decimal;}
.prose li{margin:0 0 .5rem;font-size:16px;line-height:1.65;color:var(--mute);}
.prose a{color:var(--ink);border-bottom:1px solid var(--sig);}
.prose a:hover{color:var(--sig-hi);border-bottom-color:var(--sig-hi);}
.prose .lede{color:var(--ink);}
.prose em{font-style:italic;}
.independence{border-top:1px solid var(--line2);padding-top:1rem;margin-top:1.8rem;font-size:15px;color:var(--dim);}
.independence a{color:var(--sig-hi);border-bottom:1px solid var(--line2);}

/* the side panel of specifications on a profile and a technique page */
.panel{background:var(--panel);border:1px solid var(--line2);border-top:3px solid var(--sig);padding:1.2rem 1.3rem 1.4rem;}
.spec{display:grid;gap:1px;background:var(--line);border:1px solid var(--line);}
.spec>div{background:var(--panel);display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.62rem .8rem;}
.spec dt{font:700 .66rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sig-hi);}
.spec dd{margin:0;font-size:.95rem;text-align:right;color:var(--ink);}
.label{display:block;font:700 .68rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sig-hi);margin:1.3rem 0 .7rem;}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;}
.tag{display:inline-block;font:600 .8rem/1 var(--sans);letter-spacing:.04em;color:var(--mute);
  border:1px solid var(--line2);border-radius:2px;padding:.45rem .6rem;}
a.tag:hover{border-color:var(--sig);color:var(--sig-hi);}

/* the photographs under a profile hero */
.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;}
.shots figure{aspect-ratio:3/4;overflow:hidden;background:#07152d;border:1px solid var(--line);}
.shots img{width:100%;height:100%;object-fit:cover;}

/* index rows, for /guides/ and /journal/ */
.index{border-top:1px solid var(--line2);}
.index li{border-bottom:1px solid var(--line);}
.index a{display:grid;grid-template-columns:minmax(0,1fr) 7rem;gap:.4rem 1.4rem;padding:1.1rem .6rem;align-items:baseline;}
.index a:hover{background:var(--ground3);}
.index__t{font:900 1.3rem/1.15 var(--head);text-transform:uppercase;letter-spacing:.02em;}
.index a:hover .index__t{color:var(--sig-hi);}
.index__d{color:var(--mute);font-size:.97rem;grid-column:1;}
.index__m{color:var(--dim);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;grid-row:1;grid-column:2;text-align:right;}

/* the rate card partial, rendered inside every profile */
.rates-card{margin-top:.4rem;}
.rates-card__title{font:900 1.4rem/1 var(--head);text-transform:uppercase;letter-spacing:.02em;margin:0 0 1rem;color:var(--ink);}
.rates-card__table{width:100%;max-width:760px;margin:0 0 1.6rem;border-collapse:collapse;font-variant-numeric:tabular-nums;}
.rates-card__table caption{text-align:left;font:700 .68rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sig-hi);padding-bottom:.6rem;}
.rates-card__table th,.rates-card__table td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--line);font-size:.97rem;}
.rates-card__table thead th{background:var(--sig);color:var(--sig-ink);font:700 .68rem/1.2 var(--sans);letter-spacing:.16em;text-transform:uppercase;border-bottom:0;}
.rates-card__table tbody th{font-weight:700;color:var(--ink);}
.rates-card__table td{color:var(--mute);}
.rates-card__extra th,.rates-card__extra td{color:var(--dim);}
.rates-card__terms{margin:0;font-size:.9rem;font-weight:700;}
.rates-card__terms a{color:var(--sig-hi);border-bottom:1px solid var(--line2);}

/* ---------- variants used by the inner pages ------------------------------ */
.phero--deck{padding-bottom:clamp(4.4rem,8vw,6.6rem);}
.deck--inner{margin-top:clamp(-78px,-6vw,-34px);}
.spec--wide{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;background:var(--panel);margin:0 0 .4rem;}
.spec--wide>div{display:grid;gap:.42rem;align-content:start;justify-content:stretch;padding:.95rem 1rem 1.1rem;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.spec--wide dd{text-align:left;font-size:.97rem;line-height:1.45;}
.tt .fare--alt{color:var(--win);}
.tt tbody tr:first-child .fare--alt{color:var(--win);}
.ledger--top{margin-top:0;}

/* ============================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   about, faq, contact, booking, terms, privacy, dmca, age statement, glossary,
   the cancellation policy and 404 render the shared markup, not this theme's.
   ============================================================================ */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--g);width:100%;}
.reading{max-width:var(--reading);}
.reading.container{max-width:var(--max);padding:0 var(--g);}
section .reading>*{max-width:var(--reading);}
.hero{max-width:none;margin:0;padding:clamp(2.4rem,5vw,4rem) 0 clamp(2.6rem,5vw,4.4rem);
  background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 58%,var(--sky-low) 100%);
  border-bottom:2px solid var(--sig);}
.hero .container{padding:0 var(--g);}
.hero h1{font-size:clamp(2rem,4.4vw,3.2rem);max-width:19ch;}
.hero .lede{margin:1.4rem 0 0;color:#e9f0f7;max-width:62ch;}
.hero-small{padding-top:clamp(2rem,4vw,3rem);}
.label-top{display:block;font:700 .74rem/1.3 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--sig-hi);margin:0 0 .9rem;}
.label{font:700 .68rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sig-hi);}
section{padding-block:0;}
section .container{padding-block:clamp(2rem,4vw,3rem);}
.hero .container{padding-block:0;}
section .reading h2{margin:2.4rem 0 .8rem;font-size:clamp(1.5rem,3vw,2.2rem);}
section .reading h3{margin:1.8rem 0 .6rem;font-size:1.2rem;color:var(--ink);}
section .reading p{color:var(--mute);line-height:1.7;}
section .reading a:not(.btn){color:var(--ink);border-bottom:1px solid var(--sig);}
section .reading a:not(.btn):hover{color:var(--sig-hi);border-bottom-color:var(--sig-hi);}
section .reading ul,section .reading ol{padding-left:0;margin:0 0 1.2rem;}
section .reading li{list-style:none;border-top:1px solid var(--line);padding:.7rem 0;font-size:16px;color:var(--mute);}
section .reading em{font-style:italic;color:var(--ink);}
section .reading dl{margin:0 0 1.2rem;}
section .reading dt{font-weight:700;color:var(--ink);margin-top:1rem;}
section .reading dd{margin:0 0 .4rem;color:var(--mute);}
.btn-primary{background:var(--sig);color:var(--sig-ink);border:1px solid var(--sig);}
.btn-primary:hover{background:var(--sig-hi);border-color:var(--sig-hi);color:var(--sig-ink);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line2);}
.btn-ghost:hover{border-color:var(--sig-hi);color:var(--sig-hi);}
.form-row{margin-top:1.1rem;}
.form-row .label{display:block;margin:0 0 .5rem;}
.form-row select,.form-row input{
  width:100%;max-width:var(--reading);background:var(--panel);color:var(--ink);
  border:1px solid var(--line2);border-radius:2px;padding:13px 12px;font:400 16px/1.3 var(--sans);
}
.form-row select:focus,.form-row input:focus{outline:2px solid var(--sig-hi);outline-offset:1px;}

/* ---------- build-injected breadcrumbs and related pages ------------------ */
nav.crumbs{max-width:var(--max);margin:0 auto;padding:14px var(--g) 0;font-size:12.5px;letter-spacing:.02em;}
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(--sig);}
nav.crumbs a{color:var(--dim);border-bottom:1px solid transparent;}
nav.crumbs a:hover{color:var(--sig-hi);border-bottom-color:var(--sig-hi);}
nav.crumbs [aria-current]{opacity:1;color:var(--ink);}
aside.seo-related{max-width:var(--max);margin:0 auto;padding:clamp(2.4rem,4vw,3.4rem) var(--g) clamp(2.6rem,4vw,3.6rem);}
aside.seo-related .seo-related__in{border-top:1px solid var(--line2);padding-top:20px;}
aside.seo-related .seo-related__h{font:700 .68rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sig-hi);opacity:1;}
aside.seo-related ul{gap:0 26px;}
aside.seo-related a{color:var(--mute);border-bottom:1px solid var(--line);}
aside.seo-related a:hover{opacity:1;color:var(--sig-hi);}

/* ---------- footer -------------------------------------------------------- */
.site-footer{background:#01060f;border-top:1px solid var(--line);padding-block:2.8rem 2rem;color:var(--dim);font-size:.93rem;}
.site-footer__in{display:grid;gap:2rem;}
.site-footer__h{font:700 .72rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:0 0 .9rem;}
.site-footer__h--brand{font:900 1.2rem/1 var(--head);letter-spacing:.03em;color:var(--ink);margin-bottom:.6rem;}
.site-footer__note{max-width:40ch;line-height:1.6;}
.site-footer ul{display:grid;gap:.45rem;}
.site-footer a{color:var(--dim);}
.site-footer a:hover{color:var(--sig-hi);}
.site-footer__legal{margin-top:2rem;padding-top:1.1rem;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.84rem;}
.site-footer__legal .age21{color:var(--sig-hi);letter-spacing:.1em;text-transform:uppercase;font-weight:700;}

/* ---------- mobile dock --------------------------------------------------- */
.m-dock{display:none;}

/* ---------- responsive ---------------------------------------------------- */
@media (max-width:1080px){
  .site-header nav{display:none;}
  .nav-toggle{display:inline-block;}
  .site-header nav.open{display:flex;flex-direction:column;gap:0;flex-basis:100%;order:3;padding-bottom:12px;}
  .site-header nav.open a{border-bottom:1px solid var(--line);padding:11px 0;}
  .topbar{flex-wrap:wrap;}
}
@media (max-width:980px){
  .facts,.spec--wide{grid-template-columns:repeat(2,minmax(0,1fr));}
  .stops-in,.run-in,.cols,.phero-in{grid-template-columns:1fr;}
  .ledger li{grid-template-columns:2.6rem 1fr;row-gap:.35rem;}
  .ledger p{grid-column:2;}
  .ledger .px{grid-column:2;}
  .tt tbody th{width:auto;}
  .tt .dur{display:none;}
  .sky-copy{grid-template-columns:1fr;gap:1.2rem;}
}
@media (max-width:760px){
  body{padding-bottom:78px;}
  .sky{min-height:clamp(400px,62vh,540px);padding-bottom:210px;}
  .sky-copy h1{font-size:clamp(1.95rem,8.4vw,2.6rem);}
  .scene .crossing{transform:translate(1168px,342px) scale(.45);}
  .said .lede{max-width:none;}
  .deck{margin-top:-104px;}
  .topbar{min-height:64px;gap:.8rem;}
  .chip{display:none;}
  .mark{font-size:1.12rem;min-width:0;}
  .nav-toggle{flex:none;}
  .card{max-width:none;}
  .card-cta .btn{flex:1 1 100%;}
  .card-cta .note{max-width:none;}
  .stops{columns:1;}
  .close-in{display:grid;}
  .close .ctas .btn{flex:1 1 100%;}
  .tt th,.tt td{padding:.8rem .6rem;}
  .tt tbody th{font-size:1.2rem;}
  .tt .fare{font-size:1.45rem;}
  .tt .nb{font-size:.88rem;}
  .index a{grid-template-columns:1fr;}
  .index__m{grid-row:auto;grid-column:1;text-align:left;}
  .m-dock{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:.5rem;position:fixed;left:0;right:0;bottom:0;z-index:50;
    padding:.55rem 12px calc(.55rem + env(safe-area-inset-bottom));background:rgba(2,9,26,.97);border-top:1px solid var(--line2);}
  .m-dock a{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:50px;padding:0 .7rem;
    border:1px solid transparent;border-radius:2px;font:700 .92rem/1 var(--sans);text-align:center;}
  .m-dock__wa{background:var(--sig);color:var(--sig-ink);}
  .m-dock__wa:hover{background:var(--sig-hi);}
  .m-dock__tg{background:var(--lamp);color:var(--sig-ink);}
  .m-dock__tg:hover{background:#fff;}
  .m-dock__alt{border-color:var(--line2);color:var(--ink);}
  .m-dock__alt:hover{border-color:var(--sig-hi);color:var(--sig-hi);}
  .m-dock svg{flex:none;}
}
@media (max-width:430px){
  .facts,.spec--wide{grid-template-columns:1fr;}
  .strip li{flex-basis:172px;}
  .wall{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));}
}
@media (min-width:761px){
  .site-footer__in{grid-template-columns:repeat(2,1fr);gap:2.4rem;}
}
@media (min-width:1000px){
  .site-footer__in{grid-template-columns:1.4fr repeat(4,1fr);gap:2.4rem;}
}

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