@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-500-latin.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-500-latin.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: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-500-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-500-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-latin.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: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/manrope-normal-400-latin.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;
}
/* Art direction: tactile ivory, moss, warm skin and a quiet typographic index. */
:root {
  --paper:#f3f1eb;
  --ink:#303b31;
  --muted:#50574d;
  --line:#d6d8cd;
  --dark:#354535;
  --gold:#80683f;
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Manrope',Arial,sans-serif
}
* {
  box-sizing:border-box
}
/* Lightweight opening ident: CSS 3D only, no WebGL. */
html.intro-running{overflow:hidden}
.site-intro{
  position:fixed;inset:0;z-index:9999;display:none;place-items:center;
}
html.intro-running .site-intro{display:grid}
.site-intro{
  overflow:hidden;background:#e8ddcd;color:#2e2823;
  perspective:1200px;isolation:isolate
}
.site-intro:before,.site-intro:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.site-intro:before{
  width:min(68vw,760px);aspect-ratio:1;left:-18vw;top:-36vw;
  border:1px solid #b99c7438;box-shadow:0 0 0 42px #ffffff20,0 0 0 120px #b99c7410
}
.site-intro:after{
  width:min(52vw,620px);aspect-ratio:1;right:-15vw;bottom:-30vw;
  border:1px solid #75614b2b
}
.site-intro-scene{
  position:relative;display:flex;align-items:center;gap:34px;transform-style:preserve-3d;
  opacity:0;transform:rotateX(9deg) rotateY(-22deg) translateZ(-70px) scale(.9);
  will-change:transform,opacity
}
.site-intro.is-playing .site-intro-scene{animation:siteIntroScene 1.45s cubic-bezier(.18,.7,.2,1) both}
.site-intro-monogram{
  position:relative;width:126px;height:126px;display:grid;place-items:center;
  border:1px solid #7d6a543d;border-radius:50%;
  font:500 94px/.9 var(--serif);transform-style:preserve-3d;
  box-shadow:0 26px 60px #5b463326,inset 0 0 0 8px #ffffff31;
  background:linear-gradient(145deg,#f7efe4cc,#d9c8b5aa)
}
.site-intro-monogram:before,.site-intro-monogram:after{
  content:"";position:absolute;inset:8px;border-radius:50%;border:1px solid #9d805f24;
  transform:translateZ(-16px)
}
.site-intro-monogram:after{inset:17px;transform:translateZ(-30px)}
.site-intro-monogram>span{display:block;transform:translateZ(34px);text-shadow:0 15px 28px #5a44382b}
.site-intro-monogram>i{
  position:absolute;left:68px;top:47px;font:italic 43px/.9 var(--serif);
  color:#8a745c;transform:translateZ(48px)
}
.site-intro-name{min-width:0;transform:translateZ(18px)}
.site-intro-name>span,.site-intro-name>em{display:block;font:500 46px/.93 var(--serif);letter-spacing:-.04em}
.site-intro-name>em{font-style:italic;color:#806c56;margin-left:38px}
.site-intro-name>small{
  display:block;margin-top:16px;font:500 9px/1.4 var(--sans);
  letter-spacing:.22em;text-transform:uppercase;color:#74685e
}
.site-intro.is-leaving{animation:siteIntroLeave .42s ease forwards;pointer-events:none}
@keyframes siteIntroScene{
  0%{opacity:0;transform:rotateX(9deg) rotateY(-22deg) translateZ(-70px) scale(.9)}
  36%{opacity:1}
  70%{opacity:1;transform:rotateX(-2deg) rotateY(5deg) translateZ(18px) scale(1.015)}
  100%{opacity:1;transform:rotateX(0) rotateY(0) translateZ(0) scale(1)}
}
@keyframes siteIntroLeave{
  to{opacity:0;visibility:hidden;transform:scale(1.025);filter:blur(8px)}
}
@media(max-width:600px){
  .site-intro-scene{gap:16px;flex-direction:column;text-align:center}
  .site-intro-monogram{width:104px;height:104px;font-size:76px}
  .site-intro-monogram>i{left:56px;top:39px;font-size:37px}
  .site-intro-name>span,.site-intro-name>em{font-size:36px}
  .site-intro-name>em{margin-left:20px}
  .site-intro-name>small{font-size:8px;margin-top:13px}
}
@media(prefers-reduced-motion:reduce){.site-intro{display:none!important}}
html {
  scroll-behavior:smooth;
  scroll-padding-top:88px
}
section[id],footer[id] {
  scroll-margin-top:16px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased
}
button,a,input {
  font:inherit
}
button {
  cursor:pointer;
  color:inherit
}
a {
  color:inherit;
  text-decoration:none
}
img {
  display:block;
  max-width:100%
}
h1,h2,h3,h4,p,figure {
  margin:0
}
h1,h2,h3,h4 {
  font-family:var(--serif);
  font-weight:500
}
h1,h2 {
  letter-spacing:-.055em
}
h2 {
  font-size:clamp(48px,5vw,76px);
  line-height:.98
}
em {
  font-weight:500
}
p {
  line-height:1.75
}
[hidden] {
  display:none!important
}
a:focus-visible,button:focus-visible,summary:focus-visible {
  outline:2px solid #92754f;
  outline-offset:5px
}
a,button {
  -webkit-tap-highlight-color:transparent
}
.wrap {
  width:min(1344px,100%);
  margin:auto;
  padding:0 64px
}
.section {
  padding:100px 0
}
.eyebrow {
  font-size:10px;
  line-height:1.6;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted)
}
.head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:32px;
  margin-bottom:44px
}
.head h2 {
  margin-top:18px
}
.sub {
  color:var(--muted);
  font-size:14px;
  line-height:1.8;
  max-width:340px
}
.btn {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:34px;
  min-height:55px;
  padding:0 24px;
  font-size:12px;
  font-weight:500;
  border-radius:3px;
  border:1px solid transparent;
  transition:background .25s
}
.dark {
  background:var(--dark);
  color:#f9f6ee
}
.light {
  background:#ece9dd;
  color:#303b31
}
.btn>span,.text-link>span {
  transition:transform .25s;
  display:inline-block
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:28px;
  font-size:12px;
  padding:15px 0
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  background:var(--paper);
  padding:15px;
  z-index:100
}
.skip-link:focus {
  top:12px
}
header {
  position:sticky;
  top:0;
  z-index:20;
  background:rgba(243,241,235,.97);
  border-bottom:1px solid #e0e0d6
}
.nav {
  height:83px;
  display:flex;
  gap:16px;
  align-items:center
}
.logo {
  font:45px/.9 var(--serif);
  width:34px;
  flex-shrink:0
}
.logo>span {
  position:relative
}
.logo>span>span {
  position:absolute;
  font-style:italic;
  font-size:30px;
  left:15px;
  top:8px
}
.brand {
  font:500 13px/1.35 var(--serif);
  letter-spacing:.035em;
  max-width:210px
}
.brand small {
  display:block;
  font:10px/1.4 var(--sans);
  letter-spacing:.14em;
  margin-top:7px;
  color:var(--muted);
  text-transform:uppercase
}
.links {
  display:flex;
  gap:17px;
  margin-left:auto;
  font-size:13px;
  font-weight:500
}
.links a {
  padding:15px 0
}
.book {
  padding:13px 19px;
  border:1px solid #aeb7a6;
  font-size:12px;
  border-radius:2px;
  margin-left:12px
}
.hamb {
  display:none
}
/* I. A light opening: portrait, large type, and one glass detail. */
.hero {
  background:radial-gradient(ellipse at 12% 42%,#fffdf5 0,transparent 65%),#eeeee5;
  overflow:hidden
}
.hero-layout {
  position:relative;
  display:grid;
  grid-template-columns:1.12fr 1fr;
  column-gap:38px;
  padding-top:42px;
  padding-bottom:25px;
  min-height:750px
}
.hero-copy {
  align-self:center;
  padding-top:8px;
  padding-bottom:38px;
  z-index:2
}
.hero .eyebrow {
  display:flex;
  align-items:center;
  gap:10px;
  font-size:11px;
  color:#62705b
}
.status-dot {
  height:5px;
  width:5px;
  border-radius:50%;
  background:#788568;
  display:inline-block
}
.hero h1 {
  font-size:clamp(86px,8.3vw,126px);
  line-height:.81;
  margin:29px 0 27px;
  letter-spacing:-.065em;
  animation:hero-type 1.7s .12s both
}
.hero h1>span {
  display:block
}
.hero h1 em {
  display:block;
  color:#7a8469;
  margin-top:8px
}
.hero p {
  font-size:14px;
  line-height:1.8;
  color:#5e6757
}
.actions {
  display:flex;
  align-items:center;
  gap:30px;
  margin-top:28px
}
.hero-art {
  position:relative;
  align-self:start;
  padding-top:0;
  margin-bottom:30px
}
.hero-photo {
  height:586px;
  overflow:hidden;
  border-radius:1px 1px 90px 1px;
  background:#918577
}
.hero-photo picture {
  display:block;
  width:100%;
  height:100%
}
.hero-photo img {
  height:100%;
  width:100%;
  object-fit:cover;
  object-position:50% 50%;
  filter:sepia(.22) saturate(.82) contrast(.98);
  transform:scale(1.04);
  animation:hero-photo 2.5s cubic-bezier(.2,.6,.3,1) both
}
.hero-art figcaption {
  display:flex;
  justify-content:space-between;
  gap:15px;
  margin-top:16px;
  font-size:10px;
  letter-spacing:.08em;
  color:#5e6757
}
.hero-art figcaption>span:last-child {
  font:italic 14px var(--serif);
  letter-spacing:0
}
.hero-glass {
  position:absolute;
  bottom:80px;
  left:-58px;
  width:235px;
  padding:25px 24px;
  background:rgba(242,240,229,.75);
  backdrop-filter:blur(16px);
  border:1px solid #ffffff73;
  box-shadow:0 12px 35px #242b2510;
  animation:hero-type 2s .3s both
}
.hero-glass>span:first-child {
  display:block;
  font-size:11px;
  letter-spacing:.04em;
  color:#5e6758
}
.hero-glass em {
  display:block;
  font:italic 27px/1 var(--serif);
  margin-top:9px
}
.glass-star {
  position:absolute;
  right:18px;
  top:21px;
  font:33px var(--serif);
  color:#758066
}
.hero-bottom {
  grid-column:1/-1;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid #d4d8cb;
  padding-top:20px;
  color:#5e6757;
  font-size:10px;
  letter-spacing:.11em
}
.hero-bottom a {
  display:flex;
  align-items:center;
  gap:30px;
  letter-spacing:.02em;
  font-size:11px
}
.hero-bottom a span {
  font-size:18px
}
@keyframes hero-type {
  from {
    opacity:.05;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@keyframes hero-photo {
  from {
    opacity:.7;
    transform:scale(1.09)
  }
  to {
    opacity:1;
    transform:scale(1.04)
  }
}
/* A short typographic interlude gives the hero some space. */
.introduction {
  padding:84px 0 76px;
  background:#f8f7f1
}
.intro-layout {
  display:grid;
  grid-template-columns:1fr 2.65fr 1.1fr;
  gap:26px;
  align-items:center
}
.intro-layout .eyebrow {
  align-self:start;
  padding-top:6px;
  font-size:9px
}
.intro-layout h2 {
  font-size:48px;
  line-height:1.02;
  letter-spacing:-.035em
}
.intro-layout h2 em {
  color:#879074
}
.intro-layout p {
  font-size:11px;
  line-height:1.9;
  color:var(--muted);
  align-self:end;
  margin-bottom:6px
}
/* Six families, equal emphasis. A single portrait responds to deliberate exploration. */
.directions {
  background:#f8f7f1;
  padding-top:24px;
  padding-bottom:90px
}
.directions .head {
  padding-top:37px;
  border-top:1px solid var(--line)
}
.discovery {
  display:grid;
  grid-template-columns:290px minmax(0,1fr);
  gap:68px;
  align-items:start
}
.direction-portrait {
  padding-top:4px
}
.portrait-frame {
  height:347px;
  overflow:hidden;
  background:#d4d3c7;
  position:relative
}
.portrait-frame:after {
  content:'';
  position:absolute;
  inset:0;
  box-shadow:inset 0 0 0 1px #3841350a;
  pointer-events:none
}
.portrait-frame img {
  height:100%;
  width:100%;
  object-fit:cover;
  filter:saturate(.65);
  transform:scale(1.035)
}
.direction-portrait figcaption {
  display:flex;
  justify-content:space-between;
  margin-top:18px;
  font-size:10px;
  color:var(--muted)
}
.direction-portrait figcaption>span:last-child {
  font-size:8px;
  letter-spacing:.08em
}
.direction-index {
  display:grid;
  grid-template-columns:1fr 1fr;
  column-gap:46px;
  row-gap:0
}
.direction-entry {
  border-top:1px solid var(--line);
  padding:20px 0 22px;
  min-width:0
}
.entry-title {
  display:flex;
  align-items:baseline;
  gap:13px;
  margin-bottom:12px
}
.entry-number {
  font-size:8px;
  color:#66715c;
  letter-spacing:.05em
}
.entry-title h3 {
  font-size:30px;
  line-height:1;
  letter-spacing:-.035em
}
.direction-entry nav {
  padding-left:27px
}
.direction-entry a {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  font-size:12px;
  line-height:1.5;
  min-height:35px;
  color:#606b55;
  width:100%
}
.direction-entry a span {
  font-size:11px;
  color:#8f9881;
  transition:transform .25s
}
.direction-entry:focus-within h3 {
  color:#7d866b
}
/* II. The atmosphere changes completely, while the pace slows. */
.spa-section {
  background:#252d28;
  color:#eae9df;
  position:relative;
  overflow:hidden;
  padding:72px 0 0
}
.spa-heading {
  position:relative;
  margin-bottom:45px
}
.spa-heading>.eyebrow {
  color:#a8b69f;
  font-size:9px;
  margin-bottom:24px
}
.spa-heading h2 {
  font-size:clamp(84px,9.5vw,142px);
  line-height:.85;
  letter-spacing:-.06em;
  position:relative;
  z-index:2
}
.spa-heading h2 em {
  color:#b8bfa7
}
.spa-heading-mark {
  display:none
}
.spa-layout {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:108px;
  align-items:start
}
.spa-copy {
  padding-top:30px
}
.spa-lead {
  font:500 34px/1.08 var(--serif);
  letter-spacing:-.02em
}
.spa-lead em {
  color:#b8bfa7
}
.spa-copy>p:not(.spa-lead) {
  font-size:11px;
  line-height:1.85;
  color:#aeb8a8;
  margin-top:21px
}
.spa-preview {
  margin-top:29px;
  border-top:1px solid #50594d
}
.ritual-row {
  display:grid;
  grid-template-columns:1fr auto 13px;
  align-items:center;
  gap:18px;
  width:100%;
  background:none;
  border:0;
  border-bottom:1px solid #50594d;
  color:#e9e9df;
  padding:16px 0;
  text-align:left
}
.ritual-row strong {
  font:500 26px/1 var(--serif);
  letter-spacing:-.02em
}
.ritual-row small {
  display:block;
  color:#aeb8a8;
  font-size:9px;
  margin-top:7px
}
.ritual-row b {
  font-size:11px;
  font-weight:400;
  white-space:nowrap
}
.ritual-row i {
  font-style:normal;
  color:#aeb89c;
  font-size:12px
}
.spa-copy>.btn {
  margin-top:26px;
  min-height:50px;
  font-size:11px
}
.spa-art {
  position:relative;
  padding-top:8px;
  z-index:0
}
.spa-image {
  height:508px;
  overflow:hidden;
  border-radius:170px 2px 2px 2px;
  background:#495042;
  position:relative;
  z-index:1
}
.spa-image img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 63%;
  filter:saturate(.55) brightness(.92)
}
.spa-art figcaption {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:8px;
  color:#aeb8a8;
  gap:20px;
  margin-top:18px
}
.spa-art figcaption>span:first-child {
  font:italic 23px var(--serif);
  white-space:nowrap;
  color:#cbd0be
}
.spa-orbit {
  position:absolute;
  inset:21px -21px 26px 20px;
  border:1px solid #727f6166;
  border-radius:185px 2px 2px 2px;
  z-index:0;
  pointer-events:none
}
.spa-exit {
  margin-top:53px;
  border-top:1px solid #4c5549;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:25px 0;
  color:#aab49f
}
.spa-exit>span {
  font-size:8px;
  letter-spacing:.13em
}
.spa-exit a {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid #626e58;
  border-radius:50%;
  font-size:15px
}
/* Quiet catalogue. */
.mobile-filter { display:none; }

.price-section {
  background:#f7f7f2;
  padding-top:84px
}
.price-section .head h2 {
  font-size:66px
}
.pricebox {
  display:grid;
  grid-template-columns:222px minmax(0,1fr);
  border-block:1px solid var(--line)
}
.filters {
  display:flex;
  flex-direction:column;
  padding:20px 24px 20px 0;
  border-right:1px solid var(--line);
  gap:1px
}
.filter {
  border:0;
  background:none;
  text-align:left;
  padding:11px 14px;
  font-size:11px;
  line-height:1.5;
  border-radius:2px
}
.filter.active {
  background:var(--dark);
  color:#fff
}
.price-content {
  padding-left:32px;
  min-width:0
}
#category-intro {
  font-size:11px;
  color:var(--muted);
  line-height:1.6;
  min-height:54px;
  padding:22px 0 16px
}
.list {
  display:block
}
.service {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:22px;
  width:100%;
  border:0;
  border-top:1px solid #dee0d5;
  background:none;
  padding:20px 0;
  text-align:left
}
.service strong {
  display:block;
  font:500 14px/1.55 var(--sans)
}
.service small {
  display:block;
  font-size:10px;
  color:var(--muted);
  line-height:1.7;
  margin-top:6px;
  max-width:530px
}
.service b {
  font-size:12px;
  font-weight:500;
  white-space:nowrap
}
.service b span {
  display:block;
  font-size:9px;
  color:var(--muted);
  margin-top:6px;
  font-weight:400
}
.show-more {
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%;
  background:#e9ece1;
  border:0;
  padding:15px 18px;
  margin:14px 0 22px;
  font-size:11px
}
.price-note {
  font-size:10px;
  color:var(--muted);
  margin:19px 0 27px;
  max-width:720px
}
.memberships {
  border-block:1px solid var(--line)
}
.memberships summary {
  list-style:none;
  display:flex;
  align-items:center;
  gap:32px;
  padding:22px 0;
  font:500 30px var(--serif);
  cursor:pointer
}
.memberships summary::-webkit-details-marker {
  display:none
}
.memberships summary>span:first-child {
  font:8px var(--sans);
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--muted);
  width:190px
}
.memberships summary>span:last-child {
  margin-left:auto;
  font:22px var(--sans)
}
.memberships[open] summary>span:last-child {
  transform:rotate(45deg)
}
.program-card {
  padding:15px 0 28px 222px
}
.program-card h3 {
  font-size:34px;
  margin:10px 0
}
.program-card p {
  font-size:12px;
  color:var(--muted);
  margin-bottom:20px
}
.program-meta {
  display:flex;
  align-items:center;
  gap:24px;
  font-size:13px
}
.program-meta span {
  font-size:10px;
  color:var(--muted)
}
.program-card>button {
  min-height:44px;
  padding:0 18px;
  border:1px solid var(--line);
  background:none;
  margin-top:20px;
  font-size:11px
}
.program-card>.eyebrow {
  display:none
}
/* III. Real silk, one large gesture, no perpetual animation. */
.offer-section {
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:#e4ded0
}
.silk {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 55%;
  opacity:.78;
  z-index:-2
}
.offer-section:after {
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(90deg,#f4f1e28c,transparent 57%)
}
.offer-layout {
  min-height:574px;
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:65px;
  align-items:center;
  padding-top:80px;
  padding-bottom:84px
}
.offer-copy .eyebrow {
  font-size:9px;
  color:#514e3c;
  margin-bottom:26px
}
.offer-copy h2 {
  font-size:77px;
  line-height:.87;
  letter-spacing:-.06em;
  color:#494d39
}
.offer-copy p {
  font-size:12px;
  line-height:1.8;
  margin:26px 0;
  color:#61634f
}
.offer-copy .btn {
  font-size:11px
}
.offer-value {
  text-align:center;
  color:#35402d;
  position:relative
}
.offer-overline {
  font-size:8px;
  letter-spacing:.19em;
  display:block
}
.offer-number {
  font:500 clamp(180px,18vw,270px)/1.08 var(--serif);
  letter-spacing:-.085em;
  margin:0 0 4px;
  white-space:nowrap;
  text-shadow:0 1px 0 #ffffff55
}
.offer-number>span {
  font-size:.49em;
  vertical-align:15%;
  letter-spacing:-.08em
}
.offer-signature {
  display:block;
  font:italic 25px/1 var(--serif)
}
.offer-foot {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:20px;
  padding:18px max(64px,calc((100vw - 1216px)/2));
  border-top:1px solid #aaa68e66;
  font-size:7px;
  letter-spacing:.13em;
  color:#494d39
}
.offer-foot>span:nth-child(2) {
  font:24px var(--serif)
}
.booking-section {
  padding:95px 0 102px;
  background:#eeeee6
}
.booking-layout {
  display:grid;
  grid-template-columns:1.6fr 1fr;
  gap:24px 60px;
  align-items:center
}
.booking-layout>.eyebrow {
  grid-column:1/-1;
  font-size:9px
}
.booking-section h2 {
  font-size:68px;
  line-height:.98
}
.booking-section h2 em {
  color:#7c876b
}
.booking-action {
  justify-self:end;
  min-width:230px
}
.booking-action p {
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  margin-bottom:20px
}
.booking-action small {
  display:block;
  margin-top:12px;
  font-size:9px;
  color:var(--muted)
}
footer {
  background:#dfe3d7;
  color:var(--ink)
}
.footer {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:40px;
  padding-top:43px;
  padding-bottom:28px
}
.footer>div:first-child>div {
  font-family:var(--serif)!important;
  font-size:24px!important;
  max-width:330px;
  line-height:1.2
}
.footer a,.footer small {
  display:block;
  font-size:12px;
  color:#515e49;
  margin-bottom:13px
}
.footer>div:first-child small {
  margin-top:15px
}
.quick-contact {
  display:flex;
  align-items:start;
  gap:40px;
  border-top:1px solid #c4cdba;
  padding:21px 0 27px
}
.quick-contact a,.max-copy-btn {
  color:#45523c;
  font-size:11px;
  line-height:1.7
}
.quick-contact span,.max-copy-btn small {
  display:block;
  font-size:9px;
  color:#515e49
}
.max-copy-btn {
  background:none;
  border:0;
  padding:0;
  text-align:left
}
.max-copy-btn>span {
  font-size:11px;
  color:#45523c
}
.max-copy-btn strong {
  display:none
}
.copy {
  font-size:8px;
  color:#515e49;
  border-top:1px solid #c4cdba;
  padding-top:16px;
  padding-bottom:18px
}
.modal {
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:#172019a6;
  z-index:50;
  padding:24px
}
.modal.open {
  display:flex
}
.modal-card {
  width:min(640px,100%);
  max-height:86svh;
  overflow:auto;
  background:#f7f6ef;
  padding:32px;
  border-radius:5px;
  overscroll-behavior:contain
}
.modal-head {
  display:flex;
  justify-content:space-between;
  gap:20px
}
.modal h3 {
  font-size:38px;
  line-height:1.05;
  margin:10px 0 18px;
  letter-spacing:-.035em
}
.close {
  width:40px;
  height:40px;
  flex-shrink:0;
  border:1px solid var(--line);
  background:none;
  border-radius:50%;
  font-size:23px
}
.modal p {
  font-size:12px;
  color:var(--muted);
  line-height:1.75;
  margin-top:15px
}
.modal .btn {
  width:100%;
  background:var(--dark);
  color:#fff;
  margin-top:20px
}
.section-label {
  font:9px var(--sans);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin:24px 0 12px
}
.included {
  background:#e8ecdf;
  padding:14px
}
.service-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  border-block:1px solid var(--line);
  padding:18px 0;
  margin:20px 0
}
.service-facts span {
  display:block;
  font-size:10px;
  color:var(--muted);
  margin-bottom:7px
}
.service-facts strong {
  font-size:12px
}
.variant {
  border-top:1px solid var(--line);
  padding:16px 0
}
.variant>span {
  display:flex;
  justify-content:space-between;
  gap:16px;
  font-size:13px
}
.variant>span b {
  white-space:nowrap
}
.variant small {
  display:block;
  font-size:10px;
  line-height:1.7;
  color:var(--muted);
  margin-top:8px
}
.variant-book {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:44px;
  padding:10px 14px;
  text-align:center;
  margin-top:14px;
  border:1px solid var(--line);
  background:#e9eddf;
  font-size:11px
}
.techniques {
  display:flex;
  gap:8px;
  flex-wrap:wrap
}
.techniques span {
  font-size:10px;
  border:1px solid var(--line);
  padding:7px 9px
}
.mobile-menu {
  position:fixed;
  inset:0;
  display:none;
  overflow:auto;
  background:#303d30;
  color:#f7f6ed;
  z-index:80
}
.mobile-menu.open {
  display:block
}
.mobile-menu-inner {
  min-height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:15px;
  padding:84px 28px 40px
}
.mobile-menu a {
  font:500 37px/1.2 var(--serif);
  width:fit-content
}
.mobile-close {
  position:absolute;
  top:20px;
  right:22px;
  width:44px;
  height:44px;
  border:1px solid #7c886f;
  border-radius:50%;
  background:none;
  color:inherit;
  font-size:28px
}
@media(hover:hover) and (pointer:fine) {
  .dark:hover {
    background:#52634a
  }
  .light:hover {
    background:#fffdf0
  }
  .btn:hover>span,.text-link:hover>span {
    transform:translateX(4px)
  }
  .book:hover {
    background:#e1e7d8
  }
  .links a:hover {
    color:#8b957c
  }
  .direction-entry:hover h3 {
    color:#818b6e
  }
  .direction-entry a:hover {
    color:#354535
  }
  .direction-entry a:hover span {
    transform:translate(2px,-2px)
  }
  .service:hover {
    background:#ecefe4
  }
  .ritual-row:hover {
    background:#354031
  }
  .filter:not(.active):hover,.show-more:hover {
    background:#e0e6d6
  }
}
@media(max-width:1150px) {
  .wrap {
    padding-inline:40px
  }
  .links {
    gap:15px
  }
  .brand {
    max-width:175px
  }
  .nav {
    gap:12px
  }
  .hero-layout {
    gap:24px;
    min-height:690px
  }
  .hero h1 {
    font-size:106px
  }
  .hero-photo {
    height:540px
  }
  .hero-glass {
    left:-28px;
    bottom:70px;
    width:210px;
    padding:23px 20px
  }
  .hero-glass em {
    font-size:25px
  }
  .hero-art figcaption>span:last-child {
    display:none
  }
  .discovery {
    grid-template-columns:250px 1fr;
    gap:40px
  }
  .direction-index {
    column-gap:28px
  }
  .entry-title h3 {
    font-size:28px
  }
  .spa-layout {
    gap:60px
  }
  .spa-image {
    height:510px
  }
  .offer-layout {
    gap:38px
  }
  .offer-copy h2 {
    font-size:69px
  }
  .offer-foot {
    padding-inline:40px
  }
  .booking-section h2 {
    font-size:62px
  }
  .intro-layout {
    grid-template-columns:1fr 2.8fr
  }
  .intro-layout p {
    display:none
  }
}
@media(max-width:900px) {
  .links {
    display:none
  }
  .book {
    margin-left:auto
  }
  .hamb {
    display:grid;
    place-items:center;
    width:40px;
    height:40px;
    background:none;
    border:0;
    font-size:22px;
    flex-shrink:0
  }
  .hero h1 {
    font-size:86px
  }
  .hero-photo {
    height:515px
  }
  .hero-layout {
    min-height:660px;
    gap:24px
  }
  .hero-glass {
    width:185px;
    left:-24px;
    bottom:62px;
    padding:19px 16px
  }
  .hero-glass em {
    font-size:22px
  }
  .glass-star {
    font-size:25px;
    right:12px
  }
  .hero-copy {
    padding-bottom:20px
  }
  .hero .actions {
    gap:22px
  }
  .hero .btn {
    gap:18px;
    padding-inline:19px
  }
  .hero .text-link {
    font-size:11px;
    gap:12px
  }
  .discovery {
    grid-template-columns:190px 1fr;
    gap:30px
  }
  .portrait-frame {
    height:295px
  }
  .direction-index {
    column-gap:22px
  }
  .direction-entry nav {
    padding-left:0
  }
  .entry-title {
    gap:8px
  }
  .entry-title h3 {
    font-size:25px
  }
  .direction-entry a {
    font-size:10px;
    min-height:35px
  }
  .entry-number {
    font-size:7px
  }
  .spa-heading h2 {
    font-size:92px
  }
  .spa-layout {
    gap:38px;
    grid-template-columns:1fr 1fr
  }
  .spa-image {
    height:480px
  }
  .spa-lead {
    font-size:29px
  }
  .spa-copy {
    padding-top:14px
  }
  .spa-copy>p:not(.spa-lead) {
    font-size:10px
  }
  .ritual-row {
    gap:10px
  }
  .ritual-row strong {
    font-size:23px
  }
  .spa-art figcaption {
    display:block
  }
  .spa-art figcaption>span:last-child {
    display:block;
    margin-top:9px;
    line-height:1.6
  }
  .pricebox {
    grid-template-columns:1fr
  }
  .filters {
    flex-direction:row;
    flex-wrap:wrap;
    gap:6px;
    padding:16px 0;
    border-right:0;
    border-bottom:1px solid var(--line)
  }
  .filter {
    border:1px solid var(--line);
    padding:9px 12px
  }
  .price-content {
    padding:0
  }
  .program-card {
    padding-left:0
  }
  .offer-copy h2 {
    font-size:60px
  }
  .offer-number {
    font-size:185px
  }
  .offer-layout {
    min-height:470px;
    gap:22px
  }
  .offer-signature {
    font-size:23px
  }
  .booking-section h2 {
    font-size:54px
  }
  .booking-layout {
    gap:24px 32px
  }
  .booking-action {
    min-width:210px
  }
  .booking-action .btn {
    gap:24px
  }
  .footer {
    gap:30px
  }
}
.mobile-directions-carousel{display:none}
@media(max-width:600px) {
  html {
    scroll-padding-top:72px
  }
  .wrap {
    padding-inline:22px
  }
  .nav {
    height:68px;
    gap:10px
  }
  .logo {
    font-size:37px;
    width:28px
  }
  .logo>span>span {
    font-size:25px;
    left:12px;
    top:5px
  }
  .brand {
    font-size:11px;
    max-width:143px;
    line-height:1.2
  }
  .brand small {
    font-size:8px;
    letter-spacing:.12em;
    margin-top:5px
  }
  .book {
    font-size:9px;
    padding:11px 12px
  }
  .hamb {
    width:26px;
    height:36px;
    font-size:20px
  }
  .eyebrow {
    font-size:9px
  }
  .hero-layout {
    display:flex;
    flex-direction:column;
    gap:0;
    padding-top:25px;
    padding-bottom:18px;
    min-height:0
  }
  .hero-copy {
    display:contents
  }
  .hero .eyebrow {
    order:0;
    font-size:10px;
    gap:8px
  }
  .hero h1 {
    order:1;
    font-size:73px;
    line-height:.87;
    letter-spacing:-.055em;
    margin:17px 0 24px;
    animation:none
  }
  .hero h1>span:first-child {
    display:block
  }
  .hero h1>span:nth-child(2) {
    display:inline;
    font-size:49px;
    letter-spacing:-.055em
  }
  .hero h1 em {
    display:inline;
    font-size:49px;
    margin-left:8px
  }
  .hero-art {
    order:2;
    padding:0;
    margin:0 0 22px
  }
  .hero-photo {
    height:252px;
    border-radius:1px 1px 52px 1px
  }
  .hero-photo img {
    object-position:50% center;
    transform:scale(1.04);
    animation:none
  }
  .hero-art figcaption {
    margin-top:10px;
    font-size:9px
  }
  .hero-art figcaption>span:last-child {
    display:block;
    font-size:12px
  }
  .hero-glass {
    left:auto;
    right:16px;
    bottom:43px;
    width:170px;
    padding:17px 16px;
    backdrop-filter:none;
    background:#f5f1e6db;
    animation:none
  }
  .hero-glass>span:first-child {
    font-size:10px
  }
  .hero-glass em {
    font-size:23px;
    margin-top:6px
  }
  .glass-star {
    font-size:25px;
    right:12px;
    top:12px
  }
  .hero p {
    order:3;
    font-size:13px;
    line-height:1.6
  }
  .hero p br {
    display:none
  }
  .hero .actions {
    order:4;
    margin-top:19px;
    gap:28px
  }
  .hero .btn {
    min-height:48px;
    padding-inline:22px;
    gap:34px;
    font-size:11px
  }
  .hero .text-link {
    font-size:11px;
    gap:22px
  }
  .hero-bottom {
    order:5;
    width:100%;
    margin-top:24px;
    padding-top:15px;
    min-height:31px
  }
  .hero-bottom>span {
    font-size:9px;
    letter-spacing:.07em
  }
  .hero-bottom a {
    font-size:0;
    gap:0
  }
  .hero-bottom a span {
    font-size:18px
  }
  .introduction {
    padding:48px 0 43px
  }
  .intro-layout {
    display:block
  }
  .intro-layout .eyebrow {
    padding:0;
    margin-bottom:20px;
    font-size:8px
  }
  .intro-layout h2 {
    font-size:34px;
    line-height:1.06;
    letter-spacing:-.03em
  }
  .intro-layout p {
    display:none
  }
  .section {
    padding:58px 0
  }
  .head {
    display:block;
    margin-bottom:25px
  }
  .head h2 {
    font-size:48px;
    margin-top:14px
  }
  .sub {
    font-size:11px;
    line-height:1.8;
    margin-top:16px
  }
  .directions {
    padding-top:0;
    padding-bottom:52px;
    position:relative
  }
  .directions .head {
    padding-top:26px;
    padding-right:103px;
    min-height:183px
  }
  .directions .head .eyebrow {
    font-size:7px;
    letter-spacing:.1em;
    max-width:200px
  }
  .directions .head h2 {
    font-size:44px;
    line-height:.9;
    max-width:200px
  }
  .directions .head h2 em {
    display:block
  }
  .directions .sub {
    font-size:10px;
    line-height:1.6;
    max-width:215px;
    margin-top:15px
  }
  .directions .sub br {
    display:none
  }
  .discovery {
    display:block
  }
  .direction-portrait {
    position:absolute;
    top:36px;
    right:22px;
    width:83px;
    padding:0
  }
  .portrait-frame {
    height:114px;
    border-radius:1px 28px 1px 1px
  }
  .direction-portrait figcaption {
    display:none
  }
  .direction-index {
    grid-template-columns:1fr 1fr;
    column-gap:24px
  }
  .direction-entry {
    padding:19px 0 17px
  }
  .entry-title {
    display:block;
    margin-bottom:11px
  }
  .entry-number {
    font-size:7px;
    display:block;
    margin-bottom:6px
  }
  .entry-title h3 {
    font-size:25px;
    line-height:.98;
    letter-spacing:-.025em;
    min-height:25px
  }
  .direction-entry a {
    min-height:44px;
    font-size:11px;
    line-height:1.5;
    gap:6px
  }
  .direction-entry a span {
    font-size:9px
  }
  .directions.has-mobile-carousel .head{padding-right:0;min-height:0}
  .directions.has-mobile-carousel .direction-portrait,
  .directions.has-mobile-carousel .direction-index{display:none}
  .mobile-directions-carousel{display:block;margin-top:8px}
  .mobile-directions-viewport{border-top:1px solid var(--line);padding-top:16px}
  .mobile-direction-slide{overflow:hidden}
  .mobile-direction-visual{height:286px;overflow:hidden;border-radius:2px 44px 2px 2px;background:#d4d3c7}
  .mobile-direction-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.72);transform:scale(1.02)}
  .mobile-direction-body{padding:18px 1px 4px}
  .mobile-direction-count{display:block;font-size:8px;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}
  .mobile-direction-body h3{font:500 34px/1 var(--serif);letter-spacing:-.035em;margin-bottom:12px}
  .mobile-direction-links{padding:0;border-top:1px solid var(--line)}
  .mobile-direction-links a{min-height:47px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line);font-size:12px;color:#606b55}
  .mobile-direction-links a span{font-size:10px;color:#8f9881}
  .mobile-direction-links .direction-detail{font-size:10px;line-height:1.6;color:var(--muted);padding:12px 0 0}
  .mobile-directions-controls{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;margin-top:15px}
  .mobile-directions-arrow{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:18px}
  .mobile-directions-dots{display:flex;justify-content:center;gap:8px}
  .mobile-directions-dot{width:7px;height:7px;border:0;border-radius:50%;padding:0;background:#c7cabf}
  .mobile-directions-dot[aria-current="true"]{background:#69725e;transform:scale(1.25)}
  .spa-section {
    padding-top:49px
  }
  .spa-heading {
    margin-bottom:29px
  }
  .spa-heading>.eyebrow {
    font-size:8px;
    margin-bottom:21px
  }
  .spa-heading h2 {
    font-size:64px;
    line-height:.83;
    letter-spacing:-.045em
  }
  .spa-heading h2 em {
    display:block;
    margin-left:29px;
    margin-top:4px
  }
  .spa-layout {
    display:flex;
    flex-direction:column;
    gap:30px
  }
  .spa-art {
    order:0;
    padding:0;
    width:100%;
    padding-right:14px
  }
  .spa-image {
    height:338px;
    border-radius:130px 2px 2px 2px
  }
  .spa-image img {
    object-position:50% 63%
  }
  .spa-orbit {
    inset:13px 0 42px 14px;
    border-radius:140px 2px 2px 2px
  }
  .spa-art figcaption {
    display:flex;
    gap:14px;
    margin-top:15px;
    align-items:center
  }
  .spa-art figcaption>span:first-child {
    font-size:22px
  }
  .spa-art figcaption>span:last-child {
    font-size:8px;
    line-height:1.6;
    margin:0;
    max-width:170px
  }
  .spa-copy {
    order:1;
    padding:0;
    width:100%
  }
  .spa-lead {
    font-size:29px;
    line-height:1.03
  }
  .spa-copy>p:not(.spa-lead) {
    font-size:11px;
    margin-top:17px
  }
  .spa-preview {
    margin-top:22px
  }
  .ritual-row {
    padding:14px 0;
    gap:14px
  }
  .ritual-row strong {
    font-size:25px
  }
  .ritual-row b {
    font-size:11px
  }
  .ritual-row small {
    font-size:8px;
    margin-top:5px
  }
  .spa-copy>.btn {
    margin-top:23px;
    min-height:49px
  }
  .spa-exit {
    margin-top:30px;
    padding:18px 0;
    gap:20px
  }
  .spa-exit>span {
    font-size:7px;
    line-height:1.8;
    letter-spacing:.08em;
    max-width:245px
  }
  .spa-exit a {
    width:31px;
    height:31px;
    flex-shrink:0
  }
  .price-section .head h2 {
    font-size:48px
  }
  .price-section .head .sub {
    font-size:11px
  }
  .filters { display:none; }
  .mobile-filter {
    display:block;
    position:relative;
    padding:17px 0;
    border-bottom:1px solid var(--line);
  }
  .mobile-filter>span:first-child {
    display:block;
    margin-bottom:9px;
    font-size:10px;
    color:var(--muted);
  }
  .mobile-filter select {
    appearance:none;
    width:100%;
    height:49px;
    padding:0 42px 0 14px;
    border:1px solid #bdc8b3;
    border-radius:3px;
    background:#eef1e7;
    color:var(--ink);
    font:500 14px var(--sans);
  }
  .mobile-filter select:focus-visible { outline:2px solid var(--gold);outline-offset:3px; }
  .select-arrow { position:absolute;right:17px;bottom:31px;pointer-events:none;font-size:19px; }

  .filter {
    font-size:9px;
    padding:8px 10px;
    min-height:36px
  }
  #category-intro {
    font-size:10px;
    min-height:48px;
    padding:16px 0 12px
  }
  .service {
    align-items:start;
    padding:17px 0;
    gap:14px
  }
  .service strong {
    font-size:14px;
    line-height:1.55
  }
  .service small {
    font-size:11px;
    line-height:1.75;
    margin-top:6px
  }
  .service b {
    font-size:13px;
    padding-top:2px
  }
  .service b span {
    font-size:10px;
    margin-top:7px
  }
  .show-more {
    font-size:12px;
    padding:15px
  }
  .price-note {
    font-size:10px;
    line-height:1.8;
    margin:17px 0 22px
  }
  .memberships summary {
    font-size:27px;
    gap:9px;
    flex-wrap:wrap;
    padding:19px 0
  }
  .memberships summary>span:first-child {
    width:100%;
    font-size:7px
  }
  .program-card h3 {
    font-size:30px
  }
  .program-card p {
    font-size:11px
  }
  .program-meta {
    font-size:12px;
    gap:16px
  }
  .program-meta span {
    font-size:9px
  }
  .offer-layout {
    display:flex;
    flex-direction:column;
    min-height:0;
    gap:30px;
    padding-top:47px;
    padding-bottom:46px;
    align-items:stretch;
    text-align:center
  }
  .offer-copy {
    display:contents
  }
  .offer-copy .eyebrow {
    order:0;
    font-size:8px;
    margin:0
  }
  .offer-copy h2 {
    order:1;
    font-size:54px;
    line-height:.86
  }
  .offer-value {
    order:2;
    padding:13px 0 9px
  }
  .offer-number {
    font-size:174px;
    line-height:.88;
    margin:8px 0 12px
  }
  .offer-overline {
    display:none
  }
  .offer-signature {
    font-size:23px
  }
  .offer-copy p {
    order:3;
    font-size:13px;
    margin:0
  }
  .offer-copy .btn {
    order:4;
    align-self:center;
    margin-top:-6px;
    min-height:49px;
    font-size:12px
  }
  .silk {
    object-position:64% center
  }
  .offer-section:after {
    background:linear-gradient(180deg,#f3f0e780,transparent 50%,#f4f1e34d)
  }
  .offer-foot {
    padding:15px 22px;
    justify-content:center;
    gap:17px;
    font-size:6px;
    line-height:1.8;
    letter-spacing:.07em
  }
  .offer-foot>span:first-child {
    display:none
  }
  .offer-foot>span:nth-child(2) {
    font-size:19px
  }
  .booking-section {
    padding:54px 0 57px
  }
  .booking-layout {
    display:block;
    text-align:center
  }
  .booking-layout>.eyebrow {
    font-size:8px
  }
  .booking-section h2 {
    font-size:47px;
    line-height:.95;
    margin:21px 0 23px
  }
  .booking-action {
    min-width:0
  }
  .booking-action p {
    font-size:13px;
    line-height:1.7;
    margin-bottom:20px
  }
  .booking-action .btn {
    font-size:13px;
    min-height:49px
  }
  .booking-action small {
    font-size:8px;
    margin-top:12px
  }
  .footer {
    grid-template-columns:1fr 1fr;
    gap:27px;
    padding-top:33px;
    padding-bottom:19px
  }
  .footer>div:first-child {
    grid-column:1/-1
  }
  .footer>div:first-child>div {
    font-size:23px!important;
    max-width:300px
  }
  .footer>div:first-child small {
    font-size:9px
  }
  .footer a,.footer small {
    font-size:11px;
    line-height:1.6
  }
  .quick-contact {
    gap:18px;
    flex-wrap:wrap;
    padding:18px 0 24px
  }
  .quick-contact>a {
    min-width:calc(50% - 18px)
  }
  .quick-contact a,.max-copy-btn {
    font-size:10px
  }
  .quick-contact span,.max-copy-btn small {
    font-size:8px
  }
  .max-copy-btn {
    min-height:44px
  }
  .copy {
    font-size:7px
  }
  .modal {
    padding:0;
    align-items:flex-end
  }
  .modal-card {
    max-height:90svh;
    border-radius:14px 14px 0 0;
    padding:24px 22px
  }
  .modal h3 {
    font-size:34px
  }
  .modal p {
    font-size:11px
  }
  .service-facts {
    gap:12px
  }
  .service-facts strong {
    font-size:11px
  }
  .variant>span {
    font-size:12px
  }
  .variant>span>strong {
    min-width:0
  }
  .mobile-menu a {
    font-size:34px
  }
}
@media(max-width:370px) {
  .nav {
    gap:8px
  }
  .brand {
    max-width:119px;
    font-size:11px
  }
  .book {
    padding:11px 10px;
    font-size:8px
  }
  .hero h1>span:nth-child(2),.hero h1 em {
    font-size:45px
  }
  .hero h1 em {
    margin-left:5px
  }
  .hero .actions {
    gap:24px
  }
  .hero .btn {
    gap:25px;
    padding-inline:20px
  }
  .hero-photo {
    height:237px
  }
  .hero-art figcaption>span:last-child {
    font-size:11px
  }
  .hero p {
    font-size:12px
  }
  .entry-title h3 {
    font-size:23px
  }
  .direction-index {
    column-gap:19px
  }
  .direction-entry a {
    font-size:10px
  }
  .spa-heading h2 {
    font-size:60px
  }
  .service strong {
    font-size:13px
  }
  .service b {
    font-size:12px
  }
  .booking-section h2 {
    font-size:44px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}

/* Final interaction review: preserve the composition, make controls usable by touch. */
.logo { min-width:44px; min-height:44px; display:flex; align-items:center; }
.book { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
.links a { min-width:44px; text-align:center; }
.direction-entry a,.filter { min-height:44px; }
.hero-bottom a { min-width:44px; min-height:44px; justify-content:center; }
.spa-exit a,.close { width:44px; height:44px; }
.footer a { min-height:44px; display:flex; align-items:center; margin-bottom:0; overflow-wrap:anywhere; }
.quick-contact a,.max-copy-btn { min-height:48px; }
.mobile-menu a { min-height:48px; display:flex; align-items:center; }
.mobile-menu a:focus-visible,.spa-section a:focus-visible,.spa-section button:focus-visible { outline-color:#d7c59b; }
.catalogue-error { padding:24px 0; font-size:14px; color:var(--muted); }
.catalogue-error button,.catalogue-error a { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--line); background:#e9ece1; border-radius:3px; }
.modal h2 { font-size:38px; line-height:1.05; margin:10px 0 18px; letter-spacing:-.035em; }
.modal-card { scrollbar-gutter:stable; }
.modal-head > div { min-width:0; }
.modal h2 { overflow-wrap:anywhere; }
.modal-head .close { flex-shrink:0; }
@media(max-width:900px) {
  .hamb { width:44px; height:44px; }
  .direction-entry a,.filter { min-height:44px; }
  .hero-glass { backdrop-filter:none; }
}
@media(max-width:600px) {
  .nav { gap:8px; }
  .logo { width:44px; }
  .brand { flex:1; min-width:0; max-width:none; }
  .book { flex-shrink:0; font-size:10px; padding:8px 12px; margin-left:0; }
  .hamb { width:44px; height:44px; }
  .hero-bottom a,.spa-exit a { width:44px; min-height:44px; }
  .footer a { font-size:12px; line-height:1.6; }
  .quick-contact a,.max-copy-btn { font-size:12px; }
  .quick-contact span,.max-copy-btn small { font-size:10px; }
  .modal h2 { font-size:34px; }
  .modal p,.variant small { font-size:12px; }
  .variant-book { font-size:12px; }
}

/* Warm editorial palette: champagne paper, cocoa accents and graphite depth. */
:root {
  --paper:#e5dbce;
  --ink:#352d28;
  --muted:#5f5147;
  --line:#c8b8a5;
  --dark:#45362e;
  --gold:#765c40;
}
header { background:rgba(228,216,201,.97); border-bottom-color:#c9b9a5; }
.hero {
  background:radial-gradient(ellipse at 18% 18%,#eee4d6 0,transparent 58%),linear-gradient(120deg,#e4d8c8 12%,#c8b39a 100%);
}
.hero .eyebrow,.hero h1 em,.hero p,.hero-bottom,.hero-caption,.hero-caption span,.hero-glass>span:first-child { color:#5b4d40; }
.hero h1 em { color:#6c523c; }
.hero h1 { text-shadow:0 2px 0 #f3e8d43b; }
.hero-visual img { filter:saturate(.85); }
.hero-glass { background:rgba(232,219,200,.9); border:1px solid #f4e9d9aa; box-shadow:0 12px 35px #30231724; }
.hero-glass em,.hero-glass .spark { color:#493a2d; }
.hero-bottom { border-color:#ab957a77; }
.introduction { background:linear-gradient(110deg,#cab59a,#ded0bc 80%); border-top:1px solid #eee1ce; }
.intro-layout h2 em { color:#69513c; }
.intro-layout p { color:#594a3e; }
.directions { background:linear-gradient(180deg,#ded0bc 0%,#e8ddce 55%,#dac8b1 100%); }
.direction-entry,.directions .head { border-color:#bba68d; }
.entry-number,.entry-title h3,.direction-entry a,.direction-entry a span { color:#5a4635; }
.direction-entry a:hover { color:#30251e; }
.portrait-frame { box-shadow:16px 18px 0 -1px #c7b297,0 20px 36px #4c35251a; }
.direction-portrait figcaption { color:#5f4b39; }
.spa-section { background:radial-gradient(ellipse at 90% 20%,#45413c,transparent 65%),#292a27; color:#eee1ce; }
.spa-heading .eyebrow,.spa-heading h2 em,.spa-copy p,.spa-copy .eyebrow,.ritual-row small,.ritual-row b,.spa-caption,.spa-foot { color:#d0c0aa; }
.spa-section .btn.light { background:#dfcfb7; color:#342b22; }
.spa-section .ritual-row { border-color:#706555; }
#price { background:linear-gradient(135deg,#e8ddce,#dbccb8); }
.filter.active { background:#45362e; color:#f5eadc; }
.filter,.service,.memberships { border-color:#bbab95; }
.service:hover { background:#d3bea340; }
#mobileCategory,.show-more { background:#ded0bc; color:#45362e; }
.offer-section { background:#c9b497; }
.offer-section .silk { filter:brightness(.87) saturate(.72); }
.offer-section:after { background:linear-gradient(90deg,#d9c6a9bb,transparent 70%); }
.offer-copy .eyebrow,.offer-copy p,.offer-overline,.offer-signature,.offer-foot { color:#4e3a29; }
.offer-copy h2,.offer-copy h2 em,.offer-number { color:#453626; }
.booking-section { background:radial-gradient(ellipse at 85% 0,#604a39,transparent 70%),#342b26; color:#eee2d0; border-top:1px solid #a4886866; }
.booking-section h2 em { color:#d1b997; }
.booking-section .eyebrow,.booking-action p,.booking-action small { color:#d9c8b1; }
.booking-section .btn { background:#e0ccb0; color:#36291f; }
.booking-contact { display:flex;align-items:center;gap:24px;min-height:48px;margin-top:16px;color:#f0ddbd;font-size:12px;width:fit-content;border-bottom:1px solid #a68e70; }
footer { background:#292826; color:#e7d9c4; }
.footer a,.footer small,.quick-contact a,.max-copy-btn,.max-copy-btn>span,.quick-contact span,.max-copy-btn small,.copy { color:#d8c9b3; }
.quick-contact,.copy { border-color:#62564a; }
footer a:focus-visible,footer button:focus-visible,.booking-section a:focus-visible { outline-color:#ead3af; }
.modal { background:#241c18b8; }
.modal-card { background:#e9dfd1; box-shadow:0 24px 100px #120c0855; border:1px solid #cdbca4; }
.included,.variant-book { background:#d7c8b1; }
.mobile-menu { background:#302a26; color:#e9ddc9; }
.btn.dark,.book { background:#45362e; color:#f4e6d2; border-color:#45362e; }
.btn.dark:hover,.book:hover { background:#594536; }
[aria-disabled="true"][data-sonline-booking],#mbook[aria-disabled="true"],.variant-book[aria-disabled="true"] { cursor:default;white-space:normal;line-height:1.5;transform:none;box-shadow:none; }
[data-sonline-booking][aria-disabled="true"].btn,.variant-book[aria-disabled="true"],#mbook[aria-disabled="true"] { background:transparent;border:1px solid #998064;color:inherit;padding:14px 18px; }
.book[aria-disabled="true"] { max-width:176px;font-size:10px;line-height:1.45;text-align:center;padding:8px 12px;background:transparent;color:var(--ink);border-color:#aa9477; }
.mobile-menu [aria-disabled="true"] { font:16px/1.5 var(--sans);color:#cbbca7; }
.booking-action { min-width:0;max-width:330px; }
@media(max-width:600px) {
  .book[aria-disabled="true"] { max-width:98px;font-size:9px;padding:6px; }
  .nav:has([aria-disabled="true"]) .brand { font-size:11px;overflow-wrap:anywhere; }
  .hero-glass { background:#e7d6bfe8; }
  .hero .actions { align-items:flex-start; }
  .hero .actions [aria-disabled="true"] { max-width:220px;text-align:left;font-size:11px; }
  .offer-section:after { background:linear-gradient(180deg,#d5bea18c,transparent 50%,#c3a47b59); }
  .booking-action { width:100%;max-width:330px; }
  .portrait-frame { box-shadow:7px 8px 0 #c7b297; }
}
/* Catalogue refinement: one men's entry and a compact inline mobile chooser. */
.direction-detail { font-size:11px;line-height:1.8;color:var(--muted);margin:4px 0 0;padding-left:26px; }
#category-intro { display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:20px 0 16px; }
#category-intro h3 { margin:0;font:500 26px/1.2 var(--serif);letter-spacing:-.02em; }
#category-intro>span { font-size:12px;white-space:nowrap; }
.catalogue-group { font:600 12px/1.5 var(--sans);letter-spacing:.03em;margin:26px 0 10px;color:var(--muted); }
.catalogue-group:first-child { margin-top:2px; }
.service strong { font-size:16px;line-height:1.5; }
.service small { font-size:12px;line-height:1.65; }
.service b { font-size:15px;font-weight:600;font-variant-numeric:tabular-nums; }
.service b span { font-size:11px; }
.variant>span { font-size:15px;line-height:1.6; }
.variant>span strong { font-weight:500; }
.variant>span b { font-variant-numeric:tabular-nums; }
.variant small,.modal p { font-size:13px; }
.variant-heading { margin-top:28px; }
.service-contact { position:sticky;bottom:-32px;z-index:2;background:#e9dfd1;border-top:1px solid #bda88d;margin:20px -8px -8px;padding:14px 8px 8px;box-shadow:0 -12px 20px #e9dfd1e8; }
.service-contact[hidden] { display:none; }
.service-contact p { margin:0 0 9px;font-size:12px;color:var(--muted); }
.service-contact a { display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:12px 16px;background:var(--dark);color:#f4e6d2;border-radius:2px;font-size:13px; }
.service-contact a span { white-space:nowrap;font-variant-numeric:tabular-nums; }
.mobile-menu .menu-phone { font:15px/1.5 var(--sans);color:#e9d1ae; }
@media(max-width:600px) {
 .mobile-filter { padding:14px 0; }
 #categoryToggle { width:100%;min-height:52px;border:1px solid #aa9477;border-radius:2px;background:#ded0bc;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-align:left; }
 #categoryLabel { font-size:15px;font-weight:600; }
 .category-change { font-size:11px;white-space:nowrap; }
 .pricebox.filters-open .filters { display:grid;grid-template-columns:1fr 1fr;gap:4px;max-height:min(240px,35svh);overflow-y:auto;overscroll-behavior:contain;padding:6px 0 12px;border:0;border-bottom:1px solid var(--line);scrollbar-gutter:stable; }
 .filters .filter { min-height:48px;font-size:12px;line-height:1.4;padding:10px; }
 #category-intro h3 { font-size:26px; }
 .service { grid-template-columns:minmax(0,1fr);gap:10px;padding:18px 0; }
 .service strong { font-size:16px;line-height:1.5; }
 .service small { font-size:12px; }
 .service b { display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:15px;padding:0; }
 .service b span { margin:0;font-size:11px; }
 .variant>span { display:grid;grid-template-columns:1fr;font-size:15px;gap:6px; }
 .variant small,.modal p { font-size:13px;line-height:1.7; }
 .service-contact { bottom:-24px; }
 .service-contact a { flex-wrap:wrap;font-size:12px;gap:5px 12px; }
 .direction-detail { padding-left:0;font-size:11px; }
}
.jump-variants { display:flex;align-items:center;gap:24px;min-height:44px;margin:4px 0 10px;padding:8px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:13px; }
.jump-variants[hidden] { display:none; }
.variant-heading { scroll-margin-top:12px; }
.modal-card { scroll-padding-top:60px; }
.modal-dismiss { position:sticky;top:0;height:0;display:flex;justify-content:flex-end;z-index:4;pointer-events:none; }
.modal-dismiss .close { pointer-events:auto;flex-shrink:0;background:#e9dfd1;box-shadow:0 2px 10px #59412a24; }
.modal-head { padding-right:60px; }

/* Contact-first booking, legible compact catalogue and local direction finder. */
.care-finder-section {padding:clamp(54px,7vw,100px) 0;background:#e9dfd1;border-top:1px solid #cdbca6;}
.care-finder {display:grid;grid-template-columns:minmax(220px,1fr) minmax(290px,1.15fr);gap:clamp(25px,6vw,100px);align-items:start;}
.care-finder h2 {font:500 clamp(36px,4.5vw,68px)/1.08 var(--serif);letter-spacing:-.035em;margin:14px 0 20px;}
.care-finder h2 em {font-weight:500;}
.care-finder p {font:14px/1.75 var(--sans);color:#594f46;max-width:440px;}
.care-finder-options {display:flex;flex-wrap:wrap;gap:10px;}
.care-finder-options button {border:1px solid #ac977b;background:transparent;color:#45362e;padding:12px 16px;min-height:48px;border-radius:2px;font:500 14px/1.4 var(--sans);cursor:pointer;}
.care-finder-options button[aria-pressed="true"] {background:#45362e;color:#f7eee4;border-color:#45362e;}
.care-finder-result {min-height:96px;padding-top:16px;}
.care-finder-result p {margin:0 0 12px;}
.care-finder-links {display:flex;flex-wrap:wrap;gap:8px;}
.care-finder-links a {display:inline-flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:10px 14px;border-bottom:1px solid #927c61;color:#45362e;font:600 13px/1.45 var(--sans);}
.care-finder-options button:focus-visible,.care-finder-links a:focus-visible {outline:3px solid #927c61;outline-offset:3px;}
.price-help {display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:22px 0 2px;padding:16px 0;border-top:1px solid var(--line);}
.price-help span {font-size:13px;font-weight:600;color:var(--ink);margin-right:auto;}
.price-help a {font-size:12px;font-weight:600;min-height:44px;display:inline-flex;align-items:center;padding:7px 11px;border:1px solid #ac977b;border-radius:2px;color:var(--ink);}
.price-help a:focus-visible {outline:3px solid #927c61;outline-offset:3px;}
.service-contact {display:grid;gap:8px;}
.service-contact p {margin:0;}
.service-contact a {overflow-wrap:anywhere;}
.variant-contact-note {margin-top:16px;font-size:13px;line-height:1.6;color:var(--muted);}
@media(max-width:900px) {.care-finder {grid-template-columns:1fr;gap:22px;}}
@media(max-width:600px) {
 .care-finder-section {padding:52px 0;}
 .care-finder h2 {font-size:42px;}
 .care-finder-options button {font-size:14px;min-height:48px;}
 .care-finder-links {display:grid;grid-template-columns:1fr;}
 .care-finder-links a {min-height:48px;}
 .offer-greeting {font-size:64px;}
 .book {min-width:84px;padding:10px;font-size:11px;line-height:1.35;text-align:center;}
 #category-intro {align-items:start;flex-wrap:wrap;gap:6px;}
 #category-intro h3 {font-size:26px;overflow-wrap:anywhere;}
 .pricebox.filters-open .filters {max-height:min(360px,48svh);gap:8px;padding:12px 0;}
 .filters .filter {font-size:14px;min-height:52px;padding:12px;overflow-wrap:anywhere;}
 .service {min-width:0;}
 .service small {font-size:14px;line-height:1.6;color:#594f46;}
 .service strong {overflow-wrap:anywhere;}
 .service b {flex-wrap:wrap;font-size:16px;line-height:1.5;}
 .variant>span {min-width:0;overflow-wrap:anywhere;}
 .price-help {display:grid;grid-template-columns:1fr;gap:8px;}
 .price-help span {font-size:14px;}
 .price-help a {font-size:14px;min-height:48px;}
 .service-contact {bottom:-24px;}
 .service-contact a {font-size:13px;min-height:48px;}
 .service-contact a span {white-space:normal;}
}
@media(max-width:390px) {
 .pricebox.filters-open .filters {grid-template-columns:1fr;}
 .offer-greeting {font-size:54px;}
 .nav .book {min-width:76px;font-size:10px;}
 .service b {overflow-wrap:anywhere;}
}

/* Release safeguard: no public booking or contact actions until explicitly approved. */
[data-sonline-booking][aria-disabled="true"] {cursor:default;user-select:text;}
.nav .book[aria-disabled="true"] {font-size:12px;line-height:1.45;overflow-wrap:anywhere;}
.mobile-menu .menu-status {display:block;padding:12px 0;color:#e9d1ae;font:14px/1.55 var(--sans);}
.footer-unavailable {display:flex;flex-direction:column;gap:12px;align-items:flex-start;}
.footer-unavailable [data-sonline-booking] {color:#e9d1ae;font-weight:600;line-height:1.6;}
.footer-unavailable small {max-width:270px;}
.quick-contact-status {margin:0;padding:14px 0;color:#e9d1ae;font:500 14px/1.6 var(--sans);}
.price-help-status {display:block;margin-left:auto;font-size:14px;font-weight:600;color:#49392e;}
.service-contact[role="status"] {box-shadow:none;position:static;z-index:auto;background:transparent;}
.service-contact[role="status"] p {font:600 14px/1.5 var(--sans);color:#49392e;}
.filter:focus-visible,#categoryToggle:focus-visible,.service:focus-visible,.show-more:focus-visible,.hamb:focus-visible,.mobile-close:focus-visible,.care-finder-options button:focus-visible,.care-finder-links a:focus-visible {outline:3px solid #735539;outline-offset:3px;}
@media(max-width:600px) {
 .nav .book[aria-disabled="true"] {display:none;}
 .price-help-status {margin-left:0;}
 .service b {min-width:0;overflow-wrap:anywhere;}
 .variant b {overflow-wrap:anywhere;}
 .care-finder-options button {flex:1 1 140px;}
}


/* V2 mobile polish — quieter rhythm, lighter catalogue, refined intro. */
.site-intro{
  background:
    radial-gradient(circle at 50% 44%,#f7efe3 0,#eadfce 42%,#e3d4c2 100%);
}
.site-intro-scene:after{
  content:"";position:absolute;left:50%;top:50%;width:min(54vw,560px);height:1px;
  background:linear-gradient(90deg,transparent,#8a73543d,transparent);
  transform:translate(-50%,78px) scaleX(.15);transform-origin:center;
  opacity:0
}
.site-intro.is-playing .site-intro-scene:after{
  animation:introLine 1.05s .12s cubic-bezier(.22,.7,.25,1) both
}
.site-intro.is-playing .site-intro-scene{
  animation:siteIntroSceneV2 1.6s cubic-bezier(.2,.72,.2,1) both
}
.site-intro.is-leaving{
  animation:siteIntroLeaveV2 .36s ease forwards
}
@keyframes siteIntroSceneV2{
  0%{opacity:0;transform:rotateX(7deg) rotateY(-16deg) translateZ(-48px) scale(.94)}
  42%{opacity:1}
  78%{opacity:1;transform:rotateX(-1deg) rotateY(3deg) translateZ(10px) scale(1.008)}
  100%{opacity:1;transform:rotateX(0) rotateY(0) translateZ(0) scale(1)}
}
@keyframes siteIntroLeaveV2{
  to{opacity:0;visibility:hidden;transform:scale(.992)}
}
@keyframes introLine{
  0%{opacity:0;transform:translate(-50%,78px) scaleX(.15)}
  55%{opacity:1}
  100%{opacity:.55;transform:translate(-50%,78px) scaleX(1)}
}

@media(max-width:600px){
  html{scroll-padding-top:62px}
  .wrap{padding-inline:26px}
  .section{padding:72px 0}

  header{backdrop-filter:blur(14px)}
  .nav{height:60px;gap:8px;padding-inline:18px}
  .logo{font-size:33px;width:25px}
  .logo>span>span{font-size:22px;left:11px;top:4px}
  .brand{font-size:11px;max-width:138px;line-height:1.18;letter-spacing:.02em}
  .brand small{font-size:7px;margin-top:4px;letter-spacing:.11em}
  .book{
    min-width:0;margin-left:auto;padding:8px 10px;
    font-size:8px;line-height:1.25;border-color:#b9ad9d;
    background:#47382f;color:#f6eee5
  }
  .hamb{width:34px;height:34px;font-size:19px}

  .hero-layout{padding-top:30px;padding-bottom:26px}
  .hero h1{
    font-size:64px;line-height:.9;margin:20px 0 25px;letter-spacing:-.05em
  }
  .hero h1>span:nth-child(2),.hero h1 em{font-size:43px}
  .hero h1 em{margin-left:6px}
  .hero-art{margin-bottom:25px}
  .hero-photo{height:286px;border-radius:2px 2px 60px 2px}
  .hero-glass{
    right:14px;bottom:38px;width:158px;padding:14px 14px;
    background:#f6efe5e8;border-color:#fff8
  }
  .hero-glass em{font-size:21px}
  .hero p{font-size:13px;line-height:1.75;max-width:330px}
  .hero .actions{
    display:grid;grid-template-columns:minmax(0,1fr) auto;
    align-items:center;gap:14px;margin-top:22px
  }
  .hero .btn{min-height:48px;padding-inline:18px;justify-content:center}
  .hero .text-link{padding-inline:4px;gap:16px}
  .hero-bottom{margin-top:28px}

  .introduction{padding:74px 0 70px}
  .intro-layout{display:block}
  .intro-layout .eyebrow{margin-bottom:24px}
  .intro-layout h2{
    font-size:43px;line-height:1.06;letter-spacing:-.03em;
    max-width:335px
  }

  .directions{padding-top:10px;padding-bottom:78px}
  .directions .head{padding-top:30px;margin-bottom:30px}
  .directions .head h2{font-size:50px;line-height:.95;margin-top:14px}
  .directions .sub{font-size:13px;line-height:1.7;margin-top:17px;max-width:315px}
  .mobile-directions-viewport{padding-top:18px}
  .mobile-direction-visual{
    height:320px;border-radius:2px 56px 2px 2px;background:#ddd6ca
  }
  .mobile-direction-visual img{
    filter:saturate(.78) contrast(.98);transform:scale(1.015)
  }
  .mobile-direction-body{padding:21px 1px 2px}
  .mobile-direction-count{font-size:8px;margin-bottom:9px}
  .mobile-direction-body h3{font-size:40px;margin-bottom:15px}
  .mobile-direction-links a{
    min-height:50px;font-size:12px;padding:0 2px
  }
  .mobile-direction-links .direction-detail{
    font-size:11px;line-height:1.7;padding-top:15px
  }
  .mobile-directions-controls{margin-top:18px}
  .mobile-directions-arrow{width:40px;height:40px}

  .care-finder-section{padding:70px 0 76px}
  .care-finder{gap:30px}
  .care-finder h2{font-size:48px;line-height:1.02;margin:16px 0 22px}
  .care-finder p{font-size:13px;line-height:1.75}
  .care-finder-options{
    display:grid;grid-template-columns:1fr 1fr;gap:0 18px;
    border-top:1px solid #bca88f
  }
  .care-finder-options button{
    min-height:54px;padding:0 2px;border:0;border-bottom:1px solid #bca88f;
    border-radius:0;background:transparent;text-align:left;
    font-size:13px;font-weight:500;color:#45362e
  }
  .care-finder-options button[aria-pressed="true"]{
    background:transparent;color:#45362e;border-color:#7f694e;
    font-weight:700
  }
  .care-finder-options button[aria-pressed="true"]::after{
    content:"↗";float:right;font-weight:400;color:#80683f
  }
  .care-finder-result{min-height:72px;padding-top:18px}

  .spa-section{padding-top:64px}
  .spa-heading{margin-bottom:34px}
  .spa-heading h2{font-size:74px;line-height:.88}
  .spa-image{height:500px}
  .spa-copy{padding-top:24px}
  .spa-lead{font-size:31px}
  .spa-exit{margin-top:38px}

  .price-section{padding-top:72px;padding-bottom:72px}
  .price-section .head{margin-bottom:30px}
  .price-section .head h2{font-size:50px}
  .pricebox{border-top:1px solid var(--line);border-bottom:0}
  .mobile-filter{
    padding:13px 0 10px;border-bottom:1px solid var(--line)
  }
  #categoryToggle{
    min-height:54px;padding:0 2px;border:0;background:transparent;
    border-radius:0;box-shadow:none
  }
  #categoryToggle:focus-visible{outline:2px solid #92754f;outline-offset:3px}
  #categoryToggle #categoryLabel{font:500 29px/1 var(--serif);letter-spacing:-.025em}
  #categoryToggle .category-change{font-size:11px;color:var(--muted)}
  .pricebox.filters-open .filters{
    max-height:420px;padding:8px 0 12px;border-bottom:1px solid var(--line)
  }
  .filters .filter{
    min-height:46px;padding:8px 2px;border:0;border-bottom:1px solid #e2dfd7;
    border-radius:0;background:transparent;font-size:13px
  }
  .filters .filter.active{background:transparent;color:var(--ink);font-weight:700}
  #category-intro{
    padding:24px 0 14px;min-height:0;align-items:baseline
  }
  #category-intro h3{font:500 34px/1 var(--serif);letter-spacing:-.025em}
  #category-intro span{font-size:10px}
  .service{
    grid-template-columns:minmax(0,1fr) auto;gap:16px;
    padding:18px 0;border-top:1px solid #d9d6ce
  }
  .service strong{font-size:14px;line-height:1.45}
  .service small{
    font-size:11px;line-height:1.55;margin-top:5px;
    display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
  }
  .service b{font-size:13px;align-self:start;padding-top:1px}
  .price-help{margin-top:16px;padding:20px 0;display:grid;grid-template-columns:1fr 1fr}
  .price-help span{grid-column:1/-1;margin:0 0 2px}
  .price-help a{justify-content:center;border:0;border-bottom:1px solid #ac977b;border-radius:0;padding:9px 2px}
  .price-note{font-size:10px;line-height:1.7;margin:18px 0 24px}
  .memberships summary{font-size:28px;padding:20px 0;gap:14px}
  .memberships summary>span:first-child{width:auto;flex:1}
  .program-card{padding:18px 0 26px}
  .program-card h3{font-size:31px}

  .offer-layout{padding-top:70px;padding-bottom:72px}
  .offer-copy h2{font-size:56px}
  .offer-number{font-size:154px}
  .booking-section{padding-top:72px;padding-bottom:74px}

  .site-intro-scene{gap:14px}
  .site-intro-monogram{width:92px;height:92px;font-size:68px}
  .site-intro-monogram>i{left:50px;top:35px;font-size:33px}
  .site-intro-name>span,.site-intro-name>em{font-size:32px}
  .site-intro-name>em{margin-left:14px}
  .site-intro-scene:after{width:72vw;transform:translate(-50%,69px) scaleX(.15)}
  @keyframes introLine{
    0%{opacity:0;transform:translate(-50%,69px) scaleX(.15)}
    55%{opacity:1}
    100%{opacity:.5;transform:translate(-50%,69px) scaleX(1)}
  }
}

/* Intro V3: one clear monogram, no ambiguous second letter. */
.site-intro-monogram>span{
  position:relative;
  letter-spacing:-.08em;
}
.site-intro-monogram>span:after{
  content:"";
  position:absolute;
  left:17%;right:7%;bottom:-13px;
  height:1px;
  background:linear-gradient(90deg,transparent,#7d684d 22%,#7d684d 78%,transparent);
  opacity:.55;
  transform:translateZ(18px)
}


/* Intro V4 — layered beauty ident, still CSS-only and lightweight. */
.site-intro{
  background:
    radial-gradient(circle at 50% 42%,rgba(255,250,242,.98) 0,rgba(238,225,208,.98) 40%,rgba(224,207,186,.99) 100%);
}
.site-intro:before{
  width:min(72vw,820px);left:-20vw;top:-38vw;
  border-color:#9a7b5530;
  box-shadow:0 0 0 48px #fff2,0 0 0 130px #9a7b550d
}
.site-intro:after{
  width:min(58vw,660px);right:-17vw;bottom:-34vw;border-color:#6e59452b
}
.site-intro-light{
  position:absolute;inset:-18% -28%;
  background:linear-gradient(112deg,transparent 37%,rgba(255,255,255,.62) 48%,rgba(255,255,255,.18) 53%,transparent 63%);
  transform:translateX(-42%) rotate(-2deg);
  opacity:0;pointer-events:none;mix-blend-mode:screen
}
.site-intro.is-playing .site-intro-light{
  animation:introLightV4 1.75s .22s cubic-bezier(.2,.7,.2,1) both
}
.site-intro-scene{
  gap:42px;opacity:1;transform:none;transform-style:preserve-3d;
  perspective:1100px
}
.site-intro.is-playing .site-intro-scene{
  animation:introSceneV4 1.82s cubic-bezier(.2,.72,.2,1) both
}
.site-intro-emblem{
  position:relative;width:156px;height:156px;display:grid;place-items:center;
  transform-style:preserve-3d;flex:0 0 auto
}
.site-intro-monogram{
  width:132px;height:132px;font-size:92px;
  border:1px solid rgba(111,88,60,.34);
  background:
    radial-gradient(circle at 30% 24%,rgba(255,255,255,.78),transparent 34%),
    linear-gradient(145deg,rgba(250,242,232,.94),rgba(205,184,159,.76));
  box-shadow:
    0 28px 70px rgba(86,62,39,.17),
    inset 0 0 0 8px rgba(255,255,255,.22),
    inset -16px -18px 36px rgba(117,86,56,.08);
  transform:translateZ(24px)
}
.site-intro-monogram:before{
  inset:7px;border-color:rgba(122,94,62,.2);transform:translateZ(-18px)
}
.site-intro-monogram:after{
  inset:18px;border-color:rgba(255,255,255,.38);transform:translateZ(-34px)
}
.site-intro-monogram>span{
  font-size:inherit;transform:translateZ(42px);
  color:#3e332b;
  text-shadow:0 18px 34px rgba(75,52,35,.16)
}
.site-intro-monogram>span:after{
  left:18%;right:9%;bottom:-15px;opacity:.42
}
.site-intro-orbit{
  position:absolute;inset:5px;border:1px solid rgba(126,98,65,.25);
  border-radius:50%;transform:rotateX(67deg) rotateZ(-18deg) translateZ(6px);
  box-shadow:0 0 0 1px rgba(255,255,255,.12)
}
.site-intro-orbit:after{
  content:"";position:absolute;width:7px;height:7px;border-radius:50%;
  right:14px;top:24px;background:#927550;
  box-shadow:0 0 0 5px rgba(146,117,80,.09)
}
.site-intro.is-playing .site-intro-emblem{
  animation:introEmblemV4 1.55s .06s cubic-bezier(.18,.75,.2,1) both
}
.site-intro.is-playing .site-intro-orbit{
  animation:introOrbitV4 2.15s .1s cubic-bezier(.2,.7,.2,1) both
}
.site-intro-name{
  transform:translateZ(12px);overflow:visible
}
.site-intro-name>span,.site-intro-name>em,.site-intro-name>small{
  opacity:0;will-change:transform,opacity
}
.site-intro-name>span{
  font-size:50px;letter-spacing:-.045em;color:#332b26
}
.site-intro-name>em{
  font-size:50px;margin-left:42px;color:#80694f
}
.site-intro-name>small{
  margin-top:18px;color:#6b6056;letter-spacing:.24em
}
.site-intro.is-playing .site-intro-name>span{
  animation:introWordV4 .72s .48s cubic-bezier(.2,.72,.2,1) both
}
.site-intro.is-playing .site-intro-name>em{
  animation:introWordV4 .72s .66s cubic-bezier(.2,.72,.2,1) both
}
.site-intro.is-playing .site-intro-name>small{
  animation:introSmallV4 .68s .94s ease-out both
}
.site-intro-scene:after{
  width:min(58vw,610px);transform:translate(-50%,88px) scaleX(.08);opacity:0
}
.site-intro.is-playing .site-intro-scene:after{
  animation:introLineV4 .9s .95s cubic-bezier(.2,.7,.2,1) both
}
.site-intro.is-leaving{
  animation:introLeaveV4 .36s ease forwards;pointer-events:none
}
@keyframes introSceneV4{
  0%{opacity:0;transform:translateY(10px) scale(.985)}
  24%{opacity:1}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes introEmblemV4{
  0%{opacity:0;transform:rotateX(12deg) rotateY(-34deg) translateZ(-74px) scale(.82)}
  42%{opacity:1}
  76%{transform:rotateX(-2deg) rotateY(7deg) translateZ(18px) scale(1.025)}
  100%{opacity:1;transform:rotateX(0) rotateY(0) translateZ(0) scale(1)}
}
@keyframes introOrbitV4{
  0%{opacity:0;transform:rotateX(67deg) rotateZ(-88deg) translateZ(6px) scale(.82)}
  35%{opacity:.85}
  100%{opacity:.55;transform:rotateX(67deg) rotateZ(22deg) translateZ(6px) scale(1)}
}
@keyframes introWordV4{
  0%{opacity:0;transform:translateX(18px) translateZ(-12px);filter:blur(4px)}
  100%{opacity:1;transform:translateX(0) translateZ(0);filter:blur(0)}
}
@keyframes introSmallV4{
  0%{opacity:0;transform:translateY(7px);letter-spacing:.32em}
  100%{opacity:1;transform:translateY(0);letter-spacing:.24em}
}
@keyframes introLineV4{
  0%{opacity:0;transform:translate(-50%,88px) scaleX(.08)}
  100%{opacity:.55;transform:translate(-50%,88px) scaleX(1)}
}
@keyframes introLightV4{
  0%{opacity:0;transform:translateX(-42%) rotate(-2deg)}
  24%{opacity:.78}
  72%{opacity:.3}
  100%{opacity:0;transform:translateX(42%) rotate(-2deg)}
}
@keyframes introLeaveV4{
  0%{opacity:1}
  100%{opacity:0;visibility:hidden;transform:scale(.995)}
}

/* The permanent header uses the same clear single-letter mark. */
.logo>span{
  display:inline-grid;place-items:center;width:34px;height:34px;
  border:1px solid rgba(89,73,56,.2);border-radius:50%;
  font-size:31px;line-height:1
}

@media(max-width:600px){
  .site-intro-scene{gap:18px}
  .site-intro-emblem{width:122px;height:122px}
  .site-intro-monogram{width:102px;height:102px;font-size:70px}
  .site-intro-name>span,.site-intro-name>em{font-size:34px}
  .site-intro-name>em{margin-left:16px}
  .site-intro-name>small{font-size:8px;margin-top:14px;letter-spacing:.19em}
  .site-intro-scene:after{width:76vw;transform:translate(-50%,72px) scaleX(.08)}
  @keyframes introLineV4{
    0%{opacity:0;transform:translate(-50%,72px) scaleX(.08)}
    100%{opacity:.5;transform:translate(-50%,72px) scaleX(1)}
  }
  .logo>span{width:30px;height:30px;font-size:27px}
}
@media(prefers-reduced-motion:reduce){
  .site-intro-light,.site-intro-orbit{display:none!important}
}


/* First visit offer refinement — 2026-10 */
.offer-layout{
  min-height:520px;
  grid-template-columns:minmax(0,.9fr) minmax(380px,.95fr);
  gap:clamp(48px,7vw,112px);
  padding-top:72px;
  padding-bottom:72px
}
.offer-copy{max-width:500px}
.offer-copy h2{
  font-size:clamp(58px,5vw,76px);
  line-height:.9
}
.offer-copy p{
  max-width:360px;
  margin:24px 0 28px;
  font-size:13px;
  line-height:1.7
}
.offer-value{
  justify-self:end;
  width:min(100%,480px);
  padding:28px 24px 30px;
  border-top:1px solid #8d795f55;
  border-bottom:1px solid #8d795f55
}
.offer-overline{
  font-size:8px;
  letter-spacing:.22em
}
.offer-number{
  font-size:clamp(150px,14vw,220px);
  line-height:.9;
  margin:12px 0 16px
}
.offer-signature{
  font-size:clamp(22px,2vw,28px);
  line-height:1.08
}

@media(max-width:900px) and (min-width:601px){
  .offer-layout{
    grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);
    gap:42px
  }
  .offer-copy h2{font-size:clamp(54px,7vw,68px)}
  .offer-number{font-size:clamp(138px,18vw,184px)}
}

@media(max-width:600px){
  .offer-layout{
    display:grid;
    grid-template-columns:1fr;
    min-height:0;
    gap:24px;
    padding-top:48px;
    padding-bottom:44px;
    align-items:stretch;
    text-align:left
  }
  .offer-copy{
    display:block;
    max-width:none
  }
  .offer-copy .eyebrow{
    margin:0 0 18px;
    font-size:8px
  }
  .offer-copy h2{
    font-size:clamp(46px,14vw,58px);
    line-height:.88
  }
  .offer-copy p{
    max-width:330px;
    margin:18px 0 22px;
    font-size:13px;
    line-height:1.65
  }
  .offer-copy .btn{
    width:fit-content;
    margin:0;
    align-self:auto
  }
  .offer-value{
    order:0;
    justify-self:stretch;
    width:100%;
    padding:18px 0;
    display:grid;
    grid-template-columns:auto minmax(0,1fr);
    column-gap:18px;
    row-gap:6px;
    align-items:end;
    text-align:left
  }
  .offer-overline{
    display:block;
    grid-column:1/-1;
    font-size:7px;
    letter-spacing:.2em
  }
  .offer-number{
    font-size:clamp(100px,30vw,132px);
    line-height:.78;
    margin:6px 0 0
  }
  .offer-signature{
    max-width:145px;
    padding-bottom:6px;
    font-size:18px;
    line-height:1.15
  }
  .silk{object-position:60% center}
  .offer-foot{
    padding:14px 22px;
    gap:14px
  }
}


/* Client review pass — 2026-10-04 */
/* Header: keep the wordmark, remove the redundant single-letter mark. */
.brand-home{
  display:block;
  color:inherit;
  max-width:250px;
  flex:0 1 250px;
}
.nav{gap:22px}
.links{gap:22px}
.links a{font-size:14px}

/* Service discovery: larger type and local-image-friendly presentation. */
.discovery{grid-template-columns:minmax(300px,350px) minmax(0,1fr);gap:72px}
.portrait-frame{height:390px;border-radius:2px}
.portrait-frame img{filter:saturate(.78) contrast(1.01)}
.direction-portrait figcaption{font-size:12px;line-height:1.5}
.direction-portrait figcaption>span:last-child{font-size:10px}
.entry-title h3{font-size:34px}
.entry-number{font-size:10px}
.direction-entry{padding:22px 0 24px}
.direction-entry nav{padding-left:30px}
.direction-entry a{
  min-height:42px;
  font-size:14px;
  line-height:1.55;
}
.direction-entry a span{font-size:13px}
.direction-detail{font-size:13px;line-height:1.65;color:var(--muted);margin:6px 0 0}

/* SPA text was too small on the client's laptop. */
.spa-copy>p:not(.spa-lead){font-size:13px;line-height:1.8}
.ritual-row{padding:18px 0}
.ritual-row strong{font-size:28px}
.ritual-row small{font-size:11px;line-height:1.55}
.spa-art figcaption{font-size:12px;line-height:1.6}
.spa-exit{font-size:11px}

/* Clear three-step path: service → master → booking. */
.masters-flow-section{
  background:#ece9df;
  padding:82px 0;
  border-top:1px solid #d7d4ca;
  border-bottom:1px solid #d7d4ca;
}
.masters-flow{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(520px,1.25fr);
  gap:70px;
  align-items:end;
}
.masters-flow-copy h2{
  margin-top:16px;
  font-size:clamp(50px,5vw,72px);
  line-height:.95;
}
.masters-flow-copy h2 em{color:#7d866b}
.masters-flow-copy p{
  max-width:470px;
  margin-top:24px;
  font-size:14px;
  line-height:1.75;
  color:var(--muted);
}
.masters-steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-top:1px solid #aaa99f;
  border-bottom:1px solid #aaa99f;
}
.masters-steps a{
  min-height:178px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:20px 22px 24px;
  border-right:1px solid #aaa99f;
  transition:background .2s ease;
}
.masters-steps a:last-child{border-right:0}
.masters-steps a:hover,.masters-steps a:focus-visible{background:#f4f1e8}
.masters-steps span{
  margin-bottom:auto;
  font-size:11px;
  letter-spacing:.1em;
  color:#505742;
}
.masters-steps strong{
  font:500 28px/1 var(--serif);
  letter-spacing:-.02em;
}
.masters-steps small{
  margin-top:10px;
  font-size:11px;
  line-height:1.45;
  color:var(--muted);
}

/* Make the first-visit message readable even on lower-quality laptop screens. */
.offer-copy p{font-size:14px;line-height:1.7}
.offer-overline{
  display:inline-block;
  padding:7px 10px;
  background:rgba(53,69,53,.08);
  border:1px solid rgba(53,69,53,.18);
  font-size:11px;
  line-height:1;
  letter-spacing:.18em;
}
.offer-signature{font-size:30px;line-height:1.08}
.offer-number{font-size:clamp(165px,15vw,232px)}

/* Footer/contact text: increase legibility. */
.footer{font-size:13px}
.footer a{font-size:13px}
.footer small{font-size:11px;line-height:1.6}
.quick-contact a{font-size:13px}
.copy{font-size:11px}

/* Do not let a failed image request leave an empty beige box. */
.portrait-frame{background:linear-gradient(135deg,#d8d4ca,#b8b2a5)}
.portrait-frame img{background:#c7c1b5}

@media(max-width:1100px){
  .nav{gap:14px}
  .brand-home{max-width:220px;flex-basis:220px}
  .links{gap:15px}
  .links a{font-size:13px}
  .discovery{grid-template-columns:270px 1fr;gap:44px}
  .portrait-frame{height:340px}
  .entry-title h3{font-size:30px}
  .direction-entry a{font-size:13px}
  .masters-flow{grid-template-columns:1fr;gap:38px}
  .masters-steps{max-width:820px}
}

@media(max-width:900px){
  .brand-home{max-width:250px;flex:1 1 auto}
  .spa-copy>p:not(.spa-lead){font-size:12px}
  .ritual-row small{font-size:10px}
  .offer-signature{font-size:26px}
}

@media(max-width:600px){
  .nav{height:60px;gap:10px}
  .brand-home{
    max-width:calc(100vw - 132px);
    font-size:11px;
    line-height:1.2;
    letter-spacing:.02em;
  }
  .brand-home small{font-size:8px;margin-top:4px}
  .book{font-size:10px;padding:10px 11px;margin-left:auto}
  .hamb{width:36px;height:36px}
  .directions .head{margin-bottom:28px}
  .directions .sub{font-size:13px}
  .mobile-direction-body h3{font-size:30px}
  .mobile-direction-links a{font-size:14px;min-height:44px}
  .mobile-direction-count{font-size:10px}
  .spa-copy>p:not(.spa-lead){font-size:13px}
  .ritual-row strong{font-size:27px}
  .ritual-row small{font-size:11px}
  .spa-art figcaption{font-size:11px}
  .masters-flow-section{padding:56px 0}
  .masters-flow{display:block}
  .masters-flow-copy h2{font-size:48px}
  .masters-flow-copy p{font-size:14px;margin-bottom:30px}
  .masters-steps{grid-template-columns:1fr}
  .masters-steps a{
    min-height:118px;
    border-right:0;
    border-bottom:1px solid #aaa99f;
    padding:16px 18px 18px;
  }
  .masters-steps a:last-child{border-bottom:0}
  .masters-steps strong{font-size:28px}
  .masters-steps small{font-size:12px}
  .offer-overline{font-size:10px}
  .offer-signature{font-size:23px;max-width:160px}
  .offer-copy p{font-size:14px}
  .footer a{font-size:14px}
  .footer small{font-size:12px}
}


/* Contact action refinement — 2026-10-04 */
.price-help{
  display:block;
  margin:24px 0 4px;
  padding:18px 0 2px;
  border-top:1px solid var(--line);
}
.price-help>span{
  display:block;
  margin:0 0 12px;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
}
.price-contact-actions{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.price-contact-btn{
  min-height:64px;
  display:flex!important;
  flex-direction:column;
  align-items:flex-start!important;
  justify-content:center;
  gap:4px;
  padding:12px 14px!important;
  border:1px solid #a88f73!important;
  border-radius:3px!important;
  background:rgba(255,255,255,.24);
  color:var(--ink)!important;
}
.price-contact-btn strong{
  font-size:13px;
  font-weight:700;
  line-height:1.35;
}
.price-contact-btn small{
  font-size:11px;
  line-height:1.4;
  color:var(--muted);
}
.price-contact-btn:hover,.price-contact-btn:focus-visible{
  background:rgba(255,255,255,.48);
}
@media(max-width:600px){
  .price-contact-actions{grid-template-columns:1fr}
  .price-contact-btn{min-height:58px}
  .price-contact-btn strong{font-size:14px}
  .price-contact-btn small{font-size:12px}
}


/* Final client-review polish — 2026-10-04 */
.brand-home{
  display:flex;
  align-items:center;
  gap:10px;
  max-width:310px;
  flex:0 1 310px;
}
.brand-copy{display:block;min-width:0}
.brand-copy small{display:block}
.brand-mark{
  width:34px;
  height:24px;
  flex:0 0 34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#8a6b42;
}
.brand-mark svg{width:100%;height:100%;display:block}
.brand-mark path{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.footer-brand{display:flex;align-items:center;gap:10px!important;font-family:var(--serif)!important;font-size:24px!important;max-width:370px!important;line-height:1.2!important}
.footer-brand-mark{width:38px;height:26px;flex-basis:38px}

/* Client specifically reported that catalogue and SPA copy were too small. */
.filter{font-size:13px}
#category-intro{font-size:13px}
.service{padding:22px 0}
.service strong{font-size:16px;line-height:1.5}
.service small{font-size:13px;line-height:1.65;max-width:620px}
.service b{font-size:14px}
.service b span{font-size:11px}
.show-more{font-size:13px}
.price-note{font-size:12px;line-height:1.65}
.memberships summary>span:first-child{font-size:10px}
.program-card p{font-size:14px;line-height:1.65}
.program-meta span{font-size:12px}
.program-card>button{font-size:13px}

.spa-copy>p:not(.spa-lead){font-size:14px;line-height:1.75}
.ritual-row{padding:20px 0}
.ritual-row strong{font-size:29px}
.ritual-row small{font-size:12px;line-height:1.5}
.ritual-row b{font-size:13px}
.spa-copy>.btn{font-size:13px}
.spa-art figcaption{font-size:11px;line-height:1.55}
.spa-exit>span{font-size:10px}

.offer-overline{
  font-size:12px;
  font-weight:700;
  letter-spacing:.15em;
  padding:8px 11px;
}
.offer-copy p{font-size:15px;line-height:1.7}
.offer-copy .btn{font-size:13px}
.offer-signature{font-size:31px}
.offer-foot{font-size:10px}

.booking-action p{font-size:14px;line-height:1.7}
.booking-action small{font-size:11px}
.footer a,.footer small{font-size:13px}
.quick-contact a{font-size:13px}
.quick-contact span{font-size:11px}
.copy{font-size:10px}

/* Service details should stay focused on the service; no duplicate contacts inside modal. */
.service-contact{display:none!important}

@media(max-width:1100px){
  .brand-home{max-width:270px;flex-basis:270px}
  .brand-mark{width:30px;height:22px;flex-basis:30px}
}
@media(max-width:600px){
  .brand-home{max-width:calc(100vw - 132px);gap:7px}
  .brand-mark{width:26px;height:20px;flex-basis:26px}
  .brand-copy{font-size:11px;line-height:1.2}
  .brand-copy small{font-size:9px}
  .filter{font-size:14px}
  #category-intro{font-size:14px}
  .service strong{font-size:16px}
  .service small{font-size:14px;line-height:1.55}
  .service b{font-size:16px}
  .price-note{font-size:13px}
  .spa-copy>p:not(.spa-lead){font-size:14px}
  .ritual-row small{font-size:12px}
  .spa-art figcaption{font-size:12px}
  .offer-overline{font-size:11px}
  .offer-copy p{font-size:14px}
  .offer-signature{font-size:25px;max-width:190px}
}


/* Client remarks completion — 2026-10-04 */
.direction-portrait img,
.mobile-direction-slide img{
  object-fit:cover;
  object-position:center;
}
.direction-portrait figcaption>span:first-child{
  font-size:13px;
}
.selected-service{
  margin-top:22px;
  padding:14px 16px;
  border:1px solid rgba(77,82,62,.28);
  background:rgba(255,255,255,.28);
}
.selected-service span{
  display:block;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.14em;
  color:#555d49;
  margin-bottom:6px;
}
.selected-service strong{
  display:block;
  font:500 22px/1.2 var(--serif);
  color:var(--ink);
}
.price-contact-actions{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.copy-contact{
  text-align:left;
  cursor:pointer;
}
.copy-contact strong,.copy-contact small{
  pointer-events:none;
}
.quick-contact{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
}
.max-copy-btn{
  cursor:pointer;
  min-height:44px;
}
.offer-section{
  background:#e7dfd0;
}
.offer-section:after{
  background:linear-gradient(90deg,rgba(246,242,231,.88) 0%,rgba(246,242,231,.64) 48%,rgba(246,242,231,.18) 72%,rgba(246,242,231,.08) 100%);
}
.offer-value{
  z-index:1;
  padding:28px 26px 30px;
  border:1px solid rgba(71,76,57,.2);
  background:rgba(246,242,231,.56);
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
  user-select:none;
  -webkit-user-select:none;
}
.offer-overline{
  color:#4b513d;
}
.offer-number{
  color:#35402d;
  text-shadow:none;
}
.offer-signature{
  color:#454b38;
}
.offer-copy{
  position:relative;
  z-index:1;
}
.offer-copy h2,.offer-copy p,.offer-copy .eyebrow{
  text-shadow:0 1px 0 rgba(255,255,255,.38);
}

@media(max-width:1100px){
  .price-contact-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-contact{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .offer-layout{
    grid-template-columns:1fr;
    gap:28px;
    padding-top:58px;
    padding-bottom:58px;
  }
  .offer-value{
    padding:22px 18px 24px;
  }
  .offer-number{
    font-size:clamp(128px,38vw,178px);
    line-height:.95;
  }
  .offer-signature{
    font-size:24px;
  }
}
@media(max-width:600px){
  .price-contact-actions{grid-template-columns:1fr 1fr}
  .quick-contact{grid-template-columns:1fr 1fr;gap:12px}
  .price-contact-btn{min-height:66px}
  .selected-service strong{font-size:20px}
}


/* Intro emblem sync with leaflet mark */
.site-intro-monogram.intro-brand-mark{
  width:132px;
  height:132px;
  flex:0 0 132px;
  color:#8f7049;
}
.site-intro-monogram.intro-brand-mark svg{
  width:62%;
  height:62%;
  transform:translateZ(42px);
  filter:drop-shadow(0 14px 18px rgba(75,52,35,.12));
}
.site-intro-monogram.intro-brand-mark path{
  stroke-width:1.6;
}
@media(max-width:600px){
  .site-intro-monogram.intro-brand-mark{
    width:104px;
    height:104px;
    flex-basis:104px;
  }
}
