@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('assets/fonts/cormorant-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Manrope;src:url('assets/fonts/manrope.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--background:#101010;--secondary:#191919;--surface:#242424;--text:#f4f0e8;--muted:#a9a39a;--accent:#c0a071;--line:rgba(192,160,113,.22);--serif:Cormorant,Georgia,serif;--sans:Manrope,Arial,sans-serif;--gutter:clamp(24px,5.3vw,88px);color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;background:var(--background);color:var(--text);font:400 14px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
body.modal-open{overflow:hidden}
::selection{background:var(--accent);color:var(--background)}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;border-radius:0;background:transparent}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:disabled{cursor:not-allowed;opacity:.65}
:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
img{display:block;max-width:100%;object-fit:cover}
svg{display:block;width:24px;height:24px;flex-shrink:0}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05}
h2{font-size:clamp(44px,4.6vw,70px);letter-spacing:-.025em}
h3{font-size:32px;letter-spacing:-.02em}
em{font-weight:400;color:var(--accent)}
p{color:var(--muted)}
.container{width:100%;max-width:1600px;margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:94px}
.eyebrow{font:400 10px/1.5 var(--sans);letter-spacing:.21em;text-transform:uppercase;color:var(--accent)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:27px;min-height:54px;padding:15px 28px;background:var(--accent);color:var(--background);font-size:12px;line-height:1.4;letter-spacing:.04em;border:1px solid var(--accent);border-radius:2px;transition:background .22s,border-color .22s,box-shadow .22s}
.button:hover{background:var(--text);border-color:var(--text);box-shadow:0 3px 18px rgba(0,0,0,.12)}
.button svg{width:20px;height:20px;transition:transform .25s}
.button:hover svg,.text-link:hover svg{transform:translateX(4px)}
.button-small{min-height:46px;padding:12px 20px;gap:24px;font-size:11px}
.text-link{display:inline-flex;align-items:center;gap:22px;min-height:44px;font-size:11px;line-height:1.6;letter-spacing:.02em;color:var(--text);padding:10px 0;border-bottom:1px solid var(--accent)}
.text-link svg{width:21px;height:21px;color:var(--accent);transition:transform .25s}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;flex-shrink:0;border:1px solid var(--line);border-radius:2px;transition:background .25s,border-color .25s}
.icon-button:hover{background:var(--surface);border-color:var(--accent)}
.plain-button{padding:0;min-height:36px;text-decoration:underline;text-underline-offset:4px}
.fine-print{font-size:11px;line-height:1.9;color:var(--muted)}
.skip-link{position:fixed;left:20px;top:-100px;background:var(--text);color:var(--background);padding:12px 20px;z-index:100}
.skip-link:focus{top:15px}
.site-header{position:fixed;inset:0 0 auto;z-index:30;border-bottom:1px solid rgba(244,240,232,.15);transition:background .3s,border-color .3s}
.site-header.scrolled{background:rgba(16,16,16,.98);border-color:var(--line)}
.header-inner{height:96px;max-width:1600px;margin:auto;padding-inline:var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0}
.brand-lockup{display:block}.brand-top{display:flex;align-items:flex-start;gap:8px}
.brand-name{display:block;font:400 27px/1 var(--serif);letter-spacing:.1em;white-space:nowrap}
.brand-copyright{font-size:8px;line-height:1.1;letter-spacing:.03em;color:var(--accent);padding-top:1px;white-space:nowrap}
.brand-subtitle{display:block;margin-top:8px;font-size:7px;line-height:1;letter-spacing:.24em}
.brand-mark{height:42px;width:auto;max-width:150px}
.desktop-nav{display:flex;gap:35px}
.desktop-nav a{font-size:11px;letter-spacing:.04em;position:relative;padding-block:16px}
.desktop-nav a::after{content:'';position:absolute;bottom:7px;left:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after{transform:scaleX(1)}
.desktop-nav a[aria-current]{color:var(--accent)}
.header-book{min-height:46px;padding:12px 24px;gap:22px;font-size:12px}
.header-actions{display:flex;align-items:center;gap:16px}
.menu-toggle{display:none;width:44px;height:44px;padding:0;align-items:center;justify-content:center}
.menu-lines{width:22px;height:9px;border-block:1px solid var(--text)}
.hero{height:100svh;min-height:720px;max-height:1200px;position:relative;isolation:isolate;display:flex;align-items:center;background:#1a1713}
.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.hero-image{object-position:65% center}
.hero-shade{z-index:-1;background:linear-gradient(90deg,rgba(10,10,10,.65) 0%,rgba(10,10,10,.25) 47%,rgba(10,10,10,.02) 80%),linear-gradient(0deg,rgba(10,10,10,.65),transparent 32%)}
.hero-content{padding-top:84px;padding-bottom:80px}
.hero-content>.eyebrow{margin-bottom:28px;letter-spacing:.27em;display:flex;align-items:center;gap:16px}
.hero-content>.eyebrow::before{content:'';width:34px;height:1px;background:var(--accent)}
.hero h1{font-size:clamp(80px,9.4vw,150px);line-height:.96;letter-spacing:-.045em}
.hero h1 span,.hero h1 em{display:block}
.hero h1 em{font-size:.82em;margin-top:12px;white-space:nowrap}
.hero-description{margin-top:30px;max-width:350px;line-height:1.9;font-size:14px;color:var(--text)}
.hero-actions{display:flex;align-items:center;gap:32px;margin-top:32px}
.hero-actions .button{min-width:184px}
.hero-actions .text-link{border:0;gap:18px;font-size:12px}
.hero-bottom{position:absolute;bottom:28px;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.19em;color:var(--text)}
.scroll-link{display:flex;align-items:center;gap:24px;min-height:44px;letter-spacing:.04em;font-size:11px}
.scroll-link span{font-size:24px;color:var(--accent)}
.about-brief{padding-block:76px;display:grid;grid-template-columns:.8fr 1.35fr;gap:clamp(50px,9vw,150px);align-items:center}
.about-brief h2{font-size:clamp(40px,3.8vw,58px);margin-top:20px}
.about-brief>p{font-size:16px;line-height:1.95;max-width:590px;color:var(--text)}
.services{background:var(--secondary);border-block:1px solid var(--line)}
.services-layout,.contact-layout{display:grid;grid-template-columns:.8fr 1.35fr;gap:clamp(50px,9vw,150px)}
.section-intro h2{margin-block:25px}
.section-intro>p:not(.eyebrow){max-width:310px;font-size:13px;line-height:1.9}
.section-intro .fine-print{font-size:11px!important;margin-top:34px;max-width:275px!important}
.service-row{display:flex;gap:22px;padding-block:23px;border-top:1px solid var(--line);align-items:center}
.service-row:last-child{border-bottom:1px solid var(--line)}
.service-description{flex:1}
.service-description h3{font-size:31px;line-height:1.2}
.service-description p{max-width:330px;font-size:12px;line-height:1.85;margin-top:8px}
.service-description small{font-size:11px;color:var(--muted)}
.service-end{display:flex;align-items:center;gap:20px}
.service-price{font-size:10px;color:var(--muted);white-space:nowrap}
.service-end .icon-button{color:var(--accent);border:0}
.service-row:hover .service-end .icon-button{background:var(--surface)}
.contact-layout{align-items:start}
.locations-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}
.location{border-top:1px solid var(--line);padding-top:25px}
.location h3{font-size:34px;margin-block:17px}
.location-placeholder{font-size:12px;line-height:1.9;max-width:200px;min-height:48px}
.location address{font-style:normal;color:var(--muted);font-size:12px;line-height:2}
.location-hours{font-size:11px;margin-top:15px}
.location-hours p{display:flex;justify-content:space-between;gap:15px}
.location-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:25px}
.site-footer{background:#0b0b0b;border-top:1px solid var(--line);padding-block:38px 20px}
.footer-top{display:flex;align-items:center;justify-content:space-between;gap:35px}
.footer-top .eyebrow{font-size:8px;letter-spacing:.2em}
.footer-credit{font:400 35px/1.2 var(--serif);color:var(--text);margin-top:9px}
.back-top{border:0;font-size:11px}
.back-top svg{transform:rotate(-90deg)}
.back-top:hover svg{transform:rotate(-90deg) translateX(4px)}
.footer-middle{display:flex;justify-content:space-between;margin-top:22px;gap:25px}
.footer-nav{display:flex;gap:28px;flex-wrap:wrap}
.footer-nav a,.footer-socials a{font-size:11px;min-height:44px;display:inline-flex;align-items:center}
.footer-nav a:hover,.footer-bottom a:hover{color:var(--accent)}
.footer-socials{display:flex;gap:25px}
.demo-notice{margin-top:8px}
.demo-notice p{font-size:10px;max-width:650px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;font-size:9px;color:var(--muted);margin-top:24px;padding-top:15px;position:relative}
.footer-bottom::before{content:'';position:absolute;top:0;left:var(--gutter);right:var(--gutter);border-top:1px solid var(--line)}
.footer-bottom small{font-size:9px}.footer-bottom>div{display:flex;gap:20px}
[hidden]{display:none!important}
dialog{background:var(--secondary);color:var(--text);border:1px solid var(--line);max-height:calc(100svh - 40px);overscroll-behavior:contain;box-shadow:0 20px 120px rgba(0,0,0,.45)}
dialog::backdrop{background:rgba(0,0,0,.82)}
dialog[open]{animation:dialog-in .2s ease-out}
.dialog-close{position:absolute;right:18px;top:18px;border:0;z-index:2}
.booking-dialog,.privacy-dialog{width:min(610px,calc(100% - 36px));padding:54px 40px 34px}
.booking-dialog h2,.privacy-dialog h2{font-size:49px;margin-block:20px}
.booking-dialog>p:not(.eyebrow),.privacy-dialog>p:not(.eyebrow){font-size:13px}
.booking-context{color:var(--text);margin-top:16px}
.booking-context:empty{display:none}
.booking-locations{display:grid;gap:12px;margin-top:26px}
.booking-location{position:relative;text-align:left;border:1px solid var(--line);padding:19px 60px 19px 22px;border-radius:2px;transition:border-color .2s,background .2s}
.booking-location>.eyebrow{font-size:9px;display:block}
.booking-location strong{font:400 28px/1.3 var(--serif);display:block;margin-top:5px}
.booking-location>svg{position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--accent)}
.booking-location:hover,.booking-location[aria-pressed=true]{border-color:var(--accent);background:var(--surface)}
.booking-detail{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;font-size:12px}
.booking-detail h3{font-size:27px;margin-bottom:12px}
.booking-detail p{margin-top:7px}.booking-detail .button{margin-top:18px}
.booking-unavailable{color:var(--text);line-height:1.85}
.booking-disclaimer{font-size:11px!important;margin-top:23px;padding-top:17px;border-top:1px solid var(--line)}
.mobile-menu{margin:0 0 0 auto;max-height:100svh;height:100svh;width:min(450px,100%);border:0;border-left:1px solid var(--line);padding:26px}
.mobile-menu-head{display:flex;justify-content:space-between;align-items:center;gap:15px}
.mobile-menu .mobile-nav{display:flex;flex-direction:column;margin-block:42px}
.mobile-nav a{font-family:var(--serif);font-size:39px;line-height:1.8;border-bottom:1px solid var(--line)}
.mobile-menu>.button{width:100%;margin-bottom:26px}
.mobile-menu>.eyebrow{font-size:8px}
.noscript-notice{padding:20px;background:var(--surface);text-align:center}
.reveal-ready{opacity:0;transform:translateY(12px);transition:opacity .6s ease,transform .6s ease}
.reveal-ready.is-visible{opacity:1;transform:none}
@keyframes dialog-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero-bottom{left:50%;right:auto;transform:translateX(-50%)}}
@media(max-width:1100px){.section{padding-block:80px}.desktop-nav{gap:25px}.header-inner{gap:22px}.hero{min-height:680px}.hero h1{font-size:10vw}.hero h1 em{font-size:.8em}.services-layout,.contact-layout,.about-brief{grid-template-columns:.8fr 1.2fr;gap:50px}.service-row{gap:16px}.service-end{gap:10px}.service-price{font-size:9px}.service-description h3{font-size:29px}.locations-grid{gap:25px}.location h3{font-size:30px}.footer-bottom{flex-wrap:wrap}.footer-bottom>span{width:100%}}
@media(max-width:850px){.desktop-nav{display:none}.menu-toggle{display:flex}.header-inner{height:82px}.hero-image{object-position:61% center}.hero h1{font-size:12vw}.hero h1 em{font-size:.76em}.hero-content{padding-top:95px}.hero-actions{gap:25px}.about-brief{gap:45px;grid-template-columns:.8fr 1.2fr;padding-block:60px}.about-brief>p{font-size:14px}.services-layout,.contact-layout{grid-template-columns:1fr;gap:35px}.section-intro h2{font-size:56px}.section-intro>p:not(.eyebrow){max-width:500px}.section-intro .fine-print{margin-top:20px;max-width:450px!important}.service-description p{max-width:100%}.service-end{gap:25px}.service-price{font-size:10px}.locations-grid{gap:40px}.location-placeholder{max-width:100%;min-height:0}.location h3{font-size:34px}.location-links{margin-top:22px}}
@media(max-width:600px){:root{--gutter:24px}html{scroll-padding-top:78px}.section{padding-block:64px}.header-inner{height:78px;gap:12px}.brand-name{font-size:23px;letter-spacing:.07em}.brand-copyright{font-size:6px;padding-top:2px}.brand-top{gap:5px}.brand-subtitle{font-size:6px;letter-spacing:.19em;margin-top:7px}.header-actions{gap:10px}.header-book{min-height:44px;padding:11px 16px;font-size:11px;gap:0}.header-book svg{display:none}.menu-toggle{width:36px}.hero{height:100svh;min-height:730px;max-height:1000px;align-items:flex-end}.hero-image{object-position:72% center}.hero-shade{background:linear-gradient(0deg,rgba(10,10,10,.95),rgba(10,10,10,.72) 38%,rgba(10,10,10,.16) 78%,rgba(10,10,10,.25))}.hero-content{padding-top:240px;padding-bottom:108px}.hero-content>.eyebrow{font-size:8px;letter-spacing:.19em;margin-bottom:22px;gap:12px}.hero-content>.eyebrow::before{width:26px}.hero h1{font-size:clamp(66px,18vw,98px);line-height:.96;letter-spacing:-.04em}.hero h1 em{font-size:.70em;margin-top:11px;letter-spacing:-.045em}.hero-description{font-size:13px;line-height:1.85;margin-top:23px}.hero-actions{margin-top:26px;gap:15px;flex-direction:column;align-items:flex-start}.hero-actions .button{min-width:185px;min-height:52px;font-size:12px;padding:14px 24px;gap:34px}.hero-actions .text-link{font-size:11px;min-height:40px;padding-block:6px}.hero-bottom{bottom:22px;font-size:8px;letter-spacing:.12em;gap:18px}.scroll-link{font-size:0;gap:0}.scroll-link span{font-size:26px}.about-brief{padding-block:50px;grid-template-columns:1fr;gap:25px}.about-brief h2{font-size:44px;margin-top:18px}.about-brief h2 br{display:none}.about-brief h2 br::after{content:' '}.about-brief>p{font-size:14px;line-height:1.9}.section-intro h2{font-size:50px;margin-block:21px}.section-intro>p:not(.eyebrow){font-size:13px}.section-intro .fine-print{font-size:10px!important;margin-top:20px}.service-row{padding-block:22px;gap:14px}.service-description h3{font-size:29px}.service-description p{font-size:12px;max-width:225px;line-height:1.75}.service-end{flex-direction:column;gap:5px;align-items:flex-end;max-width:73px}.service-price{font-size:9px;line-height:1.7;white-space:normal;text-align:right}.service-end .icon-button{width:44px;height:44px}.locations-grid{grid-template-columns:1fr;gap:33px}.location{padding-top:23px}.location h3{margin-block:13px}.location-placeholder{font-size:12px}.location-links{margin-top:20px}.footer-top{gap:20px}.footer-credit{font-size:29px}.footer-top .eyebrow{font-size:7px;max-width:220px}.back-top{font-size:10px;gap:10px}.footer-middle{margin-top:20px;flex-direction:column;gap:10px}.footer-nav{gap:25px}.footer-nav a{font-size:11px}.demo-notice p{font-size:10px;line-height:1.9}.footer-bottom{font-size:9px;gap:10px}.footer-bottom small{font-size:9px}.footer-bottom>span{font-size:9px}.booking-dialog,.privacy-dialog{padding:54px 24px 27px}.booking-dialog h2,.privacy-dialog h2{font-size:43px}.booking-dialog>p:not(.eyebrow),.privacy-dialog>p:not(.eyebrow){font-size:12px}.booking-location{padding:17px 50px 17px 17px}.booking-location strong{font-size:27px}.dialog-close{top:9px;right:9px}.mobile-menu{padding:24px}.mobile-nav a{font-size:36px}}
@media(max-width:360px){:root{--gutter:19px}.header-actions{gap:5px}.brand-name{font-size:21px}.brand-copyright{font-size:6px}.brand-subtitle{font-size:5.5px}.header-book{padding-inline:13px}.hero h1{font-size:19vw}.hero h1 em{font-size:.69em}.hero-content>.eyebrow{font-size:7px}.hero-bottom{font-size:7px}.about-brief h2{font-size:38px}.service-description h3{font-size:25px}.service-description p{font-size:11px}.service-price{font-size:8px}.service-row{gap:10px}.footer-credit{font-size:26px}.footer-top .eyebrow{font-size:6px}.back-top{gap:6px;font-size:9px}}
@media(max-width:600px) and (max-height:700px){.hero{min-height:640px}.hero-content{padding-top:175px;padding-bottom:90px}.hero-content>.eyebrow{margin-bottom:18px}.hero-description{margin-top:17px}.hero-actions{margin-top:20px}.hero-bottom{bottom:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none}}

/* Public demo context and readable supporting text. */
.demo-indicator{margin-bottom:24px;display:inline-flex;align-items:center;gap:12px;min-height:36px;padding:6px 12px;border:1px solid var(--line);background:rgba(16,16,16,.78);color:var(--text);font-size:12px;line-height:1.5;z-index:1}
.demo-indicator:hover{border-color:var(--accent);color:var(--accent)}
.desktop-nav a{font-size:13px}
.fine-print,.section-intro .fine-print{font-size:12px!important}
.footer-top .eyebrow{font-size:10px}.demo-notice p,.footer-bottom,.footer-bottom small,.footer-bottom>span{font-size:11px}
.footer-credit a:hover{text-decoration:underline;text-underline-offset:6px}
@media(max-width:600px){.demo-indicator{margin-bottom:20px;font-size:11px;min-height:34px}.footer-top .eyebrow{font-size:9px}.footer-top{align-items:flex-start}.footer-bottom{gap:14px}}
