@font-face {
  font-family: 'Syne';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/panels/syne-normal-400-800.woff2') format('woff2');
}
@font-face {
  font-family: 'Schibsted Grotesk';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('/fonts/panels/schibsted-grotesk-normal-400-700.woff2') format('woff2');
}

/* =========================================================================
   panels - massageatschiphol.com
   Flat colour blocks, hard rules, no radius, no shadow, no motion of any
   kind. Hover changes a colour or an underline and changes it at once.
   ========================================================================= */

:root{
  --teal:#06514B;
  --teal-2:#CFE3DF;
  --rust:#A83A16;
  --rust-2:#F6DCCA;
  --mustard:#D99A00;
  --plum:#5B1A46;
  --plum-2:#EDD5E5;
  --bone:#F6EFE2;
  --bone-2:#E3D6C2;
  --ink:#120E0C;
  --ink-2:#2E2208;
  --wa:#25D366;
  --wa-dark:#1ea857;
  /* read by scripts/gen-og-and-favicons.js for the share card, not by the page */
  --sky-1:#5B1A46;
  --sky-2:#A83A16;
  --sky-3:#D99A00;
  --cloud:#F6EFE2;
  --muted:#8F3012;
  --serif:"Syne", "Schibsted Grotesk", system-ui, sans-serif;
  --sans:"Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
  --max:1500px;
  --reading:68ch;
  /* referenced by the inherited shared templates' inline styles */
  --rule:rgba(18,14,12,0.22);
  --faint:#6B5540;
}
:root{
  --gut:clamp(15px,4.2vw,64px);
  --pad:clamp(44px,6.4vw,110px);
  --hair:2px;
}

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  background:var(--teal);
  color:var(--bone);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--mustard);outline-offset:3px}
table{border-collapse:collapse;width:100%}

.skip{position:absolute;left:-9999px}
.skip:focus{left:14px;top:14px;z-index:120;background:var(--bone);color:var(--ink);padding:10px 16px;font-weight:700;text-decoration:none}

.disp{font-family:var(--serif);font-weight:800;line-height:.93;letter-spacing:-.02em}
.kick{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------------------------------------------------------- colour blocks */
.s-teal{background:var(--teal);color:var(--bone)}
.s-rust{background:var(--rust);color:var(--bone)}
.s-mustard{background:var(--mustard);color:var(--ink)}
.s-plum{background:var(--plum);color:var(--bone)}
.s-ink{background:var(--ink);color:var(--bone)}
.s-teal .sub{color:var(--teal-2)}
.s-rust .sub{color:var(--rust-2)}
.s-plum .sub{color:var(--plum-2)}
.s-mustard .sub{color:var(--ink-2)}
.s-ink .sub{color:var(--bone-2)}

.sec{padding:var(--pad) var(--gut)}
.inner{max-width:var(--max);margin:0 auto}
.narrow{max-width:var(--reading)}

/* ------------------------------------------------------------ site header */
.site-header{background:var(--ink);color:var(--bone);border-bottom:3px solid var(--bone)}
.site-header .in{
  max-width:var(--max);margin:0 auto;padding:12px var(--gut);
  display:flex;align-items:center;gap:14px 22px;flex-wrap:wrap;
}
.logo{
  font-family:var(--serif);font-weight:800;text-transform:uppercase;
  letter-spacing:-.02em;font-size:1.05rem;line-height:1;text-decoration:none;
  margin-right:auto;display:block;
}
.logo small{display:block;font-family:var(--sans);font-weight:500;font-size:.6rem;letter-spacing:.2em;color:var(--bone-2);margin-top:5px}
.logo:hover{color:var(--mustard)}
.site-header nav{display:flex;flex-wrap:wrap;gap:4px 18px}
.site-header nav a{
  font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;
  text-decoration:none;color:var(--bone-2);border-bottom:2px solid transparent;padding-bottom:2px;
}
.site-header nav a:hover{color:var(--bone);border-bottom-color:var(--mustard)}
.head-cta{display:flex;gap:8px}
.nav-toggle{
  display:none;background:transparent;color:var(--bone);border:2px solid var(--bone);
  font:inherit;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  padding:8px 14px;cursor:pointer;
}
.nav-toggle:hover{background:var(--bone);color:var(--ink)}

/* ----------------------------------------------------------------- buttons */
.btn{
  display:inline-block;font-weight:700;font-size:1rem;letter-spacing:.02em;
  padding:15px 26px;text-decoration:none;border:2px solid transparent;
}
.btn-a{background:var(--mustard);color:var(--ink);border-color:var(--mustard)}
.btn-a:hover{background:var(--bone);border-color:var(--bone);color:var(--ink)}
.btn-b{background:transparent;color:currentColor;border-color:currentColor}
.s-mustard .btn-b:hover{background:var(--ink);color:var(--mustard);border-color:var(--ink)}
.btn-b:hover{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.btn-sm{padding:9px 15px;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.bookrow{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:clamp(22px,3vw,40px)}
.mailline{margin-top:18px;font-size:1rem}
.mailline a{font-weight:700;overflow-wrap:anywhere}
.ulink{font-weight:700;text-decoration:none;border-bottom:2px solid currentColor}
.s-teal .ulink:hover{color:var(--teal-2);border-bottom-color:var(--teal-2)}
.s-rust .ulink:hover{color:var(--rust-2);border-bottom-color:var(--rust-2)}
.s-plum .ulink:hover{color:var(--plum-2);border-bottom-color:var(--plum-2)}
.s-mustard .ulink:hover{color:var(--plum);border-bottom-color:var(--plum)}

/* ------------------------------------------------------------- the panels */
.panelset{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}
/* home: the H1 and the lede share the first row, the arrival panel runs the full width under them */
.panelset--home .p-plum{grid-column:1 / -1}
.pan{
  padding:clamp(22px,3.2vw,52px) var(--gut);
  display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-width:0;
}
.p-teal{background:var(--teal);color:var(--bone)}
.p-rust{background:var(--rust);color:var(--bone)}
.p-mustard{background:var(--mustard);color:var(--ink)}
.p-plum{background:var(--plum);color:var(--bone)}
.p-ink{background:var(--ink);color:var(--bone)}
.p-teal .sub{color:var(--teal-2)}
.p-rust .sub{color:var(--rust-2)}
.p-plum .sub{color:var(--plum-2)}
.p-mustard .sub{color:var(--ink-2)}
.p-ink .sub{color:var(--bone-2)}

.brand{font-size:clamp(1.55rem,3vw,3.5rem);text-transform:uppercase}
.agebar{
  display:inline-block;border:2px solid currentColor;padding:5px 12px;
  font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;
}
.line{
  font-size:clamp(1.02rem,1.5vw,1.35rem);font-weight:500;line-height:1.38;
}
.line-lg{
  font-family:var(--serif);font-weight:700;letter-spacing:-.01em;line-height:1.16;
  font-size:clamp(1.18rem,2.1vw,1.9rem);
}
.fee{font-size:clamp(3rem,8vw,7rem);line-height:.84;letter-spacing:-.035em}
.fee em{font-style:normal;font-size:.42em;letter-spacing:-.01em}
.feerow{display:flex;flex-wrap:wrap;gap:6px 22px;font-weight:700;font-size:.95rem}

/* ------------------------------------------------------------- page heads */
.h2{font-family:var(--serif);font-weight:800;line-height:.93;letter-spacing:-.02em;font-size:clamp(1.5rem,5.4vw,4.2rem);text-transform:uppercase;margin-bottom:.32em}
.h3{font-family:var(--serif);font-weight:800;font-size:1.02rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px}
.big{font-family:var(--serif);font-weight:800;font-size:clamp(1.85rem,7vw,6rem);line-height:.86;letter-spacing:-.035em;text-transform:uppercase}
.lede{font-size:clamp(1.02rem,1.5vw,1.35rem);max-width:60ch;margin-bottom:clamp(24px,3.2vw,46px)}
.pagehead .lede{margin-bottom:0}
.pagehead h1{font-family:var(--serif);font-weight:800;line-height:.95;letter-spacing:-.025em;font-size:clamp(1.85rem,5.2vw,4.1rem);text-transform:uppercase;margin:.2em 0 .34em}
.pagehead .kick{display:block;margin-bottom:14px}
.pagehead .btns{margin-top:clamp(22px,3vw,38px)}

/* ------------------------------------------------------------ list blocks */
.tech{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:0;border-top:var(--hair) solid currentColor}
.tech li{border-bottom:var(--hair) solid currentColor;padding:20px 0 22px}
.tech a{display:block;text-decoration:none}
.tech .name{font-family:var(--serif);font-weight:800;font-size:clamp(1.24rem,2.3vw,1.9rem);line-height:1.02;letter-spacing:-.02em;display:block}
.tech a:hover .name{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:3px}
.tech .note{display:block;margin-top:7px;font-size:.98rem;max-width:40ch}
@media (min-width:900px){.tech li{padding-right:36px}}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:clamp(22px,3vw,52px);margin-top:clamp(24px,3.2vw,46px)}
.cols p{max-width:46ch}

.rates{list-style:none;border-top:3px solid currentColor}
.rates li{border-bottom:3px solid currentColor;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 20px;padding:16px 0 18px}
.rates .dur{font-family:var(--serif);font-weight:800;font-size:clamp(1.3rem,3vw,2.4rem);letter-spacing:-.02em;text-transform:uppercase}
.rates .amt{font-family:var(--serif);font-weight:800;font-size:clamp(1.7rem,4.4vw,3.2rem);letter-spacing:-.03em}

.dlist{list-style:none;display:flex;flex-wrap:wrap;gap:10px 14px}
.dlist li{font-family:var(--serif);font-weight:800;font-size:clamp(1rem,2.6vw,2rem);letter-spacing:-.02em;text-transform:uppercase;border:2px solid currentColor}
.dlist a,.dlist span{display:block;padding:7px 16px 9px;text-decoration:none}
.dlist a:hover{background:var(--bone);color:var(--plum)}
.s-mustard .dlist a:hover{background:var(--ink);color:var(--mustard)}

.index{list-style:none;border-top:var(--hair) solid currentColor}
.index li{border-bottom:var(--hair) solid currentColor}
.index a{display:block;padding:18px 0 20px;text-decoration:none}
.index__t{font-family:var(--serif);font-weight:800;font-size:clamp(1.14rem,2vw,1.75rem);line-height:1.06;letter-spacing:-.02em;display:block}
.index a:hover .index__t{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:3px}
.index__d{display:block;margin-top:8px;max-width:64ch}
.index__m{display:block;margin-top:8px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700}

/* ---------------------------------------------------------------- roster */
.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(12px,1.5vw,24px)}
/* a capped grid never paints its extra cards before app.js has shuffled and trimmed it */
[data-shuffle="8"] > :nth-child(n+9){display:none}
[data-shuffle="4"] > :nth-child(n+5){display:none}
.roster--wide{grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr))}
.who{margin:0;min-width:0}
.who a{display:block;text-decoration:none}
.who img{width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 22%;background:var(--ink)}
.who figcaption{padding-top:10px}
.who .nm{font-family:var(--serif);font-weight:800;font-size:clamp(1.02rem,1.6vw,1.45rem);letter-spacing:-.01em;display:block;line-height:1.05}
.who a:hover .nm{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:3px}
.who .mt{display:block;font-size:.9rem;margin-top:3px}

.shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr));gap:clamp(10px,1.4vw,20px)}
.shots img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--ink)}

/* ----------------------------------------------------------------- prose */
.prose{max-width:var(--reading)}
.prose.wide{max-width:76ch}
.prose p{margin-bottom:1.05em}
.prose h2{font-family:var(--serif);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:1.02;font-size:clamp(1.3rem,2.6vw,2.1rem);margin:1.5em 0 .5em}
.prose h3{font-family:var(--serif);font-weight:800;font-size:1.02rem;letter-spacing:.14em;text-transform:uppercase;margin:1.6em 0 .55em}
.prose ul,.prose ol{margin:0 0 1.05em 1.15em}
.prose li{margin-bottom:.4em}
.prose a{font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.s-teal .prose a,.s-rust .prose a,.s-plum .prose a{color:var(--bone)}
.s-mustard .prose a{color:var(--ink)}
.s-teal .prose a:hover{color:var(--teal-2)}
.s-rust .prose a:hover{color:var(--rust-2)}
.s-plum .prose a:hover{color:var(--plum-2)}
.s-mustard .prose a:hover{color:var(--plum)}
.prose strong{font-weight:700}
/* Build- and content-generated prose can carry inline colours written for a
   light ground. On a dark block they have to yield. */
.s-teal [style*="color:var(--ink)"],.s-rust [style*="color:var(--ink)"],.s-plum [style*="color:var(--ink)"]{color:var(--bone)!important}
.s-mustard [style*="color:var(--ink)"]{color:var(--ink)!important}
.independence{margin-top:1.4em;padding-top:1.1em;border-top:var(--hair) solid currentColor;font-size:.95rem}

/* ------------------------------------------------------------- spec lists */
.spec{border-top:var(--hair) solid currentColor}
.spec>div{display:flex;flex-wrap:wrap;gap:4px 18px;justify-content:space-between;padding:10px 0 11px;border-bottom:var(--hair) solid currentColor}
.spec dt{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.spec dd{font-weight:700}
.spec a{text-decoration:underline;text-underline-offset:3px}

.taglist{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.taglist .tag{border:2px solid currentColor;padding:6px 11px;text-decoration:none;display:inline-block}
.taglist a.tag:hover{background:var(--bone);color:var(--plum)}
.s-mustard .taglist a.tag:hover{background:var(--ink);color:var(--mustard)}
.label{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;margin-top:24px}

/* ------------------------------------------------------------------- faq */
.faq{border-top:var(--hair) solid currentColor;max-width:80ch}
.faq details{border-bottom:var(--hair) solid currentColor}
.faq summary{
  cursor:pointer;list-style:none;padding:16px 0 17px;font-family:var(--serif);
  font-weight:800;font-size:clamp(1.02rem,1.6vw,1.3rem);letter-spacing:-.01em;line-height:1.2;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:""}
.faq summary:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:3px}
.faq .a{padding:0 0 18px;max-width:64ch}
.faq .a p{margin-bottom:.9em}
.faq .a p:last-child{margin-bottom:0}
.faq .a a{font-weight:700;text-decoration:underline;text-underline-offset:3px}

/* ------------------------------------------------------- the rates table */
.rates-card{border-top:3px solid currentColor;max-width:820px}
.rates-card__title{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;padding:14px 0 4px}
.rates-card__table{margin-bottom:22px}
.rates-card__table caption{
  text-align:left;font-family:var(--serif);font-weight:800;text-transform:uppercase;
  letter-spacing:-.01em;font-size:1.05rem;padding:16px 0 8px;
}
.rates-card__table th,.rates-card__table td{
  text-align:left;padding:9px 14px 10px 0;border-bottom:var(--hair) solid currentColor;
  font-size:.95rem;vertical-align:baseline;
}
.rates-card__table thead th{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase}
.rates-card__table tbody th{font-weight:700}
.rates-card__table td{font-family:var(--serif);font-weight:800;letter-spacing:-.01em;font-size:1.06rem;white-space:nowrap}
.rates-card__cur{font-family:var(--sans);font-weight:700;font-size:.64em;letter-spacing:.1em;margin-right:4px}
.rates-card__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rates-card__terms{padding:4px 0 16px}
.rates-card__terms a{font-weight:700;text-decoration:underline;text-underline-offset:3px}

.ladder{max-width:620px;border-top:3px solid currentColor}
.ladder th,.ladder td{text-align:left;padding:12px 0 13px;border-bottom:var(--hair) solid currentColor}
.ladder th{font-weight:700}
.ladder td{text-align:right;font-family:var(--serif);font-weight:800;font-size:1.3rem;letter-spacing:-.02em}

/* ----------------------------------------------- breadcrumbs and related */
main>nav.crumbs{max-width:var(--max);padding:16px var(--gut) 0;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
main>nav.crumbs ol{opacity:1;gap:4px 10px}
main>nav.crumbs a{color:var(--teal-2);border-bottom:2px solid transparent}
main>nav.crumbs a:hover{color:var(--bone);border-bottom-color:var(--mustard)}
main>nav.crumbs [aria-current]{opacity:1;color:var(--bone);letter-spacing:.1em}
main>aside.seo-related{max-width:var(--max);padding:var(--pad) var(--gut)}
main>aside.seo-related .seo-related__in{border-top:3px solid var(--bone)}
main>aside.seo-related .seo-related__h{opacity:1;color:var(--teal-2);font-weight:700;letter-spacing:.2em}
main>aside.seo-related a{border-bottom:var(--hair) solid rgba(246,239,226,.3);font-weight:500}
main>aside.seo-related a:hover{opacity:1;color:var(--teal-2);border-bottom-color:var(--teal-2)}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--plum);color:var(--bone);border-top:3px solid var(--bone);padding:var(--pad) var(--gut) 34px}
.foot-in{max-width:var(--max);margin:0 auto}
.foot-brand{font-family:var(--serif);font-weight:800;font-size:clamp(1.3rem,3.2vw,2.3rem);text-transform:uppercase;letter-spacing:-.02em;line-height:1;margin-bottom:12px}
.foot-note{color:var(--plum-2);max-width:56ch;margin-bottom:clamp(26px,3.4vw,46px)}
.foot-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:26px 34px;border-top:var(--hair) solid var(--bone);padding-top:26px}
.foot-cols h2{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--plum-2);margin-bottom:12px}
.foot-cols ul{list-style:none}
.foot-cols li{margin-bottom:7px}
.foot-cols a{text-decoration:none;border-bottom:2px solid transparent}
.foot-cols a:hover{color:var(--mustard);border-bottom-color:var(--mustard)}
.legal{
  display:flex;flex-wrap:wrap;gap:8px 26px;align-items:center;
  border-top:var(--hair) solid var(--bone);margin-top:30px;padding-top:20px;
  font-size:.8rem;color:var(--plum-2);
}
.age21{display:inline-block;border:2px solid currentColor;padding:2px 7px;font-weight:700;font-size:.68rem;letter-spacing:.1em;margin-right:8px}

/* -------------------------------------------------------------- age bar */
.age-bar{display:none}
body.age-bar-open .age-bar{
  display:flex;position:fixed;left:0;right:0;bottom:0;z-index:100;
  gap:10px 18px;flex-wrap:wrap;align-items:center;justify-content:center;
  padding:10px var(--gut);background:var(--mustard);color:var(--ink);
  border-top:3px solid var(--ink);font-size:.86rem;
}
.ab-tag{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;border:2px solid currentColor;padding:3px 8px}
.ab-line{max-width:60ch}
.ab-ok{
  font:inherit;font-weight:700;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;
  background:var(--ink);color:var(--mustard);border:2px solid var(--ink);padding:9px 15px;cursor:pointer;
}
.ab-ok:hover{background:var(--bone);color:var(--ink);border-color:var(--bone)}

/* ----------------------------------------------------------- mobile dock */
.m-dock{display:none}
.m-dock svg{width:17px;height:17px;fill:currentColor;flex:0 0 auto}

@media (max-width:1080px){
  .site-header nav{display:none;order:4;flex-basis:100%;flex-direction:column;gap:0;border-top:var(--hair) solid var(--bone);padding-top:10px}
  .site-header nav.open{display:flex}
  .site-header nav a{padding:9px 0;min-height:44px;display:flex;align-items:center;border-bottom:none}
  .nav-toggle{display:block}
  .head-cta{display:none}
}
@media (max-width:860px){
  .panelset{grid-template-columns:1fr}
  .roster{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  /* phone: every block runs edge to edge, copy sits 18px inside it */
  :root{--gut:18px;--pad:40px}
  body{padding-bottom:calc(80px + env(safe-area-inset-bottom));font-size:16px}
  body.age-bar-open{padding-bottom:calc(160px + env(safe-area-inset-bottom))}
  body.age-bar-open .age-bar{bottom:calc(71px + env(safe-area-inset-bottom))}
  .pan{padding:18px var(--gut);gap:12px}
  .nav-toggle{min-height:44px;padding:10px 16px}
  .btn,.ab-ok,.tab-btn{min-height:44px}
  .btn{display:inline-flex;align-items:center;justify-content:center}
  .brand{overflow-wrap:break-word}
  .dlist a,.dlist span,.taglist .tag{min-height:44px;display:flex;align-items:center}
  .pagehead h1,main>section:not(.sec):not(.panelset) h1{font-size:clamp(1.5rem,7vw,1.85rem);overflow-wrap:break-word}
  .independence,main p[style*="font-size:14px"],main p[style*="font-size:13px"]{font-size:16px!important}
  .rates-card{overflow-x:auto}
  .rates-card__table th,.rates-card__table td{padding:8px 10px 9px 0;font-size:.9rem}
  .rates-card__table td{font-size:.98rem}
  .tech .note,.index__d,.who .mt,.faq .a,.s-card .ds,.journal-item .lede{font-size:1rem}
  .kick{font-size:.6rem;letter-spacing:.15em}
  .fee{font-size:clamp(2.4rem,12vw,4.2rem)}
  .feerow{font-size:.88rem;gap:4px 16px}
  .btn{padding:12px 18px;font-size:.93rem}
  .agebar{font-size:.6rem;padding:4px 10px}
  .m-dock{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:90;gap:9px;
    padding:10px 11px calc(10px + env(safe-area-inset-bottom));background:var(--teal);border-top:3px solid var(--bone);
  }
  .m-dock a{
    flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:7px;
    text-align:center;padding:12px 6px;min-height:46px;font-size:.88rem;font-weight:700;
    text-decoration:none;border:2px solid var(--bone);
  }
  .m-dock__wa{background:var(--mustard);color:var(--ink);border-color:var(--mustard)}
  .m-dock__tg,.m-dock__bk{background:transparent;color:var(--bone)}
}
@media (max-width:400px){
  .dlist li{font-size:.92rem}
  .tech .name{font-size:1.2rem}
  .roster{grid-template-columns:repeat(2,1fr)}
}

/* =========================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   About, questions, contact, booking, the glossary, the booking terms, the
   legal pages and the 404 render markup this theme does not own. They sit in
   the same chrome and are given the same language here: one bone panel, ink
   type, hard rules, nothing that moves.
   ========================================================================= */
main>section:not(.sec):not(.panelset){background:var(--bone);color:var(--ink);padding:var(--pad) 0;border-bottom:3px solid var(--ink)}
main>section:not(.sec):not(.panelset)[style*="linear-gradient"]{background:var(--bone-2)}
main>section:not(.sec):not(.panelset)[style*="var(--ink)"]{background:var(--ink);color:var(--bone)}
main>section:not(.sec):not(.panelset)[style*="var(--ink)"] a{color:var(--mustard)}
main>section:not(.sec):not(.panelset):last-of-type{border-bottom:0}

.container{max-width:var(--max);margin:0 auto;padding:0 var(--gut);width:100%}
.reading{max-width:var(--reading)}
.reading.container{max-width:calc(var(--reading) + 2 * var(--gut));margin-left:max(0px,calc((100% - var(--max)) / 2))}

main>section:not(.sec):not(.panelset) h1{font-family:var(--serif);font-weight:800;line-height:.95;letter-spacing:-.025em;font-size:clamp(1.85rem,5.2vw,4.1rem);text-transform:uppercase;overflow-wrap:break-word}
main>section:not(.sec):not(.panelset) h2{font-family:var(--serif);font-weight:800;line-height:1.02;letter-spacing:-.02em;font-size:clamp(1.3rem,2.6vw,2.1rem);text-transform:uppercase;margin-top:1.6em}
main>section:not(.sec):not(.panelset) h3{font-family:var(--serif);font-weight:800;line-height:1.16;letter-spacing:-.01em;font-size:clamp(1.02rem,1.6vw,1.3rem);margin-top:1.5em}
main>section:not(.sec):not(.panelset) h4,main>section:not(.sec):not(.panelset) h5{font-family:var(--serif);font-weight:800;font-size:1rem;letter-spacing:.1em;text-transform:uppercase;margin-top:1.4em}
main>section:not(.sec):not(.panelset) p{margin-top:.95em;line-height:1.66}
main>section:not(.sec):not(.panelset) .lede{font-size:clamp(1.02rem,1.5vw,1.35rem);max-width:60ch;margin-top:1em;margin-bottom:0;color:var(--muted)}
main>section:not(.sec):not(.panelset) .label-top{margin-bottom:12px}
.label{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:700}
.hero-small{padding-bottom:clamp(26px,3vw,44px)}
main>section.hero:not(.sec):not(.panelset){padding:var(--pad) 0;background:var(--bone-2)}
main>section.hero:not(.sec):not(.panelset)>*{max-width:var(--max);margin-left:auto;margin-right:auto;padding-left:var(--gut);padding-right:var(--gut)}

.reading a:not(.btn){color:var(--plum);font-weight:700;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}
.reading a:not(.btn):hover{color:var(--rust)}
.reading ul,.reading ol{margin:1em 0 0 1.15em}
.reading li{margin-top:.45em;line-height:1.6}
.reading strong{font-weight:700}
.reading table{margin-top:1.3em}
.reading th,.reading td{text-align:left;padding:10px 14px 11px 0;border-bottom:var(--hair) solid var(--rule)}
.reading th{font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.reading h3[data-faq]{border-top:var(--hair) solid var(--rule);padding-top:1.1em}

.btn-primary{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.btn-primary:hover{background:var(--rust);border-color:var(--rust);color:var(--bone)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--bone)}
main>section:not(.sec):not(.panelset) .btn+.btn{margin-left:10px}

.tag{display:inline-block;border:2px solid currentColor;padding:6px 11px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;text-decoration:none}
a.tag:hover{background:var(--ink);color:var(--bone)}
.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}

.t-grid,.like-grid,.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:clamp(12px,1.5vw,22px);margin-top:1.4em}
.t-grid>*,.like-grid>*{min-width:0}
.t-card,.like-card{display:block;min-width:0;text-decoration:none;color:inherit}
.t-card .photo,.like-photo{aspect-ratio:3/4;background:var(--ink);overflow:hidden}
.t-card .photo img,.like-photo img{width:100%;height:100%;object-fit:cover;display:block}
.gallery-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;background:var(--ink)}
.t-card .name,.like-name{font-family:var(--serif);font-weight:800;font-size:1.05rem;letter-spacing:-.01em;line-height:1.05;padding-top:10px;display:block}
.t-card:hover .name,.like-card:hover .like-name{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:3px}
.t-card .meta,.like-meta{display:block;font-size:.85rem;color:var(--muted);padding-top:3px}

.s-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:0;border-top:var(--hair) solid var(--ink);margin-top:1.4em}
.s-card{display:block;border-bottom:var(--hair) solid var(--ink);padding:18px 24px 20px 0;text-decoration:none;color:inherit}
.s-card .num{font-size:.68rem;letter-spacing:.2em;font-weight:700;color:var(--muted)}
.s-card .nm{display:block;font-family:var(--serif);font-weight:800;font-size:clamp(1.24rem,2.2vw,1.8rem);letter-spacing:-.02em;line-height:1.02;margin-top:5px}
a.s-card:hover .nm{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:3px}
.s-card .ds{display:block;font-size:.95rem;line-height:1.5;color:var(--muted);margin-top:7px;max-width:40ch}

.price-table,.stats-table,.rates-table{width:100%;border-top:3px solid var(--ink);margin-top:1.3em}
.price-table td,.stats-table td,.rates-table td{padding:12px 0 13px;border-bottom:var(--hair) solid var(--rule);vertical-align:baseline}
.price-table td:first-child,.stats-table td:first-child,.rates-table td:first-child{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700}
.price-table td:last-child,.stats-table td:last-child,.rates-table td:last-child{text-align:right;font-family:var(--serif);font-weight:800;font-size:1.3rem;letter-spacing:-.02em}

.tabs{margin:0}
.tab-nav{display:flex;flex-wrap:wrap;gap:8px;padding:14px 0;margin-bottom:18px;border-top:var(--hair) solid var(--rule);border-bottom:var(--hair) solid var(--rule)}
.tab-btn{font:inherit;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:9px 14px;background:transparent;color:var(--ink);border:2px solid var(--ink);cursor:pointer}
.tab-btn:hover,.tab-btn.active{background:var(--ink);color:var(--bone)}
.tab-panel{display:none}
.tab-panel.active{display:block}

.carousel{position:relative;background:var(--ink)}
.carousel-track{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{flex:0 0 calc(25% - 5px);aspect-ratio:3/4;background:var(--ink)}
.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}
.carousel-prev,.carousel-next{position:absolute;top:calc(50% - 21px);z-index:4;width:42px;height:42px;background:var(--bone);color:var(--ink);border:2px solid var(--ink);font-size:20px;line-height:1;cursor:pointer}
.carousel-prev{left:10px}
.carousel-next{right:10px}
.carousel-prev:hover,.carousel-next:hover{background:var(--mustard)}
.carousel-dots{display:flex;justify-content:center;gap:5px;padding-top:9px}
.carousel-dot{width:16px;height:3px;background:rgba(18,14,12,.3)}
.carousel-dot.active{background:var(--rust)}

.book-banner{background:var(--ink);color:var(--bone);padding:16px var(--gut)}
.book-banner a{color:var(--mustard);font-weight:700}

.journal-list{display:grid;border-top:var(--hair) solid var(--ink);margin-top:1.4em}
.journal-item{display:block;border-bottom:var(--hair) solid var(--ink);padding:18px 0 20px;text-decoration:none;color:inherit}
.journal-item .date{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.journal-item h3{margin:7px 0 0;font-family:var(--serif);font-weight:800;text-transform:none;letter-spacing:-.02em}
.journal-item:hover h3{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:3px}
.journal-item .lede{font-size:.95rem;color:var(--muted);margin-top:6px;max-width:72ch}

.form-row{margin-top:18px}
.form-row label{display:block;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700}
.form-row select,.form-row input{
  width:100%;max-width:100%;min-height:50px;padding:12px 13px;margin-top:8px;border-radius:0;
  background:var(--bone-2);border:2px solid var(--ink);color:var(--ink);font:inherit;font-size:.95rem;
}
.form-row select:focus,.form-row input:focus{outline:3px solid var(--mustard);outline-offset:2px}

main>section:not(.sec):not(.panelset) .rates-card{border-top-color:var(--ink)}
main>section:not(.sec):not(.panelset) .independence{border-top-color:var(--rule)}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.no-save img{-webkit-user-drag:none}

@media (max-width:760px){
  .carousel-slide{flex:0 0 100%}
  .t-grid,.like-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
}

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