:root{--paper:#f3f0e8;--paper2:#e7e5db;--ink:#192820;--ink2:#29382f;--muted:#7a817b;--cream:#f7f4ec;--sand:#d7d1be;--serif:'Playfair Display',Georgia,serif;--sans:'Manrope','DM Sans',Arial,sans-serif;--ease:cubic-bezier(.23,1,.32,1)}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.6;overflow-x:clip;-webkit-font-smoothing:antialiased}body.no-scroll{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #f4a861;outline-offset:4px}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}h1 em,h2 em,h3 em{font-weight:400}::selection{background:#cad9b5;color:#1b3025}.skip-link{position:fixed;z-index:300;top:-100px;left:20px;padding:12px 20px;background:white;color:black}.skip-link:focus{top:20px}.grain{position:fixed;inset:0;pointer-events:none;z-index:95;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.19' filter='url(%23noise)'/%3E%3C/svg%3E");mix-blend-mode:multiply}.scroll-progress{position:fixed;z-index:102;top:0;left:0;width:100%;height:2px;pointer-events:none}.scroll-progress span{display:block;background:#dcd9a5;width:100%;height:100%;transform:scaleX(0);transform-origin:0 50%}.overline,.section-topline,.opening-meta,.nav-center,.opening-scroll,.chapter-index,.stage-caption,.text-link,.interlude-top,.interlude-bottom,.view-top,.view-bottom,.moment-a figcaption,.moment-b figcaption,.moment-c figcaption,.gallery-tile>span,.reserve-note,.footer-bottom,.lightbox-bar,.lightbox-bottom,.gallery-outro{font-family:var(--sans);letter-spacing:.145em;font-weight:600;font-size:10px;line-height:1.5}.overline{letter-spacing:.2em}.overline.light{color:#f6f0e9}.overline.muted{color:#879087}.section-topline{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:28px 5.3vw 0;color:#69756d}.section-topline span:last-child{text-align:right}.display-title{font:400 clamp(48px,6.4vw,115px)/1.15 var(--serif);letter-spacing:-.047em}.display-title em{font-style:italic;color:#7d897c}
/* NAVIGATION */
.site-nav{position:fixed;top:0;left:0;right:0;z-index:110;display:flex;align-items:center;justify-content:space-between;padding:22px 3.7vw;gap:20px;color:white;transition:color .35s var(--ease),background .35s var(--ease),padding .35s}.site-nav.is-solid{color:var(--ink);background:rgba(243,240,232,.93);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);padding-block:12px;border-bottom:1px solid rgba(28,38,29,.1)}.brand{display:flex;align-items:center;gap:12px;min-width:200px}.brand-symbol{font:500 33px/.9 var(--serif);letter-spacing:-.08em;white-space:nowrap}.brand-spark{font:400 15px/1 var(--sans);vertical-align:12px;margin:0 1px}.brand-label{font-size:9px;line-height:1.28;letter-spacing:.2em;font-weight:700}.nav-center{margin-right:1vw;font-size:9px;color:inherit}.center-dot{font-size:6px;margin:0 12px;vertical-align:middle}.nav-actions{display:flex;align-items:center;gap:28px}.lang-toggle{background:none;border:0;color:inherit;padding:10px 2px;font-size:10px;font-weight:700;letter-spacing:.14em;white-space:nowrap}.lang-chevron{opacity:.5;padding:0 3px}.pill-button{display:inline-flex;align-items:center;justify-content:center;gap:36px;border:1px solid rgba(255,255,255,.54);border-radius:100px;padding:12px 17px;font-weight:700;font-size:10px;letter-spacing:.14em;white-space:nowrap;transition:background .3s,color .3s,border-color .3s}.pill-button:hover{background:white;color:var(--ink)}.site-nav.is-solid .pill-button{border-color:var(--ink)}.site-nav.is-solid .pill-button:hover{background:var(--ink);color:white}.menu-toggle{border:0;background:none;color:inherit;padding:14px 0;width:34px;height:36px;display:flex;flex-direction:column;gap:7px;align-items:flex-end;justify-content:center}.menu-toggle span{display:block;width:28px;height:1px;background:currentColor;transition:transform .3s,width .3s}.menu-toggle span:last-child{width:19px}.menu-toggle:hover span:last-child{width:28px}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{width:28px;transform:translateY(-4px) rotate(-45deg)}.menu-overlay{position:fixed;inset:0;z-index:105;background:#16291f;color:#f3f0e8;padding:135px clamp(30px,12vw,210px) 35px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .4s,visibility .4s,transform .5s var(--ease)}.menu-overlay.open{opacity:1;visibility:visible;transform:none}.menu-kicker{font-size:10px;letter-spacing:.22em;margin-bottom:30px;color:#aab9a6}.menu-overlay>a{font:400 clamp(38px,5.4vw,84px)/1.28 var(--serif);letter-spacing:-.04em;transition:transform .3s,color .3s}.menu-overlay>a:hover{transform:translateX(12px);color:#c9d7a9}.menu-overlay>a sup{vertical-align:top;font:600 11px var(--sans);letter-spacing:0;margin-left:12px;color:#9baea0}.menu-foot{display:flex;justify-content:space-between;gap:24px;align-self:stretch;margin-top:35px;padding-top:24px;border-top:1px solid #536355;font-size:10px;letter-spacing:.12em}
/* HERO */
.opening{height:210vh;background:#17251e;position:relative;color:white}.opening-sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}.opening-media,.opening-shade{position:absolute;inset:0}.opening-media img{width:100%;height:100%;object-fit:cover;object-position:center 48%;transform:scale(1.15);will-change:transform}.opening-shade{background:linear-gradient(180deg,rgba(9,23,20,.47) 0%,rgba(9,23,20,.03) 32%,rgba(6,21,21,.20) 56%,rgba(6,21,21,.68) 100%);pointer-events:none}.opening-meta{position:absolute;top:118px;left:5.3vw;right:5.3vw;display:flex;justify-content:space-between;align-items:center;color:rgba(255,255,255,.9)}.opening-title{position:absolute;left:5.3vw;right:5.3vw;bottom:10vh;transform-origin:left bottom}.opening-title h1{font:400 clamp(67px,10.3vw,180px)/.98 var(--serif);letter-spacing:-.07em;margin:15px 0 32px;max-width:1150px;text-shadow:0 2px 50px rgba(2,13,8,.12)}.opening-title h1 em{font-weight:400;font-style:italic}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.hero-bottom p{font-size:13px;line-height:1.75;color:#f3f5ed;max-width:440px}.discover-link{display:flex;align-items:center;gap:18px;font-size:10px;letter-spacing:.18em;font-weight:700;white-space:nowrap}.round-arrow{width:45px;height:45px;border-radius:50%;border:1px solid #f2efe8;display:grid;place-items:center;font:25px var(--serif);transition:background .25s,color .25s,transform .25s}.discover-link:hover .round-arrow{background:var(--paper);color:var(--ink);transform:translate(2px,2px)}.opening-scroll{position:absolute;bottom:22px;left:5.3vw;display:flex;align-items:center;gap:12px;color:#ebece3}.scroll-track{height:1px;width:38px;background:#a3ae9a;display:block;position:relative;overflow:hidden}.scroll-track span{position:absolute;top:0;bottom:0;left:0;width:22px;background:white;animation:scroll-hint 2s ease-in-out infinite}@keyframes scroll-hint{0%{transform:translateX(-100%)}100%{transform:translateX(175%)}}.opening-reveal{position:absolute;inset:0;pointer-events:none;display:flex;align-items:center;justify-content:center;opacity:0;text-align:center;color:#fff}.opening-reveal span{font:400 clamp(43px,7vw,110px)/1.13 var(--serif);letter-spacing:-.05em}
/* INTRO */
.intro-section{background:var(--paper);min-height:100vh;padding-bottom:30px}.intro-grid{display:grid;grid-template-columns:26% 1fr;gap:30px;padding:11vh 10vw 10vh 7vw}.tiny-star{font-size:85px;line-height:.5;color:#b8c9a7;display:block;transform:rotate(-14deg);margin-top:30px}.intro-copy{max-width:1040px}.intro-copy h2{margin:20px 0 58px}.intro-bottom{display:flex;gap:35px;align-items:flex-start;margin-left:23%;max-width:590px}.small-rule{width:56px;height:1px;flex:0 0 56px;margin-top:13px;background:#a3b0a5}.intro-bottom p{font-size:clamp(14px,1.4vw,19px);line-height:1.85;color:#687269}.intro-foot{display:flex;justify-content:space-between;align-items:center;padding:0 5.3vw;font-size:10px;letter-spacing:.17em;font-weight:600;color:#66776a}.arrow-down{font:33px var(--serif)}
/* SPACE EXPERIENCE */
.spaces-section{background:#e8e7df;padding-bottom:0}.spaces-layout{display:grid;grid-template-columns:55% 45%;gap:0;align-items:start}.spaces-visual{position:sticky;top:0;height:100vh;height:100dvh;padding:8vh 3vw 8vh 5.3vw;display:flex;align-items:center}.image-stage{position:relative;width:100%;height:78vh;overflow:hidden;background:#d6d7cb}.stage-image{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transform:scale(1.065);transition:opacity .9s ease,transform 1.7s var(--ease)}.stage-image.active{opacity:1;transform:scale(1);z-index:1}.stage-caption{position:absolute;z-index:5;bottom:0;left:0;right:0;padding:45px 28px 25px;color:white;display:flex;justify-content:space-between;gap:12px;background:linear-gradient(0deg,rgba(0,0,0,.35),transparent)}.stage-corner{position:absolute;z-index:6;right:18px;top:16px;background:#eef0e8;color:#182c20;border-radius:50%;width:38px;height:38px;display:grid;place-items:center;font:23px var(--serif)}.spaces-narrative{padding-right:8vw}.space-chapter{min-height:91vh;min-height:91dvh;display:flex;justify-content:center;align-items:flex-start;flex-direction:column;padding:11vh 0 10vh 5vw;border-bottom:1px solid #c7cdc4;opacity:.44;transition:opacity .4s ease}.space-chapter.is-current{opacity:1}.chapter-index{display:flex;gap:13px;align-items:center;color:#6c7a6c}.chapter-line{width:42px;height:1px;background:#97a396}.space-chapter h3{font:400 clamp(45px,5.25vw,90px)/1.13 var(--serif);letter-spacing:-.055em;margin:24px 0 36px}.space-chapter h3 em{font-weight:400;color:#778875}.space-chapter p{max-width:390px;color:#646f66;font-size:clamp(13px,1.16vw,17px);line-height:1.9}.text-link{display:flex;align-items:center;gap:22px;margin-top:36px;padding:6px 0 12px;border:0;border-bottom:1px solid #879484;background:transparent;color:#182a1f;text-align:left;transition:gap .25s}.text-link:hover{gap:31px}
/* INTERLUDE */
.interlude{background:#24382a;color:#f1eee5;min-height:65vh;display:flex;flex-direction:column;justify-content:space-between;padding:34px 5.3vw 36px;overflow:hidden}.interlude-top,.interlude-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;color:#d6dccd}.interlude-top span:nth-child(2){font-size:22px}.interlude-text{display:flex;flex-direction:column;align-items:center;font-size:clamp(48px,8.2vw,141px);font-weight:500;letter-spacing:-.085em;line-height:1.03;text-align:center;padding:7vh 0}.interlude-italic{font:italic 400 clamp(48px,8vw,138px)/1.1 var(--serif);letter-spacing:-.065em;color:#cbd3b2}
/* VIEW EXPERIENCE */
.view-section{height:205vh;position:relative;background:#1a2a27;color:white}.view-sticky{position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden}.view-visual,.view-darken{position:absolute;inset:0}.view-visual{clip-path:inset(0)}.view-visual img{width:100%;height:100%;object-fit:cover;object-position:center 52%;transform:scale(1.14);will-change:transform}.view-darken{background:linear-gradient(180deg,rgba(6,28,23,.35),rgba(8,30,25,.1) 36%,rgba(3,26,22,.68));pointer-events:none}.view-top,.view-bottom{position:absolute;left:5.3vw;right:5.3vw;display:flex;align-items:center;justify-content:space-between;gap:20px}.view-top{top:130px}.view-bottom{bottom:30px}.view-content{position:absolute;left:9vw;bottom:13vh;max-width:970px}.view-content h2{font:400 clamp(75px,11vw,185px)/1.01 var(--serif);letter-spacing:-.07em;margin:14px 0 24px}.view-content h2 em{font-style:italic}.view-content>p:last-child{font-size:clamp(13px,1.3vw,18px);line-height:1.8;max-width:430px;color:#fff}
/* MOMENTS */
.moments-section{background:var(--paper);padding-bottom:13vh}.moments-heading{padding:14vh 7vw 8vh;display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.moments-heading h2{font:400 clamp(54px,7.6vw,128px)/1.08 var(--serif);letter-spacing:-.065em}.moments-heading h2 em{color:#879889}.moments-heading p{font-size:clamp(13px,1.25vw,17px);line-height:1.9;color:#637267;max-width:325px;margin-bottom:6px}.moments-grid{display:grid;grid-template-columns:1.14fr .75fr .75fr;gap:25px;padding:0 5.3vw;align-items:start}.moments-grid figure{min-width:0}.moments-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s var(--ease)}.moments-grid figure:hover img{transform:scale(1.035)}.moment-a{height:61vh;overflow:hidden;position:relative}.moment-b{height:47vh;overflow:hidden;position:relative;margin-top:15vh}.moment-c{height:52vh;overflow:hidden;position:relative;margin-top:5vh}.moments-grid figcaption{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:42px 20px 20px;display:flex;justify-content:space-between;gap:8px;color:white;background:linear-gradient(0deg,rgba(0,0,0,.46),transparent)}
/* GALLERY */
.gallery-section{background:#e8e7df;padding-bottom:8vh}.gallery-intro{padding:11vh 7vw 8vh;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.gallery-intro h2{font:400 clamp(55px,8vw,142px)/1.06 var(--serif);letter-spacing:-.07em}.gallery-intro h2 em{color:#8c9b8b}.gallery-intro p{font-size:clamp(13px,1.2vw,17px);line-height:1.75;max-width:260px;color:#69756c;margin-bottom:10px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(170px,20vw,320px);gap:12px;padding:0 5.3vw}.gallery-tile{display:block;width:100%;height:100%;position:relative;overflow:hidden;border:0;padding:0;text-align:left;color:white;background:#bbc4b7}.gallery-tile>img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease),filter .45s}.gallery-tile:hover>img{transform:scale(1.065);filter:brightness(.78)}.gallery-tile>span{position:absolute;z-index:2;left:0;bottom:0;right:0;display:flex;justify-content:space-between;gap:8px;align-items:center;padding:50px 20px 20px;background:linear-gradient(0deg,rgba(0,0,0,.56),transparent)}.gallery-tile-large{grid-column:span 2;grid-row:span 2}.gallery-tile-wide{grid-column:span 2}.gallery-outro{display:flex;justify-content:center;align-items:center;gap:22px;margin:75px 0 10px;text-align:left;letter-spacing:0}.gallery-outro p{font:italic 400 27px/1.4 var(--serif);letter-spacing:-.02em}.star-mini{font-size:38px;color:#8b9b86}
/* RESERVATION */
.reserve-section{background:#172820;min-height:90vh;color:#f4eee1;display:grid;grid-template-columns:48% 52%}.reserve-photo{min-height:90vh;position:relative;overflow:hidden}.reserve-photo img{height:100%;width:100%;object-fit:cover;object-position:center;position:absolute;inset:0}.reserve-panel{padding:9vh 7vw 10vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.reserve-panel h2{font:400 clamp(57px,6.4vw,110px)/1.07 var(--serif);letter-spacing:-.075em;margin:25px 0 26px}.reserve-panel h2 em{color:#cdd9b9}.reserve-panel>p:not(.overline):not(.reserve-note){font-size:clamp(13px,1.18vw,17px);max-width:350px;line-height:1.9;color:#c3d0c5}.reserve-button{margin:36px 0 18px;display:flex;justify-content:space-between;align-items:center;gap:50px;padding:11px 11px 11px 25px;min-width:300px;background:#ecede2;color:#183021;border-radius:100px;font-weight:800;font-size:10px;letter-spacing:.13em;transition:background .25s,transform .25s}.reserve-button:hover{transform:translateY(-4px);background:#d1e0be}.button-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#243e2d;color:white;font:28px var(--serif)}.reserve-note{color:#a7baad;letter-spacing:.05em;font-weight:400}
/* FOOTER */
.site-footer{background:#e8e7df;padding:6vh 5.3vw 25px}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:50px;padding:5vh 0 17vh}.footer-title{font:400 clamp(83px,13vw,230px)/.9 var(--serif);letter-spacing:-.09em}.footer-title em{font-weight:400;letter-spacing:-.075em}.footer-right{display:flex;flex-direction:column;gap:23px;align-items:flex-start;min-width:200px;padding-top:1.3vw}.footer-right p{font:italic 23px/1.5 var(--serif);color:#6a7a6e;margin-bottom:20px}.footer-right a{font-size:10px;letter-spacing:.14em;font-weight:700;border-bottom:1px solid #a3ada0;padding-bottom:8px}.footer-right a:hover{color:#6d856b}.footer-bottom{padding-top:21px;border-top:1px solid #c6cbc4;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#748075;font-size:9px}
/* LIGHTBOX */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(13,24,18,.98);color:#f5f1e8;display:flex;flex-direction:column;padding:30px 4vw;visibility:hidden;opacity:0;transition:opacity .25s,visibility .25s}.lightbox.open{visibility:visible;opacity:1}.lightbox-bar,.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px}.lightbox-close{background:none;border:0;color:#fff;font-size:10px;letter-spacing:.15em}.lightbox-close span{font:36px/.8 var(--serif);vertical-align:-5px;margin-left:10px}.lightbox-main{display:grid;grid-template-columns:60px minmax(0,1fr) 60px;align-items:center;gap:28px;min-height:0;flex:1;padding:20px 0}.lightbox-main img{height:min(72vh,100%);width:100%;object-fit:contain;max-height:100%;margin:auto}.lightbox-main button{background:transparent;color:white;border:1px solid rgba(255,255,255,.5);border-radius:50%;width:48px;height:48px;font:24px var(--serif);transition:background .25s}.lightbox-main button:hover{background:rgba(255,255,255,.2)}
/* Motion helpers */
.reveal-image{will-change:transform}.has-motion .intro-copy,.has-motion .moments-heading,.has-motion .gallery-intro{will-change:transform,opacity}
/* RESPONSIVE */
@media(max-width:1050px){.nav-center{display:none}.brand{min-width:0}.opening-title h1{font-size:clamp(66px,11.5vw,125px)}.intro-grid{grid-template-columns:17% 1fr;padding-inline:5vw}.spaces-layout{grid-template-columns:53% 47%}.spaces-visual{padding-inline:4vw 1.5vw}.spaces-narrative{padding-right:4vw}.space-chapter{padding-left:4vw}.space-chapter h3{font-size:clamp(43px,6vw,72px)}.moments-grid{gap:14px}.footer-title{font-size:12.4vw}}
@media(max-width:700px){.site-nav{padding:17px 6vw}.site-nav.is-solid{padding:12px 6vw}.brand-symbol{font-size:30px}.brand-label{font-size:8px}.nav-actions{gap:16px}.nav-book{display:none}.menu-toggle{width:27px}.menu-toggle span{width:25px}.menu-toggle span:last-child{width:18px}.lang-toggle{font-size:10px}.section-topline{padding:24px 6vw 0;font-size:8px;letter-spacing:.1em}.opening{height:178vh}.opening-media img{object-position:57% center;transform:scale(1.26)}.opening-meta{top:108px;left:6vw;right:6vw;font-size:9px}.opening-meta span:first-child{max-width:200px}.opening-title{left:6vw;right:6vw;bottom:13vh}.opening-title h1{font-size:clamp(57px,14vw,90px);line-height:1.01;letter-spacing:-.075em;margin:14px 0 28px}.opening-title .overline{font-size:8px;letter-spacing:.13em}.hero-bottom{display:block}.hero-bottom p{font-size:12px;line-height:1.8}.hero-bottom p br{display:none}.discover-link{margin-top:22px;width:max-content;font-size:9px}.round-arrow{width:37px;height:37px;font-size:21px}.opening-scroll{left:6vw;bottom:18px;font-size:8px}.opening-reveal span{font-size:12vw}.intro-section{min-height:85vh}.intro-grid{grid-template-columns:1fr;padding:11vh 6vw 9vh;gap:15px}.tiny-star{font-size:44px;margin:0}.intro-copy h2{font-size:clamp(46px,10vw,70px);margin:18px 0 33px}.intro-bottom{margin:0;gap:20px}.intro-bottom p{font-size:14px}.small-rule{width:25px;flex-basis:25px}.intro-foot{padding:0 6vw;font-size:9px}.spaces-layout{display:block}.spaces-visual{top:64px;height:47vh;height:47dvh;padding:12px 6vw 10px;z-index:5;background:#e8e7df;box-shadow:0 8px 12px rgba(0,0,0,.02)}.image-stage{height:100%;width:100%}.stage-caption{padding:20px 12px 14px;font-size:8px}.stage-wordmark{font-size:7px}.stage-corner{width:31px;height:31px;right:10px;top:10px;font-size:20px}.spaces-narrative{padding:0 6vw}.space-chapter{min-height:66vh;min-height:66dvh;padding:14vh 3vw 14vh;opacity:1}.space-chapter:last-child{min-height:70vh}.space-chapter h3{font-size:clamp(54px,12vw,80px);margin:17px 0 24px}.space-chapter p{font-size:14px}.text-link{margin-top:25px;font-size:9px}.interlude{min-height:44vh;padding:25px 6vw 28px}.interlude-top,.interlude-bottom{font-size:8px}.interlude-top span:nth-child(2){font-size:18px}.interlude-text{font-size:9.5vw;letter-spacing:-.07em;padding:6vh 0}.interlude-italic{font-size:9.1vw}.view-section{height:168vh}.view-visual img{object-position:58% center}.view-top{top:105px;left:6vw;right:6vw;font-size:8px}.view-top span:first-child{max-width:200px}.view-content{left:6vw;right:6vw;bottom:16vh}.view-content .overline{font-size:8px;letter-spacing:.13em}.view-content h2{font-size:clamp(67px,15vw,105px);margin:17px 0 25px}.view-content>p:last-child{font-size:13px}.view-bottom{left:6vw;right:6vw;bottom:25px;font-size:8px;gap:30px}.view-bottom span:last-child{text-align:right}.moments-section{padding-bottom:8vh}.moments-heading{padding:10vh 6vw 5vh;display:block}.moments-heading h2{font-size:clamp(54px,12.5vw,89px)}.moments-heading p{margin-top:30px;font-size:14px;max-width:320px}.moments-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:0 6vw}.moment-a{height:51vh;grid-column:1/-1}.moment-b,.moment-c{height:34vh;margin-top:0}.moments-grid figcaption{font-size:8px;padding:35px 12px 12px}.gallery-section{padding-bottom:5vh}.gallery-intro{padding:10vh 6vw 7vh;display:block}.gallery-intro h2{font-size:clamp(62px,14vw,96px)}.gallery-intro p{margin-top:28px;font-size:14px}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:42vw;gap:8px;padding:0 6vw}.gallery-tile-large{grid-column:1/-1;grid-row:span 2}.gallery-tile-wide{grid-column:span 2}.gallery-tile>span{font-size:8px;padding:30px 10px 10px;letter-spacing:.04em}.gallery-outro{margin-top:50px}.gallery-outro p{font-size:21px}.reserve-section{display:block}.reserve-photo{height:47vh;min-height:0}.reserve-panel{padding:9vh 6vw 10vh}.reserve-panel h2{font-size:clamp(61px,13.5vw,90px);margin:24px 0 28px}.reserve-panel>p:not(.overline):not(.reserve-note){font-size:14px}.reserve-button{min-width:min(100%,370px);margin-top:30px;font-size:9px;gap:10px}.site-footer{padding:6vh 6vw 24px}.footer-top{display:block;padding:4vh 0 11vh}.footer-title{font-size:16vw}.footer-right{margin-top:45px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.footer-right p{grid-column:1/-1;margin:0 0 15px}.footer-bottom{flex-wrap:wrap;font-size:8px}.footer-bottom span:last-child{width:100%;margin-top:12px}.menu-overlay{padding:115px 8vw 30px}.menu-overlay>a{font-size:clamp(37px,10vw,65px);line-height:1.4}.menu-foot{font-size:8px}.lightbox{padding:20px 4vw}.lightbox-bar,.lightbox-bottom{font-size:8px}.lightbox-bar>span:first-child{display:none}.lightbox-main{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px}.lightbox-main button{width:34px;height:34px;font-size:18px}.lightbox-main img{height:auto;max-height:70vh}}
@media(max-width:380px){.brand-label{display:none}.opening-title h1{font-size:15vw}.opening-meta{font-size:8px}.space-chapter h3{font-size:12vw}.moments-grid figcaption{letter-spacing:0}.interlude-top span:first-child{max-width:115px}.interlude-bottom span:last-child{max-width:170px;text-align:right}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.opening-media img,.view-visual img{transform:none!important}.opening-reveal{display:none!important}}

/* Keep the menu nav legible, and integrate gracefully with Lenis when available. */
body.menu-open .site-nav{color:#f4f0e8!important;background:transparent!important;border-bottom-color:transparent!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.menu-open .site-nav .pill-button{border-color:#ecf0e9!important}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

/* ===========================================
   STAY WITH VIEW / HYBRID EXPERIENCE V2
   More useful details, without breaking the scroll story
   =========================================== */
html{scroll-padding-top:84px}
.opening{height:150vh}
.view-section{height:150vh}
.space-chapter{min-height:76vh;min-height:76dvh}
.overview-section{background:#f3f0e8;padding-bottom:10vh}
.overview-wrap{display:grid;grid-template-columns:50% 50%;gap:0;align-items:stretch;padding:7vh 5.3vw 0;min-height:640px}
.overview-photo{position:relative;min-height:600px;overflow:hidden;background:#d4d2c7}
.overview-photo img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center}
.photo-mark{position:absolute;bottom:23px;left:27px;font-size:9px;font-weight:700;letter-spacing:.16em;color:white;text-shadow:0 1px 12px #151f19}
.overview-content{padding:7vh clamp(32px,5vw,95px) 7vh clamp(36px,5vw,100px);display:flex;flex-direction:column;justify-content:center}
.overview-title{font:400 clamp(53px,6.2vw,92px)/1.08 var(--serif);letter-spacing:-.059em;margin:20px 0 26px}
.overview-title em,.amenities-head h2 em,.location-content h2 em,.essentials-copy h2 em{color:#839083;font-style:italic}
.overview-description{font-size:clamp(14px,1.15vw,17px);line-height:1.85;color:#526258;max-width:490px}
.facts-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:37px;border-top:1px solid #c8cfc5;border-left:1px solid #c8cfc5}
.fact{padding:19px 15px 21px 22px;border-right:1px solid #c8cfc5;border-bottom:1px solid #c8cfc5;display:flex;flex-direction:column;gap:2px}
.fact strong{font:400 clamp(37px,4vw,58px)/1.1 var(--serif);letter-spacing:-.05em}
.fact strong small{font-size:.47em}.fact>span{font-size:9px;letter-spacing:.12em;font-weight:700;color:#778177}
.detail-link{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #273c2e;padding:17px 0 12px;margin-top:27px;font-size:10px;letter-spacing:.15em;font-weight:700;width:max-content;max-width:100%;min-width:270px}
.detail-link span:last-child{font-size:21px;line-height:1}
.amenities-section{background:#f0eee5;padding-bottom:11vh}
.amenities-head{display:grid;grid-template-columns:1.25fr .75fr;align-items:end;gap:90px;padding:10vh 10vw 7vh 9vw}
.amenities-head h2{font:400 clamp(58px,6.65vw,105px)/1.1 var(--serif);letter-spacing:-.06em;margin-top:20px}
.amenities-head>p{color:#627066;font-size:clamp(14px,1.25vw,18px);max-width:400px;line-height:1.85;padding-bottom:9px}
.amenity-grid{margin:0 5.3vw;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #c7cdc3;border-left:1px solid #c7cdc3}
.amenity-card{min-height:220px;border-right:1px solid #c7cdc3;border-bottom:1px solid #c7cdc3;padding:27px clamp(20px,2.8vw,45px) 25px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;transition:background .25s}
.amenity-card:hover{background:#e7e9de}
.amenity-icon{font:400 36px/1 var(--serif);color:#9aaf96;margin-bottom:26px;min-height:34px}
.amenity-card h3{font:400 clamp(24px,2.35vw,34px)/1.2 var(--serif);letter-spacing:-.035em;margin-bottom:8px}
.amenity-card p{font-size:13px;line-height:1.7;color:#758075}
.amenities-callout{display:flex;justify-content:space-between;align-items:center;gap:35px;margin:32px 5.3vw 0;font-size:10px;letter-spacing:.13em;font-weight:700;color:#657568}
.amenities-callout a{display:flex;align-items:center;gap:15px;color:#183024;white-space:nowrap;border-bottom:1px solid #203829;padding-bottom:9px}
.location-section{display:grid;grid-template-columns:1fr 1fr;min-height:750px;background:#172d23;color:#f4efe5}
.location-photo{min-height:620px;position:relative;overflow:hidden}
.location-photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.location-content{padding:11vh clamp(35px,7vw,110px) 10vh;display:flex;flex-direction:column;justify-content:center}
.location-content .overline{font-size:10px;line-height:1.9}
.location-content h2{font:400 clamp(52px,6vw,92px)/1.13 var(--serif);letter-spacing:-.064em;margin:20px 0 24px}
.location-content h2 em{color:#b8cbb7}
.location-content>p:not(.overline){font-size:15px;line-height:1.9;color:#bac9bd;max-width:560px}
.distance-list{border-top:1px solid #607265;margin:33px 0 15px}
.distance-list div{border-bottom:1px solid #607265;display:flex;justify-content:space-between;gap:20px;padding:15px 0;align-items:center}
.distance-list span{font-size:10px;letter-spacing:.14em;font-weight:700;color:#c1d1c1}
.distance-list strong{font:400 28px var(--serif);white-space:nowrap}
.location-content .location-note{color:#96a79a!important;font-size:11px!important;line-height:1.6!important}
.location-map{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #839b84;border-radius:45px;padding:15px 20px;margin-top:28px;width:max-content;max-width:100%;font-size:10px;font-weight:700;letter-spacing:.12em;transition:background .25s,color .25s}
.location-map:hover{background:#eaece0;color:#16291e}
.location-map span:last-child{font-size:20px;line-height:1}
.essentials-section{background:#e8e7df;padding-bottom:12vh}
.essentials-layout{padding:12vh 7.5vw 0;display:grid;grid-template-columns:47% 53%;gap:6vw;align-items:start}
.essentials-copy h2{font:400 clamp(55px,5.8vw,93px)/1.12 var(--serif);letter-spacing:-.06em;margin:24px 0}
.essentials-copy>p:last-child{color:#657466;line-height:1.85;font-size:15px;max-width:360px}
.essentials-accordions{padding-right:4vw}
.essentials-accordions details{border-top:1px solid #bac6b9}
.essentials-accordions details:last-child{border-bottom:1px solid #bac6b9}
.essentials-accordions summary{position:relative;list-style:none;padding:25px 40px 25px 0;cursor:pointer;font:400 clamp(21px,2vw,31px)/1.3 var(--serif);letter-spacing:-.03em}
.essentials-accordions summary::-webkit-details-marker{display:none}
.essentials-accordions summary::after{content:'+';position:absolute;right:8px;top:25px;font:400 26px/1 var(--sans)}
.essentials-accordions details[open] summary::after{content:'−'}
.essentials-accordions details p{color:#617063;font-size:14px;line-height:1.9;max-width:530px;padding:0 25px 27px 0}
.mobile-book-rail{display:none}
@media(max-width:1050px){.overview-wrap{min-height:540px}.overview-photo{min-height:510px}.overview-content{padding:35px 5vw}.overview-title{font-size:clamp(50px,6.3vw,80px)}.fact{padding-left:12px}.amenities-head{padding-inline:6vw}.location-content{padding-inline:5vw}.location-content h2{font-size:clamp(47px,5.8vw,72px)}.essentials-layout{padding-inline:6vw;gap:3vw}}
@media(max-width:700px){html{scroll-padding-top:66px}.opening{height:142vh}.view-section{height:140vh}.space-chapter{min-height:58vh;min-height:58dvh}.space-chapter:last-child{min-height:65vh;min-height:65dvh}.overview-section{padding-bottom:7vh}.overview-wrap{display:flex;flex-direction:column;padding:7vh 6vw 0;min-height:0}.overview-photo{min-height:0;height:70vw;max-height:430px}.overview-content{padding:9vh 0 2vh}.overview-title{font-size:clamp(56px,12.3vw,88px);margin:17px 0 22px}.overview-description{font-size:14px;max-width:100%}.facts-grid{margin-top:28px}.fact{padding:15px 13px}.fact strong{font-size:44px}.fact>span{font-size:8px}.amenities-section{padding-bottom:8vh}.amenities-head{padding:9vh 6vw 6vh;display:block}.amenities-head h2{font-size:clamp(55px,12vw,84px);margin-top:19px}.amenities-head>p{font-size:14px;margin-top:25px}.amenity-grid{margin:0 6vw;grid-template-columns:repeat(2,1fr)}.amenity-card{min-height:191px;padding:19px 14px}.amenity-icon{font-size:27px;margin-bottom:22px;min-height:26px}.amenity-card h3{font-size:clamp(22px,6vw,30px)}.amenity-card p{font-size:12px}.amenities-callout{margin:22px 6vw 0;display:flex;align-items:flex-start;flex-direction:column;gap:18px;font-size:9px}.location-section{display:block;min-height:0}.location-photo{height:70vw;min-height:0;max-height:450px}.location-content{padding:8vh 6vw 9vh}.location-content h2{font-size:clamp(54px,12vw,82px);margin:18px 0 22px}.location-content>p:not(.overline){font-size:14px}.distance-list{margin:26px 0 15px}.distance-list div{padding:12px 0}.distance-list span{font-size:9px}.distance-list strong{font-size:25px}.location-map{font-size:9px;padding:13px 15px}.essentials-section{padding-bottom:9vh}.essentials-layout{display:block;padding:9vh 6vw 0}.essentials-copy h2{font-size:clamp(55px,12vw,88px);margin:18px 0 24px}.essentials-copy>p:last-child{font-size:14px;margin-bottom:38px}.essentials-accordions{padding:0}.essentials-accordions summary{font-size:24px;padding:20px 35px 20px 0}.essentials-accordions summary::after{top:19px}.essentials-accordions details p{font-size:13px;padding-bottom:22px}.mobile-book-rail{position:fixed;z-index:101;display:flex;bottom:calc(12px + env(safe-area-inset-bottom,0px));left:13px;right:13px;background:#203b2b;color:#f9f4e9;border:1px solid #728471;border-radius:11px;padding:12px 13px 12px 17px;align-items:center;justify-content:space-between;box-shadow:0 8px 34px rgba(14,34,26,.28);gap:12px}.mobile-book-rail>span:first-child{display:flex;flex-direction:column;gap:1px}.mobile-book-rail small{font:600 8px var(--sans);letter-spacing:.16em;color:#b6c8b5}.mobile-book-rail strong{font:700 12px var(--sans);letter-spacing:.10em}.mobile-book-arrow{font:400 23px var(--serif);background:#e9eee0;color:#23432f;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;flex:0 0 36px}.site-footer{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}.menu-overlay{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}.menu-overlay>a{font-size:clamp(32px,8.6vw,55px)}.lightbox{z-index:204}}
@media(prefers-reduced-motion:reduce){.amenity-card:hover{transition:none}}


/* ===========================================
   STAY WITH VIEW / V3 — EARTH & EVERGREEN
   A warm espresso / terracotta counterpoint to the existing evergreen.
   =========================================== */
:root{
  --paper:#f6f0e7;
  --paper2:#e9e0d5;
  --ink:#263025;
  --muted:#756c62;
  --earth:#927158;
  --clay:#a66f4e;
  --espresso:#5b4033;
  --deep-green:#21382b;
  --warm-line:#d1c2b3;
}
body{background:var(--paper)}
.scroll-progress span{background:#c5946b}
.site-nav.is-solid{background:rgba(246,240,231,.95);border-bottom-color:rgba(99,71,53,.17)}
.site-nav.is-solid .pill-button{border-color:var(--earth)}
.nav-actions{gap:20px}
.nav-whatsapp{border-bottom:1px solid currentColor;padding:10px 0 8px;font:700 9px/1.3 var(--sans);letter-spacing:.15em;white-space:nowrap;transition:opacity .2s}
.nav-whatsapp:hover{opacity:.68}
.menu-overlay{background:#253b2e}
.menu-overlay>a.menu-whatsapp{font:600 16px/1.5 var(--sans);letter-spacing:.15em;text-transform:uppercase;border-bottom:1px solid #bf9b81;padding:14px 0 8px;margin-top:12px;color:#e2bfa6}
.menu-overlay>a.menu-whatsapp sup{font-size:13px;color:#e2bfa6}
.opening-shade{background:linear-gradient(180deg,rgba(29,32,25,.36) 0%,rgba(27,27,21,.04) 37%,rgba(36,28,22,.26) 61%,rgba(35,30,24,.76) 100%)}
.opening-title h1{font-size:clamp(65px,9.5vw,162px);letter-spacing:-.072em;max-width:1280px}
.opening-meta .meta-number{color:#f4d0ad}
.intro-section,.moments-section{background:var(--paper)}
.intro-copy h2 em,.display-title em,.moments-heading em,.gallery-intro h2 em{color:#997758}
.tiny-star{color:#af886a}
.intro-bottom p,.intro-foot{color:#6c645b}
.overview-section{background:#f3ece2}
.overview-photo{background:#decbb7}
.overview-title em,.amenities-head h2 em,.essentials-copy h2 em{color:#967258}
.overview-description,.amenities-head>p,.essentials-copy>p:last-child{color:#746658}
.facts-grid{border-color:#cdbbaa}
.fact{border-color:#cdbbaa}
.fact>span{color:#836b57}
.detail-link{border-color:#9c7658}
.spaces-section,.spaces-visual{background:#eae0d4}
.space-chapter{border-bottom-color:#cbbdad}
.chapter-index,.text-link{color:#806957}
.interlude{background:#644737;color:#f9eee2}
.interlude .interlude-italic{color:#e9c3a2}
.view-section{background:#203429}
.gallery-section{background:#e9ddce}
.gallery-outro .star-mini{color:#ac8162}
.amenities-section{background:#f0e5d8}
.amenity-grid{border-color:#cfbcaa}
.amenity-card{border-color:#cfbcaa}
.amenity-card:hover{background:#e7d6c5}
.amenity-icon{color:#a57957}
.amenity-card p{color:#786c5f}
.amenities-callout{color:#776657}
.amenities-callout a{color:#533b2e;border-bottom-color:#84664e}
.location-section{background:#22392d}
.location-content h2 em{color:#e0b89a}
.location-map{border-color:#c0a28b}
.essentials-section{background:#f3e9dc}
.essentials-accordions details,.essentials-accordions details:last-child{border-color:#d1bdab}
.essentials-accordions details p{color:#766657}
.reserve-section{background:#5e4234;color:#fff4e9}
.reserve-panel h2 em{color:#e7c0a0}
.reserve-panel>p:not(.overline):not(.reserve-note){color:#eadacd}
.reserve-button{background:#f7eee4;color:#52372b}
.reserve-button:hover{background:#ead1b8}
.reserve-button .button-icon{background:#2c4332;color:#fff}
.reserve-whatsapp{display:inline-flex;align-items:center;gap:12px;color:#fff0df;border-bottom:1px solid #d2ad92;padding:11px 0;margin:4px 0 17px;font:700 10px/1.5 var(--sans);letter-spacing:.11em;transition:color .2s}
.reserve-whatsapp:hover{color:#e4b899}
.whatsapp-chat-icon{height:28px;width:28px;display:grid;place-items:center;border:1px solid #d2ad92;border-radius:50%;font:20px var(--serif)}
.reserve-note{color:#e0c7b3}
.site-footer{background:#ede0d1}
.footer-right p{color:#856e5d}
.footer-right a{border-bottom-color:#c1aa95}
.footer-right a:hover{color:#865a3c}
.footer-bottom{border-color:#cab4a0;color:#7e6b5a}
.mobile-action-rail{display:none}
@media(max-width:1050px){
  .nav-actions{gap:14px}
  .opening-title h1{font-size:clamp(64px,10.6vw,120px)}
}
@media(max-width:700px){
  .nav-whatsapp{display:none}
  .opening-title h1{font-size:clamp(49px,12vw,77px);line-height:1.07;overflow-wrap:normal}
  .opening-title h1 em{white-space:normal}
  .spaces-visual{background:#eae0d4}
  .reserve-whatsapp{font-size:9px;letter-spacing:.08em}
  .mobile-action-rail{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:101;gap:7px;align-items:stretch;filter:drop-shadow(0 8px 18px rgba(29,24,17,.27))}
  .mobile-action-rail .mobile-book-rail{position:relative;inset:auto;bottom:auto;left:auto;right:auto;flex:1;min-width:0;box-shadow:none;padding:11px 11px 11px 13px;border-radius:10px;background:#21382b;border-color:#839384}
  .mobile-action-rail .mobile-book-rail small{letter-spacing:.1em}
  .mobile-action-rail .mobile-book-rail strong{font-size:10px;letter-spacing:.065em}
  .mobile-action-rail .mobile-book-arrow{width:30px;height:30px;flex-basis:30px;font-size:21px;background:#e8d2bb;color:#24382b}
  .mobile-wa-link{flex:0 0 100px;background:#e3c5a9;color:#4d362a;border:1px solid #c4a181;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px;font-size:9px;font-weight:800;letter-spacing:.05em}
  .mobile-wa-icon{font:24px/1 var(--serif)}
  .site-footer{padding-bottom:calc(125px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:380px){
  .opening-title h1{font-size:11.5vw}
  .mobile-wa-link{flex-basis:83px;font-size:8px}
  .mobile-action-rail .mobile-book-rail strong{font-size:9px}
}


/* V4 refinements: centered gallery, lighter mobile hero, visible WhatsApp number */
.nav-whatsapp{font-size:8px;letter-spacing:.13em}
.lightbox-main{justify-items:center}
.lightbox-main img{display:block;width:auto;max-width:min(92vw,1180px);height:auto;max-height:72vh;object-fit:contain;object-position:center center;justify-self:center;align-self:center}
.gallery-tile>img,.reserve-photo img{object-position:center center}
.mobile-wa-number{font:700 11px/1.05 var(--sans);letter-spacing:.02em;white-space:nowrap}
@media(max-width:700px){
  .opening{height:124vh!important}
  .opening-media img{object-position:center 41%!important;transform:scale(1.18)!important}
  .opening-title{bottom:18vh}
  .opening-reveal{display:none!important}
  .opening-scroll{bottom:14px}
  .gallery-intro{padding:8vh 6vw 5vh}
  .gallery-intro p{max-width:100%}
  .gallery-tile>img{object-position:center center}
  .lightbox{padding:14px 4vw 18px}
  .lightbox-main{grid-template-columns:34px minmax(0,1fr) 34px;gap:8px;padding:10px 0 12px}
  .lightbox-main img{max-width:100%;max-height:64vh;width:auto;height:auto;object-fit:contain;object-position:center center;margin-inline:auto}
  .lightbox-bottom{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  .mobile-wa-link{flex:0 0 136px;padding:8px 10px;text-align:center;gap:2px}
  .mobile-wa-label{font-size:8px;letter-spacing:.12em}
  .mobile-wa-number{font-size:9px}
}
@media(max-width:430px){
  .opening{height:118vh!important}
  .opening-title{bottom:17vh}
  .mobile-wa-link{flex-basis:132px}
  .mobile-wa-number{font-size:8.5px}
}


/* V5 — direct guest copy and consistent WhatsApp access on all mobile screens */
.nav-mobile-wa{display:none}
@media (max-width:700px){
  .site-nav .nav-mobile-wa{display:grid;place-items:center;flex:0 0 35px;width:35px;height:35px;line-height:1;border-radius:50%;border:1px solid currentColor;color:inherit;text-decoration:none;font-size:21px;opacity:.94}
  .site-nav .nav-mobile-wa:hover,.site-nav .nav-mobile-wa:focus-visible{background:rgba(255,255,255,.17)}
  .nav-actions{gap:12px}
  .menu-overlay>a.menu-whatsapp{font:700 clamp(11px,3.2vw,14px)/1.5 var(--sans);letter-spacing:.075em;white-space:nowrap;margin-top:20px;padding-bottom:10px}
  .menu-overlay>a.menu-whatsapp sup{font-size:11px;margin-left:8px}
  .menu-overlay{padding-top:112px;padding-bottom:calc(94px + env(safe-area-inset-bottom,0px))}
  .mobile-action-rail{z-index:101}
  .mobile-action-rail .mobile-wa-link{flex-basis:135px}
  .mobile-wa-number{font-size:10px;letter-spacing:0}
}
@media (max-width:380px){
  .brand-label{display:none}
  .nav-actions{gap:10px}
  .menu-overlay>a.menu-whatsapp{font-size:10px}
  .mobile-action-rail .mobile-wa-link{flex-basis:131px}
  .mobile-wa-number{font-size:9px}
}


/* V6 / Booking iCal — warm ivory editorial availability calendar */
.availability-section{background:#e5d4c0;color:#2b372b;padding-bottom:clamp(65px,9vh,150px)}
.availability-section .section-topline{color:#765c46}
.availability-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:clamp(32px,6vw,110px);padding:clamp(75px,10vh,155px) 7vw 0;align-items:center}
.availability-intro h2{font:400 clamp(55px,6.2vw,106px)/1.08 var(--serif);letter-spacing:-.06em;margin:20px 0 28px}
.availability-intro h2 em{color:#91694e}
.availability-intro>p:not(.overline):not(.availability-sync){font-size:clamp(14px,1.35vw,18px);max-width:510px;color:#6c6357;line-height:1.85}
.availability-legend{display:flex;align-items:center;flex-wrap:wrap;gap:11px 21px;margin-top:34px;font-size:11px;font-weight:600;letter-spacing:.025em;color:#665c50}
.availability-legend>span{display:inline-flex;gap:8px;align-items:center}
.availability-legend i{display:inline-block;width:13px;height:13px;border-radius:3px;border:1px solid #a98b70}
.legend-open{background:#f4ecdf}.legend-busy{background:#b3a79a}
.availability-sync{color:#705a4b;font-size:11px;margin-top:20px;line-height:1.6}
.calendar-card{background:#f8f1e8;border:1px solid #d3bda6;border-radius:4px;padding:clamp(20px,3vw,38px);box-shadow:0 24px 60px rgba(77,55,35,.09);min-width:0}
.calendar-head{display:grid;grid-template-columns:45px 1fr 45px;align-items:center;gap:8px;margin-bottom:24px}
.calendar-head h3{text-align:center;font:400 clamp(28px,3.2vw,39px)/1.25 var(--serif);letter-spacing:-.025em}
.calendar-arrow{display:grid;place-items:center;border:1px solid #bca68e;background:transparent;border-radius:50%;width:40px;height:40px;font:24px/1 var(--serif);color:#463e33;transition:background .2s}
.calendar-arrow:hover:not(:disabled){background:#eadac8}
.calendar-arrow:disabled{opacity:.28;cursor:default}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.calendar-weekdays{margin-bottom:10px}
.calendar-weekdays span{text-align:center;font:700 10px/1.5 var(--sans);color:#978372}
.calendar-day{border:1px solid transparent;background:#f0e6d9;color:#4a3e32;border-radius:5px;aspect-ratio:1/1;min-height:40px;padding:2px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;position:relative;transition:background .2s,color .2s,border-color .2s}
.calendar-day.is-open:hover{background:#dfe5d5;border-color:#456746;cursor:pointer}
.calendar-day.is-busy{background:#c3b7ac;color:#73655b;text-decoration:line-through;cursor:not-allowed}
.calendar-day.is-past{opacity:.24;cursor:not-allowed}
.calendar-day.is-placeholder{visibility:hidden}
.calendar-day.is-unknown{background:#ede4da;color:#aa9b8d;cursor:default}
.calendar-day.is-selected{background:#294431!important;color:#fff!important;border-color:#294431!important;text-decoration:none}
.calendar-day.is-in-range{background:#d2e1cb;border-color:#a5b49e}
.calendar-selection{margin-top:19px;min-height:35px;font-size:12px;color:#695d50;line-height:1.5}
.calendar-booking{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f4ece1;color:#284332;padding:17px 18px;font:700 10px/1.4 var(--sans);letter-spacing:.11em;margin-top:10px;border:1px solid rgba(40,67,50,.22);transition:background .2s,border-color .2s,color .2s}
.calendar-booking:hover{background:#efe3d3;border-color:rgba(40,67,50,.42)}
.calendar-booking>span:last-child{font:24px/1 var(--serif)}
.calendar-booking-secondary{/* placed after WhatsApp in the markup */}
.calendar-disclaimer{font-size:11px;line-height:1.7;color:#85796d;margin-top:17px}
@media(max-width:960px){.availability-layout{grid-template-columns:minmax(0,1fr);gap:34px;padding:8vh 6vw 0}.availability-intro h2{font-size:clamp(55px,9vw,85px)}.calendar-card{max-width:600px;width:100%;margin-inline:auto}}
@media(max-width:700px){.availability-section{padding-bottom:8vh}.availability-layout{padding-top:8vh;gap:26px}.availability-intro h2{font-size:clamp(55px,12vw,78px)}.availability-intro>p:not(.overline):not(.availability-sync){font-size:14px}.availability-legend{gap:12px;margin-top:20px}.calendar-card{padding:18px 14px}.calendar-head{margin-bottom:20px}.calendar-head h3{font-size:29px}.calendar-weekdays,.calendar-days{gap:3px}.calendar-day{font-size:12px;min-height:0;aspect-ratio:1}.calendar-whatsapp{font-size:9px;letter-spacing:.04em;padding:17px 13px}.calendar-booking{font-size:9px;letter-spacing:.05em;padding:15px 13px}.calendar-disclaimer{font-size:10px}.calendar-selection{font-size:11px}}


/* STAY WITH VIEW v8 — navigation redesign and early booking flow */
html{scroll-padding-top:85px}
#availability{scroll-margin-top:74px}
.site-nav .nav-book{gap:16px}
/* Hero invitation */
.hero-dates-card{position:absolute;z-index:2;right:5.3vw;top:24%;width:clamp(230px,25vw,365px);border:1px solid rgba(255,255,255,.56);background:rgba(23,39,29,.48);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);padding:24px 25px 19px;color:#fff;transition:transform .3s,background .3s}
.hero-dates-card:hover{transform:translateY(-3px);background:rgba(23,39,29,.71)}
.hero-dates-eyebrow{display:block;font:700 9px/1.4 var(--sans);letter-spacing:.2em;color:#e5cbb4}
.hero-dates-title{display:block;font:400 clamp(25px,2.3vw,38px)/1.15 var(--serif);letter-spacing:-.045em;margin:15px 0 17px}
.hero-dates-foot{display:flex;justify-content:space-between;align-items:center;gap:13px;font:500 10px/1.5 var(--sans);color:#f6eadd}
.hero-dates-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1px solid #d4ba9e;border-radius:50%;font-size:17px}
/* Menu: editorial panel, recognisable rows and quick routes */
.menu-overlay{padding:100px max(4.5vw,24px) 26px;overflow-y:auto;align-items:stretch;justify-content:initial;background:#21382b}
.menu-shell{width:min(100%,1400px);height:min(735px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,37%);gap:clamp(24px,4vw,70px);align-items:stretch}
.menu-content{min-width:0;display:flex;flex-direction:column}
.menu-overlay .menu-kicker{font:700 10px var(--sans);letter-spacing:.21em;color:#d5b89d;margin:0}
.menu-headline{font:400 clamp(39px,4vw,66px)/1.04 var(--serif);letter-spacing:-.055em;color:#f7f1e7;margin:12px 0 20px}
.menu-headline em{color:#d7b194;font-weight:400}
.menu-group{margin-top:13px}
.menu-group-discover{margin-top:19px}
.menu-group-title{font:700 9px/1.4 var(--sans);letter-spacing:.19em;color:#bdcdbd;margin-bottom:6px}
.menu-entry{width:100%;display:flex;align-items:center;gap:16px;border-bottom:1px solid rgba(239,237,224,.15);padding:10px 12px;color:#f5f0e7;font:400 clamp(18px,2.1vw,29px)/1.15 var(--serif);letter-spacing:-.02em;transition:background .2s,padding-left .2s}
.menu-entry:hover,.menu-entry:focus-visible{background:rgba(255,255,255,.07);padding-left:20px}
.menu-entry-symbol{width:22px;flex:none;color:#d7b194;font:600 10px var(--sans);letter-spacing:.06em}
.menu-entry-end{margin-left:auto;font:19px var(--sans);color:#e6c5ac}
.menu-entry-highlight{background:rgba(222,186,154,.14);border:1px solid rgba(226,196,170,.36);font-size:clamp(22px,2.2vw,32px);padding:14px}
.menu-phone{display:flex;gap:9px 15px;align-items:center;flex-wrap:wrap;margin-top:auto;padding-top:16px;font:700 9px var(--sans);letter-spacing:.13em;color:#e5c1a4}
.menu-phone strong{color:white;font:600 12px var(--sans);letter-spacing:.025em}
.menu-visual{position:relative;overflow:hidden;min-height:0;background:#43594a;border:1px solid rgba(231,205,177,.2)}
.menu-visual img{width:100%;height:100%;object-fit:cover;object-position:center 54%;filter:brightness(.81)}
.menu-visual-caption{position:absolute;inset:auto 0 0;color:white;padding:45px 24px 28px;background:linear-gradient(0deg,rgba(6,18,12,.8),transparent);display:flex;flex-direction:column;gap:8px}
.menu-visual-caption span{font:700 9px var(--sans);letter-spacing:.15em}
.menu-visual-caption strong{font:italic 400 clamp(25px,3vw,48px)/1.12 var(--serif);letter-spacing:-.045em;margin-bottom:14px}
/* Availability action */
.calendar-whatsapp{margin-top:14px;display:flex;align-items:center;gap:12px;justify-content:space-between;background:#284332;border:1px solid #284332;color:#fff9ed;padding:18px 18px;font:800 10px/1.45 var(--sans);letter-spacing:.09em;transition:background .2s,border-color .2s,transform .2s;box-shadow:0 10px 24px rgba(20,38,28,.12)}
.calendar-whatsapp[hidden]{display:none!important}
.calendar-whatsapp:hover{background:#355742;border-color:#355742;transform:translateY(-1px)}
.calendar-whatsapp .wa-symbol{font:23px/1 var(--serif)}
.calendar-whatsapp .wa-end{margin-left:auto;font-size:21px}
/* Retain the working V8.8 calendar grid structure */
@media(max-width:1050px){.menu-overlay{padding-top:88px}.menu-headline{font-size:clamp(35px,4.2vw,56px)}.menu-entry{padding:8px 10px}.menu-entry-highlight{padding:12px}.menu-group-discover{margin-top:12px}}
@media(max-width:700px){
  html{scroll-padding-top:65px}
  #availability{scroll-margin-top:62px}
  .hero-dates-card{display:none}
  .menu-overlay{padding:86px 6vw calc(84px + env(safe-area-inset-bottom,0px));overflow:auto}
  .menu-shell{height:auto;min-height:0;display:block}
  .menu-headline{font-size:clamp(38px,10vw,58px);margin:11px 0 22px}
  .menu-group{margin-top:16px}
  .menu-entry,.menu-entry-highlight{font-size:clamp(20px,6vw,29px);padding:10px 12px}
  .menu-group-discover .menu-entry{font-size:clamp(20px,5.5vw,25px);padding:8px 12px}
  .menu-phone{margin:21px 0 0;padding-top:0;display:flex;flex-wrap:wrap;gap:5px}
  .menu-visual{height:110px;margin-top:17px;border-radius:3px}
  .menu-visual-caption{padding:30px 12px 9px;gap:3px}
  .menu-visual-caption strong{font-size:19px;margin:0}
  .menu-visual-caption span{font-size:7px}
  .availability-section{padding-top:14px}
  .availability-layout{padding-top:5vh}
  .calendar-whatsapp{font-size:9px;letter-spacing:.03em}
}
@media(max-width:390px){.menu-entry,.menu-entry-highlight{font-size:21px}.menu-visual{height:86px}.menu-headline{font-size:38px}.menu-entry-symbol{width:18px}}


/* V8.2 — iOS-safe vector symbols (no emoji glyphs). */
.swv-icon{display:inline-block;flex:0 0 auto;width:1em;height:1em;vertical-align:-.12em;stroke:currentColor;overflow:visible;pointer-events:none}
.brand-spark{display:inline-flex;align-items:center;justify-content:center;vertical-align:0.69em;width:14px;height:14px;margin:0 1px;line-height:1}
.brand-spark .swv-icon{width:14px;height:14px;stroke-width:1.65}
.menu-entry-end .swv-icon{width:19px;height:19px}
.menu-entry-symbol .swv-icon{width:19px;height:19px}
.menu-phone .swv-icon{width:12px;height:12px}
.menu-overlay .menu-phone strong .swv-icon{width:13px;height:13px}
.pill-button .swv-icon,.nav-whatsapp .swv-icon{width:14px;height:14px;margin-left:2px}
.round-arrow .swv-icon{width:23px;height:23px}
.hero-dates-icon .swv-icon{width:19px;height:19px}
.calendar-arrow .swv-icon{width:20px;height:20px;vertical-align:middle}
.calendar-booking .swv-icon,.calendar-whatsapp .wa-end .swv-icon{width:18px;height:18px}
.calendar-whatsapp .wa-symbol .swv-icon{width:22px;height:22px}
.mobile-book-arrow .swv-icon{width:20px;height:20px;display:block}
.mobile-wa-icon .swv-icon{width:24px;height:24px;display:block}
.reserve-button .button-icon .swv-icon{width:19px;height:19px}
.whatsapp-chat-icon .swv-icon{width:17px;height:17px}
.lightbox-main button .swv-icon{width:22px;height:22px;vertical-align:middle}
.gallery-tile>span>.swv-icon{width:13px;height:13px}
.stage-corner .swv-icon{width:22px;height:22px}
.tiny-star .swv-icon{width:.72em;height:.72em}
.star-mini .swv-icon{width:18px;height:18px}
.interlude-top .swv-icon{width:16px;height:16px}
.amenity-icon .swv-icon{width:26px;height:26px}
.mobile-wa-label{line-height:1.2}
@media(max-width:700px){
  .brand-spark,.brand-spark .swv-icon{width:12px;height:12px}
  .mobile-book-arrow .swv-icon{width:18px;height:18px}
  .mobile-wa-icon .swv-icon{width:22px;height:22px}
  .calendar-arrow .swv-icon{width:19px;height:19px}
  .menu-entry-end .swv-icon{width:18px;height:18px}
}


/* V8.4 — iPhone/Safari: mask chapter headings passing behind the sticky photo.
   The image itself stays at the same position (64px nav + 12px inset);
   extending the opaque sticky surface to the top of the viewport covers
   the 3–8px slit that otherwise reveals fragments of scrolling titles. */
@media (max-width: 700px) {
  .spaces-section .spaces-visual {
    top: 0;
    height: calc(47dvh + 64px);
    padding: 76px 6vw 10px;
    background: #eae0d4;
    z-index: 5;
  }
}

/* V8.5 — hero stay strip for a clearer first impression */
.opening-title{bottom:clamp(170px,24vh,245px)}
.hero-stay-strip{position:absolute;left:0;right:0;bottom:0;z-index:4;display:grid;grid-template-columns:minmax(245px,1.08fr) repeat(3,minmax(0,1fr));gap:14px;align-items:end;padding:88px 5.3vw 24px;background:linear-gradient(180deg,rgba(8,18,15,0) 0%,rgba(8,18,15,.08) 14%,rgba(8,18,15,.52) 38%,rgba(8,18,15,.90) 100%)}
.hero-strip-copy{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;min-height:116px;padding:0 4px 3px;color:#fff;max-width:330px}
.hero-strip-kicker{font:700 9px/1.45 var(--sans);letter-spacing:.2em;color:#ddc0a3}
.hero-strip-heading{font:400 clamp(22px,2vw,31px)/1.12 var(--serif);letter-spacing:-.04em;color:#fff}
.hero-strip-note{font:500 11px/1.65 var(--sans);color:rgba(247,241,232,.88)}
.hero-strip-card{position:relative;display:block;min-height:130px;overflow:hidden;border-radius:14px;background:#203128;border:1px solid rgba(255,255,255,.16);box-shadow:0 12px 28px rgba(5,15,10,.18);transform:translateZ(0);transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.hero-strip-card img{width:100%;height:100%;min-height:130px;display:block;object-fit:cover;transition:transform .55s ease}
.hero-strip-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.12) 36%,rgba(0,0,0,.58) 100%)}
.hero-strip-card-label{position:absolute;left:14px;right:14px;bottom:12px;z-index:1;color:#fff;font:700 9px/1.5 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.hero-strip-card:hover{transform:translateY(-4px);border-color:rgba(255,255,255,.33);box-shadow:0 18px 38px rgba(4,12,8,.28)}
.hero-strip-card:hover img{transform:scale(1.04)}
@media(max-width:1050px){.opening-title{bottom:clamp(182px,25vh,255px)}.hero-stay-strip{grid-template-columns:minmax(0,1.15fr) repeat(3,minmax(0,1fr));gap:11px}.hero-strip-heading{font-size:25px}.hero-strip-copy{max-width:280px}.hero-strip-card,.hero-strip-card img{min-height:118px}}
@media(max-width:700px){.opening-title{bottom:260px}.hero-stay-strip{display:flex;gap:10px;align-items:stretch;padding:90px 6vw 20px;overflow-x:auto;scroll-snap-type:x proximity;-ms-overflow-style:none;scrollbar-width:none}.hero-stay-strip::-webkit-scrollbar{display:none}.hero-strip-copy{flex:0 0 68vw;min-width:68vw;min-height:104px;padding:0 2px 2px;max-width:none}.hero-strip-kicker{font-size:8px}.hero-strip-heading{font-size:24px}.hero-strip-note{font-size:10px;max-width:240px}.hero-strip-card{flex:0 0 44vw;min-width:44vw;min-height:104px;scroll-snap-align:start;border-radius:12px}.hero-strip-card img{min-height:104px}.hero-strip-card-label{font-size:8px;left:11px;right:11px;bottom:10px}}
@media(max-width:430px){.opening-title{bottom:246px}.hero-strip-copy{flex-basis:72vw;min-width:72vw}.hero-strip-card{flex-basis:47vw;min-width:47vw}}

/* V8.6 — cleaner hero layout with non-overlapping desktop strip and mobile carousel */
.opening-reveal{display:none!important}
.opening-title{bottom:clamp(210px,25vh,295px)}
.opening-title h1{max-width:min(52vw,900px)}
.hero-bottom{max-width:min(55vw,720px)}
.hero-stay-strip{grid-template-columns:minmax(260px,.95fr) repeat(3,minmax(0,1fr));gap:12px;padding:58px 5.3vw 24px;background:linear-gradient(180deg,rgba(8,18,15,0) 0%,rgba(8,18,15,.10) 12%,rgba(8,18,15,.56) 42%,rgba(8,18,15,.92) 100%)}
.hero-strip-copy{padding-bottom:8px;max-width:300px}
.hero-strip-heading{font-size:clamp(20px,1.8vw,28px)}
.hero-strip-note{max-width:280px}
@media(max-width:1280px){.opening-title{bottom:clamp(230px,27vh,310px)}.opening-title h1{max-width:min(58vw,860px)}}
@media(max-width:1050px){.opening-title{bottom:clamp(230px,27vh,320px)}.opening-title h1{max-width:min(64vw,820px)}.hero-bottom{max-width:min(64vw,680px)}.hero-stay-strip{padding-top:52px}}
@media(max-width:700px){.opening{height:156vh}.opening-title{left:6vw;right:6vw;bottom:320px}.opening-title h1{max-width:100%;font-size:clamp(53px,13.5vw,82px);margin-bottom:18px}.hero-bottom{display:block;max-width:100%}.hero-bottom p{max-width:300px;font-size:12px}.discover-link{margin-top:18px}.opening-scroll{display:none}.hero-dates-card{display:none}.hero-stay-strip{left:0;right:0;bottom:calc(92px + env(safe-area-inset-bottom,0px));display:flex;gap:12px;align-items:stretch;padding:52px 6vw 0;overflow-x:auto;scroll-snap-type:x mandatory;-ms-overflow-style:none;scrollbar-width:none;background:linear-gradient(180deg,rgba(8,18,15,0) 0%,rgba(8,18,15,.16) 18%,rgba(8,18,15,.74) 60%,rgba(8,18,15,.94) 100%)}.hero-stay-strip::-webkit-scrollbar{display:none}.hero-strip-copy{display:none}.hero-strip-card{flex:0 0 74vw;min-width:74vw;min-height:148px;scroll-snap-align:center;border-radius:14px}.hero-strip-card img{min-height:148px}.hero-strip-card-label{font-size:8px;letter-spacing:.17em;left:12px;right:12px}.mobile-book-rail{z-index:120}}
@media(max-width:430px){.opening{height:154vh}.opening-title{bottom:305px}.opening-title h1{font-size:14.3vw}.hero-bottom p{max-width:265px}.hero-stay-strip{bottom:calc(90px + env(safe-area-inset-bottom,0px));padding-top:48px}.hero-strip-card{flex-basis:78vw;min-width:78vw;min-height:136px}.hero-strip-card img{min-height:136px}}


/* V8.7 — compact mobile hero with premium, card-locked image carousel */
.hero-carousel-ui{display:none}
@media (max-width:700px){
  .opening{height:128vh!important;height:128dvh!important}
  .opening-title{bottom:clamp(253px,32dvh,310px)!important;left:6vw;right:6vw;z-index:3}
  .opening-title h1{font-size:clamp(45px,11.55vw,59px)!important;line-height:1.04;letter-spacing:-.065em;margin:10px 0 14px;max-width:100%}
  .opening-title .overline{font-size:8px;line-height:1.5}
  .hero-bottom{max-width:100%}
  .hero-bottom p{font-size:11.5px!important;line-height:1.55;max-width:290px;letter-spacing:0;text-shadow:0 1px 8px rgba(0,0,0,.5)}
  .discover-link{margin-top:14px!important;font-size:8.5px;gap:10px;letter-spacing:.14em}
  .discover-link .round-arrow{height:32px;width:32px}
  .opening-shade{background:linear-gradient(180deg,rgba(9,23,20,.32) 0%,rgba(9,23,20,.02) 25%,rgba(9,23,20,.30) 47%,rgba(9,23,20,.48) 62%,rgba(8,18,15,.84) 87%,rgba(8,18,15,.95) 100%)}
  .hero-stay-strip{box-sizing:border-box;bottom:calc(96px + env(safe-area-inset-bottom,0px))!important;left:0;right:0;display:flex;align-items:stretch;gap:12px;height:clamp(102px,13dvh,122px);padding:0 6vw!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-padding-inline:6vw;overscroll-behavior-inline:contain;scrollbar-width:none;background:none!important;z-index:5}
  .hero-stay-strip::-webkit-scrollbar{display:none}
  .hero-strip-copy{display:none!important}
  .hero-strip-card{box-sizing:border-box;flex:0 0 76vw!important;min-width:76vw!important;min-height:0!important;height:100%!important;scroll-snap-align:start;scroll-snap-stop:always;border-radius:13px;box-shadow:0 9px 23px rgba(2,11,8,.32)}
  .hero-strip-card img{box-sizing:border-box;display:block;width:100%!important;height:100%!important;min-height:0!important;max-height:100%!important;object-fit:cover;object-position:center 50%}
  .hero-strip-card-label{bottom:10px;font-size:8px;letter-spacing:.18em}
  .hero-carousel-ui{position:absolute;right:6vw;bottom:calc(96px + env(safe-area-inset-bottom,0px) + clamp(102px,13dvh,122px) + 10px);z-index:6;display:flex;gap:12px;align-items:center;color:#fff}
  .hero-carousel-count{font:700 9px/1 var(--sans);letter-spacing:.16em;text-shadow:0 1px 6px rgba(0,0,0,.35)}
  .hero-carousel-count small{opacity:.63;font-size:9px}
  .hero-carousel-dots{display:flex;align-items:center;gap:6px}
  .hero-carousel-dot{display:block;width:5px;height:5px;min-width:5px;flex:none;padding:0;border:0;border-radius:20px;background:rgba(255,255,255,.49);transition:width .2s ease,background .2s ease;box-shadow:0 1px 4px rgba(0,0,0,.15)}
  .hero-carousel-dot.is-active{width:19px;background:#f1d7bd}
  .hero-carousel-dot:focus-visible{outline:2px solid #fff;outline-offset:4px}
  .mobile-action-rail{z-index:101}
}
@media(max-width:430px){
  .opening-title{bottom:clamp(245px,32dvh,295px)!important}
  .opening-title h1{font-size:clamp(43px,11.7vw,54px)!important}
  .hero-stay-strip{height:clamp(102px,13dvh,116px);bottom:calc(94px + env(safe-area-inset-bottom,0px))!important}
  .hero-strip-card{flex-basis:78vw!important;min-width:78vw!important}
  .hero-carousel-ui{bottom:calc(94px + env(safe-area-inset-bottom,0px) + clamp(102px,13dvh,116px) + 10px)}
}
@media(max-width:700px) and (max-height:740px){
  .opening-title{bottom:clamp(218px,35dvh,255px)!important}
  .opening-title h1{font-size:clamp(40px,10.6vw,49px)!important;margin-bottom:8px}
  .hero-bottom p{font-size:10.5px!important;line-height:1.45}
  .discover-link{margin-top:8px!important}
  .hero-stay-strip{height:98px;bottom:calc(85px + env(safe-area-inset-bottom,0px))!important}
  .hero-carousel-ui{bottom:calc(85px + env(safe-area-inset-bottom,0px) + 108px)}
}
@media(prefers-reduced-motion:reduce){.hero-strip-card,.hero-carousel-dot{transition:none!important}}


/* V8.8 — editorial desktop hero: one focal headline, one booking CTA,
   and three restrained photographs grouped into a single visual ribbon.
   Mobile carousel and sticky actions remain unchanged. */
@media (min-width:701px) {
  .opening-sticky { isolation:isolate; }
  .opening-shade {
    background:linear-gradient(90deg,rgba(7,23,19,.39),rgba(7,23,19,.09) 59%,rgba(7,23,19,.05)),
      linear-gradient(180deg,rgba(8,24,21,.26) 0%,rgba(8,24,21,.01) 28%,rgba(8,24,21,.18) 55%,rgba(6,21,16,.82) 100%);
  }
  .opening-title {
    top:clamp(177px,23vh,248px);
    bottom:auto;
    left:5.3vw;
    right:auto;
    width:min(64vw,850px);
    z-index:3;
  }
  .opening-title h1 {
    font-size:clamp(66px,7.2vw,119px);
    line-height:1.01;
    letter-spacing:-.064em;
    max-width:850px;
    margin:12px 0 18px;
  }
  .hero-bottom {
    display:flex;
    flex-direction:column;
    gap:15px;
    align-items:flex-start;
    max-width:440px;
  }
  .hero-bottom p {
    max-width:430px;
    font-size:13px;
    line-height:1.65;
    text-shadow:0 2px 15px rgba(0,0,0,.4);
  }
  .discover-link {display:inline-flex;gap:12px;font-size:9px;letter-spacing:.13em}
  .discover-link .round-arrow {width:32px;height:32px}
  .discover-link .round-arrow .swv-icon {width:18px;height:18px}
  .opening-scroll {display:none}

  /* Transform the oversized floating glass box into a quiet booking tile. */
  .hero-dates-card {
    top:auto;
    right:auto;
    left:5.3vw;
    bottom:clamp(24px,4vh,40px);
    width:clamp(207px,22vw,286px);
    min-height:clamp(112px,15vh,146px);
    padding:18px 19px 15px;
    border-radius:14px;
    border-color:rgba(249,241,228,.34);
    background:rgba(24,48,35,.84);
    -webkit-backdrop-filter:blur(9px);
    backdrop-filter:blur(9px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    z-index:6;
    box-shadow:0 14px 30px rgba(0,0,0,.16);
  }
  .hero-dates-eyebrow {font-size:8px;letter-spacing:.16em}
  .hero-dates-title {font-size:clamp(22px,2.15vw,29px);margin:6px 0 3px;line-height:1.06;max-width:240px}
  .hero-dates-foot {justify-content:flex-end;min-height:21px}
  .hero-dates-foot > span:first-child {display:none}
  .hero-dates-icon {width:27px;height:27px}
  .hero-dates-icon .swv-icon {width:15px;height:15px}

  /* One visual unit instead of separate, oversized cards and competing copy. */
  .hero-stay-strip {
    position:absolute;
    left:auto;
    right:5.3vw;
    bottom:clamp(24px,4vh,40px);
    z-index:5;
    box-sizing:border-box;
    width:min(58vw,860px);
    padding:7px;
    display:grid;
    grid-template-columns:1.25fr 1fr 1fr;
    align-items:stretch;
    gap:7px;
    border:1px solid rgba(255,255,255,.23);
    border-radius:15px;
    background:rgba(16,35,27,.52);
    box-shadow:0 18px 36px rgba(0,0,0,.16);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
  }
  .hero-strip-copy {display:none!important}
  .hero-strip-card {
    min-height:clamp(112px,16vh,157px);
    height:clamp(112px,16vh,157px);
    overflow:hidden;
    box-shadow:none;
    border:0;
    border-radius:10px;
    margin:0;
  }
  .hero-strip-card img {
    width:100%;height:100%;min-height:0;max-height:100%;
    object-fit:cover;
  }
  .hero-strip-card-label {font-size:8px;letter-spacing:.12em;bottom:9px;left:11px;right:8px}
  .hero-stay-strip .hero-strip-card:hover {box-shadow:none;transform:translateY(-2px)}
}
@media (min-width:701px) and (max-width:1100px) {
  .opening-title {top:clamp(140px,19vh,195px);width:65vw}
  .opening-title h1 {font-size:clamp(56px,7vw,82px)}
  .hero-bottom p {font-size:11px;max-width:355px}
  .hero-dates-card {width:clamp(170px,22vw,232px);padding:13px 14px}
  .hero-dates-title {font-size:22px}
  .hero-stay-strip {width:57vw}
}
@media (min-width:701px) and (max-height:720px) {
  .opening-title {top:clamp(128px,19vh,168px)}
  .opening-title h1 {font-size:clamp(55px,6.2vw,91px);margin:6px 0 11px}
  .hero-bottom {gap:7px}
  .hero-bottom p {line-height:1.4}
  .hero-dates-card {min-height:100px}
  .hero-strip-card {min-height:100px;height:clamp(100px,17vh,122px)}
}


/* V8.9.2: iOS Chrome/Safari expanding-browser-toolbar mobile navigation fix.
   The overlay uses the currently visible viewport (dvh), not the larger layout
   viewport. It scrolls independently while the background page stays locked. */
@media (max-width: 700px) {
  .menu-overlay {
    top: 0;
    bottom: auto;
    height: 100vh; /* legacy Safari fallback */
    height: 100dvh;
    max-height: 100dvh;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    padding: 86px 6vw calc(24px + env(safe-area-inset-bottom, 0px));
    justify-content: flex-start;
    align-items: stretch;
    scroll-padding-top: 76px;
    touch-action: pan-y;
  }
  .menu-overlay .menu-shell {
    width: 100%;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    display: block;
    flex: none;
  }
  .menu-overlay .menu-content {
    min-height: 0;
  }
  .menu-overlay .menu-phone {
    margin-top: 18px;
  }
  .menu-overlay .menu-visual {
    height: 108px;
    margin-top: 17px;
    flex: none;
  }
  body.menu-open .mobile-action-rail,
  body.menu-open .mobile-book-rail,
  body.menu-open > .mobile-wa-link {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
}
@media (max-width: 700px) and (max-height: 740px) {
  .menu-overlay { padding-top: 76px; padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }
  .menu-overlay .menu-headline { margin: 8px 0 16px; }
  .menu-overlay .menu-group { margin-top: 10px; }
  .menu-overlay .menu-entry { padding-top: 7px; padding-bottom: 7px; }
  .menu-overlay .menu-entry-highlight { padding-top: 10px; padding-bottom: 10px; }
  .menu-overlay .menu-visual { height: 92px; margin-top: 12px; }
}


/* V8.9.3 — Panorama fidelity. Keep layout, interactions and the mobile menu intact.
   Less artificial enlargement, more natural colour, brighter panorama and a
   controlled shadow only where white typography / lower CTAs need contrast. */
.opening-media img {
  transform: scale(1.03);
  filter: saturate(1.035) contrast(1.018);
  object-position: center 48%;
}
.opening-shade {
  background:
    linear-gradient(90deg,
      rgba(7,22,18,.30) 0%,
      rgba(7,22,18,.14) 28%,
      rgba(7,22,18,.03) 60%,
      rgba(7,22,18,0) 85%),
    linear-gradient(180deg,
      rgba(7,21,18,.17) 0%,
      rgba(7,21,18,.015) 28%,
      rgba(7,21,18,.09) 55%,
      rgba(7,21,18,.31) 78%,
      rgba(7,21,18,.60) 100%);
}
/* On phones the mountain sits behind the headline, so preserve a little more
   local contrast and avoid the previously forced 1.18x mobile zoom. */
@media (max-width:700px) {
  .opening-media img {
    transform:scale(1.03)!important;
    object-position:57% center;
  }
  .opening-shade {
    background:
      linear-gradient(90deg, rgba(7,22,18,.13) 0%, rgba(7,22,18,0) 88%),
      linear-gradient(180deg,
        rgba(7,21,18,.20) 0%,
        rgba(7,21,18,0) 28%,
        rgba(7,21,18,.15) 48%,
        rgba(7,21,18,.43) 73%,
        rgba(7,21,18,.70) 100%);
  }
}
@media (prefers-reduced-motion:reduce) {
  .opening-media img {transform:none!important;}
}


/* V8.9.4 — two distinct, readable scroll chapters in the opening hero.
   Overrides the old V8.6 rule that accidentally hid the second chapter. */
.opening-reveal {
  display:flex!important;
  position:absolute;
  inset:auto!important;
  top:clamp(178px,23vh,250px);
  left:5.3vw;
  width:min(830px,65vw);
  max-width:calc(100vw - 10.6vw);
  text-align:left;
  align-items:flex-start;
  justify-content:flex-start;
  opacity:0;
  visibility:hidden;
  transform:translateY(30px);
  z-index:3;
  pointer-events:none;
  color:#fff;
}
.opening-reveal-copy {width:100%;max-width:760px}
.opening-reveal-copy .overline {
  font:700 9px/1.55 var(--sans);
  letter-spacing:.18em;
  color:#f1dfc8;
  margin:0;
}
.opening-reveal-copy h2 {
  font:400 clamp(62px,6.6vw,104px)/1.02 var(--serif);
  letter-spacing:-.066em;
  margin:17px 0 22px;
  text-shadow:0 2px 30px rgba(6,20,14,.24);
}
.opening-reveal-copy h2 em {font-weight:400;font-style:italic}
.opening-reveal-sub {
  max-width:425px;
  font:500 14px/1.7 var(--sans);
  color:#f8f4eb;
  text-shadow:0 2px 14px rgba(4,15,10,.45);
}
/* The first chapter is about the apartment itself; avoid long subtitle lines. */
.opening-title .hero-bottom p {max-width:445px}
@media(min-width:701px) and (max-width:1100px){
  .opening-reveal {top:clamp(140px,19vh,195px);width:65vw}
  .opening-reveal-copy h2 {font-size:clamp(50px,6.4vw,78px)}
  .opening-reveal-sub{font-size:12px;max-width:360px}
}
@media(min-width:701px) and (max-height:720px){
  .opening-reveal{top:clamp(128px,19vh,168px)}
  .opening-reveal-copy h2{font-size:clamp(51px,5.8vw,82px);margin:10px 0 15px}
  .opening-reveal-sub{font-size:12px;line-height:1.55}
}
@media(max-width:700px){
  /* Allow a scroll interval for the second chapter without a long blank intro. */
  .opening{height:158vh!important;height:158dvh!important}
  .opening-reveal {
    top:clamp(175px,27dvh,245px);
    left:6vw;
    width:88vw;
    max-width:88vw;
  }
  .opening-reveal-copy h2{
    font-size:clamp(43px,10.9vw,61px);
    line-height:1.05;
    letter-spacing:-.065em;
    margin:13px 0 15px;
  }
  .opening-reveal-copy .overline{font-size:8px;letter-spacing:.13em;max-width:300px}
  .opening-reveal-sub{font-size:11px;max-width:300px;line-height:1.55}
}
@media(max-width:430px){
  .opening-reveal{top:clamp(160px,26dvh,226px)}
  .opening-reveal-copy h2{font-size:clamp(39px,10.4vw,49px)}
  .opening-reveal-sub{max-width:270px}
}
@media(max-width:700px) and (max-height:740px){
  .opening{height:165vh!important;height:165dvh!important}
  .opening-reveal{top:clamp(135px,25dvh,184px)}
  .opening-reveal-copy h2{font-size:clamp(37px,10.2vw,48px);margin:9px 0 12px}
  .opening-reveal-sub{font-size:10px;line-height:1.5}
}
@media(prefers-reduced-motion:reduce){.opening-reveal{transition:none!important}}


/* STAY WITH VIEW V8.9.5 — Two distinct cinematic hero scenes */
.opening{height:215vh!important;background:#182c25!important;color:#f7f0e6!important}
.opening-sticky{height:100vh;height:100dvh;isolation:isolate;overflow:hidden}
.hero-home,.hero-view-scene{position:absolute;inset:0;will-change:opacity}
.hero-home{z-index:2;opacity:1;background:radial-gradient(ellipse at 68% 35%,#566650 0%,#334838 29%,#203729 55%,#15291f 100%);overflow:hidden}
.hero-home:before{content:"";position:absolute;inset:0;opacity:.25;pointer-events:none;background:radial-gradient(ellipse at 12% 22%,rgba(229,194,159,.15),transparent 52%)}
.hero-home-text{position:absolute;left:6vw;top:clamp(135px,21vh,232px);width:min(43vw,630px);z-index:4}
.hero-eyebrow{font:700 10px/1.5 var(--sans);letter-spacing:.19em;color:#dfbb9e;margin:0 0 20px}
.hero-home-text h1{font:400 clamp(63px,6vw,105px)/1.015 var(--serif);letter-spacing:-.069em;margin:0;color:#fff8ec;max-width:800px}
.hero-home-text h1 em{color:#e6c0a0;font-style:italic;font-weight:400}
.hero-home-description{font:500 clamp(12px,1.1vw,15px)/1.8 var(--sans);color:#e6e8df;max-width:435px;margin:22px 0 22px}
.hero-home-cta,.hero-view-cta{display:inline-flex;align-items:center;gap:30px;justify-content:space-between;border:1px solid rgba(245,231,210,.70);border-radius:100px;color:#f7efe3;padding:11px 14px 11px 20px;min-width:176px;font:700 10px/1.4 var(--sans);letter-spacing:.14em;transition:background .2s,color .2s}
.hero-home-cta svg,.hero-view-cta svg{width:19px;height:19px}
.hero-home-cta:hover,.hero-view-cta:hover{background:#e6c4a4;color:#21372a}
.hero-facts{display:flex;gap:0;border-top:1px solid rgba(247,233,220,.28);margin-top:34px;max-width:425px;padding-top:14px}
.hero-facts span{display:flex;flex-direction:column;flex:1;border-right:1px solid rgba(247,233,220,.2);padding-left:16px;gap:4px}
.hero-facts span:first-child{padding-left:0}.hero-facts span:last-child{border-right:0}
.hero-facts b{font:400 25px/1.2 var(--serif);color:#f7eee1}.hero-facts small{font:700 8px/1.5 var(--sans);letter-spacing:.1em;color:#d7b89e}
.hero-editorial{position:absolute;right:5.7vw;top:clamp(143px,17vh,200px);bottom:10vh;width:min(46vw,690px);z-index:3}
.hero-editorial figure{margin:0;position:absolute;overflow:hidden;border:5px solid #ede4d6;background:#233c30;box-shadow:0 22px 75px rgba(3,13,9,.35)}
.hero-editorial figure img{width:100%;height:100%;object-fit:cover;display:block}
.hero-editorial figcaption{position:absolute;bottom:0;left:0;right:0;color:white;padding:22px 16px 11px;background:linear-gradient(transparent,rgba(4,14,9,.70));font:700 9px/1.4 var(--sans);letter-spacing:.16em}
.hero-editorial-main{top:2%;left:8%;width:70%;height:70%;transform:rotate(-2deg);z-index:2}
.hero-editorial-bed{top:49%;left:0;width:43%;height:43%;transform:rotate(4deg);z-index:4}
.hero-editorial-detail{top:28%;right:1%;width:39%;height:48%;transform:rotate(5deg);z-index:3}
.hero-editorial-stamp{position:absolute;right:5%;bottom:4%;font:700 10px var(--sans);letter-spacing:.25em;color:#e6c5a5;transform:rotate(-4deg)}
.hero-home-bottom{position:absolute;bottom:27px;left:6vw;right:6vw;display:flex;align-items:center;justify-content:space-between;gap:15px;font:700 9px var(--sans);letter-spacing:.13em;color:#dcc3a7}
.hero-view-scene{z-index:3;opacity:0;visibility:hidden;pointer-events:none;background:#1c3025}
.hero-view-media,.hero-view-gradient{position:absolute;inset:0}
.hero-view-media img{width:100%;height:100%;object-fit:cover;object-position:center 44%;display:block;transform:scale(1.035);filter:saturate(1.04) contrast(1.02)}
.hero-view-gradient{background:linear-gradient(90deg,rgba(9,25,17,.51) 0%,rgba(9,25,17,.22) 44%,rgba(9,25,17,.03) 82%),linear-gradient(0deg,rgba(9,25,17,.76) 0%,rgba(9,25,17,.36) 22%,transparent 52%)}
.hero-view-text{position:absolute;top:44%;left:6vw;transform:translateY(-43%);width:min(52vw,720px);z-index:3;color:#fff}
.hero-view-text h2{font:400 clamp(63px,7.3vw,118px)/1.01 var(--serif);letter-spacing:-.07em;margin:10px 0 20px;text-shadow:0 2px 28px rgba(9,25,17,.3)}
.hero-view-text h2 em{font-weight:400;font-style:italic}
.hero-view-description{max-width:420px;color:#f8f1e6;font:500 14px/1.8 var(--sans);margin:0 0 25px;text-shadow:0 1px 12px rgba(0,0,0,.35)}

.hero-view-bottom-shadow{position:absolute;left:0;right:0;bottom:0;height:min(39vh,320px);z-index:2;background:linear-gradient(180deg,rgba(7,22,16,0) 0%,rgba(7,22,16,.22) 16%,rgba(7,22,16,.56) 42%,rgba(7,22,16,.82) 68%,rgba(7,22,16,.95) 100%)}
.hero-view-strip{position:absolute;left:6vw;right:6vw;bottom:32px;display:grid;grid-template-columns:minmax(240px,290px) minmax(0,760px);gap:26px;align-items:end;z-index:4;pointer-events:none}
.hero-view-book-tile{pointer-events:auto;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:126px;padding:20px 22px 18px;border-radius:22px;background:linear-gradient(180deg,rgba(20,60,41,.92),rgba(13,42,30,.96));border:1px solid rgba(245,233,216,.28);box-shadow:0 18px 42px rgba(5,12,8,.25);text-decoration:none;color:#fff7eb}
.hero-view-book-kicker{font:700 10px/1.4 var(--sans);letter-spacing:.18em;color:#dec9af;text-transform:uppercase}
.hero-view-book-tile strong{display:block;font:400 clamp(22px,2.05vw,34px)/.98 var(--serif);letter-spacing:-.04em;max-width:11ch;margin:10px 0 16px}
.hero-view-book-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;border:1px solid rgba(245,233,216,.55);margin-left:auto;color:#f8e7d3;background:rgba(255,255,255,.06)}
.hero-view-cards{pointer-events:none;display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:10px;border-radius:26px;background:linear-gradient(180deg,rgba(16,38,28,.42),rgba(10,24,18,.76));border:1px solid rgba(245,233,216,.14);box-shadow:0 20px 46px rgba(5,12,8,.26);backdrop-filter:blur(8px)}
.hero-view-card{position:relative;overflow:hidden;border-radius:20px;background:#1d2f24;border:1px solid rgba(245,233,216,.16);box-shadow:0 14px 30px rgba(5,12,8,.20);aspect-ratio:1.15/1;margin:0}
.hero-view-card img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.02) contrast(1.02)}
.hero-view-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(5,12,8,.72) 100%)}
.hero-view-card figcaption{position:absolute;left:13px;right:13px;bottom:11px;z-index:1;color:#fff7eb;font:700 9px/1.4 var(--sans);letter-spacing:.16em}
.hero-view-pagination{display:none}
.hero-scene-indicator{position:absolute;top:113px;left:6vw;right:6vw;z-index:5;display:flex;justify-content:flex-end;align-items:center;gap:12px;pointer-events:none;color:#ead4bc;font:700 10px var(--sans);letter-spacing:.16em}
.hero-scene-track{height:1px;width:60px;background:rgba(235,217,197,.5);overflow:hidden}.hero-scene-track span{display:block;width:100%;height:100%;background:#f3e4ce;transform:scaleX(0);transform-origin:left}
/* Menu regenerated from all annotated sections in live DOM order. */
.menu-links-generated{width:100%;min-width:0;overflow:visible}
.menu-links-generated .menu-group{margin:11px 0 0}
.menu-links-generated .menu-group-title{margin-bottom:5px}
.menu-links-generated .menu-entry{padding:7px 10px;font-size:clamp(16px,1.65vw,24px)}
.menu-links-generated .menu-entry-highlight{padding:11px 12px;font-size:clamp(18px,1.8vw,26px)}
.menu-links-generated .menu-entry-symbol{width:21px}
.menu-links-generated .menu-entry-text{min-width:0;overflow-wrap:anywhere}
.menu-content{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#789382 transparent}
.menu-shell{min-height:0}
@media(max-width:1100px){
 .hero-home-text{left:6vw;top:clamp(129px,20vh,190px);width:49vw}
 .hero-home-text h1{font-size:clamp(56px,6vw,78px)}
 .hero-editorial{right:3vw;width:44vw;top:18vh;bottom:12vh}
 .hero-facts b{font-size:22px}
}
@media(max-width:700px){
 .opening{height:192vh!important;height:192dvh!important}
 .hero-home-text{top:clamp(108px,16dvh,142px);left:6vw;width:88vw}
 .hero-eyebrow{font-size:8px;letter-spacing:.13em;margin-bottom:13px}
 .hero-home-text h1{font-size:clamp(45px,11.2vw,62px);line-height:1.04;max-width:350px}
 .hero-home-description{font-size:11px;line-height:1.6;max-width:330px;margin:13px 0 13px}
 .hero-home-cta{font-size:9px;padding:8px 11px 8px 15px;min-width:132px;gap:15px}
 .hero-facts{margin-top:14px;padding-top:9px;max-width:330px}
 .hero-facts b{font-size:18px}.hero-facts small{font-size:7px;letter-spacing:.045em}
 .hero-facts span{padding-left:10px}
 .hero-editorial{top:auto;left:6vw;right:6vw;bottom:calc(101px + env(safe-area-inset-bottom,0px));height:clamp(170px,27dvh,250px);width:88vw}
 .hero-editorial figure{border-width:3px;box-shadow:0 10px 30px rgba(0,0,0,.28)}
 .hero-editorial-main{top:0;left:0;width:69%;height:91%;transform:rotate(-2deg)}
 .hero-editorial-bed{left:auto;right:2%;top:4%;width:38%;height:50%;transform:rotate(4deg)}
 .hero-editorial-detail{left:auto;right:0;top:57%;width:37%;height:40%;transform:rotate(-3deg)}
 .hero-editorial figcaption{font-size:7px;letter-spacing:.08em;padding:14px 8px 7px}
 .hero-editorial-stamp{display:none}
 .hero-home-bottom{display:none}
 .hero-view-media img{object-position:56% 38%;transform:scale(1.08)!important}
 .hero-view-gradient{background:linear-gradient(90deg,rgba(7,24,17,.33),rgba(7,24,17,.08)),linear-gradient(0deg,rgba(7,22,16,.80) 0%,rgba(7,22,16,.48) 25%,transparent 58%)}
 .hero-view-text{top:auto;bottom:calc(286px + env(safe-area-inset-bottom,0px));left:6vw;right:6vw;width:88vw;transform:none}
 .hero-view-text h2{font-size:clamp(43px,11.5vw,61px);line-height:1.04;margin:8px 0 13px;max-width:330px}
 .hero-view-description{font-size:12px;line-height:1.65;max-width:300px;margin-bottom:16px}
 .hero-view-cta{font-size:9px;padding:8px 11px 8px 15px;min-width:132px;gap:16px}

 .hero-view-bottom-shadow{height:min(40vh,310px);background:linear-gradient(180deg,rgba(7,22,16,0) 0%,rgba(7,22,16,.24) 18%,rgba(7,22,16,.58) 52%,rgba(7,22,16,.86) 100%)}
 .hero-view-strip{left:6vw;right:6vw;bottom:calc(120px + env(safe-area-inset-bottom,0px));width:auto;display:flex;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:10vw;padding:0 10vw 4px;pointer-events:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-inline:contain;touch-action:pan-x pan-y}
 .hero-view-strip::-webkit-scrollbar{display:none}
 .hero-view-book-tile{display:none}
 .hero-view-cards{display:contents;background:none;border:none;box-shadow:none;padding:0;backdrop-filter:none}
 .hero-view-card{width:68vw;min-width:68vw;max-width:68vw;height:clamp(122px,17dvh,148px);min-height:0;max-height:148px;aspect-ratio:auto;border-radius:16px;scroll-snap-align:center;scroll-snap-stop:always;flex:0 0 auto;box-shadow:0 15px 30px rgba(5,12,8,.28)}
 .hero-view-card figcaption{font-size:8px;letter-spacing:.12em;bottom:10px;left:12px;right:12px}
 .hero-view-pagination{position:absolute;left:0;right:0;bottom:calc(89px + env(safe-area-inset-bottom,0px));z-index:6;display:flex;align-items:center;justify-content:center;gap:13px;color:#f7f0e6;pointer-events:auto}
 .hero-view-page-number{font:700 10px/1 var(--sans);letter-spacing:.16em;font-variant-numeric:tabular-nums;text-shadow:0 1px 5px rgba(0,0,0,.35)}
 .hero-view-page-number small{font-size:9px;color:#e1cfbb;opacity:.9}
 .hero-view-page-dots{display:flex;align-items:center;gap:7px}
 .hero-view-page-dot{appearance:none;display:block;width:7px;height:7px;padding:0;border:0;border-radius:50px;background:rgba(244,231,215,.48);transition:width .25s ease,background-color .25s ease;box-shadow:0 1px 3px rgba(0,0,0,.2);touch-action:manipulation}
 .hero-view-page-dot.is-active{width:24px;background:#e9c6a4}
 .hero-view-page-dot:focus-visible{outline:2px solid #f9eee0;outline-offset:4px}
 .hero-scene-indicator{top:96px;left:6vw;right:6vw;font-size:8px}
 .menu-content{overflow-y:visible}
 .menu-links-generated .menu-entry{font-size:clamp(19px,5.2vw,25px);padding:8px 10px}
 .menu-links-generated .menu-entry-highlight{font-size:clamp(20px,5.5vw,26px);padding:10px 12px}
 .menu-links-generated .menu-group{margin-top:13px}
}
@media(max-width:700px) and (max-height:740px){
 .opening{height:200vh!important;height:200dvh!important}
 .hero-home-text{top:clamp(96px,14dvh,118px)}
 .hero-home-text h1{font-size:clamp(39px,10vw,52px)}
 .hero-home-description{font-size:10px;margin:9px 0}
 .hero-facts{margin-top:9px}
 .hero-editorial{bottom:calc(88px + env(safe-area-inset-bottom,0px));height:clamp(126px,24dvh,165px)}
 .hero-view-text{bottom:calc(274px + env(safe-area-inset-bottom,0px))}
 .hero-view-strip{bottom:calc(116px + env(safe-area-inset-bottom,0px))}
 .hero-view-pagination{bottom:calc(86px + env(safe-area-inset-bottom,0px))}
 .hero-view-card{width:66vw;min-width:66vw;max-width:66vw;height:clamp(116px,16dvh,136px);max-height:136px}
 .hero-view-text h2{font-size:clamp(39px,10vw,48px)}
}
@media(prefers-reduced-motion:reduce){.hero-view-media img{transform:none!important}}
@media(max-width:360px) and (max-height:640px){
  .hero-editorial{height:117px;bottom:calc(80px + env(safe-area-inset-bottom,0px))}
  .hero-view-text{bottom:calc(265px + env(safe-area-inset-bottom,0px))}
  .hero-view-strip{bottom:calc(113px + env(safe-area-inset-bottom,0px))}
  .hero-view-pagination{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .hero-view-card{width:68vw;min-width:68vw;max-width:68vw;height:118px;max-height:118px}
}

@media(prefers-reduced-motion:reduce){.hero-view-page-dot{transition:none!important}}



/* V8.9.12 – clean editorial image grid: no photographic overlap, no rotations.
   The main bedroom is full width; living room and kitchen sit side by side.
   Other hero scenes, booking calendar, navigation and scripts are unchanged. */
.hero-editorial {
  position:absolute; right:5.3vw; top:clamp(120px,15vh,178px); bottom:clamp(82px,10vh,112px);
  width:min(44vw,690px);
  z-index:3;
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:minmax(0,1.68fr) minmax(0,.90fr);
  gap:12px;
  min-height:0;
  align-content:stretch;
}
.hero-editorial figure,
.hero-editorial .hero-editorial-main,
.hero-editorial .hero-editorial-bed,
.hero-editorial .hero-editorial-detail {
  position:relative;
  inset:auto;
  top:auto;bottom:auto;left:auto;right:auto;
  display:block;
  width:auto;height:auto;min-width:0;min-height:0;
  margin:0;
  border:2px solid rgba(250,242,230,.86);
  border-radius:8px;
  overflow:hidden;
  transform:none;
  box-shadow:0 15px 38px rgba(4,16,11,.25);
}
.hero-editorial-main{grid-column:1 / -1;grid-row:1;z-index:2}
.hero-editorial-bed{grid-column:1;grid-row:2;z-index:2}
.hero-editorial-detail{grid-column:2;grid-row:2;z-index:2}
.hero-editorial figure img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.hero-editorial-main img{object-position:center 48%}
.hero-editorial-bed img{object-position:center 56%}
.hero-editorial-detail img{object-fit:contain;object-position:center;background:#e8e2d8}
.hero-editorial figcaption{font-size:9px;letter-spacing:.13em;padding:22px 14px 10px}
.hero-editorial-stamp{display:none}

@media (min-width:701px) and (max-width:1100px){
  .hero-editorial {top:clamp(126px,17vh,170px);bottom:clamp(70px,10vh,105px);right:4vw;width:43vw;gap:9px;
    grid-template-rows:minmax(0,1.6fr) minmax(0,.95fr)}
  .hero-editorial figure{border-width:2px}
}
@media (max-width:700px){
  .hero-editorial {
    top:auto;left:6vw;right:6vw;width:88vw;
    bottom:calc(100px + env(safe-area-inset-bottom,0px));
    height:clamp(220px,33dvh,300px);
    grid-template-rows:minmax(0,1.7fr) minmax(0,1fr);
    gap:9px;
  }
  .hero-editorial figure{border-width:2px;border-radius:6px;box-shadow:0 9px 22px rgba(4,16,11,.24)}
  .hero-editorial figcaption{font-size:7px;letter-spacing:.07em;padding:17px 8px 7px}
  .hero-editorial-main img{object-position:center 49%}
  .hero-editorial-bed img{object-position:center 55%}
}
@media (max-width:700px) and (max-height:740px){
  .hero-editorial{bottom:calc(89px + env(safe-area-inset-bottom,0px));height:clamp(185px,30dvh,210px);gap:6px}
}
@media (max-width:360px) and (max-height:640px){
  .hero-editorial{bottom:calc(86px + env(safe-area-inset-bottom,0px));height:180px;gap:6px}
}

/* V8.9.13 — full-bleed second-scene image ribbon on mobile */
@media (max-width:700px) {
  .hero-view-strip {
    left:0;
    right:0;
    width:100%;
    box-sizing:border-box;
    bottom:calc(120px + env(safe-area-inset-bottom,0px));
    padding:6px max(10px,calc((100vw - 92vw)/2)) 7px;
    gap:11px;
    scroll-padding-inline:4vw;
    background:linear-gradient(180deg,rgba(9,31,23,.05),rgba(9,31,23,.78) 45%,rgba(9,31,23,.91));
    border-top:1px solid rgba(243,227,208,.13);
    border-radius:0;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    overscroll-behavior-x:contain;
    -webkit-overflow-scrolling:touch;
  }
  .hero-view-card {
    width:82vw;min-width:82vw;max-width:82vw;
    height:clamp(122px,17dvh,148px);
    flex:0 0 82vw;
    scroll-snap-align:center;scroll-snap-stop:always;
    border-radius:13px;
  }
  .hero-view-pagination {bottom:calc(87px + env(safe-area-inset-bottom,0px))}
  .hero-view-text {bottom:calc(269px + env(safe-area-inset-bottom,0px))}
  html,body {max-width:100%;overflow-x:clip}
}
@media (max-width:700px) and (max-height:740px) {
  .hero-view-strip {bottom:calc(116px + env(safe-area-inset-bottom,0px))}
  .hero-view-card {height:clamp(104px,16dvh,132px)}
  .hero-view-pagination{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
  .hero-view-text {bottom:calc(236px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:360px) and (max-height:640px) {
  .hero-view-card{height:108px}
  .hero-view-text{bottom:calc(219px + env(safe-area-inset-bottom,0px))}
}


/* V8.9.14: second hero — collision-free title/CTA vs full-bleed mobile carousel.
   Both elements are positioned from the same card height + bottom offset so they
   cannot overlap as browser chrome changes the visual viewport height. */
@media (max-width:700px) {
  .hero-view-text {
    bottom: calc(120px + clamp(122px, 17dvh, 148px) + 40px + env(safe-area-inset-bottom, 0px));
  }
}
@media (max-width:700px) and (max-height:740px) {
  .hero-view-text {
    bottom: calc(116px + clamp(104px, 16dvh, 132px) + 40px + env(safe-area-inset-bottom, 0px));
  }
}
@media (max-width:360px) and (max-height:640px) {
  .hero-view-text {
    bottom: calc(116px + 108px + 40px + env(safe-area-inset-bottom, 0px));
  }
}


/* V8.9.15 — Scene 02 mobile photo proportions.
   Use a 3:2 frame close to the bedroom image's natural aspect ratio;
   scene 2 CTA follows the same height, preserving its safety gap. */
@media (max-width:700px) {
  .hero-view-strip {
    --scene2-card-w: min(70vw, 297px);
    --scene2-card-h: min(46.66667vw, 198px);
    padding-left:15vw;
    padding-right:15vw;
    scroll-padding-inline:15vw;
  }
  .hero-view-card {
    width:var(--scene2-card-w);
    min-width:var(--scene2-card-w);
    max-width:var(--scene2-card-w);
    flex:0 0 var(--scene2-card-w);
    height:var(--scene2-card-h);
    min-height:var(--scene2-card-h);
    max-height:var(--scene2-card-h);
    aspect-ratio:3 / 2;
    scroll-snap-align:center;
  }
  .hero-view-text {
    bottom:calc(120px + min(46.66667vw,198px) + 40px + env(safe-area-inset-bottom,0px));
  }
}
@media (max-width:700px) and (max-height:740px) {
  .hero-view-text {
    bottom:calc(116px + min(46.66667vw,198px) + 40px + env(safe-area-inset-bottom,0px));
  }
}
@media (max-width:360px) and (max-height:640px) {
  .hero-view-text {
    bottom:calc(116px + min(46.66667vw,198px) + 40px + env(safe-area-inset-bottom,0px));
  }
}



/* V8.9.17 — inset snap endpoints aligned to the mobile booking/WhatsApp rail.
   The ribbon itself stays full-width; only the cards receive a 13px end inset.
   First photo starts at the footer's left edge, middle remains centered,
   and last photo ends at the footer's right edge. */
@media (max-width:700px) {
  .hero-view-strip {
    --scene2-edge:13px;
    padding-left:var(--scene2-edge);
    padding-right:var(--scene2-edge);
    scroll-padding-left:var(--scene2-edge);
    scroll-padding-right:var(--scene2-edge);
    scroll-padding-inline:var(--scene2-edge);
  }
  .hero-view-strip .hero-view-card:first-of-type { scroll-snap-align:start; }
  .hero-view-strip .hero-view-card:not(:first-of-type):not(:last-of-type) { scroll-snap-align:center; }
  .hero-view-strip .hero-view-card:last-of-type { scroll-snap-align:end; }
}

/* Mobile browser chrome scroll-jump fix (iOS Chrome/Safari).
   dvh changes as the browser toolbar expands/collapses. When those dynamic
   heights are used by sections in normal document flow, scrolling backwards
   causes earlier sections to resize and the page to shift underneath a touch.
   svh is the stable small viewport and does not change during toolbar motion.
   Keep the menu overlay on dvh: that UI intentionally tracks the visible area. */
@supports (height: 100svh) {
  @media (max-width: 700px) {
    .opening { height: 200svh !important; }
    .opening-sticky, .view-sticky { height: 100svh; }

    /* The sticky photo occupies flow space, so its height must not animate. */
    .spaces-section .spaces-visual { height: calc(47svh + 64px); }
    .space-chapter { min-height: 58svh; }
    .space-chapter:last-child { min-height: 65svh; }

    /* Keep hero compositions fixed while the browser controls animate. */
    .hero-home-text { top: clamp(96px, 14svh, 118px); }
    .hero-editorial { height: clamp(220px, 33svh, 300px); }
  }
  @media (max-width: 700px) and (max-height: 740px) {
    .hero-editorial { height: clamp(185px, 30svh, 210px); }
  }
  @media (max-width: 360px) and (max-height: 640px) {
    .hero-editorial { height: 180px; }
  }
}

/* V8.9 — iOS browser toolbar stability follow-up.
   The previous 100svh hero sticky surface became shorter than the visible
   page whenever Chrome collapsed its bottom toolbar. Its sticky interval
   ended early, pulling the entire photo grid / second scene upwards.
   Use the *stable large viewport* for BOTH the 2-scene scroll track and
   the pinned visual surface: the difference stays exactly one scene even
   while the browser bars animate. Other narrative chapters retain svh. */
@supports (height: 100lvh) {
  @media (max-width: 700px) {
    .opening { height: 200lvh !important; }
    .opening-sticky { height: 100lvh; }

    /* iOS WebKit can repaint filtered fixed containers at different screen
       positions during toolbar transitions. Make the rail its own layer;
       move the shadow onto buttons, leaving their position browser-native. */
    .mobile-action-rail {
      filter: none;
      -webkit-transform: translate3d(0,0,0);
      transform: translate3d(0,0,0);
      -webkit-backface-visibility: hidden;
      backface-visibility: hidden;
    }
    .mobile-action-rail > a {
      box-shadow: 0 8px 18px rgba(29,24,17,.23);
    }
  }
}

/* A subtle version marker only appears on the staging site (inserted by
   script.js). It allows normal-mode iPhone tests to verify a new build. */
.swv-staging-build {
  font: 600 9px/1.5 var(--sans);
  letter-spacing: .045em;
  opacity: .58;
  white-space: nowrap;
}

/* iPhone hero layout: keep copy and image galleries in normal vertical flow.
   The cinematic background stays 100lvh/200lvh for scroll storytelling, but
   the *foreground* uses 100svh, a stable safe area when browser bars return.
   This prevents content from jumping underneath the fixed booking/WA rail. */
.hero-home-layout, .hero-view-layout { display: contents; }
@supports (height: 100svh) {
  @media (max-width: 700px) {
    .opening-sticky {
      --swv-hero-rail-clearance: calc(108px + env(safe-area-inset-bottom, 0px));
    }
    .hero-home-layout, .hero-view-layout {
      box-sizing: border-box;
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      display: flex;
      flex-direction: column;
      height: 100svh;
      width: 100%;
      min-height: 0;
      overflow: hidden;
      z-index: 4;
      padding-left: 6vw;
      padding-right: 6vw;
      padding-bottom: calc(var(--swv-hero-rail-clearance) + 12px);
    }

    /* Scene 01: editorial photos follow facts, never overlap 70m²/01/02. */
    .hero-home-layout {
      padding-top: clamp(94px, 14svh, 121px);
    }
    .hero-home-layout .hero-home-text {
      position: relative;
      inset: auto;
      width: 100%;
      max-width: 100%;
      flex: 0 0 auto;
      z-index: 1;
    }
    .hero-home-layout .hero-home-text h1 {
      font-size: clamp(39px, 10.9vw, 54px);
    }
    .hero-home-layout .hero-home-description {
      font-size: clamp(10px, 2.7vw, 12px);
      line-height: 1.45;
      margin: 10px 0 11px;
    }
    .hero-home-layout .hero-facts {
      margin-top: 11px;
      padding-top: 8px;
    }
    .hero-home-layout .hero-editorial {
      position: relative;
      inset: auto;
      top: auto;
      bottom: auto;
      left: auto;
      right: auto;
      width: 100%;
      height: auto;
      min-height: 0;
      max-height: clamp(130px, 26svh, 230px);
      flex: 1 1 auto;
      margin: clamp(12px, 1.8svh, 18px) 0 0;
    }

    /* Scene 02: copy, horizontal gallery and pagination share one flow.
       Gallery shrinks first on small iPhones; copy never hides behind actions. */
    .hero-view-layout {
      padding-top: clamp(140px, 20svh, 182px);
      gap: 0;
    }
    .hero-view-layout .hero-view-text {
      position: relative;
      top: auto;
      bottom: auto;
      left: auto;
      right: auto;
      transform: none;
      width: 100%;
      max-width: 100%;
      flex: 0 0 auto;
      z-index: 3;
    }
    .hero-view-layout .hero-view-text h2 {
      font-size: clamp(36px, 10.3vw, 49px);
      line-height: 1.04;
      margin: 6px 0 10px;
    }
    .hero-view-layout .hero-view-description {
      font-size: clamp(10px, 2.75vw, 12px);
      line-height: 1.48;
      margin: 0 0 12px;
      max-width: 310px;
    }
    .hero-view-layout .hero-view-strip {
      position: relative;
      top: auto;
      bottom: auto;
      left: -6vw;
      right: auto;
      width: 100vw;
      height: auto;
      min-height: 0;
      max-height: min(46.66667vw, 198px);
      flex: 1 1 auto;
      margin: auto 0 0;
      padding-top: 0;
      padding-bottom: 2px;
    }
    .hero-view-layout .hero-view-card {
      height: 100%;
      min-height: 0;
      max-height: 100%;
    }
    .hero-view-layout .hero-view-pagination {
      position: relative;
      inset: auto;
      bottom: auto;
      left: auto;
      right: auto;
      flex: 0 0 20px;
      margin-top: 8px;
    }
  }
}

/* Mobile hero photo fill — anchored directly above the fixed action rail.
   The storyboard is still 200lvh/100lvh, but each foreground panel follows
   the *visible* viewport (dvh), so Chrome's expanding/collapsing UI moves the
   photo stack along with the native fixed CTA rail.

   The photo height is NOT tied to dvh. script.js measures actual translated
   text, a stable 100svh viewport and the rail's real height once per device
   width/orientation/font/language change. This guarantees enough separation
   on the shortest browser viewport without any mid-scroll photo resizing. */
@supports (height: 100svh) and (height: 100dvh) {
  @media (max-width: 700px) {
    .hero-home-layout,
    .hero-view-layout {
      height: 100dvh;
      padding-bottom: var(--swv-hero-rail-clearance, calc(110px + env(safe-area-inset-bottom, 0px)));
      overflow: hidden;
    }
    .hero-home-layout {
      padding-top: clamp(86px, 13svh, 112px);
      row-gap: 14px;
    }
    .hero-home-layout .hero-editorial {
      flex: 0 0 var(--swv-home-fill-h, clamp(125px, 22svh, 260px));
      height: var(--swv-home-fill-h, clamp(125px, 22svh, 260px));
      min-height: 0;
      max-height: none;
      /* Auto margin consumes all remaining vertical space ABOVE photos.
         With the rail clearance fixed, no vacant region survives BELOW. */
      margin-top: auto;
      margin-bottom: 0;
      overflow: hidden;
    }
    .hero-view-layout {
      padding-top: clamp(106px, 16svh, 132px);
      row-gap: 12px;
    }
    .hero-view-layout .hero-view-strip {
      flex: 0 0 var(--swv-view-fill-h, clamp(135px, 24svh, 285px));
      height: var(--swv-view-fill-h, clamp(135px, 24svh, 285px));
      min-height: 0;
      max-height: none;
      margin-top: auto;
      margin-bottom: 0;
      overflow-x: auto;
      overflow-y: hidden;
    }
    /* Soften the city buildings in the panorama's lower third, even in the
       small visible gaps between horizontally scrolling cards. */
    .hero-view-bottom-shadow {
      height: min(46svh, 420px);
      background: linear-gradient(180deg,
        rgba(7,22,16,0) 0%,
        rgba(7,22,16,.40) 30%,
        rgba(7,22,16,.86) 70%,
        rgba(7,22,16,.97) 100%);
    }
    .hero-view-layout .hero-view-card {
      height: 100%;
      min-height: 100%;
      max-height: 100%;
    }
    .hero-view-layout .hero-view-pagination {
      flex: 0 0 20px;
      height: 20px;
      min-height: 20px;
      margin-top: 0;
      margin-bottom: 0;
    }
  }
  /* Width breakpoints are stable while Chrome changes toolbar heights. */
  @media (max-width: 370px) {
    .hero-home-layout { padding-top: 82px; }
    .hero-home-layout .hero-home-text h1 { font-size: 38px; }
    .hero-home-layout .hero-home-description { font-size: 10px; line-height: 1.4; }
    .hero-view-layout { padding-top: 100px; }
    .hero-view-layout .hero-view-text h2 { font-size: 35px; }
    .hero-view-layout .hero-view-description { font-size: 10px; line-height: 1.4; }
  }
}


/* V8.9 — align mobile scene photos to the ACTUAL fixed action rail.
   On iOS Chrome the visual viewport and 100dvh don't necessarily use
   identical coordinates during browser-control animation. JS measures the
   fixed rail's top and anchors our photo panels above it by 12px.
   Crucially this only moves the panels: photograph dimensions stay fixed. */
@supports (height: 100svh) and (height: 100dvh) {
  @media (max-width: 700px) {
    html.swv-hero-measured .hero-home-layout,
    html.swv-hero-measured .hero-view-layout {
      height: var(--swv-hero-visible-panel, 100dvh);
      padding-bottom: 0;
    }
    .hero-home-layout .hero-editorial {
      flex: 0 0 var(--swv-home-fill-h, min(26svh, 220px));
      height: var(--swv-home-fill-h, min(26svh, 220px));
      max-height: none;
      min-height: 0;
      margin-top: auto;
      margin-bottom: 0;
    }
    .hero-view-layout .hero-view-strip {
      flex: 0 0 var(--swv-view-fill-h, min(22svh, 170px));
      height: var(--swv-view-fill-h, min(22svh, 170px));
      min-height: 0;
      max-height: none;
      margin-top: auto;
      margin-bottom: 0;
      padding-top: 0;
      padding-bottom: 0;
      border: none;
      border-top: none;
      box-shadow: none;
      background: transparent;
    }
    .hero-view-layout .hero-view-card {
      border: 0;
      outline: 0;
      background: transparent;
      height: 100%;
      min-height: 100%;
      max-height: 100%;
    }
    .hero-view-layout .hero-view-cards {
      border: 0;
      box-shadow: none;
      background: transparent;
    }
    .hero-view-layout .hero-view-pagination {
      flex: 0 0 20px;
      margin-top: 0;
      margin-bottom: 0;
    }
  }
}


/* Mobile balcony reveal: slightly more lounger at the start and more city
   at the end, without reaching the photo edges. Zoom decreases smoothly
   from 1.29 to 1.15 with a width-aware +/-24px MAX translation. */
@media (max-width: 700px) {
  .view-section .view-visual img {
    object-position: var(--swv-view-focal-x, 42%) 38%;
    transform-origin: 50% 22%;
    transform: translate3d(var(--swv-view-pan-x, 0px), 0, 0) scale(var(--swv-view-zoom, 1.29)) !important;
    will-change: transform;
    transition: none;
  }
}
@media (max-width: 700px) and (prefers-reduced-motion: reduce) {
  .view-section .view-visual img {
    transform: none !important;
    will-change: auto;
  }
}

/* Prevent the outgoing balcony headline/description from overlapping the
   scenic footer caption or the persistent booking actions on small screens.
   Mobile GSAP shows the footer only after the headline has faded out; this
   rule keeps it above the real action rail in either iPhone toolbar state. */
@media (max-width: 700px) {
  .view-section .view-bottom {
    bottom: var(--swv-view-footer-clearance, calc(132px + env(safe-area-inset-bottom, 0px)));
    z-index: 5;
  }
  .has-motion .view-section .view-bottom {
    opacity: 0;
  }
}


/* iPhone Chrome: shorten the empty tail of the cinematic opening.
   The final hero carousel has already left the viewport while the 200lvh
   sticky story track is still ending. Draw the next beige calendar section
   over only that trailing empty part; don't resize the pinned hero scenes
   or change their scroll progress/GSAP. Keep the calendar above the hero. */
@supports (height: 100svh) {
  @media (max-width: 700px) {
    .opening + .availability-section {
      position: relative;
      z-index: 7;
      margin-top: calc(-1 * min(17svh, 140px));
    }
  }
}

/* iOS's elastic overscroll past the *end* of the document used to reveal
   the lighter body paper color below the warmer site-footer. Prevent the
   long blank rubber-band and make the root canvas match the last section
   if an older WebKit still paints the overscroll background. */
@media (max-width: 700px) {
  html {
    background-color: #ede0d1;
    overscroll-behavior-y: none;
  }
  body {
    overscroll-behavior-y: none;
  }
}


/* Stay With View — soft panorama / fine-line sketch (mobile only).
   Preserves the blue mountains and keeps photos bright. The shading reaches
   its final intensity just ABOVE the carousel, then stays gentle below it.
   Both overlays stay behind the photos and ignore touch interactions. */
@media (max-width: 700px) {
  /* Only the narrow horizontal readability shade lives here.
     The SINGLE mobile vertical fade is attached to .hero-view-media::after
     lower in this stylesheet, exactly 10px above the real photo carousel. */
  .hero-view-scene .hero-view-gradient {
    background: linear-gradient(90deg,
      rgba(7,24,17,.12) 0%,
      rgba(7,24,17,.04) 55%,
      transparent 80%);
  }
  .hero-view-scene .hero-view-bottom-shadow {
    display: none; /* old broad vertical shadow was climbing toward the title */
  }
  /* Fine-line illustrated landscape: behind, and just above, gallery cards.
     Anchored to their measured height, not to the changing browser viewport. */
  .hero-view-layout .hero-view-sketch {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--swv-view-fill-h, 160px) + 13px);
    height: clamp(64px, 12svh, 100px);
    z-index: 0;
    opacity: .17;
    pointer-events: none;
    overflow: hidden;
  }
  .hero-view-layout .hero-view-sketch svg {
    display: block;
    width: 100%;
    height: 100%;
    overflow: hidden;
  }
  /* Transparent ivory hairline: distinguish cards without a green outline. */
  .hero-view-layout .hero-view-strip .hero-view-card {
    border: 1px solid rgba(255,246,231,.24);
    outline: none;
    box-shadow: 0 12px 28px rgba(4,19,13,.18), inset 0 1px 0 rgba(255,255,255,.06);
  }
}

/* One mobile gradient layer only: its box STARTS precisely 10px above
   the REAL rendered carousel, not at an arbitrary percentage of the screen.
   JS measures the carousel position within the scene and sets --swv-gradient-top.
   The backdrop remains beneath all cards (z:2 versus layout z:4); only
   the exposed city behind/below the cards becomes emerald-dark. */
.hero-view-scene { isolation: isolate; }
.hero-view-scene .hero-view-media { z-index: 0; }
.hero-view-scene .hero-view-gradient { z-index: 2; pointer-events: none; }
.hero-view-scene .hero-view-layout { z-index: 4; }
@media (min-width: 701px) {
  /* The SVG existed in the HTML, but had no desktop position/opacity rules.
     That made the ornaments look like a brief flash during scene blending. */
  .hero-view-scene .hero-view-sketch {
    position: absolute;
    left: 6vw;
    right: 6vw;
    bottom: clamp(245px, 23vw, 350px);
    height: 94px;
    z-index: 3;
    opacity: .14;
    pointer-events: none;
    overflow: hidden;
  }
  .hero-view-scene .hero-view-sketch svg {
    display: block;
    width: 100%;
    height: 100%;
  }
}
@media (max-width: 700px) {
  /*
   * Mobile panorama shade: draw DIRECTLY over the background photograph,
   * before the separately stacked carousel (z-index:4). This avoids all
   * sibling overlay/opacity/stacking-order ambiguity from prior attempts.
   *
   * --swv-gradient-top is measured as carousel top minus 10px and inherited
   * from .hero-view-scene. The shade fades in just above the photo tiles,
   * then softens the city behind/between them without tinting the tiles.
   */
  .hero-view-scene > .hero-view-gradient {
    display: none;
  }
  .hero-view-scene .hero-view-media {
    isolation: isolate;
  }
  .hero-view-scene .hero-view-media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: var(--swv-gradient-top, 62%);
    bottom: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg,
      rgba(4,38,29,0) 0%,
      rgba(4,38,29,.60) 5%,
      rgba(4,38,29,.90) 24%,
      rgba(4,38,29,1) 62%,
      rgba(4,38,29,1) 100%);
  }
  .hero-view-scene .hero-view-bottom-shadow {
    display: none;
  }
  .hero-view-scene .hero-view-layout {
    background-image: none;
  }
}

/* First mobile scene: give the bedroom the available space above the rail. */
.hero-home-scroll-hint { display: none; }
@supports (height: 100svh) and (height: 100dvh) {
  @media (max-width: 700px) {
    .hero-home-layout .hero-editorial {
      flex: 1 1 0;
      height: auto;
      min-height: 0;
      max-height: min(48svh, 420px);
      margin-top: auto;
      grid-template-rows: minmax(0, 2.4fr) minmax(0, 1fr);
    }
    .hero-home-scroll-hint {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-top: 16px;
      color: #dcc3a7;
      font: 600 8px/1.5 var(--sans);
      letter-spacing: .12em;
    }
    .hero-home-scroll-hint > span:last-child { font-size: 16px; }
  }
}

/* Concise content trial: keep decorative labels out of the information path. */
.overview-section .section-topline,
.overview-content > .overline,
.amenities-section .section-topline,
.amenities-section .overline,
.amenities-callout > span,
.essentials-section .section-topline,
.essentials-copy > .overline,
.availability-section .section-topline,
.availability-section .overline,
.gallery-outro { display: none; }
.overview-wrap { padding-top: clamp(40px, 6vw, 80px); padding-bottom: clamp(40px, 6vw, 80px); }
.gallery-intro { padding-top: clamp(40px, 6vw, 80px); padding-bottom: 32px; }
.amenities-section { padding-bottom: 40px; }

/* Desktop composition: one aligned text/photo layout instead of distant anchors. */
@media (min-width: 701px) {
  .hero-home-layout {
    position: absolute;
    inset: clamp(128px, 15vh, 170px) 6vw 80px;
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(32px, 5vw, 96px);
    align-items: center;
    max-width: 1680px;
    margin-inline: auto;
  }
  .hero-home-layout .hero-home-text {
    position: relative; inset: auto; width: 100%; min-width: 0;
    transform: none;
  }
  .hero-home-layout .hero-home-text h1 {
    font-size: clamp(48px, 5.1vw, 92px);
    line-height: 1.06;
    letter-spacing: -.055em;
    max-width: none;
  }
  .hero-home-layout .hero-home-description { max-width: 440px; }
  .hero-home-layout .hero-editorial {
    position: relative; inset: auto; width: 100%; height: 100%;
    max-height: 720px; min-height: 0;
    grid-template-rows: minmax(0, 2.1fr) minmax(0, 1fr);
    gap: 14px;
  }
  .hero-home-layout .hero-editorial figure {
    border: 1px solid rgba(250,242,230,.35);
    border-radius: 12px;
  }
  .hero-editorial-main picture { display: contents; }
  .hero-home-layout .hero-editorial-main img { object-position: center 57%; }
  .hero-view-layout .hero-view-strip {
    grid-template-columns: clamp(170px, 15vw, 230px) minmax(0, 1fr);
    gap: 18px;
  }
  .hero-view-strip .hero-view-cards {
    grid-template-columns: repeat(6, minmax(120px, 1fr));
    min-width: 0; gap: 10px; overflow-x: auto;
    pointer-events: auto;
  }
  .hero-view-strip .hero-view-card {
    aspect-ratio: auto;
    height: clamp(128px, 21vh, 210px);
    border-radius: 14px;
  }
  .hero-view-strip .hero-view-card figcaption {
    font-size: 8px; letter-spacing: .08em; left: 9px; right: 9px;
  }
  .hero-view-strip .hero-view-book-tile {
    min-height: clamp(148px, calc(21vh + 20px), 230px);
    padding: 16px;
  }
}
@media (min-width:701px) and (max-height:700px) {
  .hero-home-layout { top: 116px; bottom: 62px; }
  .hero-home-layout .hero-home-text h1 { font-size: clamp(42px, 4.7vw, 68px); }
  .hero-home-layout .hero-home-description { margin-block: 14px; line-height: 1.55; }
  .hero-home-layout .hero-facts { margin-top: 20px; }
}

/* Give the booking action its own visual weight beside the photo strip. */
@media (min-width: 701px) {
  .hero-view-layout .hero-view-strip {
    grid-template-columns: clamp(280px, 19vw, 340px) minmax(0, 1fr);
    gap: 24px;
  }
  .hero-view-strip .hero-view-book-tile {
    box-sizing: border-box;
    min-width: 0;
    min-height: clamp(168px, calc(21vh + 36px), 246px);
    padding: 22px 24px;
    border-radius: 8px;
    background: #eee0cc;
    color: #183b2b;
    border: 1px solid #f7ead8;
    box-shadow: 0 14px 36px rgba(4,19,13,.2);
  }
  .hero-view-book-tile .hero-view-book-kicker { color: #526047; }
  .hero-view-book-tile strong {
    font-size: clamp(25px, 1.7vw, 30px);
    line-height: 1.12;
    max-width: 100%;
    overflow-wrap: anywhere;
    margin: 16px 0;
  }
  .hero-view-book-tile .hero-view-book-icon {
    color: #f9f0e3;
    background: #244b37;
    border-color: #244b37;
    width: 40px;
    height: 40px;
  }
}

/* Glass booking card: a separate action alongside the ordered room photos. */
@media (min-width: 701px) {
  .hero-view-strip .hero-view-book-tile {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    grid-template-rows: auto 1fr auto;
    column-gap: 14px;
    row-gap: 12px;
    min-height: clamp(190px, calc(21vh + 36px), 246px);
    background: linear-gradient(135deg, rgba(42,85,61,.76), rgba(11,40,29,.8));
    -webkit-backdrop-filter: blur(22px) saturate(125%);
    backdrop-filter: blur(22px) saturate(125%);
    border: 1px solid rgba(229,241,219,.36);
    border-radius: 22px;
    color: #faf1df;
    box-shadow: 0 18px 40px rgba(2,18,11,.28), inset 0 1px 0 rgba(255,255,255,.12);
    transition: border-color .2s, background-color .2s;
  }
  .hero-view-book-tile:hover,
  .hero-view-book-tile:focus-visible { border-color: rgba(240,222,189,.85); background-color: rgba(52,93,66,.45); }
  .hero-view-book-calendar {
    grid-column: 1; grid-row: 1;
    display: grid; place-items: center;
    width: 44px; height: 44px; border-radius: 14px;
    background: rgba(225,232,204,.1);
    border: 1px solid rgba(230,234,211,.22);
    color: #e7cfaa;
  }
  .hero-view-book-calendar svg { width: 27px; height: 27px; }
  .hero-view-book-tile .hero-view-book-kicker {
    grid-column: 2; grid-row: 1; align-self: center;
    color: #e0ccaa; font-size: 9px; letter-spacing: .13em;
  }
  .hero-view-book-tile strong {
    grid-column: 1 / -1; grid-row: 2; align-self: center;
    margin: 0; color: #fff4e2;
    font-size: clamp(25px, 1.7vw, 30px); line-height: 1.12;
  }
  .hero-view-book-tile .hero-view-book-icon {
    grid-column: 2; grid-row: 3;
    width: 34px; height: 34px;
    color: #f1ddba; background: rgba(234,222,197,.08);
    border-color: rgba(235,225,200,.4);
  }
  .hero-view-strip .hero-view-cards {
    grid-template-columns: repeat(8, minmax(90px, 1fr));
    gap: 10px;
  }
}
.hero-view-card figcaption svg { width: 13px; height: 13px; flex: 0 0 auto; }
.hero-view-card.is-bathroom figcaption,
.hero-view-card.is-entry figcaption { display: flex; align-items: center; gap: 5px; }

@media (min-width: 701px) {
  .hero-view-strip .hero-view-cards { scrollbar-width: none; }
  .hero-view-strip .hero-view-cards::-webkit-scrollbar { display: none; }
}

/* Keep room photographs readable; extra images continue horizontally. */
@media (min-width: 701px) {
  .hero-view-strip .hero-view-cards {
    grid-template-columns: repeat(10, clamp(210px, 17vw, 290px));
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 10px;
    scrollbar-width: thin;
    scrollbar-color: rgba(231,207,170,.65) rgba(11,40,29,.35);
    padding-bottom: 10px;
    overscroll-behavior-x: contain;
  }
  .hero-view-strip .hero-view-cards::-webkit-scrollbar { display: block; height: 5px; }
  .hero-view-strip .hero-view-cards::-webkit-scrollbar-track { background: rgba(11,40,29,.35); border-radius: 5px; }
  .hero-view-strip .hero-view-cards::-webkit-scrollbar-thumb { background: rgba(231,207,170,.65); border-radius: 5px; }
  .hero-view-strip .hero-view-card { scroll-snap-align: start; }
}

@media (min-width: 701px) {
  .hero-view-strip .hero-view-cards { scroll-snap-type: none; }
}

/* A quiet calendar motif and clear arrival/departure selection cues. */
.availability-section {
  background-image: radial-gradient(ellipse at 20% 42%,rgba(250,245,234,.5),transparent 65%),
    repeating-linear-gradient(0deg,transparent 0 63px,rgba(103,116,85,.045) 63px 64px),
    repeating-linear-gradient(90deg,transparent 0 63px,rgba(103,116,85,.045) 63px 64px);
}
.booking-guide { list-style:none; padding:0; margin:30px 0 0; display:flex; flex-wrap:wrap; gap:18px 22px; max-width:620px; }
.booking-guide li { display:flex; align-items:center; gap:9px; font:500 12px/1.4 var(--sans); color:#435741; }
.booking-guide-number { width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(72,99,66,.25);border-radius:50%;background:rgba(248,244,232,.5);font-size:10px; }
.calendar-card { border-radius:18px; border-color:rgba(115,127,91,.3); }
.calendar-date-summary {display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:7px;margin-bottom:12px;}
.calendar-date-field {min-width:0;padding:13px 12px;border:1px solid #d8d2bf;border-radius:10px;background:#f2ecdf;transition:border-color .2s,background .2s;}
.calendar-date-field>span {display:block;font:600 9px/1.4 var(--sans);letter-spacing:.12em;color:#6a705a;}
.calendar-date-field strong {display:block;margin-top:7px;font:500 16px/1.3 var(--sans);color:#304732;}
.calendar-date-field.is-active {background:#e8eddf;border-color:#75866a;box-shadow:inset 0 0 0 1px rgba(117,134,106,.15);}
.calendar-date-arrow {color:#839074;text-align:center;}
.calendar-tap-hint {font:500 11px/1.6 var(--sans);color:#526348;margin:0 0 24px;min-height:2em;}
@media(max-width:700px) {
 .booking-guide {gap:12px;margin-top:23px;}
 .booking-guide li {font-size:11px;gap:7px;}
 .booking-guide-number {width:25px;height:25px;}
 .calendar-date-field {padding:12px 9px;}
 .calendar-date-field strong {font-size:14px;}
 .calendar-tap-hint {font-size:11px;margin-bottom:20px;}
}

/* A quiet travel sketch behind the booking content. */
.availability-section { position:relative; isolation:isolate; overflow:hidden; }
.availability-art {
  position:absolute; inset:0 auto 0 0;
  width:73%; height:100%;
  color:#536b4f; opacity:.24;
  pointer-events:none; z-index:-1;
}
.availability-section .availability-layout,
.availability-section .section-topline { position:relative; }
@media(max-width:1000px) { .availability-art {width:100%;opacity:.16;} }
@media(max-width:700px) {
  .availability-art {width:150%;left:-36%;height:650px;top:0;opacity:.14;}
}

/* Soft landscape illustration in place of the technical grid motif. */
.availability-section {
  background-image: radial-gradient(ellipse at 23% 36%,rgba(255,250,237,.68),transparent 65%);
}
.availability-art { width:74%; height:100%; opacity:1; color:inherit; }
@media(max-width:1000px) {
  .availability-art {width:100%;height:850px;top:0;opacity:.85;}
}
@media(max-width:700px) {
  .availability-art {
    left:-16%; top:0; width:132%; height:650px;
    opacity:.7;
  }
  .availability-section .calendar-card {background:rgba(248,241,232,.97);}
}

/* A mountain-view closing panel with clear booking actions. */
.site-footer { padding-top:clamp(28px,5vh,64px); }
.footer-top {
  position:relative; isolation:isolate; overflow:hidden;
  padding:clamp(28px,4vw,64px) clamp(24px,4vw,64px) clamp(85px,12vh,140px);
  border-radius:26px;
  background:radial-gradient(ellipse at 42% 0%,rgba(95,126,86,.28),transparent 68%),#183c2e;
  border:1px solid rgba(67,98,69,.55);
  color:#f6eedf;
  gap:clamp(24px,4vw,64px);
}
.footer-landscape {position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;}
.footer-title {font-size:clamp(76px,10.4vw,190px);line-height:.94;position:relative;letter-spacing:-.075em;}
.footer-title em {color:#e2c6a1;}
.footer-right {position:relative;min-width:230px;gap:16px;padding-top:4px;}
.footer-right p {color:#e0cfb8;font-size:clamp(21px,1.7vw,27px);margin-bottom:12px;}
.footer-right a {color:#efe6d6;border-bottom-color:rgba(229,218,195,.3);font-size:9px;line-height:1.6;}
.footer-right a:hover {color:#e9c38f;border-color:rgba(229,218,195,.7);}
.footer-right a[data-booking-link],
.footer-right a[data-whatsapp-link] {
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:51px;padding:15px 17px;border:1px solid rgba(225,214,187,.38);
  border-radius:11px;letter-spacing:.09em;background:rgba(255,248,228,.035);
  transition:background .2s,border-color .2s;
}
.footer-right a[data-booking-link] {background:#e4d1b4;color:#233d2b;border-color:#e4d1b4;}
.footer-right a[data-booking-link]:hover {background:#f0dfc4;}
.footer-right a[data-whatsapp-link]:hover {background:rgba(225,214,187,.1);}
.footer-right a:focus-visible {outline:2px solid #e4c59c;outline-offset:5px;}
.footer-bottom {margin-top:30px;}
@media(max-width:1000px) and (min-width:701px) {
 .footer-title {font-size:9.5vw;}
 .footer-right {min-width:210px;}
}
@media(max-width:700px) {
 .footer-top {padding:30px 22px 72px;border-radius:20px;display:block;}
 .footer-title {display:block;font-size:14vw;line-height:1;}
 .footer-right {margin-top:32px;min-width:0;grid-template-columns:minmax(0,1fr);gap:15px;}
 .footer-right p {font-size:23px;margin-bottom:7px;}
 .footer-right a[data-booking-link],.footer-right a[data-whatsapp-link] {min-height:51px;font-size:9px;padding:15px;}
 .footer-right a:not([data-booking-link]):not([data-whatsapp-link]) {justify-self:start;}
 .footer-landscape {opacity:.8;}
 .footer-bottom {margin-top:25px;}
}

/* Footer model two: a full-width landscape with separate brand and contact columns. */
.site-footer.footer-model-two {
  position:relative; isolation:isolate; overflow:hidden;
  padding:clamp(52px,7vh,90px) 6vw 25px;
  background:radial-gradient(ellipse at 12% 0%,rgba(115,142,98,.22),transparent 62%),#183a2d;
  color:#f4ead8;
}
.footer-model-two>.footer-landscape {
  z-index:-1;opacity:.9;
  height:100%;width:100%;
}
.footer-model-two .footer-top {
  display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);
  align-items:center;gap:clamp(36px,7vw,140px);
  padding:0 0 clamp(70px,12vh,140px);
  background:none;border:0;border-radius:0;overflow:visible;isolation:auto;
}
.footer-brand {min-width:0;}
.footer-location {
  display:block;font:600 9px/1.5 var(--sans);letter-spacing:.19em;
  color:#c5cbae;margin-bottom:30px;
}
.footer-model-two .footer-title {display:block;font-size:clamp(66px,8.5vw,156px);line-height:.95;}
.footer-tagline {margin-top:30px;font:400 clamp(20px,1.9vw,30px)/1.45 var(--serif);color:#e4d5bd;}
.footer-model-two .footer-right {
  display:grid;grid-template-columns:1fr 1fr;gap:17px 24px;
  min-width:0;width:100%;margin:0;padding:0;
  border-top:1px solid rgba(224,215,190,.22);padding-top:28px;
}
.footer-model-two .footer-right a[data-booking-link],
.footer-model-two .footer-right a[data-whatsapp-link] {
  grid-column:1/-1;min-height:58px;border-radius:8px;
  font-size:10px;letter-spacing:.1em;padding:18px 20px;
}
.footer-model-two .footer-right a:not([data-booking-link]):not([data-whatsapp-link]) {margin-top:8px;justify-self:start;font-size:9px;}
.footer-model-two .footer-bottom {
  margin-top:0;border-color:rgba(226,215,190,.22);
  color:#c1c9b6;padding-top:22px;
}
@media(max-width:700px) {
 .site-footer.footer-model-two {padding:42px 6vw calc(125px + env(safe-area-inset-bottom,0px));}
 .footer-model-two .footer-top {grid-template-columns:minmax(0,1fr);gap:32px;padding-bottom:58px;}
 .footer-model-two .footer-title {font-size:15.6vw;line-height:1;}
 .footer-location {font-size:8px;margin-bottom:23px;}
 .footer-tagline {font-size:23px;margin-top:24px;}
 .footer-model-two .footer-right {padding-top:24px;gap:15px 18px;}
 .footer-model-two .footer-right a[data-booking-link],
 .footer-model-two .footer-right a[data-whatsapp-link] {font-size:9px;min-height:53px;padding:16px;}
 .footer-model-two>.footer-landscape {opacity:.65;}
}
