/* ================================================================ Med spas: after hours (a quiet, light look on purpose) */
:root{
  --s-marble:#f5f6f5; --s-paper:#fafbfa; --s-ivory:#fdfbf6; --s-sage:#9fb3a0; --s-sage-l:#e6ece7; --s-sage-d:#4a6150;
  --s-ink:#1f2b25; --s-ink2:#34423a; --s-muted:#5b6961; --s-champ:#c9a96e; --s-champ-l:#ede2cb; --s-bronze:#7d5f2c;
  --s-line:rgba(31,43,37,.13);
  --s-disp:'Italiana','Didot','Bodoni 72',Georgia,serif;
}
.pg-spa{background:var(--s-paper);color:var(--s-ink)}
.pg-spa h1,.pg-spa h2{font-family:var(--s-disp);font-weight:400;letter-spacing:.004em;text-wrap:balance;color:var(--s-ink)}
.pg-spa h2{margin:20px 0 0;font-size:clamp(38px,4.7vw,68px);line-height:1.04}
.pg-spa .lab{color:var(--s-muted)}
.pg-spa .lab::before{content:"";width:28px;height:1px;background:var(--s-champ)}
.pg-spa :focus-visible{outline-color:var(--s-ink)}
.spa-head p{margin:20px 0 0;max-width:54ch;font-size:17px;line-height:1.65;color:var(--s-muted);text-wrap:pretty}
.spa-btn-ink{background:var(--s-ink);color:#f5f6f5}
.spa-btn-ink:hover{background:#30413a}
.spa-btn-line{background:transparent;color:var(--s-ink);box-shadow:inset 0 0 0 1px rgba(31,43,37,.42)}
.spa-btn-line:hover{background:rgba(255,255,255,.6);box-shadow:inset 0 0 0 1px var(--s-ink)}
.pg-spa .fine{color:var(--s-ink)}
.pg-spa .fine .hl{background:var(--s-champ-l)}
.pg-spa .fine .dot{background:var(--s-sage-d)}
.spa-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}

/* ---------------------------------------------------------------- hero: the slab, the sign, the sprig, the votive */
.spa-hero{--sw:clamp(200px,20vw,288px);--cw:clamp(66px,6.3vw,96px);--cr:calc(var(--gut) + clamp(170px,21.5vw,330px));--cb:clamp(22px,4.4vh,44px);
  --gw:clamp(440px,48vw,760px);
  position:relative;overflow:clip;isolation:isolate;min-height:clamp(640px,calc(100svh - var(--head)),880px);
  background:radial-gradient(58% 48% at 90% 10%,rgba(221,228,224,.85),rgba(221,228,224,0) 70%),
    radial-gradient(48% 58% at 4% 94%,rgba(225,231,227,.75),rgba(225,231,227,0) 70%),
    linear-gradient(170deg,#f8f9f8 0%,var(--s-marble) 52%,#eef0ee 100%);
  box-shadow:inset 0 -1px 0 rgba(31,43,37,.08)}
.spa-marble{position:absolute;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none}
.spa-grain{position:absolute;inset:0;z-index:-1;width:100%;height:100%;opacity:.045;mix-blend-mode:multiply;pointer-events:none;will-change:transform}
.spa-hero > .spa-marble{-webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.5) 44%,#000 74%);mask-image:linear-gradient(90deg,rgba(0,0,0,.42) 0,rgba(0,0,0,.5) 44%,#000 74%)}
.spa-hero-in{position:relative;display:flex;align-items:center;min-height:inherit;padding-block:clamp(48px,7vh,88px) clamp(96px,13vh,136px)}
.spa-copy{position:relative;z-index:1;max-width:min(790px,67%)}
.spa-kick{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0;font:500 11.5px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--s-muted)}
.spa-kick i{width:5px;height:5px;border-radius:50%;background:var(--s-champ)}
.spa-hero h1{margin:26px 0 0;font-size:clamp(46px,6.3vw,94px);line-height:1.02}
.spa-hero h1 > span{display:block}
.spa-u{position:relative;white-space:nowrap}
.spa-u::after{content:"";position:absolute;left:.03em;right:.2em;bottom:.04em;height:max(1.5px,.02em);background:var(--s-champ);transform-origin:0 50%;transform:scaleX(var(--u,1))}
.spa-sub{margin:26px 0 0;max-width:46ch;font-size:clamp(16.5px,1.3vw,18.5px);line-height:1.65;color:var(--s-ink2);text-wrap:pretty}

/* the door sign: 1em = sign width / 17.5 */
.spa-hang{position:absolute;z-index:2;top:0;right:calc(var(--gut) + clamp(8px,3.5vw,56px));width:var(--sw);font-size:calc(var(--sw) * 16 / 280)}
.spa-sign{position:relative;padding-top:1.4em}
.spa-pin{position:absolute;z-index:4;left:50%;top:.95em;width:.9em;height:.9em;margin-left:-.45em;border-radius:50%;
  background:radial-gradient(circle at 36% 30%,#fff6de 0 10%,#dcc28c 34%,#a98848 78%,#8a6b33 100%);
  box-shadow:0 .08em .14em rgba(31,43,37,.4),0 .3em .6em rgba(31,43,37,.16)}
.spa-swing{position:relative;transform-origin:50% 0;perspective:64em}
.spa-shade{position:absolute;left:9%;right:9%;top:7.6em;height:9.6em;border-radius:1em;background:rgba(31,43,37,.5);opacity:.4;
  filter:blur(1em);translate:.8em 1.2em;pointer-events:none}
.spa-turn{position:relative;padding-top:6.4em;transform-style:preserve-3d}
.spa-cord{position:absolute;z-index:3;left:0;top:0;width:100%;height:7.81em;overflow:visible;pointer-events:none}
.spa-cord path{fill:none;stroke:#b0915a;stroke-width:1.3;stroke-linecap:round;vector-effect:non-scaling-stroke}
.spa-board{position:relative;height:10.9em;transform-style:preserve-3d}
.spa-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:.9em;border-radius:.8em;
  -webkit-backface-visibility:hidden;backface-visibility:hidden}
.spa-face::before{content:"";position:absolute;inset:.55em;border:1px solid rgba(201,169,110,.62);border-radius:.45em;pointer-events:none}
.spa-front{background:linear-gradient(158deg,#2c3b33 0%,#1f2b25 55%,#18221d 100%);color:#f2f0e9;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),inset 0 -1px 0 rgba(0,0,0,.25)}
.spa-back{transform:rotateY(180deg);background:linear-gradient(158deg,#fffefa 0%,#faf6ec 60%,#f2ecdf 100%);color:var(--s-ink);
  box-shadow:inset 0 1px 0 #fff,inset 0 0 0 1px rgba(201,169,110,.35)}
.spa-grom{position:absolute;top:1.1em;width:.62em;height:.62em;border-radius:50%;background:radial-gradient(circle,#1a1f1c 0 36%,#d8bd85 40% 62%,#9d7d42 100%)}
.spa-grom.l{left:1.43em}
.spa-grom.r{right:1.43em}
.spa-sk{font:500 .62em/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--s-champ);white-space:nowrap}
.spa-back .spa-sk{color:var(--s-bronze)}
.spa-sw{margin-top:.08em;font:400 3.55em/1.02 var(--s-disp);letter-spacing:.03em}
.spa-ss{margin-top:.5em;font:500 .68em/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:#cfd6d0;white-space:nowrap}
.spa-back .spa-ss{font-size:.84em;letter-spacing:.18em;color:var(--s-ink)}
.spa-ss b{font-weight:500;color:var(--s-champ)}
.spa-cap{display:flex;justify-content:center;margin:1.9em 0 0;font:500 max(10px,.64em)/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted);white-space:nowrap}
.spa-cap b{font-weight:500;color:var(--s-champ)}
.spa-booked .spa-turn{transform:rotateY(180deg)}

/* the sprig and the votive (bottom right), and the votive's glow on the stone */
.spa-sprig{position:absolute;z-index:1;right:-3%;bottom:-4%;width:clamp(260px,34vw,500px);height:auto;filter:drop-shadow(0 14px 12px rgba(31,43,37,.16));pointer-events:none}
.spa-hero > .spa-candle{position:absolute;z-index:1;right:var(--cr);bottom:var(--cb);width:var(--cw);height:auto;overflow:visible;will-change:transform}
.spa-glow{position:absolute;z-index:-1;pointer-events:none;border-radius:50%;
  background:radial-gradient(closest-side,rgba(240,205,138,.42),rgba(240,205,138,.16) 42%,rgba(240,205,138,0) 100%);
  animation:spa-breathe 4.6s ease-in-out infinite;animation-play-state:paused}
.spa-hero > .spa-glow{right:calc(var(--cr) + var(--cw) / 2 - var(--gw) / 2);bottom:calc(var(--cb) + var(--cw) * 1.583 * .63 - var(--gw) / 2);width:var(--gw);height:var(--gw)}
.spa-flame{transform-box:fill-box;transform-origin:50% 100%;animation:spa-flick 2.6s ease-in-out infinite;animation-play-state:paused}
.spa-live .spa-flame,.spa-live .spa-glow{animation-play-state:running}
@keyframes spa-flick{
  0%,100%{transform:scale(1,1) skewX(0)} 18%{transform:scale(.97,1.05) skewX(-2deg)} 37%{transform:scale(1.02,.96) skewX(1.4deg)}
  58%{transform:scale(.98,1.03) skewX(-.8deg)} 79%{transform:scale(1.01,.98) skewX(1deg)}
}
@keyframes spa-breathe{0%,100%{opacity:.9;transform:scale(1)} 40%{opacity:1;transform:scale(1.03)} 70%{opacity:.84;transform:scale(.99)}}

/* ---------------------------------------------------------------- how it works: one evening, four stops */
.spa-how{padding-block:clamp(84px,10vw,150px);background:var(--s-paper)}
.spa-how-grid{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(40px,7vw,120px);align-items:start}
.spa-how-head{position:sticky;top:calc(var(--head) + 48px)}
.spa-tl{--tc:clamp(96px,9.4vw,132px);--rail:48px;position:relative;list-style:none;margin:0;padding:0}
.spa-tl::before{content:"";position:absolute;left:calc(var(--tc) + var(--rail) / 2);top:22px;bottom:34px;width:1px;margin-left:-.5px;transform-origin:50% 0;
  background:linear-gradient(180deg,var(--s-ink) 0%,var(--s-sage) 58%,var(--s-champ) 100%)}
.spa-st{position:relative;display:grid;grid-template-columns:var(--tc) var(--rail) minmax(0,1fr);align-items:start;padding-bottom:clamp(40px,4.4vw,62px)}
.spa-st:last-child{padding-bottom:0}
.spa-time{display:flex;flex-direction:column;align-items:flex-end;margin:0;padding-right:4px;text-align:right}
.spa-hm{font:400 clamp(42px,4.1vw,58px)/.92 var(--s-disp);color:var(--s-ink);letter-spacing:.01em}
.spa-ap{margin-top:10px;font:500 10.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--s-muted);white-space:nowrap}
.spa-dot{position:relative;z-index:1;justify-self:center;display:grid;place-items:center;width:13px;height:13px;margin-top:16px;border-radius:50%;
  background:var(--s-paper);box-shadow:inset 0 0 0 1.5px var(--s-sage)}
.spa-dot svg{width:13px;height:13px}
.spa-night .spa-dot{width:28px;height:28px;margin-top:8px;background:var(--s-ink);color:#f2f0e9;box-shadow:none}
.spa-dusk .spa-dot{box-shadow:inset 0 0 0 1.5px var(--s-champ)}
.spa-morning .spa-dot{width:28px;height:28px;margin-top:8px;background:var(--s-champ-l);color:var(--s-bronze);box-shadow:inset 0 0 0 1px var(--s-champ)}
.spa-stb h3{margin:8px 0 0;font:600 clamp(19px,1.6vw,22px)/1.3 var(--body);letter-spacing:-.01em;color:var(--s-ink);text-wrap:balance}
.spa-stb p{margin:10px 0 0;max-width:52ch;font-size:16px;line-height:1.65;color:var(--s-muted);text-wrap:pretty}
.spa-tl.spa-pre::before{transform:scaleY(0)}
.spa-tl.spa-pre .spa-st{transform:translateY(18px)}
.spa-tl.spa-pre.spa-in::before{transform:none;transition:transform 2s cubic-bezier(.45,0,.2,1)}
.spa-tl.spa-pre.spa-in .spa-st{opacity:1;transform:none;transition:opacity .7s ease calc(.1s + var(--i) * .34s),transform .9s var(--ease) calc(.1s + var(--i) * .34s)}

/* ---------------------------------------------------------------- sample calls: the appointment book */
.spa-calls{padding-block:clamp(84px,10vw,150px);background:var(--s-sage-l)}
.spa-calls-head{max-width:860px}
.spa-book{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;margin-top:clamp(40px,5vw,64px)}
.spa-cover{position:relative;z-index:1;grid-column:1;grid-row:1;padding:12px 12px 22px;border-radius:18px;
  background:linear-gradient(150deg,#2d3c34 0%,#1f2b25 55%,#18221d 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 1px 1px rgba(31,43,37,.2),0 44px 64px -40px rgba(31,43,37,.6)}
.spa-cover::after{content:"";position:absolute;left:16px;right:16px;bottom:9px;height:9px;border-radius:0 0 6px 6px;
  background:repeating-linear-gradient(180deg,#f4f0e6 0 1.4px,#d9d3c4 1.4px 2.4px)}
.spa-pages{position:relative;z-index:1;border-radius:8px;background:var(--s-ivory)}
.spa-spread{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-height:560px;border-radius:8px}
.spa-spread::before{content:"";position:absolute;z-index:2;left:50%;top:0;bottom:0;width:76px;margin-left:-38px;pointer-events:none;
  background:linear-gradient(90deg,rgba(31,43,37,0) 0,rgba(31,43,37,.045) 36%,rgba(31,43,37,.15) 50%,rgba(31,43,37,.045) 64%,rgba(31,43,37,0) 100%)}
.spa-spread:focus-visible{outline-offset:6px}
.spa-pg{position:relative;padding:clamp(24px,3vw,42px) clamp(22px,3vw,44px)}
.spa-when{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;margin:0;padding-bottom:12px;border-bottom:1px solid var(--s-line);
  font:500 10.5px/1.4 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--s-muted)}
.spa-when span:first-child{color:var(--s-ink)}
.spa-callh{margin:20px 0 0;font:400 clamp(28px,2.6vw,36px)/1.08 var(--s-disp);color:var(--s-ink);text-wrap:balance}
.spa-talk{display:grid;gap:14px;list-style:none;margin:20px 0 0;padding:0}
.spa-talk li{display:grid;gap:5px}
.spa-talk b{font:500 10px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted)}
.spa-talk p{margin:0}
.spa-ai b{color:var(--s-sage-d)}
.spa-ai p{padding-left:14px;border-left:1.5px solid var(--s-sage);font-size:15.5px;line-height:1.55;color:var(--s-ink2)}
.spa-cl p{font:400 clamp(21px,1.75vw,25px)/1.24 var(--s-disp);color:var(--s-ink);text-wrap:pretty}
.spa-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:22px 0 0;padding:0}
.spa-chips li{display:inline-flex;align-items:stretch;overflow:hidden;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(125,95,44,.32);font:600 12.5px/1 var(--body)}
.spa-chips span{display:flex;align-items:center;padding:8px 10px 8px 13px;color:var(--s-ink)}
.spa-chips em{display:flex;align-items:center;padding:8px 13px 8px 10px;background:rgba(201,169,110,.2);font:500 10px/1.2 var(--mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--s-bronze)}
.spa-dayh{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;padding-bottom:10px;border-bottom:1px solid var(--s-ink)}
.spa-dayh h3{margin:0;font:400 clamp(36px,3.3vw,46px)/1 var(--s-disp);color:var(--s-ink)}
.spa-open{margin:0;font:500 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-bronze)}
.spa-slots{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:repeat(var(--rows),22px);margin-top:12px}
.spa-slotbg{position:absolute;inset:0;display:grid;grid-template-columns:inherit;grid-template-rows:inherit}
.spa-hr{grid-column:1;grid-row:var(--r) / span 2;padding-top:4px;font:500 11px/1 var(--mono);color:var(--s-muted)}
.spa-rule{grid-column:2;grid-row:var(--r);align-self:start;height:1px;background:rgba(31,43,37,.12)}
.spa-busy{grid-column:2;grid-row:var(--r) / span var(--s);margin:3px 0;border-radius:5px;
  background:repeating-linear-gradient(135deg,rgba(159,179,160,.26) 0 5px,rgba(159,179,160,.12) 5px 10px)}
.spa-new{position:relative;z-index:1;grid-column:2;grid-row:var(--r) / span var(--s);display:flex;flex-direction:column;justify-content:center;gap:2px;margin:2px 0;padding:4px 10px 4px 14px;
  border-radius:6px;background:#fff;box-shadow:inset 3px 0 0 var(--s-champ),0 0 0 1px rgba(201,169,110,.5),0 12px 20px -14px rgba(31,43,37,.45)}
.spa-new > span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.spa-new-t{font:600 13px/1.25 var(--body);color:var(--s-ink)}
.spa-new-t em{margin-left:6px;padding:2px 6px;border-radius:4px;background:var(--s-ink);color:#f2f0e9;font:500 9px/1 var(--mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;vertical-align:1px}
.spa-new-v{font-size:12.5px;line-height:1.25;color:var(--s-muted)}
.spa-sum{margin:18px 0 0}
.spa-sum div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--s-line)}
.spa-sum dt{font:500 10px/1.7 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted)}
.spa-sum dd{margin:0;font-size:14.5px;line-height:1.45;color:var(--s-ink)}
.spa-sum dd span{display:block;font-size:13px;color:var(--s-muted)}
/* the day tabs on the fore-edge */
.spa-tabs{position:relative;z-index:0;grid-column:2;grid-row:1;display:flex;flex-direction:column;gap:8px;padding-top:44px}
.spa-tab{--tc:#eadcbf;position:relative;display:grid;justify-items:start;gap:4px;width:98px;padding:14px 12px 14px 22px;margin-left:-12px;border:0;border-radius:0 14px 14px 0;
  background:var(--tc);color:var(--s-ink);text-align:left;cursor:pointer;
  box-shadow:inset 12px 0 10px -8px rgba(31,43,37,.3);transition:transform .35s var(--ease),background-color .25s,box-shadow .25s}
.spa-tab-fri{--tc:#d3dfd4}
.spa-tab-sat{--tc:#d6dbd8}
.spa-tab:hover{transform:translateX(4px)}
.spa-tab[aria-selected="true"]{z-index:2;background:var(--s-ivory);transform:translateX(6px);box-shadow:0 12px 20px -14px rgba(31,43,37,.5)}
.spa-tab[aria-selected="true"]::before{content:"";position:absolute;top:0;bottom:0;left:-8px;width:10px;background:var(--s-ivory)}
.spa-td{font:400 27px/1 var(--s-disp)}
.spa-tt{font:500 10.5px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--s-ink2);white-space:nowrap}
.spa-tn{font:500 13px/1.2 var(--body);color:var(--s-muted)}
.spa-tab[aria-selected="true"] .spa-tn{color:var(--s-ink)}
.spa-note{margin:26px 0 0;font:500 11px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--s-muted)}

/* ---------------------------------------------------------------- the front desk, and what stays with the provider */
.spa-desk{padding-block:clamp(84px,10vw,140px);background:var(--s-ink);color:#e7ece8}
.spa-desk h2{color:#f3f1ea}
.spa-desk .lab{color:#b7c5b9}
.spa-desk-head{max-width:900px}
.spa-desk-cols{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:0 clamp(28px,5vw,80px);margin-top:clamp(44px,5vw,68px)}
.spa-dcol h3{margin:0 0 10px;font:400 clamp(26px,2.4vw,32px)/1.1 var(--s-disp);color:#f3f1ea}
.spa-dcol ul{list-style:none;margin:0;padding:0}
.spa-dcol li{text-wrap:pretty;display:flex;align-items:flex-start;gap:14px;padding:16px 0;border-bottom:1px solid rgba(231,236,232,.12);font-size:16.5px;line-height:1.5}
.spa-gl{flex:none;width:20px;height:20px;margin-top:2px;color:var(--s-sage)}
.spa-dnot .spa-gl{color:var(--s-champ)}
.spa-dnot li span{color:#d2d9d3}
.spa-dsep{position:relative}
.spa-dsep i{position:absolute;inset:6px 0 0;background:linear-gradient(180deg,rgba(201,169,110,.75),rgba(201,169,110,.1))}
.spa-dsep::before{content:"";position:absolute;top:0;left:-3.5px;width:8px;height:8px;border-radius:50%;background:var(--s-champ)}

/* ---------------------------------------------------------------- setup */
.spa-setup{padding-block:clamp(84px,10vw,140px);background:var(--s-paper)}
.spa-setup-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:24px 40px}
.spa-setup-head > div{max-width:720px}
.spa-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,3vw,44px);list-style:none;margin:clamp(44px,5vw,64px) 0 0;padding:0}
.spa-steps li{padding-top:18px;border-top:1px solid var(--s-ink)}
.spa-rn{display:block;font:400 clamp(44px,4.2vw,60px)/1 var(--s-disp);color:var(--s-bronze)}
.spa-steps h3{margin:16px 0 0;font:600 18px/1.3 var(--body);letter-spacing:-.01em}
.spa-steps p{margin:8px 0 0;font-size:15.5px;line-height:1.6;color:var(--s-muted);text-wrap:pretty}

/* ---------------------------------------------------------------- pricing: a treatment-menu card */
.spa-price{padding-block:clamp(84px,10vw,150px);background:linear-gradient(180deg,#edf1ee 0%,#f3f5f3 100%)}
.spa-price-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,100px);align-items:center}
.spa-menu{position:relative;justify-self:end;width:100%;max-width:560px;padding:12px;background:var(--s-ivory);
  box-shadow:0 1px 2px rgba(31,43,37,.1),0 44px 64px -44px rgba(31,43,37,.5)}
.spa-menu-in{padding:clamp(30px,4vw,48px) clamp(20px,3.6vw,44px) clamp(26px,3.4vw,40px);border:1px solid rgba(201,169,110,.8);outline:1px solid rgba(201,169,110,.45);outline-offset:-7px;text-align:center}
.spa-menu-k{margin:0;font:500 10.5px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--s-bronze)}
.spa-menu-t{margin:12px 0 0;font:400 clamp(46px,4.4vw,62px)/1 var(--s-disp);color:var(--s-ink)}
.spa-orn{display:block;width:140px;height:24px;margin:14px auto 0;color:var(--s-champ)}
.spa-items{margin:24px 0 0;text-align:left}
.spa-items div{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;padding:11px 0}
.spa-items dt{display:flex;align-items:baseline;font:600 17px/1.3 var(--body);color:var(--s-ink)}
.spa-items dt::after{content:"";flex:1;min-width:20px;margin:0 10px;border-bottom:1.5px dotted rgba(125,95,44,.5);transform:translateY(-4px)}
.spa-pr{margin:0;font:400 31px/1 var(--s-disp);color:var(--s-ink);white-space:nowrap}
.spa-pr small{margin-left:2px;font:500 11px/1 var(--mono);letter-spacing:.06em;color:var(--s-muted)}
.spa-ds{grid-column:1 / -1;margin:3px 0 0;font-size:14px;line-height:1.4;color:var(--s-muted)}
.spa-est{margin-top:18px;padding-top:22px;border-top:1px solid rgba(201,169,110,.55);text-align:left}
.spa-est-l{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.spa-est-l label{font:500 10.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-muted);cursor:pointer}
.spa-est-l b{font:600 19px/1 var(--body);font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap;color:var(--s-ink)}
.spa-range{--th:26px;position:relative;height:40px;margin-top:10px}
.spa-range::before,.spa-range::after{content:"";position:absolute;left:0;top:50%;height:2px;margin-top:-1px;border-radius:2px;pointer-events:none}
.spa-range::before{right:0;background:rgba(31,43,37,.16)}
.spa-range::after{width:calc(var(--th) / 2 + var(--p,.2222) * (100% - var(--th)));background:var(--s-ink)}
.spa-range input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;background:transparent;cursor:pointer;-webkit-appearance:none;appearance:none}
.spa-range input::-webkit-slider-runnable-track{height:40px;background:transparent}
.spa-range input::-moz-range-track{height:40px;background:transparent}
.spa-range input::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:7px;border-radius:50%;
  background:radial-gradient(circle at 36% 30%,#fff 0 16%,#f4f0e7 46%,#d9cfbb 100%);box-shadow:0 0 0 1px rgba(176,145,90,.95),0 5px 10px -2px rgba(31,43,37,.4)}
.spa-range input::-moz-range-thumb{width:26px;height:26px;border:0;border-radius:50%;
  background:radial-gradient(circle at 36% 30%,#fff 0 16%,#f4f0e7 46%,#d9cfbb 100%);box-shadow:0 0 0 1px rgba(176,145,90,.95),0 5px 10px -2px rgba(31,43,37,.4)}
.spa-range input:focus{outline:none}
.spa-range:has(input:focus-visible){outline:2px solid var(--s-ink);outline-offset:6px;border-radius:10px}
.spa-scale{position:relative;height:14px;margin-top:2px}
.spa-scale span{position:absolute;top:0;left:calc(13px + var(--f) * (100% - 26px));translate:-50% 0;font:500 10.5px/1 var(--mono);color:var(--s-muted)}
.spa-bill{margin:20px 0 0;text-align:left}
.spa-bill div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px solid var(--s-line)}
.spa-bill dt{font-size:15px;line-height:1.4;color:var(--s-ink2)}
.spa-bill dd{margin:0;font:600 15.5px/1.3 var(--body);font-variant-numeric:tabular-nums;color:var(--s-ink);white-space:nowrap}
.spa-bill .spa-tot{align-items:flex-end;padding-top:18px;border-bottom:0}
.spa-tot dt{font:500 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--s-ink)}
.spa-tot strong{font:400 clamp(46px,4.4vw,60px)/.9 var(--s-disp);color:var(--s-ink)}
.spa-facts{display:grid;gap:6px;list-style:none;margin:20px 0 0;padding:16px 0 0;border-top:1px solid rgba(201,169,110,.55);text-align:left;font-size:13.5px;line-height:1.5;color:var(--s-muted)}
.spa-facts li{position:relative;padding-left:16px}
.spa-facts li::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--s-sage)}

/* ---------------------------------------------------------------- FAQ */
.spa-faq{--fq-line:rgba(31,43,37,.14);--fq-muted:var(--s-muted);padding-block:clamp(84px,10vw,140px);background:var(--s-paper)}
.spa-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,100px);align-items:start}
.spa-faq summary{font-weight:500}
.spa-faq summary i{color:var(--s-bronze)}

/* ---------------------------------------------------------------- closing: the candle again */
.spa-close{position:relative;overflow:clip;isolation:isolate;padding-block:clamp(96px,11vw,160px);text-align:center;
  background:radial-gradient(60% 70% at 50% 30%,rgba(255,255,255,.7),rgba(255,255,255,0) 70%),linear-gradient(180deg,#f3f5f3,#eceeec)}
.spa-close > .spa-marble{-webkit-mask-image:radial-gradient(62% 58% at 50% 48%,rgba(0,0,0,.18) 0,rgba(0,0,0,.35) 55%,#000 100%);mask-image:radial-gradient(62% 58% at 50% 48%,rgba(0,0,0,.18) 0,rgba(0,0,0,.35) 55%,#000 100%)}
.spa-close-in{position:relative}
.spa-close-candle{position:relative;width:clamp(54px,4.6vw,68px);margin:0 auto}
.spa-close .spa-candle{display:block;width:100%;height:auto;overflow:visible;will-change:transform}
.spa-glow-c{left:50%;top:37%;width:clamp(360px,40vw,560px);height:clamp(360px,40vw,560px);margin:calc(clamp(360px,40vw,560px) / -2) 0 0 calc(clamp(360px,40vw,560px) / -2)}
.spa-close h2{margin:30px auto 0;font-size:clamp(46px,7vw,104px);line-height:1}
.spa-close h2 > span{display:block}
.spa-close p{margin:24px auto 0;max-width:48ch;font-size:17px;line-height:1.65;color:var(--s-muted);text-wrap:pretty}
.spa-close .spa-cta{justify-content:center}

/* ---------------------------------------------------------------- footer */
.spa-foot{background:var(--s-ink);color:#eef1ee}
.spa-foot .grid3 i:not(.o){background:var(--s-champ)}
.spa-foot .p3-tag{font:400 28px/1.1 var(--s-disp);font-style:normal;letter-spacing:.01em;color:#f3f1ea}

/* ---------------------------------------------------------------- narrower screens */
@media (max-width:1180px){
  .spa-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
}
@media (max-width:1099px){
  .spa-how-grid,.spa-faq-grid,.spa-price-grid{grid-template-columns:minmax(0,1fr)}
  .spa-how-head{position:static}
  .spa-menu{justify-self:start}
}
@media (max-width:899px){
  .spa-hero{--sw:clamp(136px,29vw,210px);--cw:clamp(50px,11vw,72px);--cr:calc(100% - var(--gut) - var(--cw) - 6px);--cb:22px;--gw:clamp(300px,86vw,560px);min-height:0}
  .spa-hero-in{display:block;min-height:0;padding-block:30px clamp(176px,40vw,290px)}
  .spa-copy{max-width:none}
  .spa-hero > .spa-marble{-webkit-mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.45) 22%,rgba(0,0,0,.45) 72%,#000 100%);mask-image:linear-gradient(180deg,#000 0,rgba(0,0,0,.45) 22%,rgba(0,0,0,.45) 72%,#000 100%)}
  .spa-hero h1{margin-top:calc(var(--sw) * 1.07 + 6px);font-size:clamp(37px,10.6vw,78px)}
  .spa-sub{max-width:52ch}
  .spa-hang{right:var(--gut)}
  .spa-sprig{width:clamp(230px,56vw,420px)}
  .spa-book{grid-template-columns:minmax(0,1fr)}
  .spa-tabs{grid-column:1;grid-row:1;flex-direction:row;align-items:flex-end;gap:6px;padding:0 14px}
  .spa-tab{flex:1 1 0;width:auto;min-width:0;margin:0;padding:11px 12px 12px;border-radius:12px 12px 0 0;box-shadow:inset 0 -12px 10px -8px rgba(31,43,37,.28)}
  .spa-tab:hover{transform:translateY(-3px)}
  .spa-tab[aria-selected="true"],.spa-tab[aria-selected="true"]:hover{transform:translateY(-4px);box-shadow:0 -8px 16px -12px rgba(31,43,37,.4)}
  .spa-tab[aria-selected="true"]::before{top:auto;left:0;right:0;bottom:-16px;width:auto;height:18px}
  .spa-cover{grid-row:2}
  .spa-spread{grid-template-columns:minmax(0,1fr);min-height:0}
  .spa-spread::before{display:none}
  .spa-pg-r{box-shadow:inset 0 16px 16px -16px rgba(31,43,37,.22);border-top:1px dashed rgba(31,43,37,.12)}
  .spa-desk-cols{grid-template-columns:minmax(0,1fr);row-gap:44px}
  .spa-dsep{display:none}
}
@media (min-width:900px) and (max-width:1099px){
  .spa-spread{min-height:600px}
}
@media (max-width:599px){
  .spa-cta > .btn{flex:1 1 auto}
  .spa-tl{--rail:30px}
  .spa-tl::before{left:calc(var(--rail) / 2);top:14px}
  .spa-st{grid-template-columns:var(--rail) minmax(0,1fr);column-gap:14px}
  .spa-time{grid-column:2;grid-row:1;flex-direction:row;align-items:baseline;gap:10px;padding:0;text-align:left}
  .spa-hm{font-size:40px}
  .spa-ap{margin:0}
  .spa-dot{grid-column:1;grid-row:1;margin-top:10px}
  .spa-night .spa-dot,.spa-morning .spa-dot{margin-top:4px}
  .spa-stb{grid-column:2;grid-row:2}
  .spa-stb h3{margin-top:10px}
  .spa-cap{justify-content:flex-end}
  .spa-menu-k{letter-spacing:.14em}
  .spa-steps{grid-template-columns:minmax(0,1fr);row-gap:32px}
  .spa-pg{padding:24px 20px}
  .spa-cover{padding:8px 8px 20px;border-radius:14px}
  .spa-tabs{padding:0 8px;gap:4px}
  .spa-tab{padding:10px 8px 11px 10px}
  .spa-td{font-size:24px}
  .spa-tn{font-size:12.5px}
  .spa-menu{padding:9px}
  .spa-menu-in{outline-offset:-6px}
  .spa-items dt{font-size:16px}
  .spa-pr{font-size:27px}
  .spa-tot dt{max-width:12ch}
}
@media (max-width:379px){
  .spa-kick{letter-spacing:.12em;gap:6px 10px}
}
@media (prefers-reduced-motion:reduce){
  .spa-turn{transform:rotateY(180deg)}
  .spa-tl.spa-pre::before,.spa-tl.spa-pre .spa-st{transform:none;opacity:1}
}
