/* === Self-hosted fonts (latin subset), public/fonts/contactsheet/ ===
   Caveat       the grease-pencil hand: the wordmark and nothing else
   Chivo        text and headlines, 400 to 700, variable
   Roboto Mono  every caption, frame number, rate and label
   No third-party stylesheet is loaded on any page of this site, so the three
   faces below are the whole type system. The build rewrites this run from
   sites/amsterdambodytobodymassage.json theme.fonts.faces; keep the two in step. */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/contactsheet/caveat-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: 'Chivo';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/contactsheet/chivo-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: 'Roboto Mono';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('/fonts/contactsheet/roboto-mono-normal-400-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;
}

/* ============================================================================
   AMSTERDAM BODY TO BODY MASSAGE, theme "contactsheet"
   A photographer's contact sheet. Near-black ground with a film grain over it,
   sprocket rules, every photograph printed inside a frame with a number in its
   corner and a caption under it, and one grease-pencil ring around the frame
   that is the booking. Chivo for the type, Roboto Mono for every caption and
   figure, Caveat for the wordmark alone.

   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 rule and does it in one 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 either: every mark is a photograph, a
   letter, a flat rectangle, a rule or a grain field. The only exceptions are
   the two messenger glyphs in the mobile dock.

   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:#0d0c0b;
  --ground-lift:#141312;
  --edge:#1d1b19;
  --paper:#ece7dd;
  --paper-soft:#b9b2a8;
  --paper-mute:#9b948a;
  --hair:#2a2724;
  --hair-soft:#211f1d;
  --pencil:#f26a1b;
  --pencil-hi:#ff8b45;
  --pencil-deep:#c85310;
  --on-pencil:#120b05;
  --wa:#25d366;
  /* tokens the SHARED templates reference from inline styles: keep them declared
     so an inherited page never falls back to an invalid value */
  --ink:#ece7dd;
  --muted:#b9b2a8;
  --faint:#9b948a;
  --rule:#2a2724;
  --cloud:#0d0c0b;
  --sky-3:#141312;
  --white:#ffffff;
  --serif:'Chivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --sans:'Chivo', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --mono:'Roboto Mono', ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;
  --hand:'Caveat', 'Segoe Script', cursive;
  --max:1220px;
  --reading:660px;
  --gutter:20px;
  --pad:46px;
}

/* ---------- 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(--paper);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  letter-spacing:.005em;
  -webkit-font-smoothing:antialiased;
}
/* The grain: two flat rules and one wash, laid over the page and nothing else.
   It carries no shape and never moves. */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:2;
  background:
    repeating-linear-gradient(0deg, rgba(255,255,255,.028) 0 1px, rgba(0,0,0,0) 1px 3px),
    repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, rgba(0,0,0,0) 1px 4px),
    radial-gradient(120% 80% at 50% 0%, rgba(255,255,255,.05) 0%, rgba(0,0,0,0) 55%);
  mix-blend-mode:screen;
}
main{display:block;position:relative;z-index:3;}
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(--pencil);outline-offset:2px;}
.sheet,.container{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;}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.wrap-any{overflow-wrap:anywhere;}
/* The site address is 37 characters and sits inside running prose on /terms/,
   /privacy/ and /dmca/, which is wider than a 375px column. */
a[href^="mailto:"]{overflow-wrap:anywhere;}
.prose p,.prose li,section .reading p,section .reading li{overflow-wrap:break-word;}

/* ---------- the caption voice --------------------------------------------- */
.mono{
  font-family:var(--mono);
  font-size:11px;
  font-weight:400;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--paper-mute);
  line-height:1.7;
}
.mono-o{color:var(--pencil);}
a.mono:hover,.mono a:hover{color:var(--pencil-hi);}

/* ---------- type ---------------------------------------------------------- */
h1{
  font-size:clamp(28px,6.2vw,54px);
  line-height:1.05;
  font-weight:700;
  letter-spacing:-.022em;
  margin:14px 0 0;
  max-width:17ch;
  overflow-wrap:break-word;
}
h2{
  font-size:clamp(19px,3.4vw,26px);
  line-height:1.2;
  font-weight:700;
  letter-spacing:-.014em;
  margin:0;
}
h3{font-size:clamp(17px,2.6vw,21px);line-height:1.2;font-weight:700;letter-spacing:-.012em;margin:0 0 10px;}
h4,h5{font-size:15px;font-weight:700;margin:0 0 8px;}
.lead,.lede{
  margin:18px 0 0;
  max-width:60ch;
  color:var(--paper-soft);
  font-size:clamp(16px,1.35vw,18px);
  line-height:1.6;
}
.lead strong,.lede strong{color:var(--paper);font-weight:500;}

/* ---------- 21 bar (shared app.js raises it) ------------------------------ */
.age-bar{
  position:relative;z-index:6;
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;
  padding:10px var(--gutter);background:var(--ground-lift);
  border-bottom:1px solid var(--hair);font-size:13px;color:var(--paper-soft);
}
.age-bar__txt b{color:var(--pencil);font-family:var(--mono);letter-spacing:.14em;margin-right:6px;}
.age-bar__ok{
  background:none;border:1px solid var(--hair);color:var(--paper);
  font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  padding:7px 12px;cursor:pointer;
}
.age-bar__ok:hover{background:var(--pencil);color:var(--on-pencil);border-color:var(--pencil);}
body.age-confirmed .age-bar{display:none;}

/* ---------- sheet head ---------------------------------------------------- */
.site-header{position:relative;z-index:6;}
.head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px 24px;
  padding-top:22px;
  padding-bottom:14px;
}
.brand{
  font-family:var(--hand);
  font-weight:700;
  font-size:clamp(30px,6vw,52px);
  line-height:.94;
  color:var(--pencil);
  letter-spacing:.01em;
  transform:rotate(-1.4deg);
  transform-origin:left bottom;
  max-width:100%;
}
.brand:hover{color:var(--pencil-hi);}
.head-meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;
  margin:0;text-align:right;
}
.head-meta .age{
  display:inline-block;
  border:1px solid var(--hair);
  padding:2px 9px;
  color:var(--paper-soft);
  letter-spacing:.18em;
}
.sprockets{
  height:16px;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
  background:repeating-linear-gradient(90deg,
    rgba(236,231,221,.16) 0 9px,
    rgba(0,0,0,0) 9px 24px);
}
.navrow{display:flex;align-items:center;gap:12px;padding-top:10px;padding-bottom:6px;flex-wrap:wrap;}
.site-header nav{
  display:flex;flex-wrap:wrap;gap:2px 20px;width:100%;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
}
.site-header nav a{color:var(--paper-mute);padding:6px 0;}
.site-header nav a:hover{color:var(--pencil);}
.nav-toggle{
  display:none;background:none;border:1px solid var(--hair);color:var(--paper);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:7px 11px;cursor:pointer;
}
.nav-toggle:hover{border-color:var(--pencil);color:var(--pencil);}

/* ---------- buttons -------------------------------------------------------- */
.btns{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0;}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:13px 20px;
  font-family:var(--mono);
  font-size:12px;
  font-weight:500;
  letter-spacing:.13em;
  text-transform:uppercase;
  text-decoration:none;
  border:1px solid var(--pencil);
  cursor:pointer;
}
.btn svg{width:16px;height:16px;flex:0 0 16px;fill:currentColor;}
.btn-fill{background:var(--pencil);color:var(--on-pencil);}
.btn-fill:hover{background:var(--pencil-hi);border-color:var(--pencil-hi);}
.btn-line{background:transparent;color:var(--pencil);}
.btn-line:hover{background:rgba(242,106,27,.14);}

/* ============================ HERO, HOME AND PROFILE ====================== */
.sheet-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:28px;
  padding-top:28px;
  padding-bottom:34px;
  align-items:start;
}
.hero-body{min-width:0;}
.hero-keys{
  margin:24px 0 0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--hair);
}
.hero-keys li{
  display:flex;
  flex-wrap:wrap;
  gap:4px 18px;
  align-items:baseline;
  padding:9px 0;
  border-bottom:1px solid var(--hair-soft);
}
.hero-keys .k{
  flex:0 0 110px;
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--pencil);
}
.hero-keys .v{flex:1 1 200px;min-width:0;font-size:15px;color:var(--paper);}
.hero-frame{position:relative;padding-left:16px;border-left:1px solid var(--hair);max-width:340px;counter-reset:frame;}
.hero-frame::before{
  content:"";
  position:absolute;
  left:5px;
  top:6px;
  bottom:52px;
  width:5px;
  background:repeating-linear-gradient(180deg,
    rgba(236,231,221,.22) 0 8px,
    rgba(0,0,0,0) 8px 21px);
}
.frame-note{margin:10px 0 0;line-height:1.7;}

/* ---------- the frame, the number and the caption ------------------------- */
.frame-wrap{position:relative;margin:0;min-width:0;}
.frame{
  position:relative;
  display:block;
  background:var(--edge);
  border:1px solid var(--hair);
  padding:8px 8px 0;
}
.frame img{
  width:100%;
  height:auto;
  aspect-ratio:4/5;
  object-fit:cover;
  object-position:50% 16%;
  filter:grayscale(1) contrast(1.1) brightness(.94);
}
.frame::before{
  counter-increment:frame;
  content:counter(frame,decimal-leading-zero);
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  color:#f5efe6;
  background:rgba(13,12,11,.72);
  padding:3px 6px;
}
.cap{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:2px 10px;
  padding:9px 2px 10px;
  border-bottom:1px solid var(--hair);
}
.cap .name{font-size:15px;font-weight:500;letter-spacing:.01em;}
.cap .det{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--paper-mute);
  text-align:right;
}
a:hover > .frame{border-color:var(--pencil);}
a:hover .cap .name{color:var(--pencil);}

/* ============================ SECTION SCAFFOLDING ========================= */
.strip{padding-top:var(--pad);padding-bottom:6px;}
.strip-head{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  justify-content:space-between;
  gap:4px 20px;
  padding:0 0 12px;
  border-bottom:1px solid var(--hair);
}
.strip-head .mono{margin:0;}
.strip-note{color:var(--paper-mute);font-size:14.5px;max-width:58ch;margin:14px 0 26px;}
.more{margin:22px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
.more a{color:var(--pencil);border-bottom:1px solid rgba(242,106,27,.45);padding-bottom:2px;}
.more a:hover{color:var(--pencil-hi);border-bottom-color:var(--pencil-hi);}

/* ---------- home prose, written in content/<site>/pages.json -------------- */
.home-copy{display:block;}
.home-copy .strip:first-child{padding-top:10px;}

/* ============================ TECHNIQUE LIST ============================== */
.tech{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:0 26px;
  margin:22px 0 10px;
  list-style:none;
}
.tech li{padding:13px 0 15px;border-top:1px solid var(--hair-soft);min-width:0;}
.tech li:first-child{border-top:0;}
.tech .tn{
  display:block;
  font-size:16px;
  font-weight:500;
  margin:5px 0 4px;
}
.tech a.tn:hover{color:var(--pencil);}
.tech p{margin:0;font-size:13.5px;line-height:1.55;color:var(--paper-mute);}
.tech .px{display:block;margin-top:7px;color:var(--pencil);letter-spacing:.14em;}
.tech--big li{padding:18px 0 20px;}
.tech--big .tn{font-size:clamp(18px,2.6vw,22px);}

/* ============================ ROSTER ====================================== */
.roster{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 12px;
  margin:24px 0 0;
  list-style:none;
  counter-reset:frame;
}
.roster li{min-width:0;}
.roster a{display:block;}
.shots{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 12px;
  margin:24px 0 0;
  list-style:none;
  counter-reset:frame;
}
.shots li{min-width:0;}

/* ---------- the roster's foot: the tail note and the ringed frame --------- */
.roster-foot{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:26px;
  margin:30px 0 0;
}
.tail{align-self:end;padding:0 0 6px 2px;border-bottom:1px solid var(--hair);}
.tail p{margin:0 0 6px;line-height:1.8;}
.ringed{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--ground-lift);
  border:1px solid var(--hair);
  padding:26px 24px 28px;
  margin:6px 4px 12px;
}
/* The grease-pencil ring: two off-round borders, exactly as the design was
   chosen. It is a mark on the sheet, not a drawing of a thing. */
.ringed::before{
  content:"";
  position:absolute;
  inset:-13px -11px -15px -13px;
  border:3.5px solid var(--pencil);
  border-radius:140px 88px 118px 150px / 84px 104px 64px 92px;
  transform:rotate(-1.2deg);
  opacity:.92;
  pointer-events:none;
}
.ringed::after{
  content:"";
  position:absolute;
  inset:-6px -4px -7px -5px;
  border:1.5px solid rgba(242,106,27,.45);
  border-radius:104px 128px 92px 116px / 88px 66px 90px 72px;
  transform:rotate(.7deg);
  pointer-events:none;
}
.ringed > *{position:relative;z-index:2;}
.ringed h2,.ringed h3{margin:8px 0 10px;}
.ringed p{margin:0;font-size:15px;color:var(--paper-soft);}
.ringed .btns{margin:20px 0 0;}
.ringed .btn{flex:1 1 200px;}
.ringed--wide{margin:26px 6px 16px;}

/* ============================ FILE LISTS ================================== */
.filelist{list-style:none;margin:22px 0 0;padding:0;}
.filelist li{border-bottom:1px solid var(--hair-soft);}
.filelist li:first-child{border-top:1px solid var(--hair-soft);}
.filelist a{
  display:flex;
  gap:14px;
  align-items:baseline;
  padding:15px 0;
  font-size:clamp(16px,2.1vw,19px);
  line-height:1.3;
  font-weight:500;
}
.filelist a::after{content:"\203A";font-family:var(--mono);margin-left:auto;color:var(--pencil);}
.filelist a:hover{color:var(--pencil);}

/* ---------- index lists (guides, journal) --------------------------------- */
.index{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:0;}
.index li{min-width:0;border-bottom:1px solid var(--hair-soft);}
.index li:first-child{border-top:1px solid var(--hair-soft);}
.index a{display:block;padding:20px 0 22px;}
.index a:hover .index__t{color:var(--pencil);}
.index__t{display:block;font-size:clamp(17px,2.2vw,20px);font-weight:500;line-height:1.3;letter-spacing:-.01em;}
.index__d{display:block;margin-top:8px;font-size:14.5px;color:var(--paper-mute);max-width:66ch;line-height:1.55;}
.index__m{display:block;margin-top:10px;}
.index-body{margin-top:34px;}

/* ============================ NOTES AND RAIL ============================== */
.notes{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:26px;
  padding-top:34px;
  padding-bottom:10px;
  border-top:1px solid var(--hair);
}
.notes h2,.notes h3{margin:14px 0 8px;}
.notes p{color:var(--paper-soft);font-size:15px;max-width:58ch;}
.districts{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:16px 0 0;
  padding:0;
  list-style:none;
}
.districts li{
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--paper-soft);
  border:1px solid var(--hair);
  padding:5px 9px;
}
.rail{border-top:1px solid var(--hair);padding-top:12px;}
.rail .rate{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--hair-soft);
  font-family:var(--mono);
}
.rail .rate .t{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-mute);}
.rail .rate .p{font-size:17px;color:var(--pencil);letter-spacing:.02em;}
.rail ul{margin:16px 0 0;padding:0;list-style:none;}
.rail ul li{
  font-size:13px;
  color:var(--paper-soft);
  padding:6px 0 6px 16px;
  position:relative;
  line-height:1.45;
}
.rail ul li::before{
  content:"";
  position:absolute;
  left:0;
  top:13px;
  width:8px;
  height:1px;
  background:var(--pencil);
}
.rail-note{margin:16px 0 0;}
.rail-note a{color:var(--pencil);border-bottom:1px solid rgba(242,106,27,.45);}
.rail-note a:hover{color:var(--pencil-hi);}

/* ============================ INNER PAGE HEAD ============================= */
.pagehero{padding-top:30px;padding-bottom:6px;}
.pagehero h1{max-width:22ch;}
.pagehero .lead{margin-top:18px;}

/* ============================ PROSE ======================================= */
.prose{max-width:var(--reading);}
.prose--wide{max-width:74ch;}
.prose p{font-size:16.5px;line-height:1.72;color:var(--paper-soft);}
.prose h2{margin:34px 0 12px;color:var(--paper);}
.prose h2:first-child{margin-top:8px;}
.prose h3{margin:26px 0 8px;color:var(--paper);}
.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(--paper-soft);}
.prose a{color:var(--paper);border-bottom:1px solid var(--pencil);}
.prose a:hover{color:var(--pencil);}
.prose .lede,.prose .lead{color:var(--paper);}
.independence{
  border-top:1px solid var(--hair);
  padding-top:16px;
  margin-top:26px;
  font-size:14.5px;
  color:var(--paper-mute);
}
.cols{display:grid;gap:30px;}

/* ---------- facts panel --------------------------------------------------- */
.facts{background:var(--ground-lift);border:1px solid var(--hair);padding:22px 20px 24px;}
.facts-h{margin:0 0 10px;}
.facts-h + .spec,.facts-h + .tags{margin-top:0;}
.spec{margin:0 0 4px;}
.spec > div{display:flex;gap:14px;justify-content:space-between;align-items:baseline;border-top:1px solid var(--hair-soft);padding:9px 0;}
.spec > div:first-child{border-top:0;padding-top:0;}
.spec dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--paper-mute);}
.spec dd{margin:0;font-size:14.5px;font-weight:500;text-align:right;max-width:60%;}
.spec dd a{border-bottom:1px solid var(--pencil);}
.spec dd a:hover{color:var(--pencil);}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0 0;}
.tags .tag,.tag-pill{
  display:inline-block;
  font-family:var(--mono);
  font-size:10.5px;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--paper-soft);
  border:1px solid var(--hair);
  padding:5px 9px;
}
.tags a.tag:hover{border-color:var(--pencil);color:var(--pencil);}

/* ---------- the profile rate card (shared partials/rates.mustache) -------- */
.rates-card{margin-top:22px;}
.rates-card__title{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pencil);margin:0 0 14px;
}
.rates-card__table{width:100%;max-width:760px;margin:0 0 24px;font-variant-numeric:tabular-nums;}
.rates-card__table caption{
  text-align:left;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  padding:0 0 8px;color:var(--paper-mute);
}
.rates-card__table th,.rates-card__table td{
  text-align:left;padding:11px 10px 11px 0;border-top:1px solid var(--hair);
  font-size:15px;font-weight:500;
}
.rates-card__table td{text-align:right;padding-right:0;font-family:var(--mono);color:var(--paper);}
.rates-card__table thead th{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
  border-top:0;color:var(--paper-mute);font-weight:400;
}
.rates-card__table thead th + th{text-align:right;}
.rates-card__extra th,.rates-card__extra td{color:var(--paper-soft);}
.rates-card__terms{margin:0;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;}
.rates-card__terms a{color:var(--pencil);border-bottom:1px solid rgba(242,106,27,.45);}
.rates-card__terms a:hover{color:var(--pencil-hi);}

/* ---------- questions ----------------------------------------------------- */
.faq{margin-top:22px;}
.faq details{border-bottom:1px solid var(--hair-soft);}
.faq details:first-of-type{border-top:1px solid var(--hair-soft);}
.faq summary{
  list-style:none;cursor:pointer;padding:16px 34px 16px 0;position:relative;
  font-size:16px;font-weight:500;line-height:1.4;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:2px;top:15px;font-family:var(--mono);font-size:16px;color:var(--pencil);}
.faq details[open] summary::after{content:"\2013";}
.faq summary:hover{color:var(--pencil);}
.faq .a{padding:0 0 18px;}
.faq .a p{margin:0;font-size:15.5px;line-height:1.68;color:var(--paper-mute);max-width:70ch;}

/* ============================================================================
   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.
   ============================================================================ */
.reading{max-width:var(--reading);}
.reading.container{max-width:var(--max);padding:0 var(--gutter);}
section .reading > *{max-width:var(--reading);}
section{padding:34px 0;}
.hero{max-width:var(--max);margin:0 auto;padding:34px var(--gutter) 20px;}
.hero-small{padding-top:30px;}
.hero .container{padding:0;}
.hero h1{max-width:20ch;}
.label-top,.label{
  font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pencil);margin:0 0 10px;display:block;
}
.hero .lede{margin:20px 0 0;}
section .container > h1{margin-bottom:16px;}
section p{color:var(--paper-soft);line-height:1.72;}
section .reading h2{margin:36px 0 12px;font-size:clamp(19px,3vw,25px);}
section .reading h3{margin:26px 0 8px;color:var(--paper);}
/* 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 to their own rules. */
section .reading a:not(.btn){color:var(--paper);border-bottom:1px solid var(--pencil);}
section .reading a:not(.btn):hover{color:var(--pencil);}
section .reading ul{padding-left:0;margin:0 0 20px;}
section .reading ul li{list-style:none;border-bottom:1px solid var(--hair-soft);padding:11px 0;font-size:16px;color:var(--paper-soft);}
section .reading em{font-style:italic;color:var(--paper);}
.btn-primary{
  background:var(--pencil);color:var(--on-pencil);border:1px solid var(--pencil);
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  padding:13px 20px;
}
.btn-primary:hover{background:var(--pencil-hi);border-color:var(--pencil-hi);color:var(--on-pencil);}
.btn-ghost{
  background:transparent;color:var(--pencil);border:1px solid var(--pencil);
  display:inline-flex;align-items:center;gap:9px;
  font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.13em;text-transform:uppercase;
  padding:13px 20px;
}
.btn-ghost:hover{background:rgba(242,106,27,.14);}
.form-row{margin-top:18px;}
.form-row .label{margin:0 0 8px;}
.form-row select,.form-row input{
  width:100%;max-width:100%;padding:13px 12px;border:1px solid var(--hair);
  background:var(--ground-lift);font-family:var(--sans);font-size:15px;color:var(--paper);border-radius:0;
}
.form-row select:focus,.form-row input:focus{outline:3px solid var(--pencil);outline-offset:1px;}

/* ---------- build-injected breadcrumbs and related pages ------------------ */
nav.crumbs{
  max-width:var(--max);margin:0 auto;padding:16px var(--gutter) 0;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
}
nav.crumbs ol{opacity:1;gap:4px 10px;}
nav.crumbs li{color:var(--paper-mute);gap:10px;}
nav.crumbs li+li::before{content:"\203A";opacity:1;color:var(--pencil);}
nav.crumbs a{color:var(--paper-mute);border-bottom:1px solid transparent;}
nav.crumbs a:hover{color:var(--pencil);border-bottom-color:var(--pencil);}
nav.crumbs [aria-current]{opacity:1;color:var(--paper);}
aside.seo-related{max-width:var(--max);margin:0 auto;padding:40px var(--gutter) 10px;}
aside.seo-related .seo-related__in{border-top:1px solid var(--hair);padding-top:20px;}
aside.seo-related .seo-related__h{
  margin:0 0 14px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--pencil);opacity:1;
}
aside.seo-related ul{gap:0 26px;}
aside.seo-related a{
  border-bottom:1px solid var(--hair-soft);font-size:14.5px;color:var(--paper-soft);padding:11px 0;
}
aside.seo-related a:hover{opacity:1;color:var(--pencil);}

/* ============================ AGE BAR AND FOOTER ========================== */
.agebar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px 16px;
  margin:34px 0 0;
  padding:13px 0;
  border-top:1px solid var(--hair);
  border-bottom:1px solid var(--hair);
}
.agebar .tag{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.2em;
  color:var(--pencil);
  border:1px solid var(--pencil);
  padding:3px 9px;
}
.agebar p{margin:0;font-size:13.5px;color:var(--paper-mute);}
.site-footer{position:relative;z-index:3;padding:26px 0 40px;}
.foot-grid{display:grid;gap:26px;}
.foot-mark{
  font-family:var(--hand);font-weight:700;font-size:32px;line-height:1;color:var(--pencil);
  display:inline-block;transform:rotate(-1.4deg);transform-origin:left bottom;
}
.foot-mark:hover{color:var(--pencil-hi);}
.foot-note{margin:14px 0 0;font-size:14px;line-height:1.65;color:var(--paper-mute);max-width:44ch;}
.foot-note a{color:var(--pencil);border-bottom:1px solid rgba(242,106,27,.4);}
.foot-note a:hover{color:var(--pencil-hi);}
.foot-h{margin:0 0 12px;}
.site-footer ul{list-style:none;display:grid;gap:7px;}
.site-footer li{line-height:1.5;font-size:14px;}
.site-footer a{color:var(--paper-soft);}
.site-footer a:hover{color:var(--pencil);}
.foot-legal{
  margin:30px 0 0;padding:14px 0 0;border-top:1px solid var(--hair);
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;
}
.age21{color:var(--pencil);}

/* ============================ MOBILE DOCK ================================= */
.m-dock{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;gap:10px;
  padding:11px 14px calc(11px + env(safe-area-inset-bottom,0px));
  background:rgba(9,8,7,.96);
  border-top:1px solid var(--hair);
}
.m-dock .btn{flex:1 1 0;padding:12px 8px;font-size:11px;letter-spacing:.1em;}
.m-dock svg{flex:none;}
@media (min-width:761px){.m-dock{display:none;}}
@media (max-width:760px){body{padding-bottom:80px;}}

/* ============================ WIDER SCREENS =============================== */
@media (min-width:561px){
  .tech{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;}
  .tech li:nth-child(2){border-top:0;}
  .shots{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width:761px){
  :root{--gutter:22px;--pad:54px;}
  .roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 14px;}
  .roster-foot{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:32px;align-items:end;}
  .index a{padding:22px 0 24px;}
  .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;}
}
@media (min-width:1041px){
  :root{--gutter:20px;--pad:62px;}
  body{font-size:17px;}
  .sheet-hero{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;padding-top:34px;padding-bottom:42px;}
  .hero-frame{max-width:none;}
  .tech{grid-template-columns:repeat(4,minmax(0,1fr));}
  .tech li:nth-child(3),.tech li:nth-child(4){border-top:0;}
  .roster{grid-template-columns:repeat(4,minmax(0,1fr));gap:26px 14px;}
  .shots{grid-template-columns:repeat(4,minmax(0,1fr));}
  .cols{grid-template-columns:minmax(0,1fr) 330px;gap:44px;align-items:start;}
  .notes{grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr);gap:42px;}
  .rail{border-top:0;border-left:1px solid var(--hair);padding-top:0;padding-left:22px;}
  .foot-grid{grid-template-columns:1.4fr repeat(3,minmax(0,1fr));gap:32px;}
  .ringed--wide{max-width:760px;}
}
@media (max-width:760px){
  .site-header nav{display:none;}
  .site-header nav.open{display:flex;flex-direction:column;gap:0;width:100%;}
  .site-header nav.open a{border-top:1px solid var(--hair-soft);padding:11px 0;}
  .nav-toggle{display:inline-block;}
  .navrow{padding-bottom:10px;}
}
@media (max-width:560px){
  :root{--gutter:16px;}
  .head{padding-top:18px;padding-bottom:12px;}
  .head-meta{text-align:left;}
  .cap{flex-direction:column;align-items:flex-start;gap:2px;}
  .cap .det{text-align:left;}
  .hero-keys .k{flex:0 0 100px;}
  .spec > div{flex-direction:column;gap:2px;}
  .spec dd{text-align:left;max-width:none;}
}
@media (max-width:420px){
  .btns .btn{width:100%;}
  .ringed{padding:24px 18px 26px;}
  .ringed .btn{flex:1 1 100%;}
}

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