:root{--brown:#2b1b15;--brown-soft:#3a261d;--coffee:#50392b;--cream:#eee1ce;--cream-light:#f4eadb;--sand:#e6d3b9;--gold:#d3aa6b;--gold-light:#ebcf9c;--ink:#36251d;--muted:#75675b}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream-light);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;-webkit-font-smoothing:antialiased}
button,a{ -webkit-tap-highlight-color:transparent }
a{color:inherit;text-decoration:none}
button{font:inherit}
img{max-width:100%;display:block}
h1,h2,h3,p,figure{margin-top:0}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;font-weight:400}
em{font-weight:400}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.shell{width:min(100% - 80px,1260px);margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:20px;z-index:1000;background:#fff;padding:12px 16px}.skip-link:focus{top:10px}
.site-header{height:90px;background:var(--brown);color:#f8ecdb;position:relative;z-index:20;border-bottom:1px solid rgba(229,196,152,.18)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:25px}
.brand,.footer-brand{display:inline-flex;align-items:center;gap:13px;white-space:nowrap}
.brand-symbol,.footer-brand>span:first-child{font-size:42px;line-height:1;color:var(--gold);font-weight:400}
.brand strong,.footer-brand>span:last-child{display:block;font-size:15px;letter-spacing:.19em;font-weight:700;line-height:1.2}
.brand small,.footer-brand small{display:block;color:#d2b48d;font-size:9px;letter-spacing:.3em;margin-top:6px;font-weight:500}
.primary-nav{display:flex;align-items:center;gap:34px;font-size:12px;font-weight:600}
.primary-nav>a:not(.nav-book){transition:color .2s}
.primary-nav>a:not(.nav-book):hover{color:var(--gold-light)}
.nav-book{display:inline-flex;align-items:center;gap:34px;border:1px solid rgba(226,186,126,.55);padding:15px 18px;color:var(--gold-light);transition:background .2s,color .2s}
.nav-book:hover{background:var(--gold);color:var(--brown)}
.menu-toggle{display:none}
.hero{background:var(--brown);color:#fff5e8;position:relative;overflow:hidden;isolation:isolate}
.hero-motif{position:absolute;left:-250px;top:25px;width:570px;opacity:.1;pointer-events:none;z-index:-1}
.hero-motif img{width:100%;animation:drift 80s linear infinite}
@keyframes drift{to{transform:rotate(360deg)}}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.86fr);gap:clamp(42px,6vw,100px);min-height:680px;align-items:center}
.hero-copy{padding:78px 0 75px;position:relative;z-index:1}
.eyebrow{font-size:10px;letter-spacing:.21em;font-weight:700;color:#a17648;display:flex;align-items:center;gap:13px;margin-bottom:23px}
.eyebrow-light{color:var(--gold-light)}
.eyebrow-rule{display:block;width:34px;height:1px;background:currentColor}
.hero h1{font-size:clamp(64px,7vw,106px);line-height:1.06;letter-spacing:-.056em;max-width:660px;margin:0 0 29px}
.hero h1 em,.visit-copy h2 em,.art-copy h2 em{color:var(--gold-light)}
.hero-copy>p:not(.eyebrow){max-width:520px;color:#d5c8bb;font-size:16px;line-height:1.8;margin:0}
.hero-actions,.visit-actions{display:flex;align-items:center;flex-wrap:wrap;gap:28px;margin-top:37px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;min-height:53px;padding:0 22px;font-size:12px;font-weight:700;transition:background .2s,transform .2s}
.button:hover{transform:translateY(-2px)}
.button-gold{background:var(--gold);color:var(--brown)}
.button-gold:hover{background:var(--gold-light)}
.under-link{display:inline-flex;gap:34px;align-items:center;border-bottom:1px solid #a97b4c;padding-bottom:8px;font-size:12px;font-weight:700;color:var(--coffee)}
.under-link:hover{color:#a06e3d}
.under-link-light{color:#f4e1c8;border-color:#ba9362}
.under-link-light:hover{color:#fff}
.hero-address{display:flex;gap:13px;align-items:flex-start;color:#bfae9a;text-transform:uppercase;font-size:9px;line-height:1.8;letter-spacing:.13em;margin-top:88px}
.tiny-star{font-size:14px;color:var(--gold)}
.hero-photo{height:560px;width:100%;position:relative;overflow:hidden;margin:0;align-self:end;margin-bottom:59px;background:#715749}
.hero-photo:after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(22,14,11,.52));pointer-events:none}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero-photo figcaption{position:absolute;z-index:1;bottom:23px;left:27px;right:27px;display:flex;justify-content:space-between;gap:10px;color:#fff8ed;font-size:9px;font-weight:700;letter-spacing:.16em}
.promise-bar{background:#d8bc92;color:#3b2a20;min-height:70px;display:flex;align-items:center;justify-content:center;gap:clamp(20px,4vw,70px);font-size:10px;letter-spacing:.17em;font-weight:700}
.promise-icon{font-size:24px;line-height:1;color:#977248;font-weight:400}
.welcome-section{display:grid;grid-template-columns:1.03fr 1fr;gap:clamp(70px,8vw,130px);align-items:center;padding-block:96px}
.welcome-media{height:480px;position:relative;background:var(--sand)}
.welcome-media img{height:100%;width:100%;object-fit:cover;object-position:50% 50%}
.image-label{position:absolute;bottom:0;left:0;background:var(--cream-light);color:#806146;padding:17px 22px 0 0;font-size:9px;letter-spacing:.18em;font-weight:700}
.welcome-copy h2,.section-heading h2,.space-heading h2,.walkthrough-copy h2,.visit-copy h2,.art-copy h2{font-size:clamp(46px,4.9vw,73px);letter-spacing:-.05em;line-height:1.18;margin-bottom:26px}
.welcome-copy h2 em,.section-heading h2 em,.space-heading h2 em,.walkthrough-copy h2 em{color:#98724b}
.welcome-copy>p:not(.eyebrow){max-width:490px;color:var(--muted);line-height:1.84;font-size:14px;margin-bottom:17px}
.welcome-copy .under-link{margin-top:20px}
.treatments-section{background:var(--cream);padding:108px 0 105px}
.section-heading{text-align:center;max-width:620px;margin:0 auto 68px}
.section-heading .eyebrow{justify-content:center}
.section-heading h2{margin-bottom:18px}
.section-heading>p:last-child{color:var(--muted);font-size:14px;line-height:1.75;margin-bottom:0}
.treatment-columns{display:grid;grid-template-columns:1fr 1fr;gap:55px 70px}
.treatment-group{min-width:0}
.treatment-group h3{font-size:29px;margin:0 0 17px;padding-bottom:15px;border-bottom:1px solid #bba98f;display:flex;justify-content:space-between;align-items:baseline;gap:15px}
.treatment-group h3 span{font:700 10px "DM Sans",Arial,sans-serif;color:#a78963;letter-spacing:.15em}
.treatment-row{border-bottom:1px solid #d9cbb7;min-height:81px;display:flex;align-items:center;justify-content:space-between;gap:18px;transition:padding .2s,color .2s}
.treatment-row:hover{padding-left:8px;color:#9a6837}
.treatment-row strong{font-size:13px;display:block;font-weight:700;margin-bottom:5px}
.treatment-row small{display:block;font-size:11px;color:#8a7b6c;line-height:1.35}
.treatment-row b{font-size:11px;white-space:nowrap;color:#795c3e;font-weight:700}
.treatment-row i{font-style:normal;font-size:16px;margin-left:9px}
.treatment-note{padding:29px 35px 30px;background:#e2d0b5;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:295px}
.note-ornament{font-size:32px;color:#8d673e}
.treatment-note p{font:400 24px/1.4 "Playfair Display",Georgia,serif;max-width:390px;margin:16px 0 23px}
.treatment-note .under-link{font-size:11px}
.booking-note{font-size:11px;color:#827363;text-align:center;margin:54px 0 0;line-height:1.7}
.booking-note a{text-decoration:underline;text-underline-offset:3px;color:#5e4530}
.art-section{background:#342118;color:#f8ecd9;overflow:hidden}
.art-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(60px,8vw,135px);align-items:center;min-height:530px}
.art-photo{height:530px;overflow:hidden}
.art-photo img{width:100%;height:100%;object-fit:cover;object-position:center}
.art-copy{padding:80px 0}
.art-copy h2{max-width:540px}
.art-copy>p:not(.eyebrow){color:#d2c0b0;max-width:430px;line-height:1.8;font-size:14px}
.art-divider{display:flex;align-items:center;gap:15px;color:var(--gold);margin-top:45px}
.art-divider:after{content:"";width:100px;height:1px;background:#785e46}
.space-section{background:var(--cream-light);padding:120px 0}
.space-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:39px}
.space-heading h2{margin-bottom:0}
.space-heading>p{max-width:335px;margin:0 0 6px;color:var(--muted);font-size:14px;line-height:1.8}
.gallery-grid{display:grid;grid-template-columns:1.3fr .85fr .85fr;grid-template-rows:250px 250px;gap:13px}
.gallery-item{border:0;background:#d9c8af;padding:0;position:relative;overflow:hidden;cursor:zoom-in;text-align:left}
.gallery-main{grid-row:span 2}
.gallery-item:nth-child(4){grid-column:span 2}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease,filter .6s ease}
.gallery-main img{object-position:center 45%}
.gallery-item:nth-child(2) img{object-position:center 63%}
.gallery-item:nth-child(4) img{object-position:center 60%}
.gallery-item:hover img{transform:scale(1.04);filter:saturate(1.05)}
.gallery-item:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(29,20,15,.65))}
.gallery-caption{position:absolute;z-index:1;bottom:21px;left:21px;color:#fff6e8;font-size:10px;font-weight:700;letter-spacing:.1em}
.gallery-zoom{position:absolute;z-index:1;right:16px;bottom:16px;width:34px;height:34px;display:grid;place-items:center;background:rgba(255,246,231,.95);color:var(--brown);font-size:19px}
.gallery-dialog{border:0;padding:15px;background:var(--cream-light);max-width:min(1000px,92vw);max-height:90vh;box-shadow:0 25px 70px rgba(0,0,0,.4)}
.gallery-dialog::backdrop{background:rgba(24,15,11,.88)}
.gallery-dialog img{max-height:calc(90vh - 92px);max-width:100%;object-fit:contain;margin:auto}
.gallery-dialog p{font-size:12px;color:var(--muted);margin:12px 3px 0}
.gallery-close{position:absolute;top:21px;right:21px;width:36px;height:36px;border:0;background:var(--cream-light);color:var(--brown);font-size:28px;cursor:pointer;z-index:2}
.walkthrough-section{background:#e9dac5;padding:110px 0}
.walkthrough-grid{display:grid;grid-template-columns:1fr .8fr;gap:clamp(70px,9vw,145px);align-items:center}
.walkthrough-copy{max-width:555px}
.walkthrough-copy>p:not(.eyebrow):not(.walkthrough-small){max-width:490px;color:#6b5b4d;font-size:14px;line-height:1.8}
.walkthrough-line{display:block;width:110px;height:1px;background:#aa8c68;margin:63px 0 22px}
.walkthrough-small{font-size:10px;letter-spacing:.2em;font-weight:700;color:#90704f}
.video-frame{max-width:400px;width:100%;justify-self:center;padding:11px;background:#f8f0e5;box-shadow:20px 20px 0 #d6c2a4}
.video-frame video{width:100%;aspect-ratio:9/16;display:block;background:#38291f;object-fit:cover}
.visit-section{background:var(--brown);color:#f5e8d6;overflow:hidden}
.visit-grid{display:grid;grid-template-columns:1fr .78fr;gap:clamp(40px,6vw,100px);align-items:center;min-height:730px}
.visit-copy{padding-block:90px}
.visit-copy h2{max-width:640px}
.visit-copy>p:not(.eyebrow){font-size:14px;color:#d0bead;line-height:1.8;max-width:430px}
.visit-details{display:grid;grid-template-columns:1fr 1fr;gap:30px 25px;margin-top:40px;max-width:590px}
.visit-details span{display:block;color:var(--gold-light);font-size:9px;font-weight:700;letter-spacing:.2em;margin-bottom:10px}
.visit-details p,.visit-details address,.visit-details a{display:block;font-size:12px;line-height:1.8;color:#f3e7d8;font-style:normal;margin:0}
.visit-details a:hover{text-decoration:underline}
.visit-actions{margin-top:37px}
.visit-contact{grid-column:1/-1}
.visit-map{margin:0;border:1px solid rgba(226,187,133,.3);background:#ecdfcc;align-self:center}
.visit-map img{width:100%;height:auto;display:block}
.visit-map figcaption{padding:12px 15px;background:#38251b;color:#decbb7;font-size:10px;line-height:1.6}
.visit-map figcaption a{color:#f3d6a4;text-decoration:underline;text-underline-offset:3px}
.embedded-map-section{background:var(--brown);color:#f5e8d6;padding:10px 0 95px}
.embedded-map-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:25px}
.embedded-map-heading .eyebrow{margin-bottom:12px}
.embedded-map-heading h2{font-size:clamp(32px,3.5vw,48px);letter-spacing:-.045em;margin:0}
.embedded-map-section iframe{width:100%;height:410px;display:block;border:1px solid #7f674c;background:#e9dfd2}
.site-footer{background:#21150f;color:#e9d8c1;padding:60px 0 0}
.footer-inner{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:35px;align-items:start;padding-bottom:56px}
.footer-brand>span:last-child{font-size:14px}
.footer-inner>p{font-size:12px;color:#b8a796;line-height:1.7;margin:4px 0}
.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:15px 24px;font-size:11px}
.footer-links a:hover,.footer-bottom a:hover{color:var(--gold-light)}
.footer-bottom{border-top:1px solid #4b3527;display:flex;justify-content:space-between;gap:20px;padding:22px 0;font-size:10px;color:#aa9885}
.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.is-visible{opacity:1;transform:none}
@media(max-width:1050px){.primary-nav{gap:21px}.hero-grid{grid-template-columns:1fr .85fr}.hero h1{font-size:clamp(60px,7vw,85px)}.welcome-section{gap:55px}.gallery-grid{grid-template-rows:220px 220px}}
@media(max-width:850px){.shell{width:calc(100% - 48px)}.site-header{height:74px}.menu-toggle{width:42px;height:42px;border:1px solid #987a5b;background:transparent;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;z-index:22}.menu-toggle span{width:18px;height:1px;background:#f3e5d0;transition:transform .2s}.menu-open .menu-toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-open .menu-toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.primary-nav{display:none;position:absolute;top:74px;left:0;right:0;background:var(--brown);min-height:calc(100dvh - 74px);padding:30px 24px 60px;flex-direction:column;align-items:stretch;gap:0;box-shadow:0 30px 40px rgba(0,0,0,.2)}.menu-open .primary-nav{display:flex}.primary-nav>a:not(.nav-book){font:400 28px "Playfair Display",Georgia,serif;border-bottom:1px solid #614634;padding:18px 0}.nav-book{margin-top:30px;justify-content:space-between}.hero-grid{grid-template-columns:1fr 1fr;gap:25px;min-height:560px}.hero-copy{padding:60px 0}.hero-photo{height:460px;margin-bottom:48px}.hero h1{font-size:clamp(53px,7vw,70px)}.hero-address{margin-top:55px}.welcome-section{padding-block:90px;gap:45px}.welcome-media{height:430px}.art-grid{gap:50px;min-height:430px}.art-photo{height:430px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:340px 220px}.gallery-main{grid-row:auto;grid-column:span 2}.gallery-item:nth-child(4){grid-column:auto}.gallery-item:nth-child(3){display:none}.walkthrough-grid{gap:55px}.visit-grid{grid-template-columns:1fr .7fr;gap:40px}.visit-visual{height:430px}}
@media(max-width:620px){.shell{width:calc(100% - 38px)}.site-header{height:68px}.brand-symbol{font-size:34px}.brand strong{font-size:12px}.brand small{font-size:7px}.primary-nav{top:68px;min-height:calc(100dvh - 68px)}.hero-grid{display:flex;flex-direction:column-reverse;align-items:stretch;gap:0}.hero-photo{height:420px;margin:0 -19px;width:calc(100% + 38px)}.hero-photo img{object-position:center 42%}.hero-photo figcaption{bottom:18px;left:20px;right:20px;font-size:8px}.hero-copy{padding:64px 0 62px}.hero h1{font-size:clamp(56px,14vw,76px);max-width:530px}.hero-copy>p:not(.eyebrow){font-size:14px}.hero-actions{gap:22px}.button{font-size:11px;min-height:51px;gap:25px}.hero-address{margin-top:56px}.hero-motif{width:360px;left:-130px;top:500px}.promise-bar{padding:16px 15px;gap:12px;flex-wrap:wrap;min-height:65px;font-size:8px;letter-spacing:.08em}.promise-icon{font-size:16px}.promise-bar span:last-child{display:none}.welcome-section{grid-template-columns:1fr;gap:44px;padding-block:77px}.welcome-media{height:360px}.welcome-copy h2,.section-heading h2,.space-heading h2,.walkthrough-copy h2,.visit-copy h2,.art-copy h2{font-size:clamp(43px,11vw,58px)}.welcome-copy>p:not(.eyebrow){font-size:13px}.eyebrow{font-size:9px;letter-spacing:.16em}.treatments-section{padding:77px 0}.section-heading{margin-bottom:45px}.section-heading>p:last-child{font-size:13px}.treatment-columns{grid-template-columns:1fr;gap:42px}.treatment-group h3{font-size:27px}.treatment-note{min-height:220px}.booking-note{margin-top:35px}.art-grid{grid-template-columns:1fr;gap:0}.art-photo{height:280px;margin:0 -19px}.art-copy{padding:65px 0 68px}.art-copy h2{margin-bottom:20px}.space-section{padding:79px 0}.space-heading{display:block}.space-heading>p{font-size:13px;margin-top:20px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:360px 200px;gap:8px}.gallery-caption{left:11px;bottom:15px;font-size:8px}.gallery-zoom{right:9px;bottom:9px;width:28px;height:28px;font-size:16px}.walkthrough-section{padding:78px 0 85px}.walkthrough-grid{grid-template-columns:1fr;gap:30px}.walkthrough-copy h2{margin-bottom:18px}.walkthrough-copy>p:not(.eyebrow):not(.walkthrough-small){font-size:13px}.walkthrough-line{margin:34px 0 16px}.video-frame{width:min(75%,330px);margin-top:10px}.visit-grid{grid-template-columns:1fr;gap:0}.visit-copy{padding:77px 0 60px}.visit-details{gap:24px 15px}.visit-visual{height:330px;margin:0 -19px}.visit-actions{gap:23px}.site-footer{padding-top:50px}.footer-inner{grid-template-columns:1fr;gap:20px;padding-bottom:38px}.footer-links{margin-top:10px}.footer-bottom{font-size:9px}.gallery-dialog{padding:10px}.gallery-close{top:15px;right:15px}}
@media(max-width:850px){.visit-grid{grid-template-columns:1fr .82fr;gap:30px}.visit-details{gap:23px 16px}.visit-copy h2{font-size:clamp(40px,5.7vw,60px)}}
@media(max-width:620px){.visit-grid{grid-template-columns:1fr}.visit-map{margin:0 -19px}.visit-details{grid-template-columns:1fr 1fr}.visit-details .visit-contact{grid-column:1/-1}.embedded-map-section{padding:60px 0 70px}.embedded-map-heading{display:block}.embedded-map-heading .under-link{margin-top:22px}.embedded-map-section iframe{height:350px}}

/* Cream grounds and a quiet pattern derived from the venue's gold Thai ornament. */
.space-section,.treatments-section{position:relative;isolation:isolate}
.space-section{background:var(--cream-light);padding:100px 0 105px}
.treatments-section{background:var(--cream);padding:105px 0 100px}
.space-section::before,.treatments-section::before{content:"";position:absolute;inset:0;background-image:url('assets/ornament.webp');background-repeat:repeat;background-size:440px 440px;opacity:.045;filter:grayscale(1) sepia(1);pointer-events:none}
.treatments-section::before{background-size:540px 540px;opacity:.028}
.space-section>.shell,.treatments-section>.shell{position:relative;z-index:1}
.space-heading{margin-bottom:38px}
.space-heading h2{font-size:clamp(44px,4.8vw,68px)}
.gallery-grid{display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:260px 260px 260px;gap:12px}
.gallery-item{grid-column:auto;grid-row:auto;display:block}
.gallery-item:nth-child(1){grid-column:1;grid-row:1 / span 2}
.gallery-item:nth-child(2){grid-column:2 / span 2;grid-row:1}
.gallery-item:nth-child(3){grid-column:2;grid-row:2}
.gallery-item:nth-child(4){grid-column:3;grid-row:2}
.gallery-item:nth-child(5){grid-column:1 / span 2;grid-row:3}
.gallery-item:nth-child(6){grid-column:3;grid-row:3}
.gallery-item:nth-child(2) img{object-position:center 55%}
.gallery-item:nth-child(5) img{object-position:center 47%}
.gallery-item:nth-child(6) img{object-position:center 48%}
.gallery-tour{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;margin-top:75px;padding:48px 8% 0;border-top:1px solid #d5c5af}
.gallery-tour h3{font-size:clamp(32px,3.3vw,50px);line-height:1.16;letter-spacing:-.045em;max-width:380px;margin:0}
.gallery-tour .video-frame{width:min(100%,250px);box-shadow:16px 16px 0 #ddc9ab}
.section-heading{margin-bottom:46px}
.section-heading h2{margin-bottom:10px}
.section-heading>p:last-child{font-size:13px}
.price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.price-card{background:#f7efe3;border:1px solid #d9c6aa;padding:29px 32px 28px;min-width:0}
.price-card h3{font-size:clamp(23px,2.3vw,31px);line-height:1.24;margin:0 0 22px;min-height:38px}
.price-labels,.price-row{display:grid;grid-template-columns:minmax(0,1fr) auto 22px;align-items:center;gap:15px}
.price-labels{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#917452;padding-bottom:11px;border-bottom:1px solid #cbb898}
.price-labels span:nth-child(2){grid-column:2}
.price-row{min-height:53px;border-bottom:1px solid #ddceb8;font-size:13px;color:#4a3427;transition:background .2s,padding .2s}
.price-row:last-child{border-bottom:0}
.price-row:hover{background:#eee0cb;padding-inline:8px}
.price-row strong{font-size:17px;color:#302017}
.price-row i{font-style:normal;font-size:17px;color:#9b7249;text-align:right}
.booking-note{margin:33px 0 0;font-size:11px}
@media(max-width:850px){.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:repeat(4,220px)}.gallery-item:nth-child(1){grid-column:1;grid-row:1 / span 2}.gallery-item:nth-child(2){grid-column:2;grid-row:1}.gallery-item:nth-child(3){grid-column:2;grid-row:2;display:block}.gallery-item:nth-child(4){grid-column:1;grid-row:3}.gallery-item:nth-child(5){grid-column:2;grid-row:3}.gallery-item:nth-child(6){grid-column:1 / span 2;grid-row:4}.gallery-tour{gap:35px;padding-inline:4%}.price-card{padding:24px}}
@media(max-width:620px){.hero h1{font-size:clamp(52px,12vw,70px)}.hero-address{margin-top:44px}.space-section{padding:76px 0 82px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:260px 190px 190px 190px;gap:8px}.gallery-caption{font-size:8px;letter-spacing:.02em;left:10px;right:32px}.gallery-tour{grid-template-columns:1fr;gap:28px;margin-top:56px;padding:36px 0 0}.gallery-tour .video-frame{width:min(72%,260px);justify-self:center}.treatments-section{padding:78px 0 83px}.price-grid{grid-template-columns:1fr;gap:12px}.price-card{padding:22px 24px 20px}.price-card h3{font-size:25px;min-height:0}.price-row{min-height:51px}.booking-note{margin-top:27px}}
@media(max-width:390px){.promise-bar{font-size:7px;gap:8px}.hero h1{font-size:52px}.hero-photo{height:360px}.treatment-row strong{font-size:12px}.treatment-row b{font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-motif img{animation:none}.js .reveal{opacity:1;transform:none;transition:none}.button,.gallery-item img,.treatment-row{transition:none}}

/* Three pastel interpretations of the spa's wall pieces repeat in a horizontal line. */
.motif-band{height:176px;background:#eee1ce url('assets/thai-trio-pattern.svg') repeat-x center / 660px 174px;border-bottom:1px solid #deceb5}
.space-section::before,.treatments-section::before{background-image:url('assets/thai-trio-pattern.svg');background-repeat:repeat;background-size:900px 238px;filter:none;opacity:.15}
.treatments-section::before{background-size:900px 238px;opacity:.12}
.price-card{background:rgba(248,240,226,.96)}
.price-labels,.price-row{grid-template-columns:minmax(0,1fr) auto}
.price-row{transition:none}
.price-row:hover{background:transparent;padding-inline:0}
.price-footer{display:flex;align-items:center;gap:24px;margin-top:35px;flex-wrap:wrap}
.button-brown{background:var(--brown);color:#f8eddc}
.button-brown:hover{background:#513729}
.price-footer .booking-note{margin:0;text-align:left;max-width:420px}
.gallery-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(275px,.8fr);gap:13px;align-items:stretch}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,252px);gap:13px}
.gallery-grid .gallery-item{grid-column:auto;grid-row:auto;display:block;min-width:0}
.gallery-grid .gallery-item:nth-child(1){grid-column:1;grid-row:1}
.gallery-grid .gallery-item:nth-child(2){grid-column:2;grid-row:1}
.gallery-grid .gallery-item:nth-child(3){grid-column:1;grid-row:2}
.gallery-grid .gallery-item:nth-child(4){grid-column:2;grid-row:2}
.gallery-tour{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;margin:0;padding:20px;background:#e4d2b8;border:1px solid #d7c3a5;text-align:center}
.gallery-tour h3{font-size:clamp(26px,2.8vw,38px);margin:0;max-width:320px}
.gallery-tour .eyebrow{margin-bottom:7px}
.gallery-tour .video-frame{width:min(100%,214px);margin:0;padding:6px;box-shadow:8px 8px 0 #cfb998}
.gallery-tour .video-frame video{width:100%;max-height:380px;aspect-ratio:9/16;object-fit:cover}
@media(max-width:950px){.gallery-layout{grid-template-columns:1fr}.gallery-grid{grid-template-rows:repeat(2,245px)}.gallery-tour{flex-direction:row;justify-content:space-around;text-align:left;min-height:330px}.gallery-tour .video-frame{width:min(34%,190px)}}
@media(max-width:620px){.motif-band{height:120px;background-size:440px 116px}.treatments-section,.space-section{padding-block:74px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,195px);gap:8px}.gallery-grid .gallery-item:nth-child(1),.gallery-grid .gallery-item:nth-child(2),.gallery-grid .gallery-item:nth-child(3),.gallery-grid .gallery-item:nth-child(4){grid-column:auto;grid-row:auto;display:block}.gallery-tour{flex-direction:column;text-align:center;gap:23px;padding:30px 18px;min-height:0}.gallery-tour .video-frame{width:min(72%,220px)}.price-footer{align-items:flex-start;flex-direction:column;gap:17px}.price-footer .booking-note{margin:0}}

/* Compact menu and a larger walkthrough beside the photo grid. */
.hero-grid{min-height:610px}
.hero-copy{padding-block:60px}
.hero-photo{height:500px;margin-bottom:45px}
.hero-address{margin-top:56px}
.motif-band{height:86px;background-size:430px 113px}
.treatments-section{padding:48px 0 65px}
.treatments-section::before{opacity:.08}
.space-section{padding:72px 0 80px}
.space-section::before{opacity:.07}
.section-heading{text-align:left;max-width:none;margin:0 0 30px}
.section-heading .eyebrow{justify-content:flex-start;margin-bottom:10px}
.section-heading h2{font-size:clamp(42px,4.4vw,62px);margin:0;line-height:1.12}
.price-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.price-card{min-height:174px;padding:22px 20px 21px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid #d8c7b0;background:rgba(249,242,232,.97)}
.price-card h3{font-size:clamp(20px,1.75vw,25px);line-height:1.23;min-height:0;margin:0 0 18px}
.price-choice{display:flex;align-items:flex-end;gap:12px}
.duration-field{min-width:0;flex:1}
.duration-field label,.duration-label,.chosen-price span{display:block;margin-bottom:7px;color:#8c7155;font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}
.duration-select{display:block;width:100%;height:41px;padding:0 10px;border:1px solid #cdb899;border-radius:0;background:#fffaf3;color:#3a291f;font:600 12px "DM Sans",Arial,sans-serif;cursor:pointer}
.duration-select:hover{border-color:#9e764f}
.duration-static{display:flex;align-items:center;height:41px;color:#3a291f;font-size:12px;font-weight:600}
.chosen-price{min-width:55px;text-align:right}
.chosen-price strong{display:block;min-height:41px;line-height:41px;white-space:nowrap;color:#38251a;font:600 25px/41px "Playfair Display",Georgia,serif}
.price-footer{margin-top:26px}
.price-footer .booking-note{font-size:11px;line-height:1.5}
.space-heading{margin-bottom:27px}
.space-heading h2{font-size:clamp(42px,4.4vw,62px);margin:0}
.gallery-layout{grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:14px}
.gallery-grid{grid-template-rows:repeat(2,240px);gap:12px}
.gallery-tour{flex-direction:row;justify-content:space-between;align-items:center;text-align:left;gap:18px;padding:16px 20px 16px 28px}
.gallery-tour h3{font-size:clamp(27px,2.7vw,36px);max-width:225px}
.gallery-tour .video-frame{flex:none;width:min(45%,265px);box-shadow:6px 6px 0 #cfb998}
.gallery-tour .video-frame video{max-height:none}
@media(max-width:1100px){.price-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.price-card{min-height:150px}}
@media(max-width:860px){.gallery-layout{grid-template-columns:1fr}.gallery-grid{grid-template-rows:repeat(2,225px)}.gallery-tour{min-height:440px;justify-content:center;gap:50px}.gallery-tour .video-frame{width:min(37%,245px)}}
@media(max-width:650px){.hero-grid{min-height:0}.hero-photo{height:420px;margin:0 -19px;width:calc(100% + 38px)}.hero-copy{padding:57px 0 60px}.hero-address{margin-top:44px}.motif-band{height:65px;background-size:325px 86px}.treatments-section{padding:38px 0 55px}.section-heading{margin-bottom:23px}.section-heading h2{font-size:clamp(38px,10vw,52px)}.price-grid{grid-template-columns:1fr;gap:9px}.price-card{min-height:126px;padding:18px 19px}.price-card h3{font-size:23px;margin-bottom:12px}.price-choice{gap:20px}.duration-select{max-width:230px}.space-section{padding:59px 0 65px}.gallery-grid{grid-template-rows:repeat(2,175px);gap:8px}.gallery-tour{min-height:0;flex-direction:column;gap:20px;padding:26px 16px;text-align:center}.gallery-tour h3{max-width:none}.gallery-tour .video-frame{width:min(75%,270px)}}

/* Inline gallery carousel and full-size walkthrough. */
.gallery-showcase{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;align-items:stretch}
.gallery-carousel{min-width:0;background:#e5d6c0;border:1px solid #d7c4a8}
.gallery-viewport{height:565px;position:relative;overflow:hidden;background:#c8b49b}
.gallery-slide{position:absolute;inset:0;margin:0;opacity:0;pointer-events:none;transition:opacity .7s ease}
.gallery-slide.is-active{opacity:1;z-index:1}
.gallery-slide img{width:100%;height:100%;object-fit:cover}
.gallery-slide::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(30,20,15,.62));pointer-events:none}
.gallery-slide figcaption{position:absolute;left:24px;bottom:24px;z-index:1;color:#fff8ee;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.gallery-controls{min-height:55px;padding:0 16px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#72563d}
.gallery-progress{font-size:10px;font-weight:700;letter-spacing:.16em;white-space:nowrap}
.gallery-dots,.gallery-arrows{display:flex;align-items:center;gap:8px}
.gallery-dots button{height:9px;width:9px;border:0;border-radius:50%;padding:0;background:#bfa98e;cursor:pointer}
.gallery-dots button.is-active{background:#765433;box-shadow:0 0 0 3px #ded0bc}
.gallery-arrows button{height:35px;width:35px;border:1px solid #cbb89c;background:transparent;color:#60442e;font-size:19px;line-height:1;cursor:pointer;transition:background .2s}
.gallery-arrows button:hover{background:#f6eddf}
.gallery-tour{min-width:0;min-height:620px;display:flex;flex-direction:row;justify-content:space-around;align-items:center;gap:20px;padding:19px 26px;background:#e4d1b7;text-align:left}
.gallery-tour-copy{min-width:0;max-width:225px}
.gallery-tour h3{font-size:clamp(29px,2.8vw,39px);line-height:1.15;margin:0 0 19px}
.gallery-tour-copy>p:last-child{font-size:12px;line-height:1.6;color:#725d49;margin:0}
.gallery-tour .video-frame{flex:none;width:min(52%,330px);max-width:none;margin:0;padding:6px;background:#fbf4e9;box-shadow:8px 8px 0 #cdb694}
.gallery-tour .video-frame video{display:block;width:100%;height:auto;max-height:none;aspect-ratio:9/16;object-fit:contain}
@media(max-width:860px){.gallery-showcase{grid-template-columns:1fr}.gallery-viewport{height:465px}.gallery-tour{min-height:580px;justify-content:center;gap:50px}.gallery-tour .video-frame{width:min(44%,310px)}}
@media(max-width:650px){.gallery-viewport{height:350px}.gallery-slide figcaption{left:16px;bottom:18px;font-size:9px}.gallery-controls{padding-inline:13px;gap:8px}.gallery-tour{min-height:0;flex-direction:column;gap:22px;padding:28px 16px;text-align:center}.gallery-tour-copy{max-width:none}.gallery-tour h3{margin-bottom:10px}.gallery-tour .video-frame{width:min(100%,350px)}}
@media(prefers-reduced-motion:reduce){.gallery-slide{transition:none}}
.gallery-track{display:flex;width:100%;height:100%;transform:translateX(0);transition:transform .72s ease;will-change:transform}
.gallery-track .gallery-slide,.gallery-track .gallery-slide.is-active{position:relative;inset:auto;flex:0 0 100%;height:100%;opacity:1;z-index:auto;pointer-events:auto;transition:none}
@media(prefers-reduced-motion:reduce){.gallery-track{transition:none}}

/* Keep the complete Thai motifs visible and give the walkthrough room to breathe. */
.motif-band{height:112px;background-position:center;background-size:400px 106px;border:0}
.treatments-section{padding-top:36px}
.gallery-showcase{grid-template-columns:minmax(0,.74fr) minmax(0,1.26fr);gap:17px}
.gallery-viewport{height:675px}
.gallery-tour{min-height:730px;gap:26px;padding:14px 23px 14px 31px;background:#dfcbb0}
.gallery-tour-copy{max-width:225px}
.gallery-tour h3{font-size:clamp(31px,3vw,42px);line-height:1.15;margin:0}
.gallery-tour .video-frame{width:min(55%,400px);padding:6px;box-shadow:10px 10px 0 #c9af8d}
@media(max-width:860px){.gallery-showcase{grid-template-columns:1fr}.gallery-viewport{height:485px}.gallery-tour{min-height:670px;gap:42px}.gallery-tour .video-frame{width:min(48%,350px)}}
@media(max-width:650px){.motif-band{height:88px;background-size:320px 84px}.treatments-section{padding-top:30px}.gallery-viewport{height:350px}.gallery-tour{min-height:0;gap:23px;padding:28px 16px}.gallery-tour .video-frame{width:min(100%,380px)}}

/* A quiet response to hover and keyboard focus keeps the price grid easy to scan. */
.price-card{transition:border-color .2s ease,background-color .2s ease}
.price-card:hover,.price-card:focus-within{border-color:#b7956c;background:#fbf5eb}
.duration-select:focus-visible{outline-color:#8a603b;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.price-card{transition:none}}
@media(max-width:850px){body.menu-open{overflow:hidden}.primary-nav{max-height:calc(100dvh - 74px);overflow-y:auto}}
@media(max-width:620px){.primary-nav{max-height:calc(100dvh - 68px)}}

/* Keep the native duration picker, with a quieter control and price response. */
.duration-select{appearance:none;-webkit-appearance:none;padding-right:36px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%23745836' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}
.duration-select:focus-visible{outline:none;border-color:#9e764f;box-shadow:0 0 0 3px rgba(158,118,79,.14)}
@keyframes price-reveal{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.chosen-price strong.price-updating{animation:price-reveal .24s cubic-bezier(.2,.7,.2,1) both}
.hero-phone{display:inline-flex;align-items:center;gap:9px;color:#f0ce97;font-size:12px;font-weight:700;letter-spacing:.045em;line-height:1.4;margin-top:11px;padding-bottom:4px;border-bottom:1px solid rgba(240,206,151,.62);transition:color .2s,border-color .2s}
.hero-phone:hover{color:#fff4df;border-color:#fff4df}
@media(forced-colors:active){.duration-select{appearance:auto;background-image:none}}
@media(prefers-reduced-motion:reduce){.duration-select,.hero-phone{transition:none}.chosen-price strong.price-updating{animation:none}}

/* A single lotus grows into the price heading, then stays still. */
.treatments-section .section-heading{position:relative;min-height:112px;padding-right:155px;display:flex;flex-direction:column;justify-content:center}
.lotus-growth{position:absolute;right:24px;top:-18px;width:132px;height:146px;color:#a67b4b;opacity:.72;pointer-events:none;overflow:visible}
.lotus-growth path{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:rgba(182,139,84,.1)}
.lotus-growth .lotus-stem,.lotus-growth .lotus-calyx{fill:none}
.lotus-growth .lotus-stem{stroke-dasharray:95;stroke-dashoffset:0}
.lotus-growth .lotus-leaf{transform-box:fill-box;transform-origin:center bottom}
.lotus-growth .lotus-flower{transform-box:fill-box;transform-origin:center bottom}
.js .lotus-growth:not(.is-grown) .lotus-stem{stroke-dashoffset:95}
.js .lotus-growth:not(.is-grown) .lotus-leaf,.js .lotus-growth:not(.is-grown) .lotus-flower{opacity:0;transform:scale(.62)}
@keyframes lotus-draw{from{stroke-dashoffset:95}to{stroke-dashoffset:0}}
@keyframes lotus-unfurl{from{opacity:0;transform:scale(.62)}to{opacity:1;transform:scale(1)}}
.lotus-growth.is-grown .lotus-stem{animation:lotus-draw .85s ease-out both}
.lotus-growth.is-grown .lotus-leaf{animation:lotus-unfurl .58s cubic-bezier(.18,.7,.3,1) .34s both}
.lotus-growth.is-grown .lotus-flower{animation:lotus-unfurl .7s cubic-bezier(.18,.7,.3,1) .68s both}
@media(max-width:650px){.treatments-section .section-heading{min-height:93px;padding-right:84px}.lotus-growth{width:78px;height:91px;right:0;top:0;opacity:.62}}
@media(max-width:390px){.treatments-section .section-heading{padding-right:70px}.lotus-growth{width:65px;height:76px;top:3px}}
@media(prefers-reduced-motion:reduce){.js .lotus-growth:not(.is-grown) .lotus-stem{stroke-dashoffset:0}.js .lotus-growth:not(.is-grown) .lotus-leaf,.js .lotus-growth:not(.is-grown) .lotus-flower{opacity:1;transform:none}.lotus-growth.is-grown .lotus-stem,.lotus-growth.is-grown .lotus-leaf,.lotus-growth.is-grown .lotus-flower{animation:none}}

/* Short, accessible duration menus open smoothly without shifting the price cards. */
.duration-field{position:relative}
.duration-field.is-enhanced .duration-select{display:none}
.duration-picker{position:relative;width:100%}
.duration-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;height:41px;padding:0 13px;border:1px solid #cdb899;border-radius:0;background:#fffaf3;color:#3a291f;text-align:left;font:600 12px "DM Sans",Arial,sans-serif;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.duration-trigger:hover,.duration-picker.is-open .duration-trigger{border-color:#a57e53;background:#fffdf8}
.duration-trigger:focus-visible{outline:none;border-color:#8a603b;box-shadow:0 0 0 3px rgba(158,118,79,.16)}
.duration-chevron{flex:none;width:8px;height:8px;margin-right:2px;border-right:1.5px solid #745836;border-bottom:1.5px solid #745836;transform:translateY(-2px) rotate(45deg);transition:transform .24s ease}
.duration-picker.is-open .duration-chevron{transform:translateY(2px) rotate(225deg)}
.duration-menu{position:absolute;z-index:20;top:calc(100% + 5px);left:0;width:100%;padding:5px;border:1px solid #c7ad89;background:#fffaf3;box-shadow:0 12px 24px rgba(60,39,24,.17);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-7px) scale(.98);transform-origin:top center;transition:opacity .19s ease,transform .23s cubic-bezier(.2,.72,.24,1),visibility 0s linear .23s}
.duration-picker.is-open .duration-menu{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition-delay:0s}
.duration-picker.opens-up .duration-menu{top:auto;bottom:calc(100% + 5px);transform-origin:bottom center;transform:translateY(7px) scale(.98)}
.duration-picker.is-open.opens-up .duration-menu{transform:translateY(0) scale(1)}
.duration-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:39px;padding:9px 10px;border:0;background:transparent;color:#463225;text-align:left;font:600 11px "DM Sans",Arial,sans-serif;cursor:pointer;transition:background-color .16s ease,color .16s ease}
.duration-option span:last-child{color:#8d6b47;font-weight:700}
.duration-option:hover,.duration-option:focus-visible{background:#efe2ce;color:#2b1b15}
.duration-option:focus-visible{outline:2px solid #9e764f;outline-offset:-2px}
.duration-option[aria-pressed="true"]{background:#e8d4b7}
.price-card.picker-open{position:relative;z-index:5;border-color:#b7956c}
@media(max-width:650px){.duration-trigger{max-width:230px}.duration-menu{max-width:230px}.duration-option{min-height:43px}}
@media(prefers-reduced-motion:reduce){.duration-trigger,.duration-chevron,.duration-menu,.duration-option{transition:none}}

/* One jasmine sprig answers the lotus without adding another looping animation. */
.space-section .space-heading{position:relative;min-height:107px;padding-right:205px}
.jasmine-growth{position:absolute;right:18px;top:-10px;width:186px;height:112px;opacity:.68;pointer-events:none;overflow:visible}
.jasmine-growth .jasmine-stem{fill:none;stroke:#788762;stroke-width:2;stroke-linecap:round;stroke-dasharray:250;stroke-dashoffset:0}
.jasmine-growth .jasmine-leaf{fill:rgba(124,144,103,.13);stroke:#788762;stroke-width:1.8;stroke-linejoin:round;transform-box:fill-box;transform-origin:center bottom}
.jasmine-growth .jasmine-bloom{transform-box:fill-box;transform-origin:center}
.jasmine-growth .jasmine-bloom circle{fill:#f8f0e2;stroke:#ac956e;stroke-width:1.4}
.jasmine-growth .jasmine-bloom .jasmine-centre{fill:#c8a66f;stroke:none}
.js .jasmine-growth:not(.is-grown) .jasmine-stem{stroke-dashoffset:250}
.js .jasmine-growth:not(.is-grown) .jasmine-leaf,.js .jasmine-growth:not(.is-grown) .jasmine-bloom{opacity:0;transform:scale(.65)}
@keyframes jasmine-draw{from{stroke-dashoffset:250}to{stroke-dashoffset:0}}
.jasmine-growth.is-grown .jasmine-stem{animation:jasmine-draw .9s ease-out both}
.jasmine-growth.is-grown .jasmine-leaf{animation:lotus-unfurl .6s cubic-bezier(.18,.7,.3,1) .35s both}
.jasmine-growth.is-grown .jasmine-bloom{animation:lotus-unfurl .65s cubic-bezier(.18,.7,.3,1) .7s both}
@media(max-width:650px){.space-section .space-heading{min-height:89px;padding-right:90px}.jasmine-growth{width:84px;height:52px;right:0;top:6px;opacity:.62}}
@media(max-width:390px){.space-section .space-heading{padding-right:72px}.jasmine-growth{width:70px;height:44px;top:11px}}
@media(prefers-reduced-motion:reduce){.js .jasmine-growth:not(.is-grown) .jasmine-stem{stroke-dashoffset:0}.js .jasmine-growth:not(.is-grown) .jasmine-leaf,.js .jasmine-growth:not(.is-grown) .jasmine-bloom{opacity:1;transform:none}.jasmine-growth.is-grown .jasmine-stem,.jasmine-growth.is-grown .jasmine-leaf,.jasmine-growth.is-grown .jasmine-bloom{animation:none}}

/* The information pages use the same warm materials with a quieter reading layout. */
.legal-main{background:#eee5d6 url("assets/thai-trio-pattern.svg") repeat;background-size:700px auto}
.legal-hero{background:var(--brown);color:#f8ecdb;position:relative;isolation:isolate;overflow:hidden}
.legal-hero::after{content:"";position:absolute;right:-100px;top:-220px;width:520px;height:520px;background:url("assets/ornament.webp") center/contain no-repeat;opacity:.1;z-index:-1}
.legal-hero-inner{padding:86px 0 94px}
.legal-hero .eyebrow{margin-bottom:21px}
.legal-hero h1{font-size:clamp(55px,7vw,92px);line-height:1.07;letter-spacing:-.05em;margin:0 0 22px}
.legal-hero h1 em{color:var(--gold-light)}
.legal-hero p:last-child{color:#d9c8b4;font-size:15px;line-height:1.7;max-width:550px;margin:0}
.legal-layout{display:grid;grid-template-columns:225px minmax(0,780px);gap:clamp(50px,8vw,130px);align-items:start;padding:74px 0 120px}
.legal-contents{position:sticky;top:30px;display:flex;flex-direction:column;gap:0;padding-top:6px}
.legal-contents span{font-size:10px;letter-spacing:.19em;font-weight:700;color:#8f704d;margin-bottom:17px}
.legal-contents a{font-size:12px;font-weight:600;padding:13px 0;border-bottom:1px solid #d6c7b2;color:#514033;transition:color .2s,padding-left .2s}
.legal-contents a:hover,.legal-contents a:focus-visible{color:#9b6f3d;padding-left:5px}
.legal-body{background:#f9f4eb;border:1px solid #d7c6ab;padding:10px clamp(25px,5vw,70px) 45px;box-shadow:0 18px 50px rgba(59,39,25,.07)}
.legal-section{padding:52px 0 48px;border-bottom:1px solid #dfd0bc;scroll-margin-top:30px}
.legal-section .eyebrow{margin-bottom:14px;font-size:9px}
.legal-section h2{font-size:clamp(33px,3.5vw,47px);line-height:1.18;letter-spacing:-.035em;margin:0 0 22px}
.legal-section p,.legal-list{font-size:14px;line-height:1.85;color:#59493d}
.legal-section p:last-child{margin-bottom:0}
.legal-section a{color:#80532d;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.legal-section a:hover{color:#3b271c}
.legal-list{margin:0;padding-left:22px}
.legal-list li{padding-left:5px;margin:0 0 12px}
.legal-list li:last-child{margin-bottom:0}
.legal-list li::marker{color:#a67b4b}
.legal-contact-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin:26px 0}
.legal-contact-links a{font-weight:700;font-size:13px}
.legal-next{padding-top:36px}
.legal-next a{display:inline-flex;align-items:center;gap:30px;color:#684728;font-size:12px;font-weight:700;border-bottom:1px solid #a57e53;padding-bottom:9px}
.legal-next a:hover{color:#2b1b15}
.footer-links a[aria-current="page"]{color:var(--gold-light)}
@media(max-width:780px){.legal-layout{grid-template-columns:1fr;gap:33px;padding:52px 0 80px}.legal-contents{position:static;display:flex;flex-direction:row;gap:8px 20px;flex-wrap:wrap}.legal-contents span{width:100%;margin-bottom:0}.legal-contents a{padding:7px 0}.legal-body{padding:0 30px 35px}.legal-section{padding:40px 0}}
@media(max-width:620px){.legal-hero-inner{padding:58px 0 65px}.legal-hero h1{font-size:clamp(51px,13vw,68px)}.legal-hero p:last-child{font-size:13px}.legal-layout{padding:35px 0 65px}.legal-contents{gap:4px 16px}.legal-contents a{font-size:11px}.legal-body{padding:0 22px 29px}.legal-section{padding:34px 0}.legal-section p,.legal-list{font-size:13px}.legal-section h2{font-size:34px}.legal-hero::after{width:350px;height:350px;right:-135px;top:-120px}}

/* An opaque contents card gives the two information pages a clear reading surface. */
.legal-contents{top:94px;padding:22px 24px 25px;background:#fbf6ed;border:1px solid #d7c6ab;box-shadow:0 12px 30px rgba(59,39,25,.08)}
.legal-contents span{color:#775535}
.legal-contents a{color:#3f3027;border-color:#d9cbb7}
.legal-section{scroll-margin-top:100px}
@media(max-width:780px){.legal-contents{padding:18px 21px 20px}}

/* Keep the main navigation available on desktop; reserve a simple booking bar for mobile. */
.site-header{position:sticky;top:0;z-index:80;transition:height .22s ease,background-color .22s ease,box-shadow .22s ease}
.site-header.is-scrolled{height:70px;background:#251711;box-shadow:0 9px 24px rgba(28,16,10,.2)}
.site-header.is-scrolled .brand-symbol{font-size:35px}
.site-header.is-scrolled .nav-book{padding-block:11px}
#treatments,#gallery,#visit{scroll-margin-top:78px}
.mobile-booking{display:none}
@media(max-width:850px){.site-header,.site-header.is-scrolled{position:relative;height:74px;box-shadow:none}.site-header.is-scrolled .brand-symbol{font-size:42px}.has-mobile-booking{padding-bottom:calc(75px + env(safe-area-inset-bottom))}.mobile-booking{display:block;position:fixed;left:0;right:0;bottom:0;z-index:45;padding:9px 18px calc(9px + env(safe-area-inset-bottom));background:#251711;border-top:1px solid #6b4e33;box-shadow:0 -8px 24px rgba(27,17,11,.17)}.mobile-booking a{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:0 18px;background:var(--gold);color:var(--brown);font-size:12px;font-weight:700}.mobile-booking a:hover{background:var(--gold-light)}#treatments,#gallery,#visit{scroll-margin-top:0}}
@media(max-width:620px){.site-header,.site-header.is-scrolled{height:68px}.site-header.is-scrolled .brand-symbol{font-size:34px}}
@media(prefers-reduced-motion:reduce){.site-header{transition:none}}

/* A single painted floral branch grows in once, quietly behind the tour. */
.gallery-tour{position:relative;overflow:hidden;align-items:stretch;background:#d8c5a8}
.gallery-tour-copy{position:static;display:block;flex:1;min-width:0;max-width:none;align-self:stretch;padding-top:118px}
.gallery-tour-copy .eyebrow,.gallery-tour-copy h3{position:relative;z-index:1}
.gallery-tour h3{max-width:310px}
.gallery-tour .video-frame{position:relative;z-index:2;align-self:center}
.tour-botanical{position:absolute;left:-15px;bottom:-38px;width:clamp(260px,29vw,345px);height:auto;pointer-events:none;filter:sepia(.18) saturate(.48) contrast(.88);opacity:.12;clip-path:inset(88% 0 0 0);transform-origin:bottom left;transform:translateY(22px) scale(.82);transition:clip-path 1.65s cubic-bezier(.23,.62,.28,1) .12s,transform 1.65s cubic-bezier(.23,.62,.28,1) .12s,opacity 1.35s ease .12s}
.gallery-tour.is-visible .tour-botanical{clip-path:inset(0);transform:translateY(0) scale(1);opacity:.48}
@media(max-width:860px){.gallery-tour-copy{max-width:none;padding-top:110px}.tour-botanical{width:clamp(330px,45vw,430px);left:5%;bottom:-46px}}
@media(max-width:650px){.gallery-tour{gap:0;padding:34px 16px 26px}.gallery-tour-copy{align-self:stretch;min-height:154px;padding-top:0;text-align:left}.gallery-tour h3{max-width:200px}.gallery-tour .video-frame{margin-top:7px}.tour-botanical{width:182px;left:auto;right:-28px;top:-88px;bottom:auto;transform-origin:bottom right}.gallery-tour.is-visible .tour-botanical{opacity:.43}}
@media(prefers-reduced-motion:reduce){.tour-botanical,.gallery-tour.is-visible .tour-botanical{clip-path:none;opacity:.48;transition:none;transform:none}}

/* Pointer dragging follows the finger or mouse, then snaps to a photo. */
.gallery-viewport{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.gallery-viewport.is-dragging{cursor:grabbing}
.gallery-slide img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}
.gallery-arrows button:disabled{opacity:.36;cursor:default}
.gallery-arrows button:disabled:hover{background:transparent}
