@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&display=swap');

:root{--ink:#171917;--paper:#f3f4ee;--muted:#a5aaa2;--coral:#e9a894;--green:#c2cdb5;--line:rgba(255,255,255,.18);--serif:'Italiana',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--ink);color:var(--paper);font:16px/1.6 var(--sans);letter-spacing:0}button,input,textarea,select{font:inherit;letter-spacing:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{cursor:pointer}button:disabled{cursor:default}img{display:block;max-width:100%;object-fit:cover}button,a,input,textarea,select,summary{outline-offset:6px}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--coral)}h1,h2,h3,p,figure{margin:0}h1,h2{font-weight:400;line-height:1.04}h2{font-size:64px}em{font-family:var(--serif);font-weight:400;font-style:normal}p{max-width:50ch}::selection{background:var(--coral);color:var(--ink)}[hidden]{display:none!important}.section-pad{padding:90px 6%}.eyebrow,.section-label{font-size:11px;font-weight:500;letter-spacing:0;line-height:1.6}.eyebrow{margin-bottom:25px}.section-label{display:flex;align-items:center;gap:10px;margin-bottom:58px}.section-number{margin-left:auto;color:var(--muted)}.tiny-dot{width:6px;height:6px;border-radius:50%;background:var(--coral)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;border-bottom:1px solid currentColor;padding:12px 0;font-size:13px;font-weight:500}.text-link span{font-size:20px;transition:transform .25s}.text-link:hover span{transform:translate(3px,-3px)}.skip-link{position:fixed;left:20px;top:-100px;background:var(--paper);color:var(--ink);padding:12px;z-index:100}.skip-link:focus{top:10px}
.site-header{height:90px;position:absolute;left:0;right:0;top:0;z-index:10;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.3)}.wordmark{display:flex;align-items:center;gap:14px}.monogram{font-family:Georgia,serif;font-size:41px;line-height:1}.brand-dot{color:var(--coral)}.wordmark-name{font-size:11px}.site-header nav{display:flex;align-items:center;gap:40px;font-size:13px}.nav-contact{border:1px solid rgba(255,255,255,.6);padding:11px 19px}.nav-contact span{margin-left:15px}.site-header a:hover{color:var(--coral)}
.hero{height:88svh;min-height:620px;max-height:1000px;position:relative;overflow:hidden;background:#4b344c}.hero-image-wrap,.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-position:center 52%;will-change:transform}.hero-shade{background:linear-gradient(180deg,rgba(0,0,0,.24),transparent 40%,rgba(0,0,0,.73))}.hero-topline{position:absolute;left:6%;right:6%;top:120px;display:flex;justify-content:space-between;font-size:10px}.hero-content{position:absolute;bottom:52px;left:6%;right:6%}.hero-content .eyebrow{margin-bottom:14px}.hero h1{font-size:132px;line-height:1.04;white-space:nowrap}.hero-period{color:var(--coral)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:25px}.hero-bottom p{font-size:14px;line-height:1.6}.round-link{display:flex;align-items:center;gap:20px;font-size:12px}.circle{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.6);border-radius:50%;font-size:23px;transition:background .3s,transform .3s}.round-link:hover .circle{background:var(--paper);color:var(--ink);transform:translateY(4px)}.image-index{position:absolute;right:6%;top:46%;display:flex;align-items:center;gap:10px;font-size:10px}.index-line{width:50px;height:1px;background:#ffffff9c}
.intro{background:var(--ink)}.intro-copy{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:end}.intro h2 em{color:var(--coral)}.intro-aside{max-width:350px;justify-self:end}.intro-aside p{font-size:14px;color:#c2c5bc;margin-bottom:16px}.intro-aside p:first-child{color:var(--paper)}.gallery{display:grid;grid-template-columns:1.6fr 1fr;align-items:start;gap:7%;margin-top:70px}.gallery-wide{margin-top:65px}.photo-button{display:block;position:relative;border:0;padding:0;background:transparent;width:100%;overflow:hidden}.photo-button img{width:100%;height:100%;transition:transform 1s cubic-bezier(.2,.8,.2,1)}.gallery-wide .photo-button{aspect-ratio:4/3}.gallery-tall .photo-button{aspect-ratio:3/4}.photo-button:hover img{transform:scale(1.045)}.photo-expand{position:absolute;bottom:18px;right:18px;width:36px;height:36px;border:1px solid #ffffff9c;background:#17191780;border-radius:50%;color:white;display:grid;place-items:center;font-size:20px}figcaption{display:flex;justify-content:space-between;font-size:9px;color:var(--muted);padding:18px 0}
.room-scene{position:relative;min-height:540px;height:80svh;max-height:850px;overflow:hidden}.room-scene>img{width:100%;height:100%;object-position:center 43%}.scene-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0009,transparent 75%)}.room-copy{position:absolute;left:6%;top:23%}.room-copy h2{font-size:112px}.room-copy h2 em{color:var(--coral)}.room-caption{position:absolute;left:6%;right:6%;bottom:35px;display:flex;justify-content:space-between;font-size:10px}.treatments{background:var(--paper);color:var(--ink)}.treatments .section-number{color:#676d63}.treatments .tiny-dot{background:#6f795a}.treatment-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:end}.treatment-intro>div{max-width:350px;justify-self:end}.treatment-intro p{font-size:14px;margin-bottom:12px}.treatment-intro p:nth-child(2){color:#606658}.treatment-item{padding:25px 0;border-top:1px solid #bcc1b5;display:flex;justify-content:space-between;gap:24px}.treatment-item h3{font-size:21px;font-weight:400}.treatment-item p{font-size:14px}#treatment-list:not(:empty){margin-top:55px}
.availability{background:#252b24}.availability-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:12%;align-items:center}.availability-copy h2 em{color:var(--green)}.availability-copy>p{font-size:14px;max-width:33ch;color:#c4c9be;margin-top:20px}.availability-copy .availability-status{margin-top:32px;font-size:12px;color:var(--paper);display:flex;align-items:center;gap:9px}.status-dot{width:6px;height:6px;background:var(--coral);border-radius:50%}.availability-copy .small-print{font-size:11px;color:#b2b9a9}.availability-copy .text-link{margin-top:14px}.calendar{border:1px solid #66705c;padding:28px;border-radius:4px;min-width:0;background:#2c332a}.calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:24px}.calendar h3{font-size:20px;font-weight:400}.calendar-controls{display:flex;gap:8px}.icon-button{width:36px;height:36px;border:1px solid #79816f;background:transparent;color:inherit;font-size:20px;display:grid;place-items:center;padding:0;flex-shrink:0}.icon-button:hover:not(:disabled){background:var(--paper);color:var(--ink)}.icon-button:disabled{opacity:.3}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));text-align:center;gap:4px}.calendar-weekdays{font-size:10px;color:#bcc5b2;margin-bottom:15px}.calendar-days{grid-template-rows:repeat(6,42px)}.day{display:grid;place-items:center;position:relative;min-width:0;border:0;background:none;color:var(--paper);font-size:13px;border-radius:3px}.day:not(:disabled):hover{background:#495342}.day:disabled{color:#858e7e}.day.today{box-shadow:inset 0 0 0 1px #96a185}.day[aria-pressed=true]{background:var(--green);color:var(--ink)}.calendar-footer{min-height:56px;border-top:1px solid #66705c;margin-top:18px;padding-top:18px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px}.calendar-footer a{color:var(--coral);white-space:nowrap}
.contact{background:var(--ink)}.contact-layout{display:grid;grid-template-columns:1.1fr 1.2fr;gap:10%}.contact-copy h2{font-size:57px}.contact-copy h2 em{color:var(--coral)}.contact-copy>p{font-size:14px;color:#bdc1b7;margin:25px 0;max-width:32ch}.enquiry-form label{display:block;font-size:11px;font-weight:500}.enquiry-form label span{font-weight:400;color:#9da496}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin-bottom:27px}input,select,textarea{display:block;width:100%;color:var(--paper);background:transparent;border:0;border-bottom:1px solid #63695e;border-radius:0;padding:12px 0;font-size:13px;outline-color:var(--coral);min-width:0}textarea{resize:vertical;min-height:92px}input::placeholder,textarea::placeholder{color:#969e8e;opacity:1}select{color-scheme:dark}input[type=date]{color-scheme:dark;min-height:46px}input:focus,select:focus,textarea:focus{border-color:var(--coral)}.form-note{font-size:11px;color:#b0b7a7;margin-top:16px}.form-bottom{display:flex;justify-content:space-between;align-items:center;gap:22px;margin-top:22px}.form-bottom p{font-size:10px;color:#b0b7a7;max-width:22ch}.solid-button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:48px;padding:12px 22px;border:1px solid var(--coral);background:var(--coral);color:var(--ink);font-size:12px;font-weight:500;transition:background .25s;white-space:nowrap}.solid-button:hover{background:#f4c2b1}.solid-button span:last-child{font-size:20px}.form-status{font-size:12px;color:var(--coral);margin-top:15px}.direct-contact a{display:block;margin-top:18px;font-size:14px;overflow-wrap:anywhere}#manual-copy{margin-top:20px}#manual-copy p{font-size:12px;margin-top:10px}
.visit{background:var(--paper);color:var(--ink)}.visit-heading{display:flex;justify-content:space-between;gap:60px;align-items:end}.visit h2 em{color:#656e53}.address{min-width:230px;font-size:14px}.address .text-link{margin-top:12px}.map-wrap{height:350px;margin-top:55px;position:relative;background:#d7dfcf;overflow:hidden}.map-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;background:repeating-linear-gradient(90deg,transparent 0,transparent 79px,#7d8b6821 80px,#7d8b6821 81px),repeating-linear-gradient(0deg,transparent 0,transparent 79px,#7d8b6821 80px,#7d8b6821 81px)}.map-label{font-size:10px}.map-placeholder p{font-size:31px;line-height:1.15;margin:18px 0}.map-placeholder .solid-button{background:var(--ink);border-color:var(--ink);color:var(--paper);margin-top:5px}.map-privacy{font-size:9px;color:#4c5842;margin-top:12px}.map-wrap iframe{width:100%;height:100%;border:0}#opening-hours{font-size:12px;margin-top:20px}.faq{padding-top:75px;padding-bottom:75px}.faq-layout{display:grid;grid-template-columns:1fr 1.5fr;gap:10%}.faq h2{font-size:52px}.faq h2 em{color:var(--green)}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 0;font-size:14px}summary::-webkit-details-marker{display:none}summary span{font-size:23px;transition:transform .25s}details[open] summary span{transform:rotate(45deg)}details p{font-size:13px;line-height:1.8;color:#bdc4b4;padding:0 25px 25px 0}.site-footer{padding-top:0;padding-bottom:25px}.footer-top{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding-top:40px;padding-bottom:45px;gap:25px}.footer-wordmark{font-size:74px;line-height:1.1}.back-top{width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:24px;flex-shrink:0}.footer-bottom{display:flex;justify-content:space-between;gap:20px;color:#abb39f;font-size:10px}.photo-dialog{padding:0;border:0;background:#171917;color:var(--paper);max-width:95vw;max-height:94svh;width:max-content;overflow:auto}.photo-dialog::backdrop{background:#090b09ed;backdrop-filter:blur(8px)}.photo-dialog img{max-height:80svh;max-width:90vw;width:auto;object-fit:contain}.photo-dialog p{font-size:12px;padding:15px 20px}.dialog-close{position:absolute;right:12px;top:12px;background:#171917cc;color:#fff;z-index:2}
.intro{padding-top:40px}.reveal{opacity:1;transform:none}.motion-ready .reveal{transition:opacity .85s ease,transform .85s cubic-bezier(.2,.7,.2,1)}.motion-ready .reveal:not(.is-visible){opacity:0;transform:translateY(25px)}
@media(min-width:1500px){.section-pad{padding-left:max(6%,calc((100% - 1380px)/2));padding-right:max(6%,calc((100% - 1380px)/2))}.hero h1{font-size:170px}.hero-content{bottom:65px}.hero-bottom p{font-size:17px}}
@media(max-width:1050px){h2{font-size:51px}.hero h1{font-size:108px}.section-pad{padding-top:70px;padding-bottom:70px}.contact-layout{gap:7%}.contact-copy h2{font-size:46px}.availability-layout{gap:7%}.calendar{padding:22px}.intro-copy,.treatment-intro{grid-template-columns:1.3fr 1fr;gap:35px}.form-row{gap:18px}.footer-wordmark{font-size:64px}}
@media(max-width:760px){.site-header{height:74px;padding:0 6%}.monogram{font-size:34px}.wordmark{gap:8px}.wordmark-name{font-size:9px}.site-header nav{gap:18px;font-size:11px}.site-header nav>a:first-child{display:none}.nav-contact{padding:8px 11px}.nav-contact span{margin-left:7px}.hero{height:86svh;min-height:570px;max-height:850px}.hero-topline{top:99px;font-size:8px}.hero h1{font-size:76px;white-space:normal}.hero-image{object-position:57% center}.hero-content{bottom:37px}.hero-content .eyebrow{font-size:9px;max-width:22ch}.hero-bottom{margin-top:25px}.hero-bottom p{font-size:12px}.round-link{gap:12px;font-size:11px}.circle{width:40px;height:40px}.image-index{top:41%;font-size:9px}.section-pad{padding:58px 6%}.section-label{margin-bottom:35px;font-size:9px}h2{font-size:48px}.intro-copy,.treatment-intro{grid-template-columns:1fr;gap:27px}.intro-aside,.treatment-intro>div{justify-self:start;max-width:440px}.intro-aside p{font-size:13px}.gallery{gap:6%;grid-template-columns:1.25fr 1fr;margin-top:38px}.gallery-wide{margin-top:50px}.gallery-wide .photo-button{aspect-ratio:3/4}.gallery-wide img{object-position:40% center}figcaption{font-size:8px;gap:8px;line-height:1.5}.photo-expand{bottom:10px;right:10px;width:30px;height:30px}.room-scene{height:70svh;min-height:460px;max-height:720px}.room-copy{top:24%}.room-copy h2{font-size:82px}.room-scene>img{object-position:56% center}.room-copy .eyebrow{font-size:9px}.room-caption{font-size:8px;bottom:25px}.availability-layout,.contact-layout,.faq-layout{grid-template-columns:1fr;gap:35px}.availability-copy>p{max-width:42ch}.calendar{max-width:500px;width:100%;padding:24px;justify-self:center}.calendar-days{grid-template-rows:repeat(6,42px)}.contact-copy h2{font-size:48px}.contact-copy>p{max-width:38ch}.form-row{gap:20px}.form-bottom{gap:12px}.solid-button{padding:11px 18px;font-size:11px}.visit-heading{align-items:start;flex-direction:column;gap:28px}.address{display:block}.map-wrap{margin-top:35px;height:320px}.faq h2{font-size:45px}.faq-layout{gap:18px}summary{font-size:13px}.site-footer{padding-top:0;padding-bottom:25px}.footer-wordmark{font-size:49px}.footer-top{padding:35px 0}.footer-bottom{font-size:8px;gap:12px}.photo-dialog img{max-width:94vw}.photo-dialog{max-width:94vw}}
@media(max-width:390px){.wordmark-name{display:none}.site-header nav{gap:13px}.hero h1{font-size:62px}.hero{min-height:540px}.hero-bottom p{font-size:11px}.round-link{gap:8px}.round-link>span:first-child{max-width:5ch}.intro h2,h2,.contact-copy h2{font-size:42px}.calendar{padding:18px}.form-row{grid-template-columns:1fr;gap:24px}.footer-wordmark{font-size:42px}.footer-bottom>span:nth-child(2){display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready .reveal:not(.is-visible){opacity:1;transform:none}.hero-image{transform:none!important}}

/* Treatment categories share the site's existing disclosure pattern. */
.treatment-category { border-bottom: 1px solid #bbc0b2; scroll-margin-top: 24px; }
.treatment-category:first-child { border-top: 1px solid #bbc0b2; }
.treatment-category > summary { padding: 25px 0; color: var(--ink); }
.treatment-category > summary h3 { margin: 0; font-size: 25px; font-weight: 400; }
.treatment-category > summary > span { color: #626d55; width: 28px; text-align: center; flex-shrink: 0; }
.treatment-category > summary:hover h3 { color: #596549; }
.treatment-category > summary:focus-visible { outline-color: #626d55; outline-offset: 3px; }
.treatment-category .treatment-item { display: grid; grid-template-columns: 1fr 1fr; gap: 12%; margin: 0 0 0 24px; padding: 24px 0; border-top: 1px solid #d5d8ce; }
.treatment-item h4 { font-size: 17px; font-weight: 500; line-height: 1.5; margin: 0; }
.treatment-item .treatment-note { color: #606658; font-size: 12px; line-height: 1.7; margin-top: 6px; padding: 0; max-width: 34ch; }
.treatment-options { margin: 0; min-width: 0; }
.treatment-option { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 9px 0; border-bottom: 1px solid #dde0d5; font-size: 14px; }
.treatment-option:first-child { padding-top: 0; }
.treatment-option:last-child { border-bottom: 0; padding-bottom: 0; }
.treatment-option dt { color: #525b49; }
.treatment-option dt small { display: block; font-size: 11px; line-height: 1.6; margin-top: 2px; }
.treatment-option dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; white-space: nowrap; }
.menu-fallback { margin-top: 30px; font-size: 14px; }
@media(max-width:760px) {
  .site-header .nav-availability { display: none; }
  .treatment-category > summary { padding: 22px 0; }
  .treatment-category > summary h3 { font-size: 22px; }
  .treatment-category .treatment-item { grid-template-columns: 1fr; gap: 14px; margin-left: 0; padding: 22px 0; }
  .treatment-item h4 { font-size: 16px; }
  .treatment-option { font-size: 13px; }
  #treatment-list:not(:empty) { margin-top: 35px; }
}
