@font-face{font-family:"SVN Recoleta";src:url("../fonts/SVN-Recoleta-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"SVN Poppins Light";src:url("../fonts/SVN-PoppinsLight.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url("../fonts/PlusJakartaSans-VariableFont_wght.woff2") format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Canela-Regular";src:url("../fonts/Canela-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Prata";src:url("../fonts/subset-Prata-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--font-body:"SVN Poppins Light",Arial,sans-serif;--green:#457b44;--cream:#faf8ed;--paper:#faf8ed;--gold:#a58260;--text:#2d312c;--white:#fff9e9}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--cream);color:var(--text);font:400 clamp(13px,1.29vw,18px)/1.6 var(--font-body)}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}img{display:block;width:100%;height:auto;object-fit:cover}h1,h2,h3,p{margin:0}h2,h3{font-family:"SVN Recoleta",serif!important;font-weight:400}h2{text-align:center;color:var(--green);font-size:clamp(25px,2.9vw,42px);line-height:1.3}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip-link{position:fixed;top:-100px;left:15px;background:var(--cream);padding:10px;z-index:20}.skip-link:focus{top:10px}
.site-header,.menu-header{position:absolute;top:0;left:0;width:100%;height:112px;display:flex;align-items:center;justify-content:space-between;padding:0 7.3%;color:var(--white);z-index:2}.brand{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;white-space:nowrap}.reservation{border:1.5px solid var(--white);border-radius:50px;padding:9px 30px;font-size:clamp(12px,1.4vw,19px);line-height:1.5;transition:background .2s}.reservation:hover{background:#fff9e91a}.menu-toggle{border:0;background:none;width:38px;height:40px;padding:7px 0;display:flex;flex-direction:column;justify-content:space-around}.menu-toggle span{width:35px;height:1px;background:var(--white)}.hero img{aspect-ratio:1241/833;object-position:center}.intro{padding:6.3% 0 3.7%}.intro h1{text-align:center;font:italic 400 clamp(26px,3.2vw,46px)/1.3 "SVN Recoleta",serif;color:var(--green);margin-bottom:4.4%}.intro-copy{width:66.7%;max-width:1060px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:6.2%;line-height:1.6}.rooms{background:var(--paper);padding:4% 0 5.6%;overflow:hidden}.rooms h2{margin-bottom:2.5%}.room-slider{display:flex;gap:1.4vw;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 11vw;overscroll-behavior-x:contain}.room-slider::-webkit-scrollbar{display:none}.room-card{flex:0 0 78vw;scroll-snap-align:center}.room-card>img{aspect-ratio:970/555}.room-info{padding-top:18px;display:grid;grid-template-columns:42% 56%;gap:2%}.room-info h3{color:var(--gold);font-size:clamp(18px,2.05vw,30px);line-height:1.4}.room-info h3:after{content:'';display:block;width:46px;height:1px;background:var(--green);margin-top:10px}.room-description{font-size:clamp(11px,1.15vw,16px);line-height:1.5}.room-bottom{display:flex;align-items:center;gap:16px;justify-content:space-between;margin-top:23px}.room-bottom dl{display:flex;margin:0;gap:0;flex:1}.room-bottom dl>div{padding:0 18px;border-right:1px solid var(--green)}.room-bottom dl>div:first-child{padding-left:0}.room-bottom dl>div:last-child{border:0}.room-bottom dt{color:var(--gold);margin-bottom:5px}.room-bottom dd{margin:0;white-space:nowrap}.detail-button{background:none;border:1px solid var(--green);border-radius:7px;padding:7px 18px;white-space:nowrap;color:var(--green);font-size:12px}.detail-button span{font-size:23px;line-height:0;margin-left:8px}.detail-button:hover{background:var(--green-hover);color:var(--cream)}.dining{padding:1.9% 0 15.4%}.dining h2{margin-bottom:2.7%}.dining-gallery{display:grid;grid-template-columns:46fr 28.5fr 24.5fr;gap:7px;overflow:hidden}.dining-gallery img{height:35.4vw}.site-footer{background:var(--green);color:#e7e5cd;padding:7.8% 7.4% 4.3%;font-size:clamp(12px,1.35vw,18px)}.footer-main{display:grid;grid-template-columns:34.5% 35.5% 30%;min-height:23.2vw}.footer-main address{font-style:normal;text-align:center;align-self:center;padding-right:23px;line-height:1.25}.footer-main address p+p{margin-top:20px}.hotel-name{color:#c29b67}.footer-space{border-left:1px solid #adb89d;border-right:1px solid #adb89d}.footer-main nav{display:flex;flex-direction:column;justify-content:center;gap:3px;padding-left:30%}.footer-main a:hover{text-decoration:underline;text-underline-offset:4px}.footer-rule{display:flex;align-items:center;gap:35px;margin-top:4%}.footer-rule>span{height:1px;background:#adb89d;flex:1}.footer-symbol{display:block;flex:0 0 42px;width:42px}.copyright{margin-top:6px}
.site-menu{position:fixed;inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:var(--green);color:var(--white);overflow:auto}.site-menu::backdrop{background:var(--green)}.menu-header{position:relative;height:115px;padding:0 7.3% 0 12.2%}.menu-close{width:45px;height:45px;position:relative;border:0;background:transparent}.menu-close:before,.menu-close:after{content:'';position:absolute;top:22px;left:3px;width:37px;height:1.5px;background:var(--white);transform:rotate(45deg)}.menu-close:after{transform:rotate(-45deg)}.menu-body{display:grid;grid-template-columns:1fr 1fr;margin:6.3vh 7.3% 5.5vh 12.2%;min-height:76.3vh}.menu-photo{padding:20px 19.5% 30px 0;border-right:1px solid #adb89d}.menu-photo img{border-radius:50% 50% 0 0 / 33% 33% 0 0;aspect-ratio:376/584;object-position:center}.menu-navigation{display:flex;flex-direction:column;align-items:center;padding-left:12%;padding-top:9vh}.menu-navigation nav{display:flex;flex-direction:column;text-align:center;gap:6px}.menu-navigation nav a{font:400 clamp(25px,3vw,43px)/1.27 "SVN Recoleta",serif}.menu-navigation nav a:hover{color:#d6bb8d}.languages{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:10vh;font-size:18px}.languages button{background:none;border:0;padding:6px 2px;color:var(--white);letter-spacing:.08em;line-height:1.5}.languages button[aria-pressed=true]{color:#b48355;text-decoration:none}.languages>span{opacity:.65;line-height:1}.languages button:hover{color:#b48355;text-decoration:none}.detail-dialog{border:0;background:var(--paper);color:var(--text);width:min(850px,92vw);max-height:90dvh;padding:36px}.detail-dialog::backdrop{background:#000000b3}.detail-close{position:absolute;right:12px;top:3px;background:var(--paper);border:0;font-size:32px;color:var(--green);z-index:1}.detail-dialog h2{font-size:27px;margin:18px 0}.detail-dialog p{margin:16px 0}.detail-dialog img{max-height:48vh}.detail-dialog .reservation{display:inline-block;color:var(--green);border-color:var(--green)}.detail-gallery{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-gallery img{aspect-ratio:4/3;height:100%}
@media(min-width:1600px){.site-header{height:140px}.menu-body{max-width:1450px;margin-left:auto;margin-right:auto}.intro-copy{max-width:1150px}}
@media(max-width:700px){.site-header,.menu-header{height:86px;padding:0 5%}.reservation{font-size:10px;padding:7px 12px}.menu-toggle{width:25px;height:33px}.menu-toggle span{width:25px}.hero img{height:76svh;min-height:460px;aspect-ratio:auto;object-position:51% center}.intro{padding:55px 7% 45px}.intro h1{font-size:25px;margin-bottom:30px}.intro-copy{width:100%;gap:20px;grid-template-columns:1fr;font-size:14px;line-height:1.7}.rooms{padding:35px 0}.rooms h2{margin-bottom:26px}.room-slider{padding:0 13vw;gap:2vw}.room-card{flex-basis:74vw}.room-card>img{aspect-ratio:1.2}.room-info{grid-template-columns:1fr;gap:20px}.room-info h3{font-size:21px}.room-description{font-size:12px;line-height:1.5}.room-bottom{gap:8px;margin-top:18px}.room-bottom dl>div{padding:0 10px}.detail-button{padding:7px 9px;font-size:10px}.dining{padding:27px 0 75px}.dining h2{margin-bottom:27px}.dining-gallery{grid-template-columns:1.45fr 1fr 1fr;gap:4px}.dining-gallery img{height:48vw}.site-footer{padding:45px 7% 25px}.footer-main{grid-template-columns:1.5fr 1fr;min-height:220px}.footer-main address{padding-right:18px;font-size:12px}.footer-space{display:none}.footer-main nav{border-left:1px solid #adb89d;padding-left:23%;font-size:12px;gap:7px}.footer-rule{margin-top:34px;gap:18px}.footer-symbol{flex-basis:30px;width:30px}.copyright{font-size:10px;margin-top:12px}.menu-body{margin:30px 7%;min-height:calc(100dvh - 170px);grid-template-columns:36% 64%}.menu-photo{padding:30px 15px 0 0}.menu-photo img{height:47vh;aspect-ratio:auto}.menu-navigation{padding:25px 0 20px 12px}.menu-navigation nav{gap:12px}.menu-navigation nav a{font-size:25px}.languages{margin-top:35px;font-size:14px}.menu-close{width:30px}.menu-close:before,.menu-close:after{width:29px}.detail-dialog{padding:28px 20px}.detail-dialog h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media(min-width:701px) and (max-height:850px){.menu-photo img{height:61vh;max-width:100%;object-fit:cover}.menu-navigation{padding-top:5vh}.menu-navigation nav a{font-size:clamp(25px,4.2vh,36px)}.languages{margin-top:6vh}.menu-body{min-height:73vh}}
@media(max-width:360px){.reservation{padding:6px 9px;font-size:9px}.room-bottom{flex-wrap:wrap}.room-bottom dl{flex-basis:100%}.menu-navigation nav a{font-size:22px}}

/* Original brand artwork. Keep the intrinsic proportions at every screen size. */
.brand img{width:162px;height:auto;object-fit:contain}
.intro .slogan{width:318px;max-width:100%;height:auto;object-fit:contain;margin:0 auto}
.footer-symbol img{height:auto;object-fit:contain}
@media(max-width:700px){.brand img{width:120px}.intro .slogan{width:280px}}
@media(max-width:360px){.brand img{width:105px}}

/* Shared header geometry keeps the menu control and branding perfectly aligned. */
html{scrollbar-gutter:stable}
.site-header,.menu-header{height:112px;padding:0 7.3%}
.menu-header{position:relative}
.menu-toggle,.menu-close{position:relative;display:block;flex:0 0 38px;width:38px;height:40px;padding:0;border:0;background:none}
.menu-close:before,.menu-close:after{content:none}
.menu-toggle span,.menu-close span{position:absolute;left:0;top:50%;width:35px;height:1px;background:var(--white);transform-origin:center;transition:transform 650ms cubic-bezier(.22,1,.36,1),opacity 350ms ease}
.menu-toggle span:nth-child(1),.menu-close span:nth-child(1){transform:translateY(-9px)}
.menu-toggle span:nth-child(2),.menu-close span:nth-child(2){transform:translateY(-.5px)}
.menu-toggle span:nth-child(3),.menu-close span:nth-child(3){transform:translateY(8px)}
.site-menu{width:100%;right:auto;scrollbar-width:none;opacity:0;transition:opacity 450ms cubic-bezier(.22,1,.36,1)}
.site-menu::-webkit-scrollbar{display:none}
.site-menu::backdrop{background:transparent}
.site-menu.is-visible{opacity:1;transition-duration:650ms}
.is-visible .menu-close span:nth-child(1){transform:translateY(-.5px) rotate(45deg)}
.is-visible .menu-close span:nth-child(2){opacity:0;transform:scaleX(.3)}
.is-visible .menu-close span:nth-child(3){transform:translateY(-.5px) rotate(-45deg)}
.site-menu .menu-photo,.site-menu .menu-navigation nav a,.site-menu .languages{opacity:0;transform:translateY(14px);transition:opacity 250ms ease,transform 450ms cubic-bezier(.22,1,.36,1)}
.site-menu.is-visible .menu-photo,.site-menu.is-visible .menu-navigation nav a,.site-menu.is-visible .languages{opacity:1;transform:translateY(0);transition-duration:750ms;transition-delay:120ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(2){transition-delay:150ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(3){transition-delay:180ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(4){transition-delay:210ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(5){transition-delay:240ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(6){transition-delay:270ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(7){transition-delay:300ms}
.site-menu.is-visible .menu-navigation nav a:nth-child(8){transition-delay:330ms}
.site-menu.is-visible .languages{transition-delay:360ms}
@media(min-width:1600px){.site-header,.menu-header{height:140px}}
@media(max-width:700px){
 .site-header,.menu-header{height:86px;padding:0 5%}
 .menu-toggle,.menu-close{flex-basis:25px;width:25px;height:33px}
 .menu-toggle span,.menu-close span{width:25px}
}
@media(prefers-reduced-motion:reduce){.site-menu,.site-menu *{transition:none!important}}

/* Full-bleed banner with a slow, uninterrupted crossfade. */
.hero{position:relative;isolation:isolate;overflow:hidden}
.hero-slides{position:relative;height:100vh;height:100dvh;aspect-ratio:auto;background:var(--green)}
.hero .hero-slide{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:cover;opacity:0;transition:opacity 2200ms cubic-bezier(.4,0,.2,1);transform-origin:center;backface-visibility:hidden}
.hero .hero-slide.is-active{opacity:1}
.hero-pause{position:absolute;right:24px;bottom:22px;z-index:1;width:34px;height:34px;border:1px solid #fff9e980;border-radius:50%;background:#00000030;color:var(--white);font-size:14px;display:grid;place-items:center;transition:background .25s}
.hero-pause:hover{background:#00000080}
@media(max-width:700px){.hero-slides{min-height:0;aspect-ratio:auto}.hero-pause{right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){.hero .hero-slide{transition:none}}

/* Soft green veil behind the header, fading into the photography. */
.site-header::before{content:"";position:absolute;inset:0 0 auto;height:145px;background:linear-gradient(to bottom,#457b44 0%,rgba(0,0,0,.72) 32%,rgba(0,0,0,0) 100%);pointer-events:none;z-index:-1}
.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:1;display:grid;place-items:center;width:48px;height:48px;padding:12px;border:1px solid rgba(255,249,233,.65);border-radius:50%;background:rgba(0,0,0,.12);color:var(--white);backdrop-filter:blur(3px);transition:background .35s ease,border-color .35s ease}
.hero-prev{left:3.5%}.hero-next{right:3.5%}
.hero-arrow svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.hero-arrow:hover{background:rgba(0,0,0,.55);border-color:var(--white)}
@media(max-width:700px){.site-header::before{height:110px}.hero-arrow{width:40px;height:40px;padding:10px}.hero-prev{left:16px}.hero-next{right:16px}}

/* Mobile navigation: centered text without the decorative photograph. */
@media(max-width:700px){
 .site-menu .menu-photo{display:none}
 .site-menu .menu-body{grid-template-columns:1fr;margin:20px 7%;min-height:calc(100dvh - 126px)}
 .site-menu .menu-navigation{width:100%;padding:20px 0;align-items:center;justify-content:center}
 .site-menu .menu-navigation nav{width:100%;text-align:center;align-items:center}
 .site-menu .languages{justify-content:center}
}

/* Fit the whole navigation into the available viewport. */
:root{--menu-header-height:112px}
.site-menu[open]{display:grid;grid-template-rows:var(--menu-header-height) minmax(0,1fr)}
.site-menu{overflow:auto}
.site-menu .menu-header{height:var(--menu-header-height)}
.site-menu .menu-body{min-height:0;max-width:none;margin:24px 0 32px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.site-menu .menu-photo{display:flex;align-items:center;justify-content:center;min-height:0;padding:0 32px}
.menu-photo-frame{position:relative;overflow:hidden;width:min(100%,376px,calc((100dvh - var(--menu-header-height) - 64px)*.644));aspect-ratio:376/584;border-radius:50% 50% 0 0 / 32.2% 32.2% 0 0}
.site-menu .menu-photo .menu-preview{position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0;object-fit:cover;opacity:0;transition:opacity 650ms cubic-bezier(.22,1,.36,1)}
.site-menu .menu-photo .menu-preview.is-current{opacity:1}
.site-menu .menu-navigation{min-height:0;padding:0 32px;justify-content:center}
.site-menu .menu-navigation nav{gap:clamp(2px,1vh,8px)}
.site-menu .menu-navigation nav a{font-size:clamp(16px,min(2.4vw,calc((100dvh - var(--menu-header-height) - 110px)/14)),34px);line-height:1.27}
.site-menu .languages{margin-top:clamp(12px,4vh,42px);font-size:clamp(12px,1.5vw,18px)}
@media(min-width:1600px){:root{--menu-header-height:140px}}
@media(max-width:700px){
 :root{--menu-header-height:86px}
 .site-menu .menu-photo{display:none}
 .site-menu .menu-body{grid-template-columns:1fr;margin:12px 7% 20px;min-height:0}
 .site-menu .menu-navigation{padding:0;align-items:center}
 .site-menu .menu-navigation nav a{font-size:clamp(16px,min(6.2vw,calc((100dvh - 180px)/14)),26px)}
 .site-menu .languages{margin-top:clamp(12px,4vh,32px)}
}

/* Room controls are centered over the visible neighboring photographs. */
.rooms-carousel{position:relative;--room-image-middle:calc(78vw * 555 / 970 / 2)}
.rooms-carousel .room-arrow{top:var(--room-image-middle)}
.room-prev{left:calc(4.8vw - 24px)}
.room-next{right:calc(4.8vw - 24px)}
@media(max-width:700px){
 .rooms-carousel{--room-image-middle:calc(74vw / 1.2 / 2)}
 .rooms-carousel .room-arrow{width:32px;height:32px;padding:7px}
 .room-prev{left:calc(5.5vw - 16px)}
 .room-next{right:calc(5.5vw - 16px)}
}

/* Center room content and simplify room details on phones. */
@media(max-width:700px){
 .room-info{text-align:center}
 .room-info h3:after{margin-inline:auto}
 .room-bottom dl{display:none}
 .room-bottom{justify-content:center}
}

/* Newsletter and social profiles in the central footer column. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr) minmax(0,.7fr)}
.footer-subscribe{min-width:0;border-inline:1px solid #adb89d;padding:36px clamp(20px,3vw,48px);display:flex;flex-direction:column;justify-content:center;text-align:center}
.footer-subscribe h3{color:var(--white);font-size:clamp(20px,2vw,29px);line-height:1.4;margin-bottom:25px}
.subscribe-form{display:flex;align-items:center;min-height:52px;background:rgba(255,249,233,.1)}
.subscribe-form:focus-within{outline:2px solid var(--white);outline-offset:3px}
.subscribe-form input{width:100%;min-width:0;flex:1;border:0;background:transparent;padding:15px 0 15px 20px;font:400 14px/1.5 var(--font-body);color:var(--white);border-radius:0}
.subscribe-form input::placeholder{color:#e7e5cd;opacity:1}
.subscribe-form input:focus{outline:none}
.subscribe-form button{flex:0 0 52px;align-self:stretch;display:grid;place-items:center;border:0;background:transparent;color:#dbb88d;padding:12px}
.subscribe-form button:hover{background:rgba(255,249,233,.1)}
.subscribe-form button svg{width:28px;height:24px;fill:none;stroke:currentColor;stroke-width:1.3}
.subscribe-note{font-size:11px;line-height:1.5;margin-top:9px;color:#e7e5cd}
.footer-social{display:flex;justify-content:center;gap:14px;margin-top:25px}
.footer-social a{width:44px;height:44px;display:grid;place-items:center;color:var(--white);border-radius:50%;transition:background .2s}
.footer-social a[href]:hover{background:rgba(255,249,233,.12)}
.footer-social a[aria-disabled=true]{cursor:default}
.footer-social svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7}
.footer-social .instagram-dot{fill:currentColor;stroke:none}
@media(max-width:700px){
 .footer-main{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);row-gap:32px}
 .footer-subscribe{grid-column:1/-1;grid-row:2;border-inline:0;border-top:1px solid #adb89d;padding:30px 0 0;align-items:center}
 .footer-subscribe h3{font-size:23px;margin-bottom:20px}
 .subscribe-form{width:100%;max-width:420px}
 .footer-social{margin-top:18px}
}

/* An editorial spa retreat, with generous spacing and quiet botanical tones. */
.dining{padding-bottom:7.5%}
.wellness{padding:0 7.4% 8%;background:var(--cream)}
.wellness-heading{display:flex;flex-direction:column;align-items:center;gap:16px;margin-bottom:44px}
.wellness-eyebrow{font:400 10px/1.6 var(--font-body);letter-spacing:.22em;color:var(--gold)}
.wellness-heading h2{font-size:clamp(32px,3.4vw,48px)}
.wellness-heading-line{height:38px;width:1px;background:var(--gold);opacity:.65}
.wellness-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.15fr 1fr;align-items:center}
.wellness-image{position:relative;margin:0 -38px 0 0;align-self:stretch;min-height:580px;z-index:1}
.wellness-image img{height:100%;position:absolute;inset:0;object-fit:cover;object-position:55% center}
.wellness-image::after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.6));pointer-events:none}
.wellness-image figcaption{position:absolute;bottom:30px;left:32px;right:24px;z-index:1;color:var(--white);font:400 13px/1.6 var(--font-body);letter-spacing:.08em}
.wellness-copy{background:#edf0e7;padding:65px 12% 55px calc(12% + 38px);margin:38px 0;color:var(--green)}
.wellness-copy h3{font-size:clamp(28px,3vw,43px);line-height:1.4;margin-top:20px;letter-spacing:-.025em}
.wellness-divider{display:block;width:48px;height:1px;background:var(--gold);margin:26px 0}
.wellness-copy p{font-size:14px;line-height:1.85;margin-top:15px}
.wellness-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #457b44;padding:18px 0 14px;margin-top:20px;font-size:10px;line-height:1.7;letter-spacing:.12em;transition:color .2s}
.wellness-cta svg{flex:0 0 30px;width:30px;height:24px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .2s}
.wellness-cta:hover{color:#845830}
.wellness-cta:hover svg{transform:translateX(4px)}
.wellness-signature{display:flex;gap:16px;align-items:center;margin-top:38px;font-size:10px;letter-spacing:.06em}
.wellness-signature span{color:var(--gold)}
@media(max-width:1000px) and (min-width:701px){.wellness{padding-inline:5%}.wellness-image{min-height:560px;margin-right:-24px}.wellness-copy{padding:40px 24px 40px 48px}.wellness-copy h3{font-size:29px}}
@media(max-width:700px){
 .dining{padding-bottom:58px}
 .wellness{padding:0 7% 60px}
 .wellness-heading{gap:12px;margin-bottom:25px}
 .wellness-heading-line{height:25px}
 .wellness-layout{grid-template-columns:1fr}
 .wellness-image{margin:0;min-height:0;aspect-ratio:4/4.3}
 .wellness-image figcaption{bottom:24px;left:22px;font-size:11px}
 .wellness-copy{margin:0 12px;padding:34px 24px 30px}
 .wellness-copy h3{font-size:30px}
 .wellness-copy .wellness-eyebrow{font-size:9px;letter-spacing:.15em}
 .wellness-copy p{font-size:13px;line-height:1.8}
 .wellness-cta{font-size:9px;gap:12px}
 .wellness-signature{font-size:9px;margin-top:26px;gap:10px}
}

/* Shared visual rhythm across the hotel experience. */
:root{--text:#2d312c;--section-space:clamp(64px,7.5vw,112px);--section-gutter:7.4%;--section-title:clamp(30px,3.4vw,46px);--fine-rule:rgba(69,123,68,.26)}
body{font-size:15px;line-height:1.8}
h2{font-size:var(--section-title);line-height:1.3}
.intro{padding:var(--section-space) var(--section-gutter)}
.intro h1{margin-bottom:42px}
.intro-copy{width:100%;max-width:1040px;gap:clamp(28px,5vw,76px);font-size:15px;line-height:1.9}
.rooms{padding:var(--section-space) 0;background:var(--paper)}
.section-heading{display:flex;flex-direction:column;align-items:center;gap:15px;text-align:center;margin:0 auto 42px;padding-inline:24px}
.section-heading h2{font-size:var(--section-title);margin:0}
.section-eyebrow,.wellness-eyebrow{font:400 10px/1.6 var(--font-body);letter-spacing:.2em;color:var(--gold)}
.section-heading-line{display:block;height:30px;width:1px;background:var(--gold);opacity:.65}
.room-info{padding-top:28px;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:5%}
.room-info h3{color:var(--green);font-size:clamp(23px,2.2vw,31px);line-height:1.4}
.room-info h3:after{background:var(--gold);margin-top:18px}
.room-description{font-size:14px;line-height:1.8}
.room-bottom{flex-wrap:wrap;gap:20px;margin-top:24px}
.room-bottom dl{font-size:12px;line-height:1.6}
.room-bottom dl>div{padding-inline:16px;border-color:var(--fine-rule)}
.room-bottom dt{font-size:10px;letter-spacing:.08em;color:var(--gold)}
.detail-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:0;padding:10px 20px;font-size:10px;letter-spacing:.12em;transition:background .25s,color .25s}
.reservation{font-size:11px;letter-spacing:.12em;min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;border-width:1px}
.dining{padding:var(--section-space) var(--section-gutter)}
.dining-gallery{max-width:1440px;margin:auto;grid-template-columns:1.45fr 1fr 1fr;gap:14px;align-items:center}
.dining-gallery img{height:clamp(280px,32vw,490px)}
.dining-gallery img:nth-child(2){height:clamp(250px,28vw,430px)}
.wellness{padding:0 var(--section-gutter) var(--section-space)}
.wellness-copy p{font-size:14px;line-height:1.85}
.wellness-copy{background:#edf0e7}
.wellness-cta{min-height:48px;font-size:10px;letter-spacing:.1em}
.site-footer{padding:clamp(52px,6vw,88px) var(--section-gutter) 28px;font-size:13px;line-height:1.8}
.footer-main{max-width:1440px;margin:auto;min-height:260px}
.footer-main address{line-height:1.8;overflow-wrap:anywhere}
.hotel-name{color:#e1c39a;font-weight:600;letter-spacing:.04em}
.footer-main address p+p{margin-top:18px}
.footer-main nav{gap:6px;padding-left:25%}
.footer-subscribe{padding-block:24px}
.footer-subscribe h3{font-size:clamp(21px,2vw,28px)}
.footer-rule{max-width:1440px;margin:44px auto 0;gap:28px}
.copyright{max-width:1440px;margin:18px auto 0;font-size:12px;letter-spacing:.04em}
@media(max-width:1000px) and (min-width:701px){
 .room-info{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:4%}
 .room-bottom dl>div{padding-inline:10px}
 .footer-subscribe{padding-inline:22px}
}
@media(max-width:700px){
 :root{--section-space:60px;--section-gutter:7%;--section-title:32px}
 body{font-size:14px}
 .intro h1{margin-bottom:30px}
 .intro-copy{font-size:14px;line-height:1.85;gap:22px}
 .section-heading{gap:12px;margin-bottom:30px}
 .section-eyebrow,.wellness-eyebrow{font-size:9px;letter-spacing:.17em}
 .section-heading-line{height:24px}
 .room-info{grid-template-columns:1fr;gap:20px;padding-top:24px;text-align:center}
 .room-info h3{font-size:24px}
 .room-info h3:after{margin:14px auto 0}
 .room-description{font-size:13px;line-height:1.8}
 .room-bottom{justify-content:center;margin-top:22px}
 .room-bottom dl{display:none}
 .detail-button{min-width:118px}
 .reservation{font-size:9px;letter-spacing:.06em;padding:8px 12px;min-height:38px}
 .dining-gallery{grid-template-columns:1fr 1fr;gap:10px}
 .dining-gallery img:first-child{grid-column:1/-1;aspect-ratio:1.45;height:auto}
 .dining-gallery img:nth-child(2),.dining-gallery img:nth-child(3){height:auto;aspect-ratio:1}
 .wellness-copy{padding:32px 22px;margin-inline:0}
 .wellness-copy p{font-size:13px;line-height:1.8}
 .wellness-copy h3{font-size:29px}
 .wellness-cta{font-size:9px}
 .footer-main{min-height:0;row-gap:32px}
 .footer-main address,.footer-main nav{font-size:12px}
 .footer-main nav{padding-left:22%;gap:8px}
 .footer-subscribe{padding:30px 0 0}
 .footer-rule{margin-top:32px}
 .copyright{font-size:9px;line-height:1.7}
}

/* Rooms: an understated editorial panel beneath the original photography. */
.rooms{background:#faf8ed}
.rooms .section-heading{margin-bottom:clamp(34px,4vw,58px)}
.rooms .room-info{position:relative;background:var(--paper);padding:clamp(30px,3.4vw,52px);grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(28px,4vw,64px);border-bottom:1px solid rgba(169,124,80,.3)}
.rooms .room-info h3{font-size:clamp(25px,2.7vw,38px);line-height:1.45;letter-spacing:-.025em;max-width:12em;text-wrap:balance}
.rooms .room-info h3:after{width:52px;height:1px;margin-top:24px;background:#b48355}
.rooms .room-description{min-width:0;font-size:14px;line-height:1.9}
.rooms .room-description>p{max-width:60ch}
.rooms .room-bottom{padding-top:23px;margin-top:26px;border-top:1px solid rgba(169,124,80,.22);gap:22px}
.rooms .room-bottom dl{flex:1 1 auto;gap:0}
.rooms .room-bottom dl>div{padding-inline:18px;border-color:rgba(169,124,80,.22)}
.rooms .room-bottom dl>div:first-child{padding-left:0}
.rooms .room-bottom dt{color:var(--gold);font-size:9px;letter-spacing:.14em;margin-bottom:7px}
.rooms .room-bottom dd{color:var(--green);font-size:12px}
.rooms .detail-button{min-height:46px;min-width:128px;padding:11px 20px;border-color:rgba(69,123,68,.5);font-size:10px;letter-spacing:.16em;background:transparent}
.rooms .detail-button span{margin-left:18px;transition:transform .25s}
.rooms .detail-button:hover{background:var(--green-hover);color:var(--white);border-color:var(--green-hover)}
.rooms .detail-button:hover span{transform:translateX(3px)}
.rooms .room-arrow{background:rgba(0,0,0,.3);border-color:rgba(255,249,233,.8)}
.rooms .room-arrow:hover{background:var(--green-hover)}
@media(min-width:701px) and (max-width:1100px){
 .rooms .room-info{grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);padding:30px;gap:28px}
 .rooms .room-info h3{font-size:27px}
 .rooms .room-bottom dl{flex-basis:100%}
 .rooms .room-bottom dl>div{padding-inline:14px}
}
@media(max-width:700px){
 .rooms .room-info{grid-template-columns:1fr;padding:28px 18px 30px;gap:18px;text-align:center}
 .rooms .room-info h3{font-size:25px;max-width:none;margin-inline:auto}
 .rooms .room-info h3:after{width:38px;margin:17px auto 0}
 .rooms .room-description{font-size:13px;line-height:1.85}
 .rooms .room-bottom{border-top:0;padding-top:0;margin-top:24px;justify-content:center}
 .rooms .room-bottom dl{display:none}
 .rooms .detail-button{min-width:132px}
}

/* Rounded room action with an optically centered arrow. */
.rooms .detail-button{border-radius:999px;gap:14px;line-height:1;align-items:center}
.rooms .detail-button span{display:inline-flex;align-items:center;justify-content:center;width:25px;height:20px;margin-left:0;font-size:0;line-height:1;position:relative}
.rooms .detail-button span::before{content:"";position:absolute;width:23px;height:1px;background:currentColor;left:0;top:50%;transform:translateY(-50%)}
.rooms .detail-button span::after{content:"";position:absolute;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;right:2px;top:50%;transform:translateY(-50%) rotate(45deg)}

/* Interior pages share the same typography, palette and spacing as the home page. */
.page-hero{position:relative;min-height:480px;height:68svh;max-height:820px;display:grid;place-items:center;background:var(--green);isolation:isolate}
.page-hero>img{position:absolute;inset:0;height:100%;z-index:-2}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.48));z-index:-1}
.page-hero-copy{text-align:center;color:var(--white);padding:120px 24px 50px}
.page-hero-copy .section-eyebrow{color:#ead3b3}
.page-hero h1{font:400 clamp(34px,4.2vw,56px)/1.3 "SVN Recoleta",serif;letter-spacing:-.02em;margin:18px 0;text-wrap:balance}
.page-hero-copy p{font-family:"SVN Recoleta",serif;font-size:clamp(25px,2.7vw,38px);font-weight:400;line-height:1.4;letter-spacing:0;max-width:30em;margin:12px auto 0;text-wrap:balance}
.breadcrumbs{display:flex;gap:16px;align-items:center;padding:22px var(--section-gutter);font-size:11px;border-bottom:1px solid var(--fine-rule);color:var(--green)}
.breadcrumbs a:hover{color:#b48355}
.inner-page .intro h2{margin-bottom:42px}
.inner-page .wellness{padding-top:var(--section-space)}
.page-story{max-width:1440px;margin:0 auto;padding:0 var(--section-gutter) var(--section-space);display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%}
.page-story>img{aspect-ratio:4/5}
.page-story h2{text-align:left;font-size:clamp(27px,3vw,40px);margin:22px 0}
.page-story p,.page-note p{font-size:14px;line-height:1.9}
.page-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;margin-top:25px;border-bottom:1px solid #b48355;color:var(--green);font-size:10px;letter-spacing:.12em}
.page-link:hover{color:#b48355}
.page-link span{font-size:23px}
.page-note{max-width:700px;text-align:center;margin:0 auto;padding:0 24px var(--section-space)}
.page-note h2{margin:20px 0 26px}
.page-next{padding:48px var(--section-gutter);background:#edf0e7;text-align:center}
.page-next>div{display:flex;justify-content:center;gap:clamp(30px,5vw,80px);margin-top:24px;flex-wrap:wrap}
.page-next a{font:400 clamp(20px,2vw,28px)/1.5 "SVN Recoleta",serif;color:var(--green)}
.page-next a span{margin-left:20px;color:#b48355;font-family:var(--font-body)}
.page-next a:hover{color:#b48355}
@media(max-width:700px){
 .page-hero{min-height:400px;height:60svh}
 .page-hero h1{font-size:34px;margin:16px 0}
 .page-story{grid-template-columns:1fr;gap:30px}
 .page-story>img{aspect-ratio:4/3}
 .page-story h2{font-size:28px}
 .inner-page .intro h2{margin-bottom:30px}
 .page-next{padding:38px 7%}
 .page-next>div{flex-direction:column;gap:18px}
}

/* The Rooms page presents the four room categories in a two-by-two grid. */
.rooms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 30px;max-width:1440px;margin:auto;padding:0 var(--section-gutter)}
.rooms-grid .room-card{min-width:0;display:flex;flex-direction:column}
.rooms-grid .room-card>img{aspect-ratio:1.5;width:100%}
.rooms .rooms-grid .room-info{flex:1;display:flex;flex-direction:column;gap:22px;padding:30px}
.rooms .rooms-grid .room-info h3{font-size:clamp(23px,2.2vw,30px);max-width:none}
.rooms-grid .room-description{flex:1;display:flex;flex-direction:column}
.rooms-grid .room-description>p{flex:1}
.rooms .rooms-grid .room-bottom{gap:20px}
.rooms .rooms-grid .room-bottom dl{flex-basis:100%}
@media(max-width:700px){
 .rooms-grid{grid-template-columns:1fr;gap:32px}
 .rooms .rooms-grid .room-info{padding:28px 22px;gap:18px}
 .rooms .rooms-grid .room-info h3{font-size:25px}
}

/* The transparent masthead becomes a cream fixed header after scrolling. */
html{scroll-padding-top:calc(var(--menu-header-height) + 20px)}
.site-header{position:fixed;z-index:10;transition:background-color .35s ease,box-shadow .35s ease,color .35s ease}
.site-header::before{transition:opacity .35s ease}
.site-header.is-scrolled{background:var(--green);color:var(--cream);box-shadow:none}
.site-header.is-scrolled::before{opacity:0}
.site-header .brand::after{content:"";position:absolute;inset:0;background:var(--green);-webkit-mask:url('../img/logo.svg?v=2') center/contain no-repeat;mask:url('../img/logo.svg?v=2') center/contain no-repeat;opacity:0;transition:opacity .35s ease;pointer-events:none}
.site-header .brand img{transition:opacity .35s ease}
.site-header.is-scrolled .brand img{opacity:0}
.site-header.is-scrolled .brand::after{opacity:1;background:var(--cream)}
.site-header.is-scrolled .menu-toggle span{background:var(--cream)}
.site-header.is-scrolled .reservation{color:var(--cream);border-color:var(--cream)}
.site-header.is-scrolled .reservation:hover{background:var(--cream);color:var(--green-hover)}

/* Compact masthead and matching menu geometry. */
:root{--menu-header-height:88px}
.site-header,.menu-header{height:var(--menu-header-height)}
.brand img{width:140px}
.site-header::before{height:115px}
@media(max-width:700px){
 :root{--menu-header-height:70px}
 .brand img{width:105px}
 .site-header::before{height:90px}
}
@media(max-width:360px){.brand img{width:95px}}

/* Desktop navigation on the left, contextual photography on the right. */
@media(min-width:701px){
 .site-menu .menu-navigation{grid-column:1;grid-row:1}
 .site-menu .menu-photo{grid-column:2;grid-row:1;border-right:0;border-left:1px solid #adb89d}
}

/* Dining destinations: alternating photography and carefully spaced copy. */
.venue-list{max-width:1440px;margin:auto;display:grid;gap:clamp(54px,7vw,100px)}
.venue{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(30px,5vw,76px)}
.venue>img{aspect-ratio:4/4.5;height:100%;max-height:620px;object-fit:cover}
.venue:nth-child(even)>img{grid-column:2;grid-row:1}
.venue:nth-child(even) .venue-copy{grid-column:1;grid-row:1}
.venue-copy h3{color:var(--green);font-size:clamp(28px,3vw,40px);line-height:1.35;margin:17px 0}
.venue-copy>p{font-size:14px;line-height:1.9;margin-top:18px}
.venue-copy .venue-subtitle{font-size:12px;color:var(--green);margin-top:0;letter-spacing:.03em}
.venue-copy .venue-hours{display:flex;flex-wrap:wrap;gap:8px 20px;align-items:center;padding:18px 0;margin:25px 0;border-block:1px solid var(--fine-rule);color:var(--green);font-size:13px}
.venue-hours span{font-size:9px;letter-spacing:.16em;color:var(--gold)}
@media(max-width:700px){
 .venue{grid-template-columns:1fr;gap:26px}
 .venue>img{aspect-ratio:4/3;height:auto}
 .venue:nth-child(even)>img,.venue:nth-child(even) .venue-copy{grid-column:auto;grid-row:auto}
 .venue-copy h3{font-size:29px}
 .venue-copy>p{font-size:13px;line-height:1.85}
 .venue-copy .venue-hours{margin:21px 0;font-size:12px}
}

/* Alternating sage panels echo the wellness editorial treatment. */
.dining-venues .venue{gap:0;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.dining-venues .venue>img{align-self:stretch;max-height:none;min-height:520px;height:100%;aspect-ratio:auto;object-fit:cover}
.dining-venues .venue-copy{background:#edf0e7;color:var(--green);margin-block:34px;padding:clamp(32px,4.5vw,68px)}
.dining-venues .venue:nth-child(even){grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
@media(max-width:1000px) and (min-width:701px){
 .dining-venues .venue-copy{padding:32px;margin-block:26px}
 .dining-venues .venue-copy h3{font-size:29px}
}
@media(max-width:700px){
 .dining-venues .venue,.dining-venues .venue:nth-child(even){grid-template-columns:1fr}
 .dining-venues .venue>img{min-height:0;height:auto;aspect-ratio:4/3}
 .dining-venues .venue-copy{margin:0;padding:30px 24px}
}

/* Emphasize dining opening hours consistently. */
.venue-copy .venue-hours{text-transform:uppercase;font-weight:600}
.venue-hours span{font-weight:600}

/* Align the active room with the shared 1440px section content width. */
.rooms-carousel{container-type:inline-size;--room-card-width:min(85.2cqw,1440px);--room-side-space:calc((100% - var(--room-card-width))/2)}
.room-slider{padding-inline:var(--room-side-space);gap:clamp(10px,1.4vw,24px);align-items:flex-start}
.room-slider .room-card{flex:0 0 var(--room-card-width);min-width:0}
.room-slider .room-card>img{width:100%;height:auto;aspect-ratio:auto}
.rooms-carousel .room-prev{left:calc(var(--room-side-space)/2 - 24px)}
.rooms-carousel .room-next{right:calc(var(--room-side-space)/2 - 24px)}
@media(max-width:700px){
 .rooms-carousel{--room-card-width:86cqw}
 .rooms-carousel .room-prev{left:calc(var(--room-side-space)/2 - 16px)}
 .rooms-carousel .room-next{right:calc(var(--room-side-space)/2 - 16px)}
}

/* Two balanced rooms share the same content frame as Dining and Wellness. */
.rooms-carousel{--room-frame-width:min(85.2cqw,1440px);--room-gap:clamp(16px,2.2vw,32px);--room-card-width:calc((var(--room-frame-width) - var(--room-gap))/2);--room-side-space:calc((100% - var(--room-frame-width))/2)}
.room-slider{gap:var(--room-gap);scroll-padding-inline:var(--room-side-space);align-items:stretch}
.room-slider .room-card{scroll-snap-align:start;display:flex;flex-direction:column}
.rooms .room-slider .room-info{flex:1;display:flex;flex-direction:column;gap:20px;padding:30px}
.rooms .room-slider .room-info h3{font-size:clamp(23px,2.1vw,30px);max-width:none}
.room-slider .room-description{flex:1;display:flex;flex-direction:column}
.room-slider .room-description>p{flex:1}
.rooms .room-slider .room-bottom dl{flex-basis:100%}
@media(max-width:700px){
 .rooms-carousel{--room-frame-width:86cqw;--room-card-width:var(--room-frame-width);--room-gap:14px}
 .rooms .room-slider .room-info{padding:28px 22px;gap:18px}
 .rooms .room-slider .room-info h3{font-size:25px}
}

/* Quiet, consistent invitations to each dedicated experience page. */
.section-action{display:flex;justify-content:center;margin-top:clamp(30px,3.5vw,48px);padding-inline:24px}
.section-link{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:48px;padding:12px 0;border-bottom:1px solid rgba(169,124,80,.65);color:var(--green);font:400 10px/1.6 var(--font-body);letter-spacing:.15em;text-decoration:none;transition:color .25s,border-color .25s}
.section-link svg{width:30px;height:24px;flex:0 0 30px;fill:none;stroke:currentColor;stroke-width:1.2;transition:transform .3s cubic-bezier(.22,1,.36,1)}
.section-link:hover{color:#b48355;border-color:#b48355;text-decoration:none}
.section-link:hover svg{transform:translateX(5px)}
.wellness-copy .section-link{display:flex;margin-top:24px}
@media(max-width:700px){.section-action{margin-top:30px}.section-link{font-size:9px;letter-spacing:.12em;gap:24px}}

/* Booking and details remain paired for every room category. */
.room-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px}
.rooms .book-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;min-width:128px;padding:11px 20px;border:1px solid var(--green);border-radius:999px;background:var(--green);color:var(--white);font:400 10px/1 var(--font-body);letter-spacing:.14em;transition:background .25s,border-color .25s}
.rooms .book-button:hover{background:var(--green-hover);border-color:var(--green-hover)}
@media(max-width:700px){.room-actions{justify-content:center;gap:10px}.rooms .room-actions .book-button,.rooms .room-actions .detail-button{min-width:112px;padding-inline:15px;font-size:9px}}

/* A heritage-minded shop complements the Wellness experience. */
.earth-shop{padding:0 var(--section-gutter) var(--section-space)}
.earth-shop-layout{max-width:1440px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:center}
.earth-shop-copy{background:var(--green);color:var(--white);padding:clamp(32px,5vw,72px);margin-block:32px}
.earth-shop-copy h2{text-align:left;color:var(--white);font-size:clamp(26px,2.5vw,36px);line-height:1.4;margin-bottom:26px}
.earth-shop-copy p{font-size:14px;line-height:1.9}
.earth-shop-layout>img{height:100%;min-height:440px;object-fit:cover}
@media(max-width:700px){
 .earth-shop-layout{grid-template-columns:1fr}
 .earth-shop-layout>img{grid-row:1;min-height:0;height:auto}
 .earth-shop-copy{margin:0;padding:32px 24px}
 .earth-shop-copy h2{font-size:27px}
 .earth-shop-copy p{font-size:13px;line-height:1.85}
}

/* Mirror the Spa composition for the Earth-Saving Shop. */
.earth-shop-layout{grid-template-columns:1fr 1.15fr}
.earth-shop-copy{background:#edf0e7;color:var(--green);margin:38px 0;padding:65px calc(12% + 38px) 55px 12%}
.earth-shop-copy h2{color:var(--green);font-size:clamp(28px,3vw,43px);line-height:1.4;letter-spacing:-.025em;margin:0}
.earth-shop-copy h2::after{content:"";display:block;width:48px;height:1px;background:var(--gold);margin:26px 0}
.earth-shop-copy p{font-size:14px;line-height:1.85}
.earth-shop-layout>img{position:relative;z-index:1;align-self:stretch;width:calc(100% + 38px);margin-left:-38px;min-height:580px;height:100%;object-fit:cover}
@media(max-width:1000px) and (min-width:701px){
 .earth-shop-copy{padding:40px 48px 40px 24px}
 .earth-shop-copy h2{font-size:29px}
 .earth-shop-layout>img{width:calc(100% + 24px);margin-left:-24px;min-height:560px}
}
@media(max-width:700px){
 .earth-shop-layout{grid-template-columns:1fr}
 .earth-shop-layout>img{grid-row:1;width:100%;margin:0;min-height:0;height:auto;aspect-ratio:4/4.3}
 .earth-shop-copy{margin:0;padding:32px 22px}
 .earth-shop-copy h2{font-size:29px}
 .earth-shop-copy p{font-size:13px;line-height:1.8}
}

/* Contact, seasonal packages and the photographic journal. */
.contact-content,.offers-content,.gallery-content{padding:var(--section-space) var(--section-gutter)}
.contact-layout,.offer-package,.gallery-grid,.gallery-filters{max-width:1440px;margin-inline:auto}
.contact-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:center}
.contact-layout>img{height:100%;min-height:570px;object-fit:cover}
.contact-panel{background:#edf0e7;color:var(--green);padding:clamp(30px,4vw,64px);margin-block:30px}
.contact-panel h3{font-size:clamp(26px,3vw,38px)}
.contact-panel>p{font-size:13px;margin-top:8px}
.contact-panel dl{margin:30px 0}
.contact-panel dl>div+div{margin-top:24px}
.contact-panel dt{font-size:10px;letter-spacing:.15em;color:var(--gold);margin-bottom:7px}
.contact-panel dd{margin:0;font-size:14px;overflow-wrap:anywhere}
.contact-panel address{font-style:normal}
.contact-map{display:block;margin-top:25px;font-size:10px;letter-spacing:.1em}
.contact-panel a:hover{color:#b48355}
.offer-package{padding-bottom:48px;border-bottom:1px solid var(--fine-rule)}
.offer-package+.offer-package{margin-top:70px}
.offer-heading{display:grid;grid-template-columns:1fr 1fr;background:#edf0e7;align-items:center}
.offer-heading img{height:320px;object-fit:cover}
.offer-heading>div{padding:35px 10%}
.offer-heading h2{text-align:left;font-size:clamp(28px,3vw,40px);margin:18px 0}
.offer-period{font-size:11px;letter-spacing:.06em;color:var(--green);line-height:2}
.offer-period strong{font-size:13px;font-weight:600;letter-spacing:0}
.offer-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin:32px 0}
.offer-tier{padding:28px;background:var(--paper);border-top:1px solid #b48355}
.offer-tier h3{font-size:24px;color:var(--green)}
.offer-tier ul{padding-left:18px;margin:20px 0 0;font-size:13px;line-height:1.9}
.offer-tier li+li{margin-top:9px}
.offer-tier li::marker{color:#b48355}
.offer-note{font-size:12px;margin-bottom:18px}
.gallery-filters{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-bottom:35px}
.gallery-filters button{border:1px solid var(--fine-rule);border-radius:30px;background:none;padding:10px 20px;min-height:44px;font-size:11px;color:var(--green)}
.gallery-filters button[aria-pressed=true],.gallery-filters button:hover{background:var(--green-hover);color:var(--white)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.gallery-item{padding:0;border:0;background:none;text-align:left;color:var(--green);min-width:0}
.gallery-item img{aspect-ratio:4/3;object-fit:cover}
.gallery-item span{display:block;padding:14px 0;font-size:12px;letter-spacing:.03em}
.gallery-item:hover span{color:#b48355}
.gallery-item[hidden]{display:none}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .contact-layout,.offer-heading{grid-template-columns:1fr}
 .contact-layout>img{min-height:0;height:auto;aspect-ratio:4/3}
 .contact-panel{margin:0;padding:32px 24px}
 .offer-heading img{height:auto;aspect-ratio:4/3}
 .offer-heading>div{padding:30px 24px}
 .offer-tiers{grid-template-columns:1fr;gap:18px}
 .offer-package+.offer-package{margin-top:50px}
 .gallery-grid{gap:20px 14px}
 .gallery-item span{font-size:11px}
 .gallery-filters{gap:8px}
 .gallery-filters button{padding:9px 14px}
}

/* Fine-line amenities shared by every room detail dialog. */
.room-amenities{margin:30px 0;padding:26px 0;border-block:1px solid var(--fine-rule)}
.room-amenities h3{font:400 23px/1.4 "SVN Recoleta",serif;color:var(--green);text-align:center;margin-bottom:24px}
.room-amenities ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px 16px;list-style:none;padding:0;margin:0}
.room-amenities li{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;font:400 11px/1.6 var(--font-body);color:var(--green)}
.room-amenities svg{width:29px;height:29px;fill:none;stroke:#b48355;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
@media(max-width:700px){.room-amenities ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 16px}.room-amenities h3{font-size:21px}.room-amenities{margin:24px 0}}

/* The subscription column shares the symbol's central axis. */
@media(min-width:701px){
 .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);align-items:stretch}
 .footer-main address{padding:20px clamp(16px,2vw,32px);text-align:center}
 .footer-main nav{padding:20px clamp(16px,2vw,32px);align-items:center;text-align:center;justify-content:center;gap:8px}
 .footer-subscribe{padding:24px clamp(22px,3vw,44px);align-items:center}
 .footer-subscribe .subscribe-form{width:100%;max-width:480px}
 .footer-subscribe h3{width:100%;text-wrap:balance}
 .footer-social{justify-content:center}
}
@media(max-width:700px){
 .footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}
 .footer-main address{padding-right:18px;text-align:center}
 .footer-main nav{padding-left:18px;align-items:center;text-align:center}
}

/* Circular social buttons with restrained footer detailing. */
.footer-social a{width:44px;height:44px;border:1px solid rgba(255,249,233,.55);border-radius:50%;display:grid;place-items:center;transition:background .25s,border-color .25s,color .25s}
.footer-social svg{width:19px;height:19px}
.footer-social a[href]:hover{background:var(--white);border-color:var(--white);color:var(--green-hover)}

/* Quiet sage scrollbars and a circular close control for detail dialogs. */
html,.detail-dialog{scrollbar-width:thin;scrollbar-color:#a9b79a #F2F2EC}
html::-webkit-scrollbar,.detail-dialog::-webkit-scrollbar{width:8px;height:8px}
html::-webkit-scrollbar-track,.detail-dialog::-webkit-scrollbar-track{background:#faf8ed}
html::-webkit-scrollbar-thumb,.detail-dialog::-webkit-scrollbar-thumb{background:#a9b79a;border:2px solid #F2F2EC;border-radius:20px}
html::-webkit-scrollbar-thumb:hover,.detail-dialog::-webkit-scrollbar-thumb:hover{background:var(--green-hover)}
.detail-dialog{scrollbar-gutter:stable;padding-top:64px}
.detail-dialog .detail-close{position:absolute;top:14px;right:14px;width:36px;height:36px;padding:0;border:1px solid rgba(69,123,68,.3);border-radius:50%;background:var(--paper);color:var(--green);font-size:0;display:grid;place-items:center;transition:background .2s,color .2s,border-color .2s}
.detail-close::before,.detail-close::after{content:"";position:absolute;left:50%;top:50%;width:15px;height:1.5px;background:currentColor;border-radius:2px;transform:translate(-50%,-50%) rotate(45deg)}
.detail-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.detail-dialog .detail-close:hover{background:var(--green-hover);color:var(--white);border-color:var(--green-hover)}
@media(max-width:700px){.detail-dialog{padding-top:64px}.detail-dialog .detail-close{width:40px;height:40px;top:12px;right:12px}}

/* Vision and mission form a quiet pause within the About Us story. */
.about-purpose{padding:0 var(--section-gutter) var(--section-space)}
.about-purpose-inner{max-width:1440px;margin:auto;padding:clamp(38px,5vw,72px) clamp(24px,5vw,76px);background:#edf0e7}
.about-purpose .section-heading{margin-bottom:40px;padding:0}
.about-purpose .section-heading h2{font-size:clamp(27px,3vw,42px);line-height:1.45;text-wrap:balance}
.purpose-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1060px;margin:auto}
.purpose-card{text-align:center;padding:0 clamp(22px,3vw,48px)}
.purpose-card+.purpose-card{border-left:1px solid var(--fine-rule)}
.purpose-card h3{font:600 12px/1.6 var(--font-body);letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin-bottom:22px}
.purpose-card p{font-size:14px;line-height:1.9;color:var(--green);max-width:440px;margin:auto}
@media(max-width:700px){
 .about-purpose-inner{padding:36px 24px}
 .about-purpose .section-heading h2{font-size:26px}
 .about-purpose .section-heading{margin-bottom:30px}
 .purpose-grid{grid-template-columns:1fr;gap:28px}
 .purpose-card{padding:0}
 .purpose-card+.purpose-card{border-left:0;border-top:1px solid var(--fine-rule);padding-top:28px}
 .purpose-card h3{margin-bottom:16px;font-size:11px}
 .purpose-card p{font-size:13px;line-height:1.85}
}

/* A fine circular clock traces the slideshow's current interval. */
.hero-pause{border:0;overflow:visible}
.hero-progress{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);transform:rotate(-90deg);pointer-events:none;fill:none}
.hero-progress-track{stroke:rgba(255,249,233,.35);stroke-width:1}
.hero-progress-value{stroke:var(--white);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100}
@media(prefers-reduced-motion:reduce){.hero-progress-value{display:none}}

@media(max-width:700px){.room-amenities li:last-child:nth-child(odd){grid-column:1/-1}}

/* Keep expanded room descriptions and confirmed specifications readable. */
.room-description>p+p{margin-top:16px}
.detail-room-specs{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 30px;margin:26px 0;padding:20px 0;border-block:1px solid var(--fine-rule);text-align:center}
.detail-room-specs dt{font-size:9px;letter-spacing:.14em;color:var(--gold);margin-bottom:7px}
.detail-room-specs dd{margin:0;font-size:12px;color:var(--green)}
.room-bottom dl{flex-wrap:wrap;row-gap:14px}
.room-policy{margin:26px 0 30px;padding:24px;background:#edf0e7;color:var(--green)}
.room-policy h3{font:400 22px/1.5 "SVN Recoleta",serif;margin-bottom:18px}
.room-policy ul{margin:0;padding-left:18px;font-size:13px;line-height:1.85}
.room-policy li+li{margin-top:12px}

/* Room photography: a quiet, swipeable gallery with precise controls. */
.room-detail-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.room-detail-track::-webkit-scrollbar{display:none}
.detail-dialog .room-detail-track>img{flex:0 0 100%;width:100%;min-width:0;aspect-ratio:3/2;max-height:none;height:auto;object-fit:cover;scroll-snap-align:start}
.room-detail-controls{display:flex;align-items:center;justify-content:center;gap:24px;padding:16px 0 8px}
.room-detail-controls button{width:40px;height:40px;border:1px solid var(--fine-rule);border-radius:50%;background:transparent;color:var(--green);display:grid;place-items:center;transition:background .25s,color .25s}
.room-detail-controls button:hover:not(:disabled){background:var(--green-hover);color:var(--white)}
.room-detail-controls button:disabled{opacity:.3;cursor:default}
.room-detail-controls svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.2}
.room-photo-count{font:400 10px/1.5 var(--font-body);letter-spacing:.16em;color:var(--green);min-width:60px;text-align:center}
@media(max-width:700px){.detail-dialog .room-detail-track>img{aspect-ratio:4/3}}

/* Compact homepage room previews. */
.rooms .room-slider .room-card>img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;object-position:center}
.rooms .room-slider .room-info{padding:24px 0 28px;gap:12px;border-bottom:0;background:transparent}
.rooms .room-slider .room-info h3{font-size:clamp(21px,2vw,28px);line-height:1.45;min-height:2.9em;display:flex;align-items:center;margin:0}
.rooms .room-slider .room-info h3:after{display:none}
.room-preview-meta{color:var(--gold);font-size:11px;letter-spacing:.08em;line-height:1.6}
.rooms .room-slider .room-description{font-size:13px;line-height:1.8}
.rooms .room-slider .room-description>p{flex:none;max-width:58ch;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-height:5.4em;margin:0}
.rooms .room-slider .room-bottom{margin-top:auto;padding-top:22px;border-top:0}
.rooms .room-slider .room-actions{gap:12px}
@media(max-width:700px){
 .rooms .room-slider .room-info{padding:20px 6px 22px;gap:10px}
 .rooms .room-slider .room-info h3{justify-content:center;font-size:23px}
 .rooms .room-slider .room-description>p{margin-inline:auto}
 .rooms .room-slider .room-bottom{padding-top:20px}
}

.inner-page .wellness.fitness-center{padding-top:0}

/* Alternate the three Wellness experiences on larger screens. */
@media(min-width:701px){
 .page-wellness .fitness-center .wellness-layout{grid-template-columns:1fr 1.15fr}
 .page-wellness .fitness-center .wellness-image{grid-column:2;grid-row:1;margin:0 0 0 -38px}
 .page-wellness .fitness-center .wellness-copy{grid-column:1;grid-row:1;padding:65px calc(12% + 38px) 55px 12%}
 .page-wellness .earth-shop-layout{grid-template-columns:1.15fr 1fr}
 .page-wellness .earth-shop-layout>img{grid-column:1;grid-row:1;margin:0 -38px 0 0}
 .page-wellness .earth-shop-copy{grid-column:2;grid-row:1;padding:65px 12% 55px calc(12% + 38px)}
}
@media(min-width:701px) and (max-width:1000px){
 .page-wellness .fitness-center .wellness-image{margin-left:-24px}
 .page-wellness .fitness-center .wellness-copy{padding:40px 48px 40px 24px}
 .page-wellness .earth-shop-layout>img{margin-right:-24px}
 .page-wellness .earth-shop-copy{padding:40px 24px 40px 48px}
}

/* Consistent Wellness eyebrow headings, with unobstructed photographs. */
.page-wellness .earth-shop-copy h2{margin-top:20px}
.page-wellness .wellness-image::after{display:none}

/* Herb Restaurant photography, sized to its neighbouring editorial panel. */
.venue-slider{position:relative;min-width:0;min-height:520px;align-self:stretch;overflow:hidden}
.venue-slider-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.venue-slider-track::-webkit-scrollbar{display:none}
.venue-slider-track>img{flex:0 0 100%;width:100%;height:100%;min-width:0;object-fit:cover;scroll-snap-align:start}
.venue-slider-controls{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:8px 12px;border:1px solid #fff5e340;border-radius:40px;background:#000000b3;color:var(--white);backdrop-filter:blur(8px)}
.venue-slider-controls button{display:grid;place-items:center;width:38px;height:38px;padding:9px;border:1px solid #fff5e370;border-radius:50%;background:transparent;color:inherit;transition:background .25s}
.venue-slider-controls button:hover{background:#fff5e326}
.venue-slider-controls button:disabled{opacity:.35;cursor:default}
.venue-slider-controls svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.2}
.venue-slider-count{white-space:nowrap;font-size:10px;letter-spacing:.16em;font-variant-numeric:tabular-nums}
@media(max-width:700px){.venue-slider{min-height:0;aspect-ratio:4/3}.venue-slider-controls{bottom:16px;gap:16px}}

/* Homepage dining composition: elevated portrait, sage panel and paired details. */
.dining.dining-feature{padding:var(--section-space) var(--section-gutter);background:var(--cream)}
.dining-feature-layout{max-width:1440px;margin:auto;position:relative;isolation:isolate;display:grid;grid-template-columns:47fr 53fr;align-items:start}
.dining-feature-layout::before{content:"";position:absolute;z-index:-1;inset:clamp(60px,7vw,110px) 0 40px;background:#457b44}
.dining-feature-main{width:100%;height:auto;aspect-ratio:1.02;object-fit:cover;object-position:center;margin-bottom:76px}
.dining-feature-right{min-width:0;padding:clamp(60px,7vw,110px) 24px 0 36px}
.dining-feature-copy{padding:clamp(30px,4vw,56px) 0 clamp(36px,4vw,58px)}
.dining-feature-copy .section-eyebrow{color:var(--cream);font-size:10px;letter-spacing:.15em}
.dining-feature-copy h2{text-align:left;color:var(--cream);font-size:clamp(26px,2.9vw,42px);line-height:1.4;margin:16px 0 20px;letter-spacing:-.025em}
.dining-feature-link{display:inline-flex;align-items:center;gap:18px;max-width:100%;border:1px solid #c5a47b;border-radius:6px;padding:12px 18px;color:#ead3b3;font-size:10px;letter-spacing:.08em;line-height:1.5;transition:background .25s,color .25s}
.dining-feature-link svg{width:24px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.2}
.dining-feature-link:hover{background:var(--cream);color:var(--green-hover)}
.dining-feature-details{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dining-feature-details img{width:100%;height:auto;aspect-ratio:1.2;object-fit:cover}
@media(max-width:1000px) and (min-width:701px){.dining-feature-right{padding-left:24px;padding-right:18px}.dining-feature-copy h2{font-size:27px}.dining-feature-link{font-size:9px;padding:10px 12px;gap:10px}}
@media(max-width:700px){
 .dining-feature-layout{grid-template-columns:1fr}
 .dining-feature-layout::before{inset:40px 0 24px}
 .dining-feature-main{width:calc(100% - 24px);aspect-ratio:4/3;margin:0}
 .dining-feature-right{padding:0 20px}
 .dining-feature-copy{padding:30px 0}
 .dining-feature-copy h2{font-size:27px}
 .dining-feature-details{gap:12px}
 .dining-feature-link{font-size:9px;padding:11px 13px;gap:12px}
}

/* Extend the Dining backdrop to both viewport edges. */
.dining.dining-feature{overflow:hidden}
.dining-feature-layout::before{left:calc(50% - 50vw);right:calc(50% - 50vw)}

/* Full room specifications in balanced homepage previews. */
.rooms .room-slider .room-bottom{display:flex;flex-direction:column;align-items:stretch;gap:22px;padding-top:22px}
.rooms .room-slider .room-bottom dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;flex:none;width:100%;margin:0;padding:19px 0;border-block:1px solid rgba(169,124,80,.18)}
.rooms .room-slider .room-bottom dl>div{min-width:0;padding:0;border:0}
.rooms .room-slider .room-bottom dt{font-size:9px;letter-spacing:.15em;line-height:1.5;margin-bottom:9px;color:var(--gold)}
.rooms .room-slider .room-bottom dd{font-size:12px;line-height:1.7;white-space:normal;color:var(--green)}
@media(max-width:1000px) and (min-width:701px){
 .rooms .room-slider .room-bottom dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
}
@media(max-width:700px){
 .rooms .room-slider .room-bottom dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px;text-align:center;padding:18px 0}
 .rooms .room-slider .room-bottom{gap:20px}
}

/* Compact, icon-led homepage room facts. */
.rooms .room-slider .room-info{gap:0;padding-top:16px;padding-bottom:20px}
.rooms .room-slider .room-description{flex:1}
.rooms .room-slider .room-bottom{padding-top:8px;gap:16px}
.rooms .room-slider .room-bottom dl{padding:12px 0;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr));text-align:center}
.rooms .room-slider .room-bottom dt{display:flex;justify-content:center;margin-bottom:5px;line-height:1}
.room-spec-icon{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.room-spec-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.rooms .room-slider .room-bottom dd{font-size:11px;line-height:1.5}
@media(max-width:380px){.rooms .room-slider .room-bottom dl{gap:8px}.rooms .room-slider .room-bottom dd{font-size:10px}}

/* Center each homepage room preview on desktop. */
@media(min-width:701px){
 .rooms .room-slider .room-card>img{margin-inline:auto;object-position:center}
 .rooms .room-slider .room-info{text-align:center}
 .rooms .room-slider .room-info h3{justify-content:center;width:100%;margin-inline:auto}
 .rooms .room-slider .room-bottom dl{text-align:center;margin-inline:auto}
 .rooms .room-slider .room-bottom dt{justify-content:center}
 .rooms .room-slider .room-actions{justify-content:center;width:100%}
}

/* Room character lines and inline icon/value pairs. */
.rooms .room-slider .room-short-description{font-size:12px;line-height:1.7;color:var(--green);margin:0 0 14px;text-align:center;text-wrap:balance}
.rooms .room-slider .room-bottom dl{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 24px}
.rooms .room-slider .room-bottom dl>div{display:flex;align-items:center;justify-content:center;gap:8px}
.rooms .room-slider .room-bottom dt{flex:none;margin:0}
.rooms .room-slider .room-bottom dd{margin:0;white-space:nowrap}
@media(max-width:700px){
 .rooms .room-slider .room-short-description{font-size:11px;padding-inline:4px}
 .rooms .room-slider .room-bottom dl{gap:12px 18px}
 .rooms .room-slider .room-bottom dl>div{gap:7px}
}

/* Homepage rooms: quiet image overlays with always-readable details. */
.rooms .room-slider .room-card{position:relative;isolation:isolate;overflow:hidden;min-height:560px}
.rooms .room-slider .room-card>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;z-index:-2;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.rooms .room-slider .room-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.02) 15%,rgba(0,0,0,.28) 42%,rgba(0,0,0,.88) 100%)}
.rooms .room-slider .room-card::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(0,0,0,.24);opacity:0;transition:opacity .7s ease;pointer-events:none}
.rooms .room-slider .room-info{justify-content:flex-end;flex:1;padding:200px 26px 30px;background:transparent;border:0;text-align:center;color:var(--cream)}
.rooms .room-slider .room-info h3{color:var(--cream);min-height:0;justify-content:center;font-size:clamp(23px,2.1vw,30px);line-height:1.4;margin:0 0 14px}
.rooms .room-slider .room-short-description{color:#f9f6ef;margin-bottom:15px}
.rooms .room-slider .room-description{flex:none}
.rooms .room-slider .room-bottom{padding-top:0;gap:20px}
.rooms .room-slider .room-bottom dl{border-color:rgba(254,244,227,.25);padding:14px 0;gap:12px 20px}
.rooms .room-slider .room-bottom dt{color:#e5c298}
.rooms .room-slider .room-bottom dd{color:var(--cream)}
.rooms .room-slider .room-actions{justify-content:center}
.rooms .room-slider .book-button{background:var(--cream);border-color:var(--cream);color:var(--green)}
.rooms .room-slider .detail-button{border-color:rgba(254,244,227,.65);color:var(--cream);background:transparent}
.rooms .room-slider .book-button:hover,.rooms .room-slider .detail-button:hover{background:var(--green-hover);border-color:var(--green-hover);color:var(--cream)}
.rooms .room-slider .room-card:focus-within::after{opacity:1}
@media(hover:hover){.rooms .room-slider .room-card:hover::after{opacity:1}.rooms .room-slider .room-card:hover>img{transform:scale(1.025)}}
@media(max-width:700px){
 .rooms .room-slider .room-card{min-height:520px}
 .rooms .room-slider .room-info{padding:190px 18px 26px}
 .rooms .room-slider .room-info h3{font-size:24px}
 .rooms .room-slider .room-bottom dl{gap:12px 16px}
}
@media(prefers-reduced-motion:reduce){.rooms .room-slider .room-card>img,.rooms .room-slider .room-card::after{transition:none}.rooms .room-slider .room-card:hover>img{transform:none}}

/* Finer rules and slimmer actions within the room image overlays. */
.rooms .room-slider .room-bottom dl{width:90%;max-width:440px;margin-inline:auto;padding:11px 0;gap:10px 16px}
.rooms .room-slider .room-actions .book-button,
.rooms .room-slider .room-actions .detail-button{min-height:36px;min-width:112px;padding:7px 17px;font-size:9px;line-height:20px;letter-spacing:.12em}
.rooms .room-slider .room-actions .detail-button span{font-size:0;margin-left:0;width:18px;height:18px}
.rooms .room-slider .room-bottom{gap:16px}
@media(max-width:700px){
 .rooms .room-slider .room-bottom dl{width:94%;gap:10px 12px}
 .rooms .room-slider .room-actions .book-button,
 .rooms .room-slider .room-actions .detail-button{min-height:34px;min-width:104px;padding:6px 14px}
}

.rooms .room-slider .detail-button span::before{width:16px}
.rooms .room-slider .detail-button span::after{width:5px;height:5px;right:2px}

/* Welcome: overlapping architectural portraits and a single story column. */
.intro.welcome-intro{padding:clamp(56px,6vw,88px) var(--section-gutter) var(--section-space);background:#faf8ed}
.welcome-intro h1{margin:0 0 clamp(40px,5vw,70px);text-align:center}
.welcome-intro .slogan{width:clamp(220px,25vw,318px);height:auto;margin-inline:auto}
.welcome-layout{max-width:1240px;margin:auto;display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(40px,5vw,80px);align-items:start}
.welcome-images{display:grid;grid-template-columns:54% 33% 13%;grid-template-rows:auto auto;align-items:start}
.welcome-image-main{grid-column:1/3;grid-row:1;width:100%;height:auto;aspect-ratio:1.48;object-fit:cover}
.welcome-image-detail{grid-column:2/4;grid-row:1/3;width:100%;height:auto;aspect-ratio:.74;object-fit:cover;margin-top:76%;position:relative}
.welcome-intro .intro-copy{display:block;width:100%;max-width:none;margin:0;font-size:14px;line-height:1.75;color:#2d312c}
.welcome-intro .intro-copy p+p{margin-top:24px}
.welcome-story-link{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-width:240px;max-width:100%;margin-top:32px;padding:10px 17px;border:1px solid var(--gold);border-radius:6px;color:var(--gold);font-size:10px;letter-spacing:.06em;transition:background .25s,color .25s}
.welcome-story-link svg{width:20px;height:18px;fill:none;stroke:currentColor;stroke-width:1.2}
.welcome-story-link:hover{background:var(--green-hover);border-color:var(--green-hover);color:var(--cream)}
@media(max-width:700px){
 .welcome-layout{grid-template-columns:1fr;gap:32px}
 .welcome-intro .intro-copy{font-size:13px;line-height:1.8}
 .welcome-story-link{margin-top:26px}
}

/* A continuous soft cream canvas across the homepage sections. */
.intro.welcome-intro,
.rooms:has(.rooms-carousel),
body:not(.inner-page) .wellness{background:var(--cream)}

/* Reservation drawer. */
.reservation-panel{position:fixed;inset:0 0 0 auto;margin:0;border:0;width:min(480px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:60px 48px 36px;overflow-y:auto;color:var(--green);background:var(--cream) none center bottom/cover no-repeat;transform:translateX(100%);transition:transform .65s cubic-bezier(.22,1,.36,1)}
.reservation-panel.is-visible{transform:translateX(0)}
.reservation-panel::backdrop{background:rgba(0,0,0,.4)}
.reservation-close{position:absolute;top:18px;right:22px;width:36px;height:36px;display:grid;place-items:center;border:1px solid #457b4455;border-radius:50%;background:transparent;color:var(--green);font-size:25px;line-height:1}
.reservation-panel-content{width:100%;max-width:320px;margin:auto}
.reservation-panel h2{text-align:center;font:400 24px/1.5 "SVN Recoleta",serif;margin:12px 0 36px}
.reservation-dates{display:grid;grid-template-columns:1fr 1fr;border-block:1px solid #457b4455;padding:22px 0}
.reservation-date{position:relative;display:flex;flex-direction:column;align-items:center;font-size:15px;cursor:pointer}
.reservation-date+label{border-left:1px solid #457b4455}
.reservation-day{font:400 64px/1.15 "SVN Recoleta",serif;margin-top:12px}
.reservation-month{font-size:22px;line-height:1.4}
.reservation-date input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.reservation-date:focus-within{outline:2px solid var(--gold);outline-offset:5px}
.reservation-guests{text-align:center;padding:15px 0 10px;border-bottom:1px solid #457b4455}
.reservation-guests label{font-size:15px}
.reservation-counter{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:8px}
.reservation-counter input{width:86px;padding:0;border:0;background:transparent;text-align:center;color:var(--green);font:400 52px/1.3 "SVN Recoleta",serif;appearance:textfield;-moz-appearance:textfield}
.reservation-counter input::-webkit-inner-spin-button,.reservation-counter input::-webkit-outer-spin-button{appearance:none;margin:0}
.reservation-counter button{border:0;background:transparent;color:var(--green);font:300 32px/1 var(--font-body);width:44px;height:44px}
.reservation-counter button:disabled{opacity:.3}
.reservation-submit{width:100%;margin-top:28px;padding:14px;border:1px solid var(--green);border-radius:5px;background:var(--green);color:var(--cream);font-size:14px;letter-spacing:.08em}
.reservation-help{font-size:10px;text-align:center;margin-top:12px;line-height:1.6}
.reservation-address{text-align:center;font-style:normal;font-size:12px;line-height:1.7;margin-top:54px}
.reservation-address p{margin-bottom:20px}.reservation-address a{display:block;margin-top:16px}
.reservation-hotel{font:400 18px/1.5 "SVN Recoleta",serif}
@media(max-width:480px){.reservation-panel{padding:50px 28px 30px}.reservation-panel h2{font-size:22px;margin-bottom:26px}.reservation-address{margin-top:38px}}
@media(prefers-reduced-motion:reduce){.reservation-panel{transition:none}}

/* Bespoke reservation calendar. */
.reservation-date-trigger{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent;cursor:pointer;border-radius:3px}
.reservation-date-trigger:hover,.reservation-date-trigger[aria-expanded="true"]{background:rgba(0,0,0,.06)}
.reservation-calendar{padding:16px 12px;margin-top:18px;border:1px solid #457b4430;border-radius:8px;background:#faf8ed;box-shadow:0 8px 24px #253c2e0a}
.reservation-calendar[hidden]{display:none}
.calendar-top,.calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:8px}
.calendar-purpose{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.calendar-close{font-size:22px;border:0;background:transparent;color:var(--green);width:30px;height:30px}
.calendar-navigation{margin:8px 0 16px}
.calendar-month-title{font:400 16px/1.5 "SVN Recoleta",serif}
.calendar-navigation button{border:1px solid #457b4430;border-radius:50%;width:32px;height:32px;background:transparent;color:var(--green);font-size:23px;line-height:1}
.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.calendar-weekdays{font-size:10px;color:var(--gold);margin-bottom:9px}
.calendar-days button{aspect-ratio:1;min-width:0;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--green);font:400 12px var(--font-body);transition:background .2s}
.calendar-days button.in-range{background:#edf0e7;border-radius:4px}
.calendar-days button[aria-current="date"]{border-color:var(--gold)}
.calendar-days button.is-selected{background:var(--green);color:var(--cream)}
.calendar-days button:not(:disabled):hover{background:#d9e1d3;color:var(--green-hover)}
.calendar-days button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
.calendar-days button:disabled,.calendar-navigation button:disabled{opacity:.25;cursor:default}

/* Compact reservation form and hotel contact block. */
.reservation-panel{padding-top:44px;padding-bottom:20px}
.reservation-panel h2{font-size:22px;margin:6px 0 22px}
.reservation-dates{padding:14px 0}
.reservation-day{font-size:54px;margin-top:7px}
.reservation-month{font-size:19px}
.reservation-guests{padding:10px 0 6px}
.reservation-counter{margin-top:4px}
.reservation-counter input{font-size:42px;line-height:1.2}
.reservation-submit{margin-top:18px;padding:11px}
.reservation-help{margin-top:7px}
.reservation-address{margin-top:24px;font-size:11px;line-height:1.5}
.reservation-address .reservation-hotel{font-size:16px;line-height:1.35;margin-bottom:10px}
.reservation-address p{margin-bottom:10px}
.reservation-address .reservation-contact-line{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 7px;font-size:10px}
.reservation-address .reservation-contact-line a{display:inline;margin:0}
@media(max-height:720px){
 .reservation-panel{padding-top:38px;padding-bottom:16px}
 .reservation-panel h2{margin:4px 0 16px;font-size:20px}
 .reservation-dates{padding:10px 0}
 .reservation-day{font-size:46px;margin-top:4px}
 .reservation-month{font-size:17px}
 .reservation-counter input{font-size:36px}
 .reservation-guests{padding:8px 0 4px}
 .reservation-address{margin-top:18px}
}

/* Keep the reservation contact block 20px above the drawer's lower edge. */
.reservation-panel{padding-bottom:20px}
.reservation-panel-content{display:flex;flex-direction:column;min-height:calc(100dvh - 64px)}
.reservation-address{margin-top:auto;padding-top:24px}
@media(max-height:720px){.reservation-panel-content{min-height:calc(100dvh - 58px)}}

/* Anchor the reservation background artwork to the lower-right corner. */
.reservation-panel{background-position:right bottom}

/* Welcome botanical background, anchored to the lower-right corner. */
.intro.welcome-intro{background-image:none;background-position:right bottom;background-repeat:no-repeat;background-size:auto 100%}

.gallery-item img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.detail-dialog .gallery-full-photo{width:100%;height:55dvh;max-height:55dvh;object-fit:contain}
.detail-dialog:has(.gallery-full-photo) h2{text-align:center;font-size:22px}

.languages a{padding:6px 2px;color:var(--white);letter-spacing:.08em;line-height:1;text-decoration:none}
.languages a[aria-current="page"],.languages a:hover{color:#b48355}
html[lang="vi"] .room-info h3{line-height:1.5}
html[lang="vi"] .room-actions{gap:10px}
html[lang="vi"] .calendar-month-title{font-family:var(--font-body);font-size:14px}

/* A true circular close control, including iOS native button resets. */
.reservation-panel .reservation-close{box-sizing:border-box;-webkit-appearance:none;appearance:none;width:36px;height:36px;min-width:36px;max-width:36px;min-height:36px;max-height:36px;aspect-ratio:1;flex:0 0 36px;padding:0;margin:0;border:1px solid rgba(69,123,68,.4);border-radius:50%;font-size:0;line-height:0;letter-spacing:0;box-shadow:none;background:rgba(252,246,229,.65);transition:background .2s,border-color .2s}
.reservation-panel .reservation-close::before,.reservation-panel .reservation-close::after{content:"";position:absolute;top:50%;left:50%;width:13px;height:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.reservation-panel .reservation-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.reservation-panel .reservation-close:hover{background:var(--cream);border-color:var(--green-hover)}
.reservation-panel .reservation-close:focus-visible{outline:1px solid var(--gold);outline-offset:3px}

/* Stack Welcome photographs vertically on mobile. */
@media(max-width:700px){
 .welcome-images{display:flex;flex-direction:column;gap:16px}
 .welcome-images .welcome-image-main,
 .welcome-images .welcome-image-detail{width:100%;height:auto;margin:0;grid-column:auto;grid-row:auto;object-fit:cover}
 .welcome-images .welcome-image-main{aspect-ratio:3/2}
 .welcome-images .welcome-image-detail{aspect-ratio:4/5}
}

/* Circular month navigation, including Safari's native button reset. */
.reservation-calendar .calendar-navigation button{box-sizing:border-box;-webkit-appearance:none;appearance:none;position:relative;display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;min-width:32px;max-width:32px;min-height:32px;max-height:32px;aspect-ratio:1;padding:0;margin:0;border-radius:50%;font-size:0;line-height:0;letter-spacing:0;box-shadow:none}
.reservation-calendar .calendar-navigation button::before{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:translate(-65%,-50%) rotate(45deg)}
.reservation-calendar .calendar-navigation button[data-month-step="-1"]::before{transform:translate(-35%,-50%) rotate(-135deg)}

/* Three-photo Welcome composition: facade, garden and heritage details. */
@media(min-width:701px){
 .welcome-images{display:block;position:relative;aspect-ratio:1.04}
 .welcome-images .welcome-image-main{position:absolute;top:0;left:0;width:92%;height:61%;margin:0;object-fit:cover;aspect-ratio:auto}
 .welcome-images .welcome-image-garden{position:absolute;top:64%;left:9%;width:47%;height:32%;object-fit:cover}
 .welcome-images .welcome-image-detail{position:absolute;top:32%;right:0;width:44%;height:60%;margin:0;aspect-ratio:auto;object-fit:cover;box-shadow:0 0 0 10px var(--cream);z-index:1}
}
@media(max-width:700px){
 .welcome-images .welcome-image-garden{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;margin:0}
}

/* One consistent gutter for all edges in the Welcome collage. */
@media(min-width:701px){
 .welcome-images{--welcome-photo-gap:12px}
 .welcome-images .welcome-image-detail{box-shadow:0 0 0 var(--welcome-photo-gap) var(--cream)}
 .welcome-images .welcome-image-garden{top:calc(61% + var(--welcome-photo-gap));width:calc(47% - var(--welcome-photo-gap));height:calc(35% - var(--welcome-photo-gap))}
}

/* Shared location map, with its information panel in the artwork's clear right side. */
.location-map{position:relative;isolation:isolate;overflow:hidden;background:#faf8ed;color:var(--green)}
.location-map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:left center;z-index:-1}
.location-map-frame{max-width:1680px;margin:auto;padding:50px 5%;display:flex;justify-content:flex-end}
.location-map-copy{width:38%;max-width:460px;padding:20px 0 20px 28px}
.location-map-copy h2{text-align:left;font:400 clamp(25px,2.2vw,34px)/1.4 "SVN Recoleta",serif;margin:12px 0 24px}
.location-map-copy ul{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.location-map-copy li{display:flex;align-items:flex-start;gap:12px}
.location-map-copy li>svg{width:20px;height:20px;flex:0 0 20px;fill:none;stroke:var(--gold);stroke-width:1.3;margin-top:1px}
.map-destination{display:block;font-size:12px;line-height:1.6}
.map-travel{display:flex;flex-wrap:wrap;gap:6px;font-size:10px;line-height:1.7;color:#2d312c}
.map-travel strong{color:var(--gold);font-weight:600}
.map-note{font-size:10px;line-height:1.7;margin:20px 0 14px;color:#2d312c}
.map-directions{display:inline-flex;align-items:center;gap:22px;font-size:10px;letter-spacing:.08em;border-bottom:1px solid var(--gold);padding-bottom:8px}
@media(max-width:1000px){.location-map-image{object-fit:contain;object-position:left top}.location-map-frame{padding-top:32vw;background:linear-gradient(transparent 15%,#faf8ed 48%)}.location-map-copy{width:100%;max-width:none;padding:24px 0}.location-map-copy ul{grid-template-columns:1fr 1fr;gap:18px 28px}}
@media(max-width:550px){.location-map-frame{padding:40vw 7% 28px}.location-map-copy ul{grid-template-columns:1fr}.location-map-copy h2{font-size:27px}}
@media(min-width:1001px){.location-map-image{object-fit:contain;object-position:left center}}

/* Destination-specific line icons and clearer map typography. */
.location-map-copy li>svg{width:24px;height:24px;flex-basis:24px;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.location-map-copy li{gap:14px}
.map-destination{font-size:14px;line-height:1.6}
.map-travel{font-size:12px;line-height:1.7;gap:7px}
.map-note{font-size:11px}
.map-directions{font-size:11px}
.location-map-copy ul{gap:16px}

/* Join the map artwork directly to the footer edge on desktop. */
@media(min-width:1001px){.location-map-image{object-position:left bottom}}
.location-map{margin-bottom:0}
.location-map+.site-footer{margin-top:0}

/* Balanced two-photo Welcome layout, matching the updated composition. */
@media(min-width:701px){
 .welcome-images{aspect-ratio:1.38;--welcome-photo-gap:12px}
 .welcome-images .welcome-image-main{top:0;left:0;width:94%;height:87%;object-position:center}
 .welcome-images .welcome-image-garden{top:auto;left:auto;right:0;bottom:0;width:47%;height:44%;margin:0;object-fit:cover;object-position:center;box-shadow:0 0 0 var(--welcome-photo-gap) var(--cream);z-index:1}
}

/* Keep desktop location information within the map's native proportions. */
@media(min-width:1001px){
 .location-map{aspect-ratio:2000/799}
 .location-map-image{object-fit:fill}
 .location-map-frame{height:100%;padding:clamp(12px,1.4vw,28px) 5%;max-width:none;position:absolute;inset:0}
 .location-map-copy{width:39%;max-width:600px;padding:0 0 0 18px;align-self:center}
 .location-map-copy .section-eyebrow{font-size:clamp(8px,.65vw,11px);letter-spacing:.16em}
 .location-map-copy h2{font-size:clamp(23px,2vw,34px);margin:7px 0 14px;line-height:1.3}
 .location-map-copy ul{gap:clamp(5px,.55vw,10px)}
 .location-map-copy li{gap:10px;align-items:center}
 .location-map-copy li>svg{width:20px;height:20px;flex-basis:20px;margin:0}
 .location-map-copy li>div{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:10px}
 .map-destination{font-size:clamp(11px,.85vw,14px);line-height:1.4}
 .map-travel{font-size:clamp(10px,.72vw,12px);line-height:1.4;gap:5px}
 .map-note{font-size:clamp(9px,.65vw,11px);line-height:1.4;margin:12px 0 8px}
 .map-directions{font-size:10px;padding-bottom:5px}
}

/* Subtle green divider above the homepage map. */
.location-map{border-top:1px solid rgba(69,123,68,.22)}

/* Full-width, uncropped map artwork for phones. */
.location-map-mobile{display:none}
@media(max-width:700px){
 .location-map .location-map-image{display:none}
 .location-map .location-map-mobile{display:block;position:static;width:100%;max-width:none;height:auto;aspect-ratio:884/767;object-fit:contain;margin:0}
 .location-map .location-map-frame{position:static;height:auto;padding:24px 7% 28px;background:none}
 .location-map .location-map-copy{padding:0}
}

/* Refined hotel signature in the footer. */
.site-footer .hotel-name{font-family:"SVN Recoleta",serif;font-weight:400;line-height:1.65}

.subscribe-form .subscribe-trap{display:none}
.subscribe-form button:disabled{opacity:.5;cursor:wait}

/* Footer brand and a single fine baseline. */
.footer-logo{display:block;width:194px;max-width:70%;margin:0 auto 24px}
.footer-logo img{display:block;width:100%;height:auto;filter:brightness(0) saturate(100%) invert(91%) sepia(20%) saturate(320%) hue-rotate(342deg)}
.site-footer .footer-rule{gap:0;margin-top:36px}
.site-footer .footer-bottom{max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:12px}
.site-footer .copyright{margin:0;font-size:12px;line-height:1.6}
.footer-back-top{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;padding:0;border:0;background:transparent;color:inherit;font:400 12px/1.6 var(--font-body);letter-spacing:.06em}
.footer-back-top:hover{color:#e5c298}
.footer-back-top span{font-size:17px}
.site-footer .footer-main nav{font-family:"SVN Recoleta",serif;font-size:16px;font-weight:400;line-height:1.6;gap:8px}
@media(max-width:700px){.footer-logo{width:170px}.site-footer .footer-bottom{gap:14px;flex-wrap:wrap}.site-footer .copyright,.footer-back-top{font-size:12px}}

/* Shared 6px corner radius for all buttons and button-style links. */
button,
.reservation,
.book-button,
.detail-button,
.dining-feature-link,
.welcome-story-link,
.reservation-panel .reservation-close,
.reservation-calendar .calendar-navigation button,
.calendar-days button,
.calendar-days button.in-range,
.rooms .detail-button,
.rooms .book-button,
.room-detail-controls button,
.venue-slider-controls button,
.gallery-filters button,
.footer-back-top{border-radius:0!important}

/* Match the newsletter field to the shared button radius. */
.subscribe-form{border-radius:6px;overflow:hidden}

/* Slider navigation retains circular controls. */
.hero-arrow,
.room-arrow,
.room-detail-controls button,
.venue-slider-controls button{border-radius:0!important;aspect-ratio:1;flex-shrink:0}

/* Quiet focus states: no extra ring after clicking or tapping. */
a:focus:not(:focus-visible),button:focus:not(:focus-visible),[tabindex]:focus:not(:focus-visible){outline:none}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,
.calendar-days button:focus-visible,
.reservation-panel .reservation-close:focus-visible{outline:1px solid currentColor;outline-offset:3px}
.reservation-date:focus-within{outline:none}
.reservation-date:has(:focus-visible){outline:1px solid var(--green);outline-offset:3px}

/* Remove additional focus rings from interactive controls. */
a:focus,a:focus-visible,button:focus,button:focus-visible,
[tabindex]:focus,[tabindex]:focus-visible,
.reservation-panel .reservation-close:focus-visible,
.calendar-days button:focus-visible,
.reservation-date:focus-within,.reservation-date:has(:focus-visible),
.subscribe-form:focus-within{outline:none!important;box-shadow:none!important}

.rooms .rooms-explore-link{margin-top:0}

/* Consistent rounded content photography, including overlays and sliders. */
img{border-radius:10px}
.rooms .room-slider .room-card,
.wellness-image,
.venue-slider,
.room-detail-track{border-radius:10px;overflow:hidden}
.hero img,
.page-hero>img,
.brand img,
.footer-logo img,
.footer-symbol img,
img.slogan,
.location-map-image,
.location-map-mobile{border-radius:0}

/* Fine botanical divider between page titles and their taglines. */
.page-hero-copy .page-hero-divider{display:flex;align-items:center;gap:16px;width:clamp(220px,28vw,340px);max-width:100%;margin:0 auto}
.page-hero-divider::before,.page-hero-divider::after{content:"";flex:1;height:1px;background:currentColor;opacity:.8}
.page-hero-divider img{flex:0 0 44px;width:44px;height:auto;object-fit:contain;border-radius:0}
.page-hero-copy:has(.page-hero-divider) h1{margin-bottom:8px}
.page-hero-divider+p{margin-top:10px}

/* Live slogan text with a separate botanical accent. */
.slogan-text{position:relative;display:inline-block;padding-top:20px;color:var(--green);font-family:"SVN Recoleta",serif;font-size:clamp(30px,3.4vw,46px);font-weight:400;font-style:normal;line-height:1.2;letter-spacing:0;text-wrap:balance}
.slogan-leaf{position:absolute;top:0;left:50%;transform:translateX(-50%);width:48px;height:18px;background:currentColor;-webkit-mask:url('../img/leaf-icon.svg') center/contain no-repeat;mask:url('../img/leaf-icon.svg') center/contain no-repeat}

/* Room listing cards: joined photo and information panel, with a gentle lift. */
.rooms-grid .room-card{border-radius:10px;background:var(--paper);box-shadow:0 4px 18px rgba(0,0,0,.07);transition:translate .4s ease,box-shadow .4s ease}
.rooms-grid .room-card>img{border-radius:10px 10px 0 0}
.rooms .rooms-grid .room-info{border-radius:0 0 10px 10px;border-bottom:0;overflow:hidden}
@media(hover:hover) and (pointer:fine){
 .rooms-grid .room-card:hover{translate:0 -5px;box-shadow:0 12px 28px rgba(0,0,0,.12)}
}
@media(prefers-reduced-motion:reduce){
 .rooms-grid .room-card{transition:none}
 .rooms-grid .room-card:hover{translate:none}
}

/* Square edges for photography and interactive buttons across the site. */
img,button,a[role="button"],.reservation,.book-button,.detail-button,
.dining-feature-link,.welcome-story-link,.footer-social a,
.menu-photo-frame,.rooms .room-card,.rooms .room-info,
.wellness-image,.venue-slider,.venue-slider-controls,.room-detail-track,
.subscribe-form{border-radius:0!important}

/* Compact corners for buttons; circular controls are preserved below. */
button,a[role="button"],.reservation,.book-button,.detail-button,
.dining-feature-link,.welcome-story-link,
.calendar-days button,.calendar-days button.in-range,
.rooms .detail-button,.rooms .book-button,
.gallery-filters button,.footer-back-top{border-radius:3px!important}

/* Circular exceptions for social, navigation arrows and close controls. */
.footer-social a,
.hero-arrow,.room-arrow,
.room-detail-controls button,.venue-slider-controls button,
.reservation-calendar .calendar-navigation button,
.menu-close,.detail-close,.calendar-close,
.reservation-panel .reservation-close{border-radius:50%!important;aspect-ratio:1;flex-shrink:0}
.menu-close{height:38px}
@media(max-width:700px){.menu-close{height:25px}}

/* Restore the rounded restaurant navigation overlay. */
.venue-slider .venue-slider-controls{border-radius:40px!important}

/* All slideshow controls stay circular with a persistent soft green tint. */
.hero-pause,.hero-arrow,.rooms .room-arrow,
.room-detail-controls button,.venue-slider-controls button{
 border-radius:50%!important;
 aspect-ratio:1;
 flex-shrink:0;
 background:rgba(0,0,0,.2);
 -webkit-backdrop-filter:blur(3px);
 backdrop-filter:blur(3px);
}
.hero-pause:hover,.hero-arrow:hover,.rooms .room-arrow:hover,
.room-detail-controls button:hover:not(:disabled),
.venue-slider-controls button:hover:not(:disabled){background:rgba(0,0,0,.55)}

/* Homepage room cards: generous photography above a clean editorial caption. */
.rooms .rooms-carousel{--room-image-middle:calc(var(--room-card-width) / 3)}
.rooms .room-slider .room-card{min-height:0;overflow:hidden;background:transparent}
.rooms .room-slider .room-card::before,.rooms .room-slider .room-card::after{display:none}
.rooms .room-slider .room-card>img{position:static;inset:auto;z-index:auto;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transform:none;transition:none}
.rooms .room-slider .room-card:hover>img{transform:none}
.rooms .room-slider .room-info{justify-content:flex-start;gap:0;padding:18px 0 0;text-align:left;color:var(--green);background:transparent}
.rooms .room-slider .room-info h3{justify-content:flex-start;color:var(--green);font-size:clamp(21px,1.9vw,28px);line-height:1.45;margin:0 0 12px;text-align:left}
.rooms .room-slider .room-info h3::after{display:none}
.rooms .room-slider .room-short-description{padding:0;margin:0 0 20px;text-align:left;text-wrap:pretty;color:var(--text);font-size:14px;line-height:1.7}
.rooms .room-slider .room-description{flex:1;justify-content:flex-end}
.rooms .room-slider .room-bottom{margin:0;padding:0;border:0}
.rooms .room-slider .room-bottom dl,.rooms .room-slider .room-actions .book-button{display:none}
.rooms .room-slider .room-actions{width:100%;justify-content:flex-start}
.rooms .room-slider .room-actions .detail-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;width:240px;max-width:100%;min-height:44px;padding:10px 24px;border:1px solid var(--green);color:var(--green);background:transparent;font-size:11px;letter-spacing:.08em}
.rooms .room-slider .room-actions .detail-button:hover{background:var(--green-hover);color:var(--cream)}
@media(max-width:700px){
 .rooms .room-slider .room-info{padding-top:16px}
 .rooms .room-slider .room-info h3{font-size:23px}
 .rooms .room-slider .room-short-description{font-size:13px}
}

/* Text-only actions with balanced spacing. */
.welcome-story-link,.dining-feature-link,.section-link,.map-directions,
.footer-back-top,.rooms .detail-button,.rooms .room-slider .room-actions .detail-button{
 justify-content:center;gap:0;text-align:center;
}
.welcome-story-link,.dining-feature-link{padding-inline:22px}
.rooms .detail-button{padding-inline:22px}

/* Restore the arched top of the menu photograph. */
.site-menu .menu-photo-frame{border-radius:50% 50% 0 0 / 32.2% 32.2% 0 0!important;overflow:hidden}

/* Dining backdrop spans the full composition with space below the small photos. */
.dining-feature-layout::before{top:0;bottom:0}
.dining-feature-main{margin-bottom:0}
.dining-feature-right{padding-top:0;padding-bottom:clamp(32px,4vw,56px)}
@media(min-width:701px){
 .dining-feature-layout{align-items:stretch}
 .dining-feature-main{height:100%;object-fit:cover}
}
@media(max-width:700px){
 .dining-feature-right{padding-bottom:28px}
}

/* Let the main dining photo reach the left edge of the viewport. */
@media(min-width:701px){
 .dining-feature-main{width:calc(100% + (100vw - min(85.2vw,1440px)) / 2);max-width:none;margin-left:calc((min(85.2vw,1440px) - 100vw) / 2);height:100%;object-fit:cover}
}
@media(max-width:700px){
 .dining-feature-main{width:100vw;max-width:none;margin-left:calc((100% - 100vw) / 2)}
}

/* Compact Dining proportions, with height driven by the content panel. */
.dining.dining-feature{padding-block:clamp(40px,4.5vw,64px)}
.dining-feature-copy{padding:clamp(24px,2.8vw,40px) 0 clamp(24px,2.5vw,36px)}
.dining-feature-right{padding-bottom:clamp(24px,2.5vw,36px)}
.dining-feature-details img{aspect-ratio:3/2}
@media(min-width:701px){
 .dining-feature-main{position:absolute;top:0;left:calc((min(85.2vw,1440px) - 100vw) / 2);margin-left:0;width:calc(47% + (100vw - min(85.2vw,1440px)) / 2);height:100%;aspect-ratio:auto;object-fit:cover}
 .dining-feature-right{grid-column:2}
}
@media(max-width:700px){
 .dining-feature-main{aspect-ratio:3/2}
 .dining-feature-copy{padding-block:24px}
}

/* Add 100px to the desktop Dining panel, balanced above and below. */
@media(min-width:701px){
 .dining-feature-copy{padding-top:calc(clamp(24px,2.8vw,40px) + 50px)}
 .dining-feature-right{padding-bottom:calc(clamp(24px,2.5vw,36px) + 50px)}
}

/* Dining: a main photo slider and three named venues. */
.dining-feature-main.venue-slider{min-height:0;display:block}
.dining-feature-main .venue-slider-track{position:absolute;inset:0}
.dining-feature-main .venue-slider-track>img{height:100%;aspect-ratio:auto}
.dining-feature-details{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,1.2vw,18px)}
.dining-venue-card{display:block;min-width:0;color:var(--cream);text-align:center}
.dining-venue-card img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:filter .3s ease}
.dining-venue-card h3{margin:12px 0 0;font:400 clamp(12px,1.15vw,17px)/1.5 "SVN Recoleta",serif;text-wrap:balance}
.dining-venue-card:hover img{filter:brightness(1.08)}
@media(max-width:700px){
 .dining-feature-main.venue-slider{position:relative;aspect-ratio:3/2;height:auto}
 .dining-venue-card h3{font-size:12px;margin-top:10px}
}

/* Homepage dining loops through photographs with a quiet crossfade. */
.dining-feature-main .venue-slider-controls{display:none}
.dining-feature-main.is-autoplay .venue-slider-track{overflow:hidden;scroll-snap-type:none}
.dining-feature-main.is-autoplay .venue-slider-track>img{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity 1.2s ease;pointer-events:none}
.dining-feature-main.is-autoplay .venue-slider-track>img.is-active{opacity:1}
@media(prefers-reduced-motion:reduce){.dining-feature-main.is-autoplay .venue-slider-track>img{transition:none}}

/* Soft botanical texture behind the dining copy and venue cards. */
.dining-feature-layout::before{
 background-color:#457b44;
 background-image:none;
 background-repeat:no-repeat;
 background-position:right bottom;
 background-size:auto 115%;
 background-blend-mode:multiply;
 pointer-events:none;
}
@media(max-width:700px){
 .dining-feature-layout::before{background-size:auto 75%}
}

/* A lighter cream backdrop for the homepage room collection. */
.rooms:has(.rooms-carousel){background:#faf8ed}

/* Join Dining directly to the preceding Rooms section. */
.rooms + .dining.dining-feature{padding-top:0}

/* Dining editorial layout: a full-height photograph and staggered venue portraits. */
.dining.dining-feature{padding-bottom:0}
.dining-feature-layout{grid-template-columns:46fr 54fr}
.dining-feature-layout::before{background-size:auto 105%}
.dining-feature-right{position:relative;padding:clamp(38px,4vw,64px) 0 clamp(36px,4vw,60px) clamp(30px,4vw,64px)}
.dining-feature-copy{padding:0 0 clamp(28px,3vw,44px)}
.dining-feature-copy .section-eyebrow{font-size:10px;letter-spacing:.22em;color:#ead3b3}
.dining-feature-copy h2{font-size:clamp(28px,2.55vw,40px);line-height:1.4;max-width:19ch;margin:20px 0 26px}
.dining-feature-link{min-height:40px;padding:10px 20px;font-size:9px;letter-spacing:.13em;border-color:rgba(234,211,179,.55)}
.dining-feature-details{gap:clamp(14px,1.5vw,24px);align-items:start;padding-top:24px;border-top:1px solid rgba(255,249,233,.24)}
.dining-venue-card{text-align:left}
.dining-venue-card:nth-child(2){margin-top:26px}
.dining-venue-card:nth-child(3){margin-top:52px}
.dining-venue-card img{aspect-ratio:4/5;object-fit:cover}
.dining-venue-card h3{margin-top:14px;font-size:clamp(12px,1.05vw,16px);line-height:1.6}
@media(min-width:701px){
 .dining-feature-main.venue-slider{width:calc(46% + (100vw - min(85.2vw,1440px)) / 2)}
}
@media(min-width:701px) and (max-width:1000px){
 .dining-feature-right{padding-left:26px}
 .dining-feature-copy h2{font-size:27px}
 .dining-feature-details{gap:12px}
 .dining-venue-card:nth-child(2){margin-top:18px}
 .dining-venue-card:nth-child(3){margin-top:36px}
}
@media(max-width:700px){
 .dining-feature-layout{grid-template-columns:1fr}
 .dining-feature-right{grid-column:1;padding:34px 0 38px}
 .dining-feature-copy{padding-bottom:28px}
 .dining-feature-copy h2{font-size:29px;max-width:22ch;margin:16px 0 22px}
 .dining-feature-details{gap:12px;padding-top:22px}
 .dining-venue-card:nth-child(2){margin-top:16px}
 .dining-venue-card:nth-child(3){margin-top:32px}
 .dining-venue-card h3{font-size:12px;margin-top:10px}
}

/* Equal-height venue portraits expand to reveal their names. */
.dining-feature-details{display:flex;align-items:stretch;height:clamp(220px,19vw,300px);padding-top:24px}
.dining-feature-details .dining-venue-card{position:relative;flex:1 1 0;min-width:0;margin-top:0;overflow:hidden;isolation:isolate;transition:flex-grow .65s cubic-bezier(.22,1,.36,1)}
.dining-feature-details .dining-venue-card img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.dining-venue-card::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.8));opacity:0;transition:opacity .4s;pointer-events:none}
.dining-feature-details .dining-venue-card h3{position:absolute;z-index:1;left:14px;right:14px;bottom:18px;margin:0;color:var(--cream);font-size:clamp(13px,1.2vw,18px);line-height:1.4;opacity:0;transform:translateY(8px);transition:opacity .4s,transform .4s}
@media(hover:hover) and (pointer:fine){
 .dining-feature-details .dining-venue-card:hover,.dining-feature-details .dining-venue-card:focus-visible{flex-grow:1.8}
 .dining-venue-card:hover::after,.dining-venue-card:focus-visible::after{opacity:1}
 .dining-feature-details .dining-venue-card:hover h3,.dining-feature-details .dining-venue-card:focus-visible h3{opacity:1;transform:none}
}
@media(hover:none),(pointer:coarse){
 .dining-venue-card::after{opacity:1}
 .dining-feature-details .dining-venue-card h3{opacity:1;transform:none}
}
@media(max-width:700px){
 .dining-feature-details{height:220px;gap:10px}
 .dining-feature-details .dining-venue-card h3{font-size:12px;left:9px;right:9px;bottom:14px}
}
.dining-feature + .wellness{padding-top:clamp(56px,6vw,88px)}
@media(prefers-reduced-motion:reduce){
 .dining-feature-details .dining-venue-card,.dining-venue-card::after,.dining-feature-details .dining-venue-card h3{transition:none}
}

/* Balance the shorter Welcome story alongside its photo composition. */
.welcome-layout{align-items:center}
.welcome-intro .welcome-story-link{margin-top:24px}
@media(max-width:700px){
 .welcome-layout{gap:28px}
 .welcome-intro .welcome-story-link{margin-top:22px}
}

.footer-back-top{gap:10px}
.footer-back-top svg{width:16px;height:16px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}

/* Shared woven background across English and Vietnamese pages. */
body,
main > section:not(.hero):not(.page-hero):not(.location-map),
.intro.welcome-intro,.rooms:has(.rooms-carousel),
body:not(.inner-page) .wellness,
.reservation-panel,.detail-dialog,
.site-footer,.site-menu,
.dining-feature-layout::before{
 background-image:none;
 background-repeat:repeat;
 background-size:612px 612px;
 background-position:center top;
 background-blend-mode:multiply;
}

/* Show banner photography without the green overlay. */
.page-hero::after,.site-header::before{display:none}

/* Shared room information order: title, inline facts, description, actions. */
.rooms .rooms-grid .room-info,.rooms .room-slider .room-info{display:flex;flex-direction:column;gap:0;text-align:left;padding:26px 28px 28px}
.rooms .rooms-grid .room-info h3,.rooms .room-slider .room-info h3{margin:0 0 12px;max-width:none;color:var(--green);font-size:clamp(23px,2.1vw,30px);line-height:1.4;justify-content:flex-start}
.rooms .room-info h3::after{display:none}
.rooms .room-info .room-summary-specs{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;width:100%;margin:0 0 18px;padding:10px 0;border-block:1px solid rgba(169,124,80,.22)}
.rooms .room-summary-specs>div{display:flex;align-items:baseline;gap:5px;padding:0 8px;border-right:1px solid rgba(169,124,80,.5)}
.rooms .room-summary-specs>div:first-child{padding-left:0}
.rooms .room-summary-specs>div:last-child{border-right:0}
.rooms .room-summary-specs dt,.rooms .room-summary-specs dd{margin:0;font-size:10px;font-weight:600;line-height:1.5;letter-spacing:.02em;text-transform:uppercase}
.rooms .room-summary-specs dt{color:var(--gold)}
.rooms .room-summary-specs dd{color:var(--green)}
.rooms .room-slider .room-short-description,.rooms .rooms-grid .room-description>p{font-size:14px;line-height:1.8;color:var(--text);margin:0 0 20px;max-width:none;text-align:left}
.rooms .rooms-grid .room-bottom,.rooms .room-slider .room-bottom{margin:0;padding:0;border:0}
.rooms .room-actions{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:14px}
.rooms .room-slider .room-actions .book-button,.rooms .room-slider .room-actions .detail-button,.rooms .rooms-grid .room-actions .book-button,.rooms .rooms-grid .room-actions .detail-button{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:130px;min-height:46px;padding:12px 22px;font-size:10px;line-height:1.5;letter-spacing:.12em}
.rooms .room-slider .room-actions .book-button{background:var(--green);border-color:var(--green);color:var(--cream)}
@media(max-width:700px){
 .rooms .rooms-grid .room-info,.rooms .room-slider .room-info{padding:20px 16px 24px}
 .rooms .room-summary-specs>div{padding-inline:6px}
 .rooms .room-summary-specs dt,.rooms .room-summary-specs dd{font-size:9px}
 .rooms .room-slider .room-actions .book-button,.rooms .room-slider .room-actions .detail-button,.rooms .rooms-grid .room-actions .book-button,.rooms .rooms-grid .room-actions .detail-button{min-width:116px}
}

/* White base beneath the existing woven texture; green surfaces stay intact. */
body,
main > section:not(.hero):not(.page-hero):not(.location-map),
.intro.welcome-intro,.rooms,.rooms:has(.rooms-carousel),
body:not(.inner-page) .wellness,
.rooms .room-info,.rooms-grid .room-card,
.reservation-panel,.detail-dialog,.reservation-calendar,.offer-tier{
 background-color:#faf8ed;
}

/* Destination collection: one landmark portrait and four intimate views. */
.destination-section{padding:clamp(56px,6vw,96px) var(--section-gutter);color:var(--green)}
.destination-heading{max-width:1440px;margin:0 auto 32px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.destination-heading h2{text-align:left;margin-top:12px;font-size:clamp(28px,3vw,44px)}
.destination-heading>p{font-size:14px;color:var(--text);padding-bottom:6px}
.destination-grid{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.15fr 1fr 1fr;grid-template-rows:repeat(2,minmax(260px,22vw));gap:18px}
.destination-card{position:relative;display:block;overflow:hidden;isolation:isolate;color:#fff;min-width:0;background:var(--green)}
.destination-card:first-child{grid-row:span 2}
.destination-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s ease}
.destination-card::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,rgba(0,0,0,.12),transparent 25%,rgba(13,25,15,.78));pointer-events:none}
.destination-number{position:absolute;z-index:1;top:20px;left:22px;font-size:11px;letter-spacing:.16em;border-bottom:1px solid #ffffff70;padding-bottom:8px}
.destination-caption{position:absolute;z-index:1;bottom:24px;left:24px;right:24px}
.destination-category{font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:#ead3b3}
.destination-caption h3{font-size:clamp(20px,1.75vw,27px);line-height:1.4;margin:9px 0}
.destination-card:first-child h3{font-size:clamp(28px,2.8vw,40px)}
.destination-caption p{font-size:13px;line-height:1.65;color:#fff9e9;max-width:34ch}
.destination-map-link{display:inline-block;margin-top:14px;padding-bottom:4px;border-bottom:1px solid #ffffff70;font-size:10px;letter-spacing:.06em}
@media(hover:hover){.destination-card:hover>img{transform:scale(1.045)}.destination-card:hover .destination-map-link{border-color:#fff}}
@media(min-width:701px) and (max-width:1000px){.destination-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}.destination-card{min-height:300px}.destination-card:first-child{grid-column:span 2;grid-row:auto;min-height:380px}}
@media(max-width:700px){.destination-heading{display:block;margin-bottom:24px}.destination-heading>p{margin-top:14px}.destination-grid{grid-template-columns:1fr;grid-template-rows:none;gap:16px}.destination-card{min-height:310px}.destination-card:first-child{grid-row:auto;min-height:400px}.destination-caption{left:22px;right:22px;bottom:22px}}
@media(prefers-reduced-motion:reduce){.destination-card>img{transition:none}.destination-card:hover>img{transform:none}}

/* Warm earth tone for the destination collection. */
#main > .destination-section{background-color:#b48355;color:#fff9e9}
.destination-section .destination-heading h2{color:#fff9e9}
.destination-section .destination-heading .section-eyebrow{color:#d9b88d}
.destination-section .destination-heading>p{color:#e0d2c3}

/* Refined heading hierarchy: restrained scale and consistent editorial spacing. */
:root{--title-page:clamp(34px,3.6vw,50px);--title-section:clamp(27px,2.6vw,36px);--title-card:clamp(21px,1.8vw,26px)}
h1,h2,h3{font-weight:400;text-wrap:balance}
.page-hero h1{font-size:var(--title-page);line-height:1.3;letter-spacing:-.015em}
.page-hero-copy p{font-size:clamp(24px,2.2vw,31px);line-height:1.45}
.section-heading h2,.wellness-heading h2,
.dining-feature-copy h2,.destination-heading h2,
.page-story h2,.about-purpose h2,
.earth-shop-copy h2{font-size:var(--title-section);line-height:1.4;letter-spacing:-.015em}
.section-heading,.wellness-heading{gap:12px;margin-bottom:clamp(28px,3vw,42px)}
.section-heading h2{margin-bottom:0}
.section-eyebrow,.wellness-eyebrow{font-size:10px;line-height:1.6;letter-spacing:.17em}
.dining-feature-copy h2{max-width:22ch;margin:16px 0 24px}
.rooms .rooms-grid .room-info h3,.rooms .room-slider .room-info h3,
.venue-copy h3,.wellness-copy h3,.offer-heading h3,
.contact-panel h3{font-size:var(--title-card);line-height:1.45;letter-spacing:-.01em}
html[lang="vi"] .room-info h3{line-height:1.5}
.destination-caption h3{font-size:clamp(20px,1.6vw,24px);line-height:1.4;letter-spacing:-.01em}
.destination-card:first-child h3{font-size:clamp(26px,2.25vw,32px);line-height:1.4}
.footer-subscribe h2{font-size:clamp(23px,2vw,28px);line-height:1.45;letter-spacing:-.01em}
@media(max-width:700px){
 .page-hero h1{font-size:34px}
 .dining-feature-copy h2{max-width:24ch}
 .destination-heading h2{max-width:22ch}
}

/* Destination guide, shared by the English and Vietnamese routes. */
.destination-page-content{padding:clamp(40px,5vw,80px) var(--section-gutter)}
.destination-stop{max-width:1240px;margin:0 auto clamp(44px,6vw,88px);display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:clamp(28px,5vw,80px)}
.destination-stop:last-child{margin-bottom:0}
.destination-stop>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.destination-stop:nth-child(even)>img{grid-column:2;grid-row:1}
.destination-stop:nth-child(even) .destination-stop-copy{grid-column:1;grid-row:1}
.destination-stop .destination-category{color:var(--gold);font-size:10px}
.destination-stop h2{text-align:left;font-size:var(--title-section);line-height:1.4;margin:16px 0 20px}
.destination-stop p{font-size:15px;line-height:1.85;max-width:40ch}
.destination-page-link,.destination-overview-link{display:inline-block;margin-top:24px;padding-bottom:7px;border-bottom:1px solid currentColor;font-size:11px;letter-spacing:.08em;color:var(--green)}
.destination-heading-more{text-align:right;font-size:14px;color:#e0d2c3}
.destination-heading-more .destination-overview-link{color:#fff9e9;margin-top:12px}
@media(max-width:700px){.destination-stop{grid-template-columns:1fr;gap:24px}.destination-stop:nth-child(even)>img,.destination-stop:nth-child(even) .destination-stop-copy{grid-column:auto;grid-row:auto}.destination-heading-more{text-align:left;margin-top:16px}.destination-stop p{font-size:14px}}

.destination-page-intro{max-width:720px;margin:0 auto clamp(40px,5vw,72px);text-align:center}
.destination-page-intro h2{font-size:var(--title-section);margin-bottom:18px}
.destination-page-intro p{font-size:15px;line-height:1.85}
.destination-stop p{max-width:48ch}

/* Contain horizontal destination reveals without creating a side scrollbar. */
.destination-page-content{overflow-x:clip}

/* Live Google Map beside a compact destination guide. */
.location-map.location-map-live{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);aspect-ratio:auto;background:#faf8ed;isolation:auto;overflow:hidden}
.location-map-interactive{position:relative;min-height:560px;background:#f1eee6}
.location-map-interactive iframe{display:block;width:100%;height:100%;min-height:560px;border:0}
.location-map-live .location-map-frame{position:static;inset:auto;width:auto;height:auto;min-height:0;padding:clamp(28px,3vw,48px);background:none}
.location-map-live .location-map-copy{width:100%;max-width:none;padding:0}
.location-map-live .location-map-copy ul{grid-template-columns:1fr;gap:14px}
.location-map-live .location-map-copy h2{font-size:clamp(26px,2.2vw,34px);margin:12px 0 24px}
.location-map-live .map-destination{font-size:14px}
.location-map-live .map-travel{font-size:12px}
.location-map-live .map-note{font-size:11px;line-height:1.7;margin-top:22px}
@media(max-width:1000px){
 .location-map.location-map-live{grid-template-columns:1fr}
 .location-map-interactive,.location-map-interactive iframe{min-height:0;height:440px}
 .location-map-live .location-map-copy ul{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 .location-map-interactive,.location-map-interactive iframe{height:380px}
 .location-map-live .location-map-frame{padding:30px 7%}
 .location-map-live .location-map-copy ul{grid-template-columns:1fr;gap:16px}
}

/* A calm, simplified map palette matched to Little Gem. */
#gem-location-map{position:absolute;inset:0;width:100%;height:100%;min-height:380px}
#gem-location-map img{max-width:none;object-fit:initial;border-radius:0}
.gem-map-fallback{position:absolute;left:20px;bottom:44px;z-index:1;background:#faf8ed;padding:12px 18px;color:var(--green);font-size:13px;box-shadow:0 3px 16px #00000012}
.gem-map-fallback[hidden]{display:none}
.gem-map-fallback a{font-size:10px;text-decoration:underline}
.gem-map-info{color:#457b44;font:400 13px/1.6 "SVN Poppins Light",sans-serif;padding:8px}
.gem-map-info p{margin:6px 0}
.gem-map-info a{text-decoration:underline}

/* Full-width map with a floating information panel above it. */
.location-map.location-map-live{display:block;position:relative;min-height:640px;padding:42px 5%;isolation:isolate}
.location-map-live .location-map-interactive{position:absolute;inset:0;width:100%;height:100%;min-height:0;z-index:0}
.location-map-live .location-map-frame{position:relative;z-index:1;width:44%;max-width:560px;margin-left:auto;padding:30px 32px;background:rgba(242,242,236,.96);box-shadow:0 12px 40px rgba(32,47,24,.12);border:1px solid rgba(69,123,68,.12)}
.location-map-live .location-map-copy ul{grid-template-columns:1fr;gap:13px}
.location-map-live .location-map-copy h2{margin-bottom:22px}
@media(max-width:1000px) and (min-width:701px){
 .location-map.location-map-live{padding:30px 3%}
 .location-map-live .location-map-frame{width:48%;padding:26px 24px}
}
@media(max-width:700px){
 .location-map.location-map-live{padding:320px 5% 38px;min-height:0}
 .location-map-live .location-map-frame{width:100%;max-width:none;margin:0;padding:26px 22px}
 .location-map-live .location-map-copy ul{gap:14px}
}

/* Equal spacing around the right-hand map information panel. */
@media(min-width:701px){
 .location-map.location-map-live{--map-panel-inset:clamp(24px,3vw,40px);min-height:0;padding:var(--map-panel-inset)}
 .location-map-live .location-map-frame{margin:0 0 0 auto}
}

/* Soft, continuous ripples anchored to the hotel coordinates. */
.gem-location-pulse{position:absolute;width:20px;height:20px;margin:-10px 0 0 -10px;pointer-events:none}
.gem-location-pulse::before,.gem-location-pulse::after{content:"";position:absolute;inset:0;border:1px solid #457b44;border-radius:50%;background:rgba(0,0,0,.18);animation:gem-map-ripple 2.8s ease-out infinite}
.gem-location-pulse::after{animation-delay:1.4s}
@keyframes gem-map-ripple{0%{transform:scale(1);opacity:.65}100%{transform:scale(3.8);opacity:0}}
@media(prefers-reduced-motion:reduce){.gem-location-pulse::before,.gem-location-pulse::after{animation:none;transform:scale(2);opacity:.2}}
@media(min-width:701px){.location-map.location-map-live{padding-right:calc(var(--map-panel-inset) + 30px)}}

.location-map-live .map-place{cursor:pointer;transition:background .2s}
.location-map-live .map-place:hover,.location-map-live .map-place:focus{background:rgba(0,0,0,.055)}
.map-place-preview{position:fixed;z-index:30;width:230px;padding:8px 8px 12px;background:#faf8ed;box-shadow:0 8px 30px rgba(32,47,24,.18);border:1px solid rgba(69,123,68,.13);pointer-events:auto;text-decoration:none;cursor:pointer;color:#457b44;animation:map-preview-in .2s ease}
.map-place-preview[hidden]{display:none}
.map-place-preview img{width:100%;height:126px;object-fit:cover}
.map-place-preview strong{display:block;font:400 14px/1.5 "SVN Recoleta",serif;margin:10px 5px 4px}
.map-place-preview>span{display:block;font:400 11px/1.6 "SVN Poppins Light",sans-serif;color:#2d312c;margin:0 5px}
@keyframes map-preview-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.map-place-preview{animation:none}}

/* Destination details reached from the map preview. */
.destination-stop{scroll-margin-top:110px}
.destination-stop .destination-transfer{font-size:12px;color:var(--gold);margin:0 0 16px;line-height:1.7}
.destination-travel-note{max-width:1240px;margin:32px auto 0;font-size:12px;color:#2d312c}

/* Eight destinations in an editorial four-column guide. */
.destination-guide-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 24px;max-width:1600px;margin:0 auto;align-items:stretch}
.destination-guide-grid .destination-stop{display:flex;flex-direction:column;align-items:stretch;gap:0;min-width:0;max-width:none;margin:0;background:#faf8ed;border:1px solid rgba(69,123,68,.12);box-shadow:0 8px 28px rgba(42,49,31,.035);transition:box-shadow .35s ease,border-color .35s ease}
.destination-guide-grid .destination-stop>img{display:block;width:100%;aspect-ratio:5/4;object-fit:cover;flex-shrink:0}
.destination-guide-grid .destination-stop-copy{display:flex;flex-direction:column;flex:1;padding:24px 22px 26px}
.destination-guide-grid .destination-category{letter-spacing:.12em;line-height:1.6}
.destination-guide-grid h2{font-size:clamp(19px,1.5vw,25px);line-height:1.45;margin:12px 0 14px;min-height:2.9em}
.destination-guide-grid .destination-stop p{font-size:13px;line-height:1.85;max-width:none;margin:0 0 20px}
.destination-guide-grid .destination-stop .destination-transfer{font-size:11px;line-height:1.7;min-height:3.4em;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid rgba(164,116,73,.22)}
.destination-guide-grid .destination-page-link{align-self:flex-start;margin-top:auto;font-size:10px;letter-spacing:.12em;padding-top:16px}
.destination-insight{border-top:1px solid rgba(69,123,68,.12);padding:10px 0;scroll-margin-top:110px}
.destination-insight summary{cursor:pointer;font:400 12px/1.7 "SVN Recoleta",serif;color:var(--green)}
.destination-guide-grid .destination-insight p{margin:12px 0 0;font-size:12px}
.destination-guide-grid .destination-insight .destination-page-link{margin:0 0 10px}
@media(hover:hover){.destination-guide-grid .destination-stop:hover{border-color:rgba(69,123,68,.3);box-shadow:0 14px 36px rgba(42,49,31,.09)}}
@media(max-width:1100px){.destination-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.destination-guide-grid h2{font-size:23px}}
@media(max-width:600px){.destination-guide-grid{grid-template-columns:1fr;gap:28px}.destination-guide-grid .destination-stop-copy{padding:22px}.destination-guide-grid h2{font-size:23px;min-height:0}.destination-guide-grid .destination-stop .destination-transfer{min-height:0}.destination-guide-grid .destination-stop>img{aspect-ratio:3/2}}
@media(prefers-reduced-motion:reduce){.destination-guide-grid .destination-stop{transition:none}}

/* Shared destination background on the homepage and destination guide. */
main > section.destination-page-content{background-color:#b48355}
.destination-page-content .destination-page-intro,.destination-page-content .destination-page-intro h2,.destination-page-content .destination-travel-note{color:#fff9e9}
.destination-section .destination-heading .section-eyebrow,.destination-section .destination-heading-more{color:#fff9e9}

/* Two heritage highlights balance the final row of the destination guide. */
.destination-guide-grid .destination-stop-wide{grid-column:span 2}
.destination-guide-grid .destination-stop-wide>img{aspect-ratio:2/1}
.destination-guide-grid .destination-stop-wide h2{min-height:0}
@media(min-width:601px) and (max-width:1100px){.destination-guide-grid .destination-stop-wide{grid-column:span 1}.destination-guide-grid .destination-stop-wide>img{aspect-ratio:5/4}}
@media(max-width:600px){.destination-guide-grid .destination-stop-wide{grid-column:auto}.destination-guide-grid .destination-stop-wide>img{aspect-ratio:3/2}}

/* Dedicated room pages: full-width photography and restrained editorial details. */
.room-page-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.room-page-track::-webkit-scrollbar{display:none}
.room-page-track>img{flex:0 0 100%;width:100%;height:clamp(340px,72vh,800px);object-fit:cover;scroll-snap-align:start;scroll-snap-stop:always}
.room-page-gallery .room-detail-controls{padding:20px 0;gap:30px;border-bottom:1px solid var(--fine-rule)}
.room-page-count{font-size:11px;letter-spacing:.16em;min-width:58px;text-align:center;color:var(--green)}
.room-page-intro{max-width:1280px;margin:auto;padding:48px var(--section-gutter) 64px;display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(32px,7vw,100px);align-items:center}
.room-page-intro h1{font:400 clamp(30px,3.6vw,52px)/1.35 "SVN Recoleta",serif;color:var(--green);margin:16px 0 24px}
.room-page-intro p{font-size:15px;line-height:1.9;color:var(--text);max-width:62ch}
.room-page-book{display:inline-flex;margin-top:28px;padding:16px 28px;background:var(--green);color:#fff!important;border:1px solid var(--green);font-size:11px;letter-spacing:.12em}
.room-page-specs{display:grid;grid-template-columns:1fr 1fr;gap:28px 24px;padding:30px 0;border-block:1px solid var(--fine-rule);margin:0}
.room-page-specs dt{font-size:10px;letter-spacing:.14em;color:var(--gold);margin-bottom:10px}
.room-page-specs dd{font:400 clamp(18px,1.6vw,24px)/1.5 "SVN Recoleta",serif;color:var(--green);margin:0}
.room-page-amenities,.room-page-policy{max-width:1280px;margin:0 auto;padding:0 var(--section-gutter) 60px}
.room-page-amenities h2,.room-page-policy h3{font:400 26px/1.5 "SVN Recoleta",serif;color:var(--green);margin-bottom:26px}
.room-page-amenities ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;padding:0;gap:0 36px}
.room-page-amenities li{padding:14px 0;border-bottom:1px solid var(--fine-rule);font-size:13px;line-height:1.7;color:var(--text)}
.room-page-policy{font-size:13px;line-height:1.9;color:var(--text)}
.room-page-policy .room-policy{margin:0;padding:clamp(24px,3.5vw,44px);border:0}
#main>.other-rooms{padding:60px var(--section-gutter) 76px;background:#f1eee6}
.other-rooms-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;max-width:1500px;margin:0 auto 32px}
.other-rooms-heading h2{font:400 clamp(28px,3vw,38px)/1.4 "SVN Recoleta",serif;margin-top:12px;color:var(--green)}
.other-rooms-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;max-width:1500px;margin:auto}
.other-room{min-width:0;background:#faf8ed}
.other-room a{display:flex;height:100%;flex-direction:column;text-decoration:none;color:var(--green)}
.other-room img{width:100%;aspect-ratio:4/3;object-fit:cover}
.other-room a>div{padding:22px 18px;display:flex;flex-direction:column;flex:1}
.other-room h3{font:400 clamp(17px,1.4vw,21px)/1.5 "SVN Recoleta",serif;margin:0 0 14px}
.other-room p{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--text);margin-bottom:24px}
.other-room-link{align-self:flex-start;margin-top:auto;font-size:10px;letter-spacing:.12em;border-bottom:1px solid var(--gold);padding-bottom:6px}
@media(hover:hover){.other-room a:hover .other-room-link{color:var(--gold)}}
@media(max-width:1100px){.other-rooms-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.room-page-track>img{height:52vh;min-height:300px}.room-page-intro{grid-template-columns:1fr;padding-top:28px;gap:30px}.room-page-amenities ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}.other-rooms-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.other-rooms-heading{align-items:flex-start}.other-room a>div{padding:18px 14px}}
@media(max-width:420px){.other-rooms-grid{grid-template-columns:1fr}.other-room h3{font-size:22px}}

/* Airy policy panel and coordinated amenity line icons. */
.room-page-policy .room-policy h3{margin:0 0 22px;line-height:1.5}
.room-page-policy .room-policy ul{padding-left:19px;margin:0;line-height:1.9}
.room-page-policy .room-policy li{padding-left:5px}
.room-page-policy .room-policy li+li{margin-top:14px}
.room-page-amenities li{display:flex;align-items:center;gap:15px;padding:18px 0}
.room-page-amenities li svg{width:26px;height:26px;flex:0 0 26px;fill:none;stroke:var(--gold);stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.room-page-amenities li span{min-width:0}
@media(max-width:700px){.room-page-policy .room-policy{padding:24px 20px}.room-page-policy .room-policy h3{font-size:22px}.room-page-amenities li{gap:10px;align-items:flex-start}.room-page-amenities li svg{width:23px;height:23px;flex-basis:23px}}

/* Preserve the full photograph in an adjoining, continuous room carousel. */
.room-page-track{gap:8px;align-items:center;background:#faf8ed}
.room-page-track>img{flex:0 0 auto;width:auto;max-width:none;height:clamp(320px,65svh,720px);min-height:0;object-fit:contain;scroll-snap-align:center}
@media(max-width:700px){.room-page-track{gap:5px}.room-page-track>img{height:clamp(230px,42svh,420px);min-height:0}}

/* Related-room carousel with outside arrows and four complete desktop cards. */
.other-rooms-carousel{position:relative;max-width:1500px;margin:auto;padding:0 52px}
.other-rooms-carousel .other-rooms-grid{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.other-rooms-carousel .other-rooms-grid::-webkit-scrollbar{display:none}
.other-rooms-carousel .other-room{flex:0 0 calc((100% - 66px)/4);scroll-snap-align:start}
.other-rooms-arrow{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;padding:0;border:1px solid rgba(69,123,68,.3);border-radius:50%!important;background:rgba(0,0,0,.07);color:var(--green);display:grid;place-items:center;cursor:pointer}
.other-rooms-arrow[data-other-step="-1"]{left:0}
.other-rooms-arrow[data-other-step="1"]{right:0}
.other-rooms-arrow svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3}
.other-rooms-arrow:disabled{opacity:.3;cursor:default}
@media(hover:hover){.other-rooms-arrow:hover:not(:disabled){background:var(--green-hover);color:#fff}}
@media(max-width:1000px){.other-rooms-carousel .other-room{flex-basis:calc((100% - 22px)/2)}}
@media(max-width:600px){.other-rooms-carousel{padding:0 36px}.other-rooms-carousel .other-room{flex-basis:100%}.other-rooms-arrow{width:28px;height:28px}.other-rooms-arrow svg{width:17px;height:17px}}

/* A consistent green header and a restrained neutral veil over banner photos. */
.site-header{background:#457b44;color:var(--cream)}
.site-header .brand img{opacity:0}
.site-header .brand::after{opacity:1;background:var(--cream)}
.site-header .menu-toggle span{background:var(--cream)}
.site-header .reservation{color:var(--cream);border-color:var(--cream)}
.site-header .reservation:hover{background:var(--cream);color:var(--green-hover)}
.hero-slides{position:relative}
.hero-slides::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.08) 40%,transparent 75%)}
.page-hero::after{display:block;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.3) 55%,rgba(0,0,0,.08));pointer-events:none}
.page-hero-copy{text-shadow:0 2px 14px rgba(0,0,0,.2)}
.room-page-gallery{position:relative}
.room-page-gallery::before{content:"";position:absolute;top:0;left:0;right:0;height:clamp(160px,25svh,260px);background:linear-gradient(180deg,rgba(0,0,0,.22),transparent);pointer-events:none;z-index:1}

/* Transparent header over a black fade; solid green only after scrolling. */
.site-header{background:transparent}
.site-header::before{display:block;content:"";position:absolute;inset:0 0 auto;height:calc(var(--menu-header-height) + 90px);background:linear-gradient(180deg,rgba(0,0,0,.52) 0%,rgba(0,0,0,.24) 48%,transparent 100%);opacity:1;pointer-events:none;z-index:-1}
.site-header.is-scrolled{background:#457b44}
.site-header.is-scrolled::before{opacity:0}

/* Persistent desktop navigation, balanced around the centred hotel logo. */
.header-nav{display:none}
.site-header{border-bottom:1px solid rgba(255,249,233,.3)}
@media(min-width:1180px){
 .site-header{display:grid;grid-template-columns:140px minmax(0,1fr) 140px minmax(0,1fr) 140px;column-gap:24px;padding-inline:5%}
 .site-header .brand{position:relative;left:auto;transform:none;justify-self:center}
 .site-header .brand img{width:140px}
 .site-header .menu-toggle{justify-self:start}
 .site-header .reservation{justify-self:end;padding:11px 18px;font-size:10px;letter-spacing:.08em;white-space:nowrap}
 .header-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
 .header-nav a{position:relative;padding:12px 0;color:#fff9e9;font:500 10px/1.5 "SVN Poppins Light",sans-serif;letter-spacing:.035em;text-transform:uppercase;white-space:nowrap;text-decoration:none}
 .header-nav a::after{content:"";position:absolute;bottom:5px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .25s ease}
 .header-nav a:hover::after,.header-nav a:focus-visible::after{transform:scaleX(1)}
 .site-header.is-scrolled .header-nav a{color:#fff9e9}
}
@media(min-width:1180px) and (max-width:1350px){.site-header{grid-template-columns:105px minmax(0,1fr) 120px minmax(0,1fr) 105px;column-gap:18px;padding-inline:3%}.site-header .brand img{width:120px}.site-header .reservation{padding-inline:10px}.header-nav a{font-size:9px}.header-nav{gap:9px}}

/* Align navigation with the logo wordmark, keeping its sides clear. */
@media(min-width:1180px){
 .site-header{grid-template-columns:100px minmax(0,1fr) 140px minmax(0,1fr) 100px;column-gap:32px;padding-inline:4%}
 .header-nav{justify-content:flex-end;gap:20px;transform:translateY(13px)}
 .header-nav-right{justify-content:flex-start}
 .header-nav a{font-size:11px;letter-spacing:.025em;padding-block:9px}
 .site-header .reservation{padding-inline:12px;font-size:10px}
}
@media(min-width:1180px) and (max-width:1350px){
 .site-header{grid-template-columns:80px minmax(0,1fr) 120px minmax(0,1fr) 80px;column-gap:24px;padding-inline:2.5%}
 .header-nav{gap:14px;transform:translateY(11px)}
 .header-nav a{font-size:10px}
 .site-header .reservation{font-size:9px;padding-inline:8px}
}
@media(min-width:1600px){.site-header{column-gap:42px}.header-nav{gap:26px}.header-nav a{font-size:12px}}

/* Keep booking text legible over a solid background in every interaction state. */
.room-page-book:hover,.room-page-book:focus-visible,.room-page-book:active,
.rooms .book-button:hover,.rooms .book-button:focus-visible,.rooms .book-button:active{
 background:var(--green-hover)!important;border-color:var(--green-hover)!important;color:#fff9e9!important;
}

.other-room p.other-room-description{display:block;font-size:13px;line-height:1.8;margin:0 0 24px;color:var(--text)}

/* Keep the open menu masthead aligned with the fixed page masthead. */
.site-header,.site-menu .menu-header{padding-inline:7.3%;height:var(--menu-header-height);border-bottom:1px solid rgba(255,249,233,.3)}
.site-menu .menu-close{width:38px;height:40px;flex:0 0 38px;padding:0}
@media(min-width:1180px){
 .site-header,.site-menu .menu-header{padding-inline:4%}
 .site-menu .menu-header .reservation{padding:11px 12px;font-size:10px;letter-spacing:.08em;line-height:1.5;white-space:nowrap}
 .site-menu .menu-header .brand img{width:140px}
}
@media(min-width:1180px) and (max-width:1350px){
 .site-header,.site-menu .menu-header{padding-inline:2.5%}
 .site-menu .menu-header .reservation{font-size:9px;padding-inline:8px}
 .site-menu .menu-header .brand img{width:120px}
}
@media(max-width:700px){
 .site-header,.site-menu .menu-header{padding-inline:5%}
 .site-menu .menu-close{width:25px;height:33px;flex-basis:25px}
}

/* Booking bar meets the lower edge of the homepage banner. */
.banner-booking{display:grid;grid-template-columns:1fr 1fr 1.25fr 1fr 1fr;align-items:stretch;margin:0;background:#e7dfd1;padding:0 5%;color:#457b44}
.booking-bar-field{display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0;margin:18px 0;padding:0 22px;border-right:1px solid rgba(69,123,68,.25);font-size:12px}
.booking-bar-field:first-child{padding-left:0}
.booking-bar-field input{width:100%;min-width:0;border:0;background:transparent;color:#457b44;font:500 14px/1.5 "SVN Poppins Light",sans-serif;padding:0;min-height:26px;color-scheme:light}
.booking-bar-guests>div{display:flex;gap:18px}
.booking-bar-guests label{display:flex;align-items:center;gap:6px;font-size:11px;min-width:0}
.booking-bar-guests input{width:42px}
.booking-bar-submit{align-self:stretch;margin:0 0 0 22px;border:0;border-radius:0!important;background:#457b44;color:#fff9e9;font:500 14px/1.5 "SVN Poppins Light",sans-serif;padding:22px;transition:background .2s}
.booking-bar-submit:hover{background:var(--green-hover)}
.booking-bar-note{grid-column:1/-1;font-size:11px;line-height:1.6;margin:0;padding:8px 0 10px;color:#2d312c;border-top:1px solid rgba(69,123,68,.1)}
@media(max-width:1000px){.banner-booking{grid-template-columns:1fr 1fr}.booking-bar-field{padding:0 18px}.booking-bar-field:nth-child(2){border:0}.booking-bar-field:first-child{padding-left:18px}.booking-bar-submit{grid-column:1/-1;margin:0 0 12px;padding:14px}.booking-bar-note{font-size:10px}.booking-bar-guests>div{gap:8px}}
@media(max-width:400px){.booking-bar-guests>div{flex-wrap:wrap}.booking-bar-field{padding-inline:10px}.booking-bar-field input{font-size:12px}}

/* Compact booking panel floating within the homepage photography. */
.homepage-banner{position:relative}
.homepage-banner .banner-booking{position:absolute;z-index:2;left:50%;bottom:36px;transform:translateX(-50%);width:min(1120px,84%);padding:0 0 0 18px;grid-template-columns:1fr 1fr 1.2fr 1fr 1fr;background:rgba(231,223,209,.97);box-shadow:0 6px 24px rgba(0,0,0,.12)}
.homepage-banner .booking-bar-field{margin:12px 0;padding:0 16px;gap:4px;font-size:11px}
.homepage-banner .booking-bar-field:first-child{padding-left:0}
.homepage-banner .booking-bar-field input{font-size:13px;min-height:24px}
.homepage-banner .booking-bar-submit{margin:0 0 0 16px;padding:18px 14px;font-size:12px}
.homepage-banner .booking-bar-note{font-size:10px;padding:5px 12px 6px 0;line-height:1.4}
@media(max-width:1000px){
 .homepage-banner .banner-booking{width:90%;bottom:28px;grid-template-columns:1fr 1fr 1.2fr 1fr 1fr;padding-left:12px}
 .homepage-banner .booking-bar-field{padding-inline:10px}
 .homepage-banner .booking-bar-submit{grid-column:auto;margin:0 0 0 10px;padding:12px 8px}
 .homepage-banner .booking-bar-field:nth-child(2){border-right:1px solid rgba(69,123,68,.25)}
 .homepage-banner .booking-bar-guests>div{gap:4px;flex-wrap:wrap}
}
@media(max-width:700px){
 .homepage-banner .banner-booking{width:88%;bottom:62px;grid-template-columns:1fr 1fr;padding:0 12px}
 .homepage-banner .booking-bar-field{margin:9px 0;padding:0 10px;gap:2px}
 .homepage-banner .booking-bar-field:nth-child(2n){border-right:0}
 .homepage-banner .booking-bar-field:nth-child(3){padding-left:0}
 .homepage-banner .booking-bar-submit{grid-column:1/-1;margin:0;padding:10px;font-size:12px}
 .homepage-banner .booking-bar-note{padding:5px 0;font-size:9px}
 .homepage-banner .booking-bar-guests>div{flex-wrap:nowrap}
}

.homepage-banner .booking-bar-promo{border-right:0;padding-right:12px}
.homepage-banner .booking-bar-submit{margin-left:8px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.booking-date-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:0;border:0;background:transparent;color:#457b44;font:500 13px/1.8 "SVN Poppins Light",sans-serif;text-align:left;white-space:nowrap}
.booking-date-trigger svg{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.3}
.booking-date-popup{position:absolute;left:0;bottom:calc(100% + 12px);width:330px;max-width:100%;padding:22px;background:#faf8ed;border:1px solid rgba(69,123,68,.2);box-shadow:0 12px 36px rgba(0,0,0,.18);color:#457b44;z-index:5}
.booking-date-popup[hidden]{display:none}
.booking-calendar-heading{display:flex;align-items:center;gap:8px;margin-bottom:18px}
.booking-calendar-heading strong{flex:1;text-align:center;font:400 17px/1.5 "SVN Recoleta",serif;text-transform:capitalize}
.booking-calendar-heading button{width:28px;height:28px;flex-shrink:0;border:1px solid rgba(69,123,68,.2);border-radius:50%!important;background:transparent;color:#457b44;font-size:21px;padding:0;line-height:1}
.booking-weekdays,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;text-align:center}
.booking-weekdays{font-size:11px;color:#b48355;margin-bottom:10px}
.booking-calendar-days button{width:100%;aspect-ratio:1;min-width:0;padding:0;border:0;border-radius:50%!important;background:transparent;color:#457b44;font:500 12px/1 "SVN Poppins Light",sans-serif}
.booking-calendar-days button:hover:not(:disabled){background:#e3e8dd}
.booking-calendar-days button.is-selected,.booking-calendar-days button.is-selected:hover{background:#457b44;color:#fff9e9}
.booking-calendar-days button:disabled,.booking-calendar-heading button:disabled{opacity:.3;cursor:default}
.booking-calendar-days button[aria-current="date"]{box-shadow:inset 0 0 0 1px #b48355}
@media(max-width:700px){.booking-date-popup{padding:16px;width:300px;bottom:calc(100% + 8px)}.booking-date-trigger{font-size:12px;gap:5px}.homepage-banner .booking-bar-submit{margin-left:0}}

/* Shared floating contact controls. */
.float-contact{position:fixed;right:22px;bottom:calc(24px + env(safe-area-inset-bottom));z-index:9;display:flex;flex-direction:column;align-items:center;gap:12px}
.float-contact-links{display:flex;flex-direction:column;gap:12px}
.float-contact-links[hidden]{display:none}
.float-contact a,.float-contact-toggle{width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid rgba(249,246,239,.3);border-radius:50%!important;background:#457b44;color:#f9f6ef;box-shadow:0 3px 14px rgba(0,0,0,.12);transition:background .2s,transform .2s}
.float-contact-toggle{width:56px;height:56px;background:#b48355}
.float-contact svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.float-contact .float-contact-open{display:none}
.float-contact-toggle[aria-expanded="false"] .float-contact-close{display:none}
.float-contact-toggle[aria-expanded="false"] .float-contact-open{display:block}
@media(hover:hover){.float-contact a:hover,.float-contact-toggle:hover{background:var(--green-hover);transform:translateY(-2px)}}
@media(max-width:700px){.float-contact{right:12px;bottom:calc(16px + env(safe-area-inset-bottom));gap:9px}.float-contact-links{gap:9px}.float-contact a{width:40px;height:40px}.float-contact-toggle{width:46px;height:46px}.float-contact svg{width:20px;height:20px}}
@media(prefers-reduced-motion:reduce){.float-contact a,.float-contact-toggle{transition:none}}

/* Floating contacts share the primary green with a lighter hover. */
.float-contact a,.float-contact-toggle{background:#457b44}
@media(hover:hover){.float-contact a:hover,.float-contact-toggle:hover{background:var(--green-hover)}}

/* Guests: compact adult/child steppers, without native number spinners. */
.homepage-banner .booking-bar-guests .booking-guest-counters{display:flex;flex-wrap:nowrap;gap:14px;align-items:center}
.booking-guest-counter{display:flex;align-items:center;gap:3px;min-width:0;white-space:nowrap}
.homepage-banner .booking-guest-counter label{font-size:11px;margin-right:4px}
.homepage-banner .booking-guest-counter input{width:20px;min-height:24px;flex:0 0 20px;text-align:center;font-size:12px;appearance:textfield;-moz-appearance:textfield}
.booking-guest-counter input::-webkit-inner-spin-button,.booking-guest-counter input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.booking-guest-counter button{width:22px;height:28px;flex:0 0 22px;border:0;background:transparent;padding:0;color:#457b44;font-size:15px;line-height:1}
.booking-guest-counter button:hover:not(:disabled){background:rgba(0,0,0,.08)}
.booking-guest-counter button:disabled{opacity:.3;cursor:default}
@media(min-width:701px){.homepage-banner .banner-booking{grid-template-columns:1fr 1fr 1.6fr .85fr .95fr}}
@media(min-width:701px) and (max-width:1000px){.homepage-banner .booking-bar-guests .booking-guest-counters{flex-wrap:wrap;gap:0 8px}}
@media(max-width:700px){.homepage-banner .booking-bar-guests .booking-guest-counters{flex-wrap:wrap;gap:2px 10px}}

/* Balanced booking typography and separated guest groups on larger screens. */
.homepage-banner .booking-bar-field{font-size:13px;gap:6px;padding-inline:18px;margin-block:14px}
.homepage-banner .booking-bar-field:first-child{padding-left:0}
.homepage-banner .booking-bar-field input,.homepage-banner .booking-date-trigger{font-size:14px;line-height:1.6}
.homepage-banner .booking-bar-guests .booking-guest-counters{width:100%;justify-content:space-between;gap:16px;flex-wrap:nowrap}
.homepage-banner .booking-guest-counter:last-child{margin-left:auto}
.homepage-banner .booking-guest-counter label{font-size:13px;margin-right:4px}
.homepage-banner .booking-guest-counter input{font-size:14px;width:22px;flex-basis:22px}
.homepage-banner .booking-guest-counter button{font-size:16px}
.homepage-banner .booking-bar-submit{font-size:14px;padding-inline:18px}
@media(min-width:701px) and (max-width:1100px){
 .homepage-banner .banner-booking{width:94%;grid-template-columns:1fr 1fr 1.7fr .8fr .9fr}
 .homepage-banner .booking-bar-field{padding-inline:10px}
 .homepage-banner .booking-bar-guests .booking-guest-counters{gap:8px}
 .homepage-banner .booking-guest-counter{gap:1px}
 .homepage-banner .booking-guest-counter button{width:18px;flex-basis:18px}
 .homepage-banner .booking-guest-counter label{margin-right:2px}
}
@media(max-width:700px){.homepage-banner .banner-booking{display:none}}

/* Raleway headings throughout inner-page content and room collections. */
body.inner-page #main h1,
body.inner-page #main h2,
body.inner-page #main h3,
body.inner-page #main h4,
body.inner-page #main h5,
body.inner-page #main h6{
 font-family:"SVN Recoleta",serif!important;
 font-weight:500;
 font-style:normal;
 letter-spacing:0;
}

/* One shared size for service and content headings across inner pages. */
body.inner-page #main h2,
body.inner-page #main h3{
 font-size:24px;
 line-height:1.45;
 font-weight:500;
}
@media(max-width:700px){
 body.inner-page #main h2,
 body.inner-page #main h3{font-size:22px}
}

/* Match the homepage destination and map headings to the Raleway system. */
.destination-section .destination-heading h2,
.destination-section .destination-caption h3,
.location-map .location-map-copy h2{
 font-family:"SVN Recoleta",serif!important;
 font-weight:500;
 font-style:normal;
 letter-spacing:0;
}

/* Shared visual scale: warm paper, forest green and restrained bronze accents. */
:root{
 --green:#457b44;--cream:#faf8ed;--paper:#faf8ed;--gold:#a58260;--text:#2d312c;--white:#fff9e9;
 --surface-soft:#f1eee6;--green-hover:#4e724d;--fine-rule:rgba(69,123,68,.18);
 --title-page:clamp(34px,3.6vw,50px);--title-section:clamp(27px,2.6vw,36px);--title-card:24px;
 --body-size:15px;--body-small:13px;--label-size:11px;
}
body{font-size:var(--body-size);line-height:1.8}
.intro-copy,.welcome-copy,.room-description,.room-page-intro p,
.wellness-copy p,.venue-copy p:not(.venue-hours):not(.venue-subtitle),
.earth-shop-copy p,.page-story p,.purpose-copy p,.contact-panel p{
 font-size:var(--body-size);line-height:1.85;font-weight:400;
}
.room-short-description,.destination-caption p,.destination-guide-grid .destination-stop p,
.other-room p.other-room-description,.room-page-amenities li,.room-policy ul{
 font-size:var(--body-small);line-height:1.8;
}
.section-eyebrow,.wellness-eyebrow,.destination-category{
 font-family:var(--font-body);font-size:var(--label-size);font-weight:500;line-height:1.6;letter-spacing:.12em;
}
body.inner-page #main h2,body.inner-page #main h3,
.destination-section .destination-caption h3{
 font-family:"SVN Recoleta",serif!important;font-size:var(--title-card);font-weight:500;line-height:1.45;letter-spacing:0;
}
body.inner-page #main .page-hero h1,body.inner-page #main .room-page-intro h1{
 font-family:"SVN Recoleta",serif!important;font-size:var(--title-page);font-weight:500;line-height:1.3;letter-spacing:-.015em;
}
.destination-section .destination-heading h2,.location-map .location-map-copy h2{font-size:var(--title-section);line-height:1.4}
.destination-section .destination-heading h2{font-family:"SVN Recoleta",serif!important;font-weight:400}
.room-page-specs dd,.reservation-panel h2,.calendar-month-title,
.booking-calendar-heading strong,.map-place-preview strong{
 font-family:"SVN Recoleta",serif!important;font-weight:500;
}
.room-page-specs dd{font-size:22px}
.room-page-specs dt,.room-summary-specs dt{font-size:10px;letter-spacing:.1em}
.room-page-amenities li,.room-policy ul,.other-room p.other-room-description{color:var(--text)}
.site-footer{font-size:14px;line-height:1.8;color:var(--white)}
.site-footer .footer-main nav{font-size:16px;line-height:1.6}
.copyright,.footer-back-top{font-size:12px;line-height:1.6}
.rooms .book-button,.rooms .detail-button,.room-page-book,
.destination-page-link,.destination-overview-link,.other-room-link{
 font-family:var(--font-body);font-size:11px;font-weight:500;letter-spacing:.08em;line-height:1.5;
}
.destination-section .destination-heading-more{color:var(--white)}
@media(max-width:700px){
 :root{--body-size:14px;--title-card:22px;--label-size:10px}
 .room-page-specs dd{font-size:20px}
 .site-footer{font-size:13px}
}

/* Clean masthead without a bottom divider. */
.site-header,.site-header.is-scrolled,.site-menu .menu-header{border-bottom:0}

/* An airy welcome and fine-line hotel services. */
.intro.welcome-intro{padding:clamp(56px,7vw,100px) var(--section-gutter) clamp(64px,8vw,112px)}
.welcome-intro h1{margin-bottom:clamp(44px,5vw,72px)}
.welcome-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:clamp(44px,7vw,100px);align-items:center}
.welcome-story{grid-column:1;grid-row:1;max-width:460px}
.welcome-story h2{font-family:"SVN Recoleta",serif!important;font-weight:400;font-size:clamp(27px,2.7vw,38px);line-height:1.4;text-align:left;margin:18px 0 26px;color:var(--green)}
.welcome-intro .intro-copy{font-size:15px;line-height:1.9}
.welcome-layout .welcome-images{grid-column:2;grid-row:1;display:block;position:relative;aspect-ratio:1.12;overflow:visible}
.welcome-layout .welcome-images .welcome-image-main{position:absolute;inset:0 0 auto auto;width:85%;height:90%;aspect-ratio:auto;object-fit:cover;object-position:center;margin:0}
.welcome-layout .welcome-images .welcome-image-garden{position:absolute;top:auto;left:0;right:auto;bottom:0;width:43%;height:58%;aspect-ratio:auto;object-fit:cover;margin:0;box-shadow:0 0 0 10px var(--cream)}
#main > .hotel-amenities{background:var(--green);color:var(--white);padding:clamp(56px,7vw,96px) var(--section-gutter)}
.hotel-amenities-inner{max-width:1240px;margin:auto}
.hotel-amenities-heading{text-align:center;margin-bottom:clamp(38px,5vw,64px)}
.hotel-amenities-heading .section-eyebrow{color:#e5ceb0}
.hotel-amenities-heading h2{font-family:"SVN Recoleta",serif!important;font-weight:400;font-size:clamp(28px,3vw,42px);color:var(--white);margin-top:16px}
.hotel-amenities-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 36px;list-style:none;padding:0;margin:0}
.hotel-amenities-grid li{display:flex;align-items:flex-start;gap:16px;padding:26px 0;border-top:1px solid rgba(255,249,233,.2)}
.hotel-amenities-grid svg{flex:0 0 30px;width:30px;height:30px;fill:none;stroke:#e5ceb0;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;margin-top:2px}
.hotel-amenities-grid h3{font-family:"SVN Recoleta",serif!important;font-size:14px;font-weight:500;line-height:1.6;color:var(--white)}
.hotel-amenities-grid p{font-size:12px;line-height:1.75;color:#e0e6da;margin-top:7px}
@media(max-width:1100px){.hotel-amenities-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 28px}}
@media(max-width:700px){
 .welcome-layout{grid-template-columns:1fr;gap:38px}
 .welcome-story{grid-column:1;grid-row:1;max-width:none}
 .welcome-layout .welcome-images{grid-column:1;grid-row:2;aspect-ratio:1.15;width:100%}
 .welcome-story h2{font-size:28px;margin:16px 0 22px}
 .welcome-intro .intro-copy{font-size:14px;line-height:1.85}
 .hotel-amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
 .hotel-amenities-grid li{flex-direction:column;gap:14px;padding:24px 0}
 .hotel-amenities-grid h3{font-size:13px}
 .hotel-amenities-grid p{font-size:11px}
}

/* Homepage editorial rhythm: generous imagery, quiet detail, distinct statements. */
:root{--editorial-green:#457b44;--editorial-sage:#e7ebe2;--editorial-clay:#9a624b;--editorial-title:clamp(38px,4.4vw,68px)}
.editorial-container{max-width:1280px;margin-inline:auto}
.editorial-link{display:inline-flex;align-items:center;gap:24px;font:500 13px/1.6 var(--font-body);padding:8px 0;border-bottom:1px solid currentColor;color:inherit;transition:gap .25s}
.editorial-link:hover{gap:34px}
.editorial-link span{font-size:21px;font-weight:400}
.editorial-primary{display:inline-flex;align-items:center;justify-content:center;gap:32px;background:var(--editorial-green);color:var(--white);padding:19px 30px;font-size:11px;font-weight:500;letter-spacing:.12em;transition:background .2s}
.editorial-primary:hover{background:var(--green-hover)}
.editorial-welcome{padding:clamp(54px,7vw,104px) var(--section-gutter) clamp(72px,9vw,130px)}
.editorial-welcome-inner{max-width:1280px;margin:auto;display:grid;grid-template-columns:1fr 1.18fr;gap:clamp(46px,8vw,116px);align-items:start}
.editorial-welcome-copy{padding-top:clamp(18px,3vw,44px)}
.editorial-welcome h1{font:400 var(--editorial-title)/1.18 "SVN Recoleta",serif;letter-spacing:-.035em;color:var(--editorial-green);margin:24px 0 28px}
.editorial-welcome em,.editorial-dining em,.wellness-editorial-statement em,.editorial-closing em{font-style:normal}
.editorial-welcome-copy>p{max-width:430px;font-size:15px;line-height:1.9;margin-top:22px}
.editorial-welcome-copy .editorial-lead{font-size:19px;line-height:1.6;color:var(--green);max-width:350px}
.editorial-welcome .editorial-link{margin-top:28px;color:var(--editorial-green)}
.editorial-welcome-photo{position:relative;margin:0 0 0 24px;padding-bottom:36px}
.editorial-welcome-photo>img:first-child{width:100%;height:clamp(520px,53vw,760px);object-fit:cover;object-position:57% center}
.editorial-welcome-photo .editorial-detail-photo{position:absolute;left:-50px;bottom:85px;width:27%;height:auto;aspect-ratio:.77;object-fit:cover;box-shadow:0 0 0 8px var(--cream)}
.editorial-welcome-photo figcaption{font-size:10px;letter-spacing:.08em;margin-top:18px;text-align:right;color:var(--text)}
#main>.thoughtful-comforts{background:var(--editorial-green);color:var(--white);padding:clamp(60px,7vw,100px) var(--section-gutter)}
.comforts-heading{display:grid;grid-template-columns:1.3fr 1fr;gap:16px 48px;align-items:end}
.comforts-heading .section-eyebrow{grid-column:1/-1;color:#d8c6aa}
.comforts-heading h2{font:400 clamp(32px,3.6vw,52px)/1.3 "SVN Recoleta",serif;text-align:left;color:var(--white)}
.comforts-heading>p{font-size:15px;line-height:1.8;max-width:300px;justify-self:end;color:#dbe2d9}
.comforts-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:32px;margin-top:60px}
.comforts-grid>a{border-top:1px solid #ffffff30;padding-top:24px;display:block}
.comfort-number{font:400 12px/1.5 var(--font-body);color:#d8c6aa}
.comforts-grid h3{font:400 clamp(17px,1.65vw,23px)/1.5 "SVN Recoleta",serif;margin:18px 0 14px;color:var(--white)}
.comforts-grid p{font-size:13px;line-height:1.85;color:#dbe2d9}
.all-amenities{margin-top:48px}
.all-amenities summary{display:flex;align-items:center;gap:30px;width:fit-content;font-size:13px;cursor:pointer;padding:10px 0;border-bottom:1px solid #ffffff80;list-style:none}
.all-amenities summary::-webkit-details-marker{display:none}
.all-amenities summary span{font-size:22px;transition:transform .2s}
.all-amenities[open] summary span{transform:rotate(45deg)}
.all-amenities-grid{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 36px}
.all-amenities-grid li{display:flex;gap:18px;align-items:flex-start;border-top:1px solid #ffffff25;padding:22px 0}
.all-amenities-grid svg{width:26px;height:26px;flex:0 0 26px;fill:none;stroke:#d8c6aa;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
.all-amenities-grid h3{font:500 13px/1.6 var(--font-body)}
.all-amenities-grid p{font-size:12px;color:#dbe2d9;margin-top:6px}
.editorial-rooms{padding:clamp(64px,9vw,132px) var(--section-gutter)}
.editorial-section-heading{margin-bottom:64px}
.editorial-section-heading h2{font:400 var(--editorial-title)/1.2 "SVN Recoleta",serif;color:var(--editorial-green);text-align:left;margin:20px 0 22px;letter-spacing:-.025em}
.editorial-section-heading>p{font-size:16px;line-height:1.8}
.room-editorial{display:grid;grid-template-columns:1.65fr 1fr;gap:clamp(36px,5vw,76px);align-items:center;margin-top:80px}
.room-editorial-image{display:block;overflow:hidden}
.room-editorial-image img{width:100%;height:clamp(380px,38vw,540px);object-fit:cover;transition:transform .7s}
.room-editorial-image:hover img{transform:scale(1.025)}
.room-editorial-copy h3{font:400 clamp(28px,3vw,44px)/1.3 "SVN Recoleta",serif;color:var(--editorial-green);margin:20px 0}
.room-editorial-meta{font-size:12px;letter-spacing:.02em;color:var(--gold);line-height:1.8}
.room-editorial-description{font-size:14px;line-height:1.9;max-width:370px;margin:22px 0}
.room-editorial-copy .editorial-link{margin-top:8px;color:var(--editorial-green)}
.room-editorial-2{grid-template-columns:1fr 1.5fr;margin-top:110px}
.room-editorial-2 .room-editorial-image{grid-column:2;grid-row:1}
.room-editorial-2 .room-editorial-copy{grid-column:1;grid-row:1}
.room-editorial-3{display:block;position:relative;margin-top:110px;isolation:isolate}
.room-editorial-3 .room-editorial-image img{height:clamp(480px,50vw,720px)}
.room-editorial-3 .room-editorial-copy{position:absolute;bottom:0;left:0;width:100%;padding:clamp(28px,4vw,58px);background:linear-gradient(transparent,rgba(16,34,24,.87));color:var(--white);pointer-events:none}
.room-editorial-3 .room-editorial-copy h3,.room-editorial-3 .editorial-link{color:var(--white)}
.room-editorial-3 .room-editorial-meta{color:#ead8ba}
.room-editorial-3 .room-editorial-description{display:none}
.room-editorial-3 .editorial-link{pointer-events:auto}
.rooms-collection-link{text-align:center;margin-top:48px;color:var(--editorial-green)}
#main>.editorial-dining{display:grid;grid-template-columns:1.35fr 1fr;background:var(--editorial-green);color:var(--white);padding:0}
.editorial-dining-hero{min-width:0}
.editorial-dining-hero>img{width:100%;height:100%;min-height:700px;object-fit:cover}
.editorial-dining-story{padding:clamp(44px,6vw,88px) clamp(32px,5vw,72px)}
.editorial-dining-story .section-eyebrow{color:#d8c6aa}
.editorial-dining-story h2{font:400 clamp(36px,4vw,60px)/1.24 "SVN Recoleta",serif;color:var(--white);letter-spacing:-.025em;text-align:left;margin:24px 0 28px}
.editorial-dining-story>p{font-size:15px;line-height:1.9;max-width:370px;color:#e0e6dc}
.editorial-dining-story>.editorial-link{margin-top:24px}
.editorial-dining-story figure{width:64%;max-width:260px;margin:48px 0 0 auto}
.editorial-dining-story figure img{aspect-ratio:1.25;object-fit:cover}
.editorial-dining-story figcaption{font-size:11px;line-height:1.8;margin-top:12px;color:#dbe2d9}
#main>.editorial-wellness{background:var(--editorial-sage);padding:clamp(70px,8vw,118px) var(--section-gutter)}
.wellness-editorial-heading{margin-bottom:40px}
.wellness-editorial-heading h2{font:400 26px/1.5 "SVN Recoleta",serif;text-align:left;color:var(--editorial-green);margin-top:14px}
.wellness-editorial-photo{width:86%;margin:0 0 0 auto}
.wellness-editorial-photo img{width:100%;height:clamp(420px,46vw,640px);object-fit:cover}
.wellness-editorial-statement{position:relative;margin:-100px 0 0;width:58%;padding:44px 50px 12px 0;background:var(--editorial-sage)}
.wellness-editorial-statement h3{font:400 clamp(36px,4.5vw,64px)/1.22 "SVN Recoleta",serif;letter-spacing:-.03em;color:var(--editorial-green);margin:24px 0}
.wellness-editorial-statement p{font-size:15px;line-height:1.9;max-width:400px;margin-bottom:25px}
.wellness-editorial-statement .editorial-link{color:var(--editorial-green)}
#main>.editorial-experiences{background:var(--editorial-clay);color:var(--white);padding:clamp(70px,8vw,115px) var(--section-gutter)}
.experience-editorial-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:60px}
.experience-editorial-heading .section-eyebrow{color:#ecd3b7}
.experience-editorial-heading h2{font:400 var(--editorial-title)/1.3 "SVN Recoleta",serif;text-align:left;color:var(--white);margin-top:20px;letter-spacing:-.03em}
.experience-editorial-heading p{font-size:19px;line-height:1.7;margin-bottom:20px}
.experience-editorial-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px;align-items:start}
.experience-editorial-card{display:block;min-width:0}
.experience-editorial-card>img{height:clamp(320px,33vw,460px);width:100%;object-fit:cover;transition:filter .3s}
.experience-editorial-card:hover>img{filter:brightness(1.07)}
.experience-editorial-card-2{margin-top:80px}
.experience-editorial-card-3{margin-top:32px}
.experience-editorial-card .destination-caption{position:static;inset:auto;margin-top:24px}
.experience-editorial-card .destination-category{color:#ecd3b7;font-size:10px}
.experience-editorial-card h3{font:400 clamp(22px,2.2vw,30px)/1.4 "SVN Recoleta",serif;margin:10px 0 12px;color:var(--white)}
.experience-editorial-card p{font-size:13px;line-height:1.8;color:#f0e1d5;max-width:300px}
.editorial-closing{padding:clamp(80px,10vw,150px) var(--section-gutter);text-align:center}
.editorial-closing h2{font:400 clamp(48px,6.4vw,92px)/1.16 "SVN Recoleta",serif;color:var(--editorial-green);margin:28px 0;letter-spacing:-.035em}
.editorial-closing p{font-size:18px;line-height:1.7;margin-bottom:34px}
body:not(.inner-page) .location-map-live{padding-block:48px}
body:not(.inner-page) .location-map-interactive{min-height:380px}
@media(max-width:1000px){
 .comforts-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px}
 .editorial-welcome-inner{gap:44px;grid-template-columns:1fr 1fr}
 .editorial-welcome h1{font-size:43px}
 .editorial-welcome-photo .editorial-detail-photo{left:-24px}
 .editorial-dining-story{padding:48px 30px}
 .editorial-dining-story h2{font-size:40px}
 .experience-editorial-grid{gap:22px}
}
@media(max-width:700px){
 .editorial-welcome{padding-top:48px}
 .editorial-welcome-inner{grid-template-columns:1fr;gap:40px}
 .editorial-welcome-copy{padding-top:0}
 .editorial-welcome h1{font-size:42px}
 .editorial-welcome-copy .editorial-lead{font-size:18px}
 .editorial-welcome-photo{margin-left:22px}
 .editorial-welcome-photo>img:first-child{height:480px}
 .editorial-welcome-photo .editorial-detail-photo{width:29%;bottom:65px;left:-22px;box-shadow:0 0 0 6px var(--cream)}
 .comforts-heading{grid-template-columns:1fr;gap:18px}
 .comforts-heading>p{justify-self:start}
 .comforts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 24px;margin-top:36px}
 .comforts-grid>a:last-child{grid-column:1/-1;max-width:320px}
 .comforts-grid h3{font-size:18px;margin:12px 0}
 .all-amenities-grid{grid-template-columns:1fr}
 .editorial-section-heading{margin-bottom:38px}
 .editorial-section-heading h2{font-size:40px}
 .room-editorial,.room-editorial-2{grid-template-columns:1fr;gap:26px;margin-top:52px}
 .room-editorial-2 .room-editorial-image,.room-editorial-2 .room-editorial-copy{grid-column:1;grid-row:auto}
 .room-editorial-image img{height:320px}
 .room-editorial-copy h3{font-size:31px;margin:14px 0}
 .room-editorial-description{font-size:14px}
 .room-editorial-3{margin-top:52px}
 .room-editorial-3 .room-editorial-image img{height:490px}
 .room-editorial-3 .room-editorial-copy{padding:26px 22px}
 #main>.editorial-dining{grid-template-columns:1fr}
 .editorial-dining-hero>img{height:440px;min-height:0}
 .editorial-dining-story{padding:44px var(--section-gutter) 52px}
 .editorial-dining-story h2{font-size:40px}
 .editorial-dining-story figure{width:50%;margin-top:32px}
 .wellness-editorial-photo{width:100%}
 .wellness-editorial-photo img{height:360px}
 .wellness-editorial-statement{width:94%;margin-top:-42px;padding:30px 20px 0 0}
 .wellness-editorial-statement h3{font-size:37px}
 .experience-editorial-heading{display:block;margin-bottom:36px}
 .experience-editorial-heading h2{font-size:42px;margin-bottom:26px}
 .experience-editorial-heading p{font-size:17px}
 .experience-editorial-grid{grid-template-columns:1fr;gap:40px}
 .experience-editorial-card-2,.experience-editorial-card-3{margin-top:0}
 .experience-editorial-card>img{height:390px}
 .experience-editorial-card h3{font-size:27px}
 .editorial-closing h2{font-size:53px}
 .editorial-closing p{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.editorial-link,.room-editorial-image img,.experience-editorial-card>img{transition:none}}
/* Keep the booking action legible within the existing navigation and date bar. */
.site-header .reservation,.menu-header .reservation{font-size:11px;letter-spacing:.1em;white-space:nowrap;padding:13px 18px;border-radius:0}
.homepage-banner .booking-bar-submit{font-size:11px;font-weight:500;letter-spacing:.08em}
@media(min-width:1001px){.homepage-banner .banner-booking{grid-template-columns:1fr 1fr 1.6fr .85fr 1.2fr}}
@media(max-width:700px){.site-header .reservation,.menu-header .reservation{font-size:9px;padding:11px 12px;letter-spacing:.04em}}
/* A calm location appendix after the closing brand statement. */
body:not(.inner-page) .location-map.location-map-live{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);padding:0 var(--section-gutter) 72px;gap:48px;background:var(--cream);overflow:hidden}
body:not(.inner-page) .location-map-live .location-map-interactive{position:relative;inset:auto;width:100%;height:480px;min-height:0}
body:not(.inner-page) .location-map-live .location-map-frame{position:static;inset:auto;width:100%;max-width:none;margin:0;padding:16px 0;border:0;box-shadow:none;background:none}
.map-more-places{margin-top:22px}
.map-more-places summary{font-size:12px;cursor:pointer;list-style:none;display:flex;gap:24px;align-items:center;color:var(--green)}
.map-more-places summary::-webkit-details-marker{display:none}
.map-more-places summary span{font-size:20px}
.map-more-places[open] summary{margin-bottom:20px}
@media(max-width:700px){
 body:not(.inner-page) .location-map.location-map-live{grid-template-columns:1fr;gap:28px;padding-bottom:48px}
 body:not(.inner-page) .location-map-live .location-map-interactive{height:320px}
 .site-header .brand,.site-menu .menu-header .brand{left:40%}
 .site-header .brand img,.site-menu .menu-header .brand img{width:105px}
}
@media(max-width:360px){
 .site-header .brand img,.site-menu .menu-header .brand img{width:90px}
 .site-header .reservation,.menu-header .reservation{font-size:8px;padding-inline:10px}
 .editorial-welcome h1{font-size:36px}
}
.site-header .reservation,.site-header.is-scrolled .reservation,.site-menu .menu-header .reservation{background:var(--white);color:var(--editorial-green);border-color:var(--white)}
.site-header .reservation:hover,.site-header.is-scrolled .reservation:hover,.site-menu .menu-header .reservation:hover{background:#e7e9dc;color:var(--editorial-green)}
body:not(.inner-page) .location-map-live .location-map-copy h2{font:400 clamp(28px,2.6vw,36px)/1.4 "SVN Recoleta",serif;color:var(--editorial-green)}
.editorial-welcome,.editorial-rooms,.editorial-dining,.editorial-wellness{scroll-margin-top:88px}
#destination-title,#closing-title{scroll-margin-top:110px}

/* Prata navigation with sentence case and balanced space around the logo. */
.site-header .header-nav a{font-family:"SVN Recoleta",serif;font-weight:400;font-size:12px;line-height:1.5;letter-spacing:0;text-transform:none}
.site-header .reservation,.site-header.is-scrolled .reservation,.site-menu .menu-header .reservation{font-family:"SVN Recoleta",serif;font-weight:400;font-size:12px;letter-spacing:0;text-transform:none;padding:12px 16px}
@media(min-width:1180px){
 .site-header{grid-template-columns:140px minmax(0,1fr) 140px minmax(0,1fr) 140px;column-gap:26px}
 .site-header .header-nav{gap:22px;transform:translateY(10px)}
 .site-header .header-nav-left{justify-content:flex-end}
 .site-header .header-nav-right{justify-content:flex-start}
}
@media(min-width:1180px) and (max-width:1350px){
 .site-header{grid-template-columns:110px minmax(0,1fr) 120px minmax(0,1fr) 110px;column-gap:18px}
 .site-header .header-nav{gap:16px}
 .site-header .header-nav a,.site-header .reservation{font-size:11px}
 .site-header .reservation{padding-inline:12px}
}
@media(min-width:1600px){.site-header .header-nav{gap:28px}.site-header .header-nav a{font-size:13px}}
@media(max-width:700px){.site-header .reservation,.site-menu .menu-header .reservation{font-size:10px;padding:11px 12px}}
@media(max-width:360px){.site-header .reservation,.site-menu .menu-header .reservation{font-size:9px;padding-inline:9px}}

/* Other Rooms: quiet photographic cards, inspired by the editorial room collection. */
#main>.other-rooms{background:#faf8ed;padding:clamp(56px,6vw,88px) var(--section-gutter) 90px}
.other-rooms .other-rooms-heading{max-width:1500px;margin-bottom:40px;align-items:center}
body.inner-page #main .other-rooms-heading h2{font:400 clamp(36px,4.1vw,60px)/1.2 "SVN Recoleta",serif;letter-spacing:-.03em;color:#457b44;text-align:left;margin:0}
.other-rooms-heading .destination-page-link{margin-right:112px;padding:8px 0;border:0;border-bottom:1px solid var(--green);border-radius:0;font-size:12px;letter-spacing:0;text-transform:none}
.other-rooms .other-rooms-carousel{padding:0}
.other-rooms-carousel .other-rooms-grid{gap:30px;padding-bottom:8px;scroll-snap-type:x mandatory}
.other-rooms-carousel .other-room{flex:0 0 calc((100% - 60px)/3);background:transparent;scroll-snap-align:start}
.other-room a{color:#457b44}
.other-rooms .other-room img{aspect-ratio:1.17;object-fit:cover;border-radius:9px!important;transition:filter .5s ease}
.other-rooms .other-room a>div{padding:24px 0 0;display:block}
body.inner-page #main .other-rooms .other-room h3{font:400 clamp(23px,2.15vw,32px)/1.35 "SVN Recoleta",serif;letter-spacing:-.025em;color:#457b44;margin:0 0 13px}
.other-rooms .other-room p.other-room-meta{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:0;font:500 10px/1.8 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:#2d312c}
.other-room-meta>span:not(.other-room-meta-dot){white-space:nowrap}
.other-room-meta-dot{color:#9da59b}
.other-rooms .other-rooms-arrow{top:-63px;transform:none;width:36px;height:36px;border:1px solid rgba(69,123,68,.22);background:transparent;color:#457b44}
.other-rooms .other-rooms-arrow[data-other-step="-1"]{left:auto;right:48px}
.other-rooms .other-rooms-arrow[data-other-step="1"]{right:0}
@media(hover:hover){.other-room a:hover img{filter:brightness(1.035)}.other-rooms .other-rooms-arrow:hover:not(:disabled){background:var(--green-hover);color:#F2F2EC}}
@media(max-width:1000px){.other-rooms-carousel .other-room{flex-basis:calc((100% - 24px)/2)}.other-rooms-carousel .other-rooms-grid{gap:24px}}
@media(max-width:600px){
 #main>.other-rooms{padding-bottom:56px}
 .other-rooms .other-rooms-heading{margin-bottom:30px;align-items:flex-start;gap:16px;flex-direction:column}
 .other-rooms-heading .destination-page-link{margin-right:100px;font-size:11px}
 .other-rooms-carousel .other-rooms-grid{gap:20px}
 .other-rooms-carousel .other-room{flex-basis:100%}
 .other-rooms .other-rooms-arrow{top:-62px;width:32px;height:32px}
 .other-rooms .other-rooms-arrow[data-other-step="-1"]{right:44px}
 .other-rooms .other-room a>div{padding-top:20px}
 body.inner-page #main .other-rooms .other-room h3{font-size:25px}
 .other-rooms .other-room p.other-room-meta{font-size:9px;letter-spacing:.07em;gap:7px}
}
@media(prefers-reduced-motion:reduce){.other-rooms .other-room img{transition:none}}
#other-rooms{scroll-margin-top:88px}
#other-rooms-title{scroll-margin-top:115px}

/* Room detail design: centered identity, panoramic gallery, a quiet reading column. */
.page-room-detail #main>.room-detail-heading{padding:clamp(120px,12vw,172px) var(--section-gutter) 42px;background:#faf8ed;text-align:center}
body.page-room-detail #main .room-detail-heading h1{font:400 clamp(38px,4.5vw,66px)/1.25 "SVN Recoleta",serif;letter-spacing:-.035em;color:#457b44;margin:0 0 30px}
.room-detail-facts{display:flex;justify-content:center;flex-wrap:wrap;gap:0;margin:0}
.room-detail-facts>div{padding:0 24px;border-right:1px solid rgba(69,123,68,.12);min-width:110px}
.room-detail-facts>div:last-child{border:0}
.room-detail-facts dt{display:flex;justify-content:center;margin-bottom:10px}
.room-detail-facts svg{width:25px;height:25px;fill:none;stroke:#457b44;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round}
.room-detail-facts dd{margin:0;color:#2d312c;font:500 10px/1.7 var(--font-body);letter-spacing:.09em;text-transform:uppercase}
.page-room-detail .room-page-gallery{position:relative;padding:0;background:#faf8ed}
.page-room-detail .room-page-track{gap:22px;padding:0;align-items:center;background:#faf8ed;scroll-snap-type:x mandatory}
.page-room-detail .room-page-track>img{flex:0 0 58%;width:58%;height:clamp(330px,32vw,490px);min-height:0;max-width:none;aspect-ratio:auto;object-fit:cover;border-radius:8px!important;scroll-snap-align:center}
.page-room-detail .room-detail-controls{position:absolute;inset:0;pointer-events:none;display:block;margin:0;padding:0}
.page-room-detail .room-detail-controls button{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;pointer-events:auto;background:rgba(242,242,236,.85);color:#457b44;border:0;border-radius:50%!important}
.page-room-detail .room-detail-controls button[data-room-step="-1"]{left:6%}
.page-room-detail .room-detail-controls button[data-room-step="1"]{right:6%}
.page-room-detail .room-page-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);background:rgba(242,242,236,.88);color:#457b44;padding:5px 12px;font-size:10px;border-radius:20px}
.room-gallery-open{position:absolute;bottom:20px;right:23%;display:flex;align-items:center;gap:12px;border:0;border-radius:24px!important;background:rgba(242,242,236,.95);color:#457b44;padding:12px 18px;font-size:10px;line-height:1.5}
.room-gallery-open svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.page-room-detail #main>.room-page-intro,.page-room-detail #main>.room-page-amenities,.page-room-detail #main>.room-detail-rules{max-width:760px;width:calc(100% - 2 * var(--section-gutter));margin:0 auto;padding:40px 0;display:block;background:#faf8ed;border-bottom:1px solid rgba(69,123,68,.35)}
.page-room-detail #main>.room-page-intro{padding-top:56px}
body.page-room-detail #main .room-page-intro h2,body.page-room-detail #main .room-page-amenities h2,body.page-room-detail #main .room-detail-rules>h2{font:400 clamp(28px,2.7vw,38px)/1.35 "SVN Recoleta",serif;letter-spacing:-.025em;color:#457b44;text-align:left;margin:0 0 24px}
.page-room-detail .room-page-intro p{font-size:14px;line-height:1.9;color:#2d312c;max-width:none;margin:0}
.room-detail-book{display:inline-flex;align-items:center;gap:24px;margin-top:24px;padding:8px 0;border-bottom:1px solid #457b44;color:#457b44;font-size:12px}
.page-room-detail .room-page-amenities ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;margin:0;padding:0}
.page-room-detail .room-page-amenities li{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:20px 0;min-height:76px;border-top:1px solid rgba(69,123,68,.1);border-bottom:0;font-size:12px;line-height:1.75;color:#2d312c}
.page-room-detail .room-page-amenities li svg{order:2;width:23px;height:23px;flex:0 0 23px;stroke:#457b44;stroke-width:1.15}
.page-room-detail .room-detail-rules .room-policy{margin:0;padding:0;border:0;background:none}
body.page-room-detail #main .room-detail-rules .room-policy h3{font:600 11px/1.6 var(--font-body);letter-spacing:.12em;text-transform:uppercase;margin:0 0 15px;color:#457b44;text-align:left}
.page-room-detail .room-detail-rules .room-policy ul{font-size:13px;line-height:1.85;padding-left:18px;margin:0;color:#2d312c}
.page-room-detail .room-detail-rules .room-policy li{margin-bottom:10px}
.room-arrival-note{font-size:12px;line-height:1.8;margin-top:24px;color:#2d312c}
.page-room-detail #main>.other-rooms{max-width:1120px;margin:auto;padding:48px var(--section-gutter) 72px}
body.page-room-detail #main .other-rooms-heading h2{font-size:clamp(32px,3vw,42px)}
.page-room-detail .other-rooms .other-rooms-heading{margin-bottom:34px}
.page-room-detail .other-rooms .other-rooms-arrow{top:-60px}
body.page-room-detail #main .other-rooms .other-room h3{font-size:clamp(22px,2vw,28px)}
.room-gallery-dialog{border:0;width:min(1080px,94vw);max-width:94vw;max-height:90dvh;padding:28px;background:#faf8ed;color:#457b44;overflow:auto}
.room-gallery-dialog::backdrop{background:rgba(16,32,24,.78)}
.room-gallery-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px}
.room-gallery-dialog-heading h2{font:400 27px/1.4 "SVN Recoleta",serif;text-align:left;color:#457b44}
.room-gallery-close{border:0;background:none;color:#457b44;font-size:32px;padding:0 8px}
.room-gallery-photos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.room-gallery-photos img{width:100%;aspect-ratio:3/2;object-fit:cover;border-radius:5px!important}
@media(max-width:700px){
 .page-room-detail #main>.room-detail-heading{padding-top:108px;padding-bottom:30px}
 body.page-room-detail #main .room-detail-heading h1{font-size:36px;margin-bottom:24px}
 .room-detail-facts{row-gap:20px}
 .room-detail-facts>div{padding:0 12px;min-width:0;flex:0 0 33.333%}
 .room-detail-facts>div:nth-child(3n){border:0}
 .room-detail-facts dd{font-size:9px;letter-spacing:.04em}
 .page-room-detail .room-page-track{gap:12px}
 .page-room-detail .room-page-track>img{flex-basis:86%;width:86%;height:310px}
 .page-room-detail .room-detail-controls button{width:34px;height:34px}
 .page-room-detail .room-detail-controls button[data-room-step="-1"]{left:3%}
 .page-room-detail .room-detail-controls button[data-room-step="1"]{right:3%}
 .room-gallery-open{right:10%;bottom:16px;padding:9px 12px;font-size:9px}
 .page-room-detail .room-page-count{left:12%;transform:none;bottom:16px;font-size:9px}
 .page-room-detail #main>.room-page-intro,.page-room-detail #main>.room-page-amenities,.page-room-detail #main>.room-detail-rules{padding-block:32px}
 .page-room-detail .room-page-amenities ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
 .page-room-detail .room-page-amenities li{font-size:11px;gap:10px;min-height:72px}
 .page-room-detail .room-page-amenities li svg{width:21px;height:21px;flex-basis:21px}
 .room-gallery-dialog{padding:20px}
 .room-gallery-dialog-heading h2{font-size:22px}
 .room-gallery-photos{grid-template-columns:1fr;gap:14px}
}
.page-room-detail .site-header{background:#457b44}
.page-room-detail .site-header::before{opacity:0}
#room-description-title,#room-amenities-title,#room-rules-title{scroll-margin-top:115px}

/* Dining reference layout: immersive hero, centered invitation, staggered gallery and highlights. */
.page-dining .site-header{background:#457b44}
.page-dining .site-header::before{opacity:0}
.page-dining #main>.page-hero{position:relative;min-height:680px;height:85vh;max-height:940px;padding:0;overflow:hidden;background:#457b44}
.page-dining .page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-dining .page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(rgba(12,26,17,.18),rgba(12,26,17,.4));pointer-events:none}
.page-dining .page-hero .page-hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:100px 7% 20px;text-align:center;background:none;z-index:1;max-width:none;width:100%;color:var(--white)}
body.page-dining #main .page-hero h1{font:400 clamp(62px,7.6vw,108px)/1.2 "SVN Recoleta",serif;color:var(--white);letter-spacing:-.03em;margin:0 0 26px}
.page-dining .page-hero-copy p{font:400 clamp(16px,1.6vw,22px)/1.7 var(--font-body);color:var(--white);max-width:38em;margin:0}
.page-dining .breadcrumbs{display:none}
.page-dining #main>.dining-introduction{padding:clamp(72px,9vw,130px) var(--section-gutter) 60px;background:#faf8ed;text-align:center}
body.page-dining #main .dining-introduction h2{font:400 clamp(32px,4.1vw,58px)/1.4 "SVN Recoleta",serif;color:#457b44;letter-spacing:-.025em;max-width:1000px;margin:36px auto 60px;text-align:center}
.dining-introduction>.section-eyebrow{letter-spacing:.24em;color:#457b44}
.dining-contact{max-width:650px;margin:auto;text-align:left}
.dining-contact>.section-eyebrow{display:block;margin-bottom:22px;color:#457b44;letter-spacing:.2em}
.dining-contact dl{margin:0;border-top:1px solid rgba(69,123,68,.45)}
.dining-contact dl>div{display:flex;justify-content:space-between;gap:24px;padding:22px 0;border-bottom:1px solid rgba(69,123,68,.45);font-size:16px;color:#457b44}
.dining-contact dd{margin:0;text-align:right}
.dining-contact a:hover{text-decoration:underline;text-underline-offset:5px}
.dining-reserve-link{display:flex;width:fit-content;align-items:center;gap:30px;margin:32px auto 0;padding:12px 0;border-bottom:1px solid #457b44;font-size:12px;color:#457b44}
.page-dining #main>.dining-atmosphere{padding:36px 0 80px;display:grid;grid-template-columns:.7fr 1.25fr .7fr;gap:clamp(22px,5vw,76px);align-items:center;background:#faf8ed;overflow:hidden}
.dining-atmosphere-photo{position:relative;display:block;min-width:0;isolation:isolate}
.dining-atmosphere-photo img{width:100%;height:420px;object-fit:cover;border-radius:8px!important}
.dining-atmosphere-photo:nth-child(2) img{height:530px}
.dining-atmosphere-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(16,32,22,.42));border-radius:8px;pointer-events:none}
.dining-atmosphere-photo>span{position:absolute;left:24px;right:24px;bottom:32px;z-index:1;color:#fff9e9;font:400 clamp(28px,3.4vw,50px)/1.3 "SVN Recoleta",serif;letter-spacing:-.03em;text-align:center}
.page-dining #main>.dining-highlights{padding:48px var(--section-gutter) 80px;background:#faf8ed}
.dining-highlights-heading{max-width:1400px;margin:0 auto 54px}
.dining-highlights-heading .section-eyebrow{color:#457b44;letter-spacing:.22em}
body.page-dining #main .dining-highlights-heading h2{font:400 clamp(40px,5.5vw,78px)/1.2 "SVN Recoleta",serif;color:#457b44;text-align:left;letter-spacing:-.03em;margin:24px 0 0}
.dining-highlights-grid{max-width:1400px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.dining-highlight-card{min-width:0}
.dining-highlight-card>img,.dining-highlight-card .venue-slider{height:auto;min-height:0;width:100%;border-radius:8px!important;overflow:hidden;object-fit:cover;aspect-ratio:41/56}
.dining-highlight-card .venue-slider-controls{bottom:16px;padding:4px 8px;gap:10px;backdrop-filter:none;background:rgba(0,0,0,.7)}
.dining-highlight-card .venue-slider-controls button{width:28px;height:28px;padding:5px}
.dining-highlight-card .venue-slider-count{font-size:9px}
.dining-highlight-copy{padding-top:28px}
.dining-highlight-copy .section-eyebrow{font-size:10px;letter-spacing:.17em;color:#2d312c}
body.page-dining #main .dining-highlight-copy h3{font:400 clamp(25px,2.4vw,34px)/1.35 "SVN Recoleta",serif;color:#457b44;letter-spacing:-.025em;margin:13px 0 20px}
.dining-highlight-copy>p:not(.venue-hours){font-size:13px;line-height:1.9;color:#2d312c;margin-top:16px}
.dining-highlight-copy .venue-subtitle{color:#2d312c;font-size:12px}
.dining-highlight-copy .venue-hours,.dining-pool-copy .venue-hours{font:500 11px/1.8 var(--font-body);color:#2d312c;letter-spacing:.025em;margin:0 0 20px;display:block}
.dining-highlight-copy .venue-hours span,.dining-pool-copy .venue-hours span{display:block;font-size:9px;letter-spacing:.14em;margin-bottom:5px}
.dining-card-link{display:inline-flex;align-items:center;gap:24px;margin-top:26px;padding:8px 0;border-bottom:1px solid #457b44;color:#457b44;font-size:12px}
.page-dining #main>.dining-pool{padding:0 var(--section-gutter) clamp(70px,8vw,110px);background:#faf8ed}
.dining-pool-card{max-width:1400px;margin:auto;display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(40px,6vw,84px);align-items:center;border-top:1px solid rgba(69,123,68,.2);padding-top:60px}
.dining-pool-card>img{width:100%;height:440px;object-fit:cover;border-radius:8px!important}
body.page-dining #main .dining-pool-copy h3{font:400 clamp(32px,3.7vw,52px)/1.3 "SVN Recoleta",serif;color:#457b44;margin:18px 0 24px;letter-spacing:-.025em}
.dining-pool-copy>p:not(.venue-hours){font-size:14px;line-height:1.9;margin-top:18px;max-width:400px;color:#2d312c}
#herb-title,#telescope-title,#pergola-title,#pool-title{scroll-margin-top:115px}
@media(max-width:1000px){
 .dining-highlights-grid{gap:24px}
 .dining-highlight-card>img,.dining-highlight-card .venue-slider{height:auto;aspect-ratio:41/56}
 .dining-atmosphere-photo img{height:330px}
 .dining-atmosphere-photo:nth-child(2) img{height:430px}
 .dining-pool-card{grid-template-columns:1fr 1fr;gap:34px}
}
@media(max-width:700px){
 .page-dining #main>.page-hero{height:70vh;min-height:510px;max-height:680px}
 body.page-dining #main .page-hero h1{font-size:60px}
 .page-dining .page-hero-copy p{font-size:15px}
 .page-dining #main>.dining-introduction{padding-top:60px;padding-bottom:36px}
 body.page-dining #main .dining-introduction h2{font-size:31px;line-height:1.45;margin:26px auto 38px}
 .dining-introduction>.section-eyebrow{font-size:9px;letter-spacing:.15em}
 .dining-contact dl>div{font-size:13px;gap:14px;padding:18px 0;flex-wrap:wrap}
 .dining-contact dd{overflow-wrap:anywhere}
 .page-dining #main>.dining-atmosphere{grid-template-columns:1fr;gap:22px;padding:12px var(--section-gutter) 46px}
 .dining-atmosphere-photo img,.dining-atmosphere-photo:nth-child(2) img{height:330px}
 .dining-atmosphere-photo>span{font-size:34px;bottom:24px}
 .page-dining #main>.dining-highlights{padding-top:20px;padding-bottom:50px}
 .dining-highlights-heading{margin-bottom:36px}
 body.page-dining #main .dining-highlights-heading h2{font-size:43px}
 .dining-highlights-grid{grid-template-columns:1fr;gap:48px}
 .dining-highlight-card>img,.dining-highlight-card .venue-slider{height:auto;aspect-ratio:41/56}
 body.page-dining #main .dining-highlight-copy h3{font-size:31px}
 .dining-highlight-copy{padding-top:24px}
 .dining-pool-card{grid-template-columns:1fr;gap:28px;padding-top:40px}
 .dining-pool-card>img{height:330px}
}
#dining-intro-title,#dining-title{scroll-margin-top:115px}

/* Seamless dining imagery with a separate Prata text ribbon. */
.page-dining #main>.dining-motion{position:relative;display:block;padding:36px 0 80px;overflow:hidden}
.dining-image-track{display:flex;width:max-content;animation:dining-images-drift 48s linear infinite;transform:translateX(-11.5vw)}
.dining-image-group{display:flex;align-items:center;gap:5vw;padding-right:5vw;flex-shrink:0}
.dining-motion .dining-atmosphere-photo{width:32vw;flex-shrink:0}
.dining-motion .dining-atmosphere-photo:nth-child(2){width:44vw}
.dining-motion .dining-atmosphere-photo img{display:block;height:clamp(320px,26vw,500px);width:100%;object-fit:cover}
.dining-motion .dining-atmosphere-photo:nth-child(2) img{height:clamp(420px,34vw,650px)}
.dining-motion .dining-atmosphere-photo::after{background:rgba(0,0,0,.12)}
.dining-marquee{position:absolute;left:0;right:0;top:calc(50% - 22px);transform:translateY(-50%);pointer-events:none;z-index:2;overflow:hidden}
.dining-marquee-track{display:flex;width:max-content;animation:dining-type-drift 34s linear infinite}
.dining-marquee-group{display:flex;align-items:center;gap:70px;padding-right:70px;flex-shrink:0}
.dining-marquee span{white-space:nowrap;font:400 clamp(42px,5.6vw,108px)/1.4 "SVN Recoleta",serif;letter-spacing:-.025em;color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.12)}
.dining-motion-toggle{position:absolute;right:var(--section-gutter);bottom:25px;padding:8px 0;background:none;border:0;border-bottom:1px solid #457b44;color:#457b44;font:400 11px var(--font-body);cursor:pointer}
.dining-motion.is-paused .dining-image-track,.dining-motion.is-paused .dining-marquee-track,.dining-motion:has(.dining-atmosphere-photo:focus-visible) .dining-image-track,.dining-motion:has(.dining-atmosphere-photo:focus-visible) .dining-marquee-track{animation-play-state:paused}
@keyframes dining-images-drift{from{transform:translateX(-11.5vw)}to{transform:translateX(calc(-50% - 11.5vw))}}
@keyframes dining-type-drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(max-width:700px){
 .dining-motion .dining-atmosphere-photo{width:65vw}
 .dining-motion .dining-atmosphere-photo:nth-child(2){width:85vw}
 .dining-motion .dining-atmosphere-photo img{height:310px}
 .dining-motion .dining-atmosphere-photo:nth-child(2) img{height:400px}
 .dining-marquee-group{gap:35px;padding-right:35px}
}
@media(prefers-reduced-motion:reduce){.dining-image-track,.dining-marquee-track{animation:none}.dining-motion-toggle{display:none}}

/* Stepped gallery: a large centre photograph and equal scaled neighbours. */
.dining-motion .dining-image-track{width:100%;animation:none;transform:none}
.dining-motion .dining-image-group{position:relative;display:block;width:100%;height:clamp(420px,34vw,650px);padding:0}
.dining-motion .dining-image-group .dining-atmosphere-photo{position:absolute;top:0;left:50%;width:44vw;height:100%;transform:translateX(calc(-50% + var(--slot)*44vw)) scale(.76);transition:transform 1.25s cubic-bezier(.22,1,.36,1);will-change:transform}
.dining-motion .dining-image-group .dining-atmosphere-photo.is-centre{transform:translateX(calc(-50% + var(--slot)*44vw)) scale(1)}
.dining-motion .dining-image-group .dining-atmosphere-photo img{width:100%;height:100%;object-fit:cover}
@media(max-width:700px){
 .dining-motion .dining-image-group{height:400px}
 .dining-motion .dining-image-group .dining-atmosphere-photo{width:76vw;transform:translateX(calc(-50% + var(--slot)*76vw)) scale(.76)}
 .dining-motion .dining-image-group .dining-atmosphere-photo.is-centre{transform:translateX(calc(-50% + var(--slot)*76vw)) scale(1)}
}
@media(prefers-reduced-motion:reduce){.dining-motion .dining-image-group .dining-atmosphere-photo{transition:none}}

/* Shared typography across all page templates and both languages. */
body h1,body h2,body h3,body h4,body h5,body h6{font-family:"SVN Recoleta",serif!important;font-weight:400}

/* Comfortable, consistent reading size throughout the website. */
body{font-size:18px}
#main p:not(.section-eyebrow):not(.wellness-eyebrow):not(.venue-hours):not(.other-room-meta):not(.room-editorial-meta):not(.destination-category),
.intro-copy,.room-description,.room-editorial-description,.welcome-copy,
.page-room-detail .room-page-amenities li,
.page-room-detail .room-detail-rules .room-policy ul,
.room-arrival-note,.dining-contact dl>div,
.site-footer address p{font-size:18px!important}

/* Aligned venue information: category, name, clock, then a quiet divider. */
.dining-highlight-copy{padding-top:28px}
.dining-venue-heading{display:flex;flex-direction:column;min-height:132px;padding-bottom:24px;border-bottom:1px solid rgba(69,123,68,.16)}
.dining-venue-heading .section-eyebrow{font-size:12px;line-height:1.5;letter-spacing:.08em;color:#b48355}
body.page-dining #main .dining-venue-heading h3{font-size:clamp(26px,2.4vw,34px);line-height:1.35;margin:9px 0 10px}
.dining-highlight-copy .venue-hours,.dining-pool-copy .venue-hours{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.5;letter-spacing:0;margin:0;margin-top:auto;color:#2d312c}
.dining-highlight-copy .venue-hours span,.dining-pool-copy .venue-hours span{display:inline;font-size:14px;letter-spacing:0;margin:0}
.venue-hours svg{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.3;opacity:.6}
.dining-venue-description{padding-top:20px}
.dining-venue-description p{margin:0 0 16px;font-size:18px;line-height:1.65;color:#2d312c}
.dining-venue-description p:last-child{margin-bottom:0}
.dining-venue-description .venue-subtitle{font-size:18px;color:#2d312c;margin:0 0 16px}
.dining-pool-copy .venue-hours{padding-bottom:24px;border-bottom:1px solid rgba(69,123,68,.16);margin-bottom:20px}
@media(max-width:700px){.dining-venue-heading{min-height:0}.dining-highlight-copy{padding-top:24px}}

/* Both paragraphs share the same rhythm across the three venue columns. */
.dining-highlight-card{display:flex;flex-direction:column}
.dining-highlight-card>img,.dining-highlight-card>.venue-slider{flex-shrink:0}
.dining-highlight-copy{display:flex;flex-direction:column;flex:1}
.dining-venue-description{display:grid;grid-template-rows:1fr 1fr;gap:16px;flex:1}
.dining-venue-description p{margin:0}
@media(max-width:700px){.dining-venue-description{display:block}.dining-venue-description p+p{margin-top:16px}}

/* Venue labels matched to the supplied typography specifications. */
.dining-venue-heading .section-eyebrow{font-family:"SVN Poppins Light",sans-serif;font-size:14px;font-weight:500;font-style:normal;line-height:18px;color:var(--gold);letter-spacing:0}

/* Cutout ingredients drift gently at the edges of the dining introduction. */
.page-dining #main>.dining-introduction{position:relative;isolation:isolate;overflow:hidden}
.dining-introduction>.section-eyebrow,.dining-introduction>h2,.dining-introduction>.dining-contact{position:relative;z-index:1}
.dining-introduction .dining-decoration{position:absolute;width:clamp(220px,25vw,460px);height:auto;object-fit:contain;pointer-events:none;z-index:0;transform:translateY(var(--dining-drift,0px));will-change:transform}
.dining-decoration-left{left:-8vw;top:38%}
.dining-decoration-right{right:-6vw;top:4%}
@media(min-width:1001px){body.page-dining #main .dining-introduction h2{max-width:min(1000px,65vw)}}
@media(max-width:1000px){.dining-introduction .dining-decoration{width:240px;opacity:.75}.dining-decoration-left{left:-150px;top:48%}.dining-decoration-right{right:-150px;top:5%}}
@media(max-width:700px){.dining-introduction .dining-decoration{width:180px;opacity:.55}.dining-decoration-left{left:-140px;top:52%}.dining-decoration-right{right:-130px;top:0}}
@media(prefers-reduced-motion:reduce){.dining-introduction .dining-decoration{transform:none;will-change:auto}}

body.page-dining #main .page-hero h1,
.page-dining .dining-marquee span{font-family:"SVN Recoleta",serif!important;font-weight:300;font-style:normal}

/* Clear room photography, with controls in their own space below. */
.page-room-detail .room-page-gallery::before,.page-room-detail .room-page-gallery::after{display:none;background:none}
.page-room-detail #main>.room-page-gallery{padding-bottom:76px}
.page-room-detail .room-page-gallery .room-detail-controls{inset:auto 0 8px;height:52px;display:flex;align-items:center;justify-content:center;gap:22px;border:0;padding:0}
.page-room-detail .room-detail-controls button{position:static;transform:none;background:transparent;border:1px solid rgba(69,123,68,.2)}
.page-room-detail .room-page-count{position:static;transform:none;background:none;padding:0;font-size:12px}
.page-room-detail .room-gallery-open{bottom:14px;right:21%;background:transparent;font-size:12px;padding:12px 0}
@media(max-width:700px){
 .page-room-detail .room-page-gallery .room-detail-controls{justify-content:flex-start;padding-left:7%;gap:14px}
 .page-room-detail .room-gallery-open{right:7%;font-size:11px}
}

/* Room banner proportions and a cinematic full-screen lightbox. */
.page-room-detail #main>.room-page-gallery{padding-bottom:0}
.page-room-detail .room-page-track{gap:clamp(18px,1.8vw,36px)}
.page-room-detail .room-page-track>img{flex-basis:64%;width:64%;height:clamp(360px,36vw,730px)}
.page-room-detail .room-page-gallery .room-detail-controls{inset:0;display:block;height:auto;padding:0;pointer-events:none}
.page-room-detail .room-detail-controls button{position:absolute;top:50%;transform:translateY(-50%);background:rgba(242,242,236,.8);border:0;width:48px;height:48px}
.page-room-detail .room-detail-controls button[data-room-step="-1"]{left:3%}
.page-room-detail .room-detail-controls button[data-room-step="1"]{right:3%}
.page-room-detail .room-page-count{display:none}
.page-room-detail .room-gallery-open{right:20%;bottom:20px;padding:14px 20px;background:rgba(242,242,236,.85);font-size:12px}
.room-gallery-dialog{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;background:#000;color:#fff;overflow:hidden}
.room-gallery-dialog::backdrop{background:#000}
.room-gallery-dialog-heading{position:absolute;inset:0 0 auto;margin:0;z-index:3}
.room-gallery-dialog-heading h2{display:none}
.room-gallery-dialog .room-gallery-close{position:absolute;top:12px;right:18px;background:none;border:0;color:#fff;width:40px;height:40px;font:300 36px/1 "SVN Poppins Light",sans-serif;padding:0}
.room-gallery-dialog .room-gallery-photos{display:flex;width:100%;height:100%;align-items:center;justify-content:center;padding:60px 7vw}
.room-gallery-dialog .room-gallery-photos img{width:auto;max-width:100%;height:auto;max-height:100%;object-fit:contain;border-radius:0!important}
.room-gallery-dialog .room-gallery-photos img[hidden]{display:none}
.room-lightbox-prev,.room-lightbox-next{position:absolute;top:50%;transform:translateY(-50%);background:none;border:0;color:#fff;font:300 44px/1 "SVN Poppins Light",sans-serif;padding:10px}
.room-lightbox-prev{left:16px}.room-lightbox-next{right:16px}
.room-lightbox-count{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);font:400 12px "SVN Poppins Light",sans-serif;letter-spacing:.15em;color:#ccc}
@media(max-width:700px){.page-room-detail .room-page-track>img{flex-basis:86%;width:86%;height:330px}.page-room-detail .room-gallery-open{right:10%;bottom:14px;padding:10px 14px}.room-gallery-dialog .room-gallery-photos{padding:60px 36px}.room-lightbox-prev{left:0}.room-lightbox-next{right:0}}

/* Alternating room list inspired by the supplied editorial layout. */
.page-rooms #main>.rooms-editorial-list{padding:70px var(--section-gutter) 100px;background:#faf8ed}
.rooms-list{width:100%;max-width:1280px;margin:auto;display:flex;flex-direction:column;gap:28px}
.room-list-row{display:grid;grid-template-columns:1fr 1.92fr;gap:28px;align-items:stretch}
.room-list-row:nth-child(even){grid-template-columns:1.92fr 1fr}
.room-list-row:nth-child(even) .room-list-image{grid-column:1;grid-row:1}
.room-list-row:nth-child(even) .room-list-copy{grid-column:2;grid-row:1}
.room-list-copy{border:1px solid rgba(69,123,68,.09);border-radius:8px;padding:clamp(24px,2.2vw,38px);display:flex;flex-direction:column;min-width:0}
body.page-rooms #main .room-list-copy h2{font-size:clamp(27px,2.7vw,40px);line-height:1.15;text-align:left;color:#457b44;margin:0 0 16px;letter-spacing:-.02em}
.room-list-meta{display:flex;flex-wrap:wrap;gap:6px;color:#2d312c;font:500 10px/1.7 "SVN Poppins Light",sans-serif;letter-spacing:.1em;text-transform:uppercase;margin-bottom:20px}
.room-list-meta span+span::before{content:'·';margin-right:6px}
#main .room-list-copy p{font-size:18px;line-height:1.65;margin:0 0 30px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.room-list-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:auto;padding-top:22px;border-top:1px solid rgba(69,123,68,.08)}
.room-list-view{font-size:11px;color:#2d312c;text-transform:uppercase;letter-spacing:.1em}
.room-list-link{font-size:11px;font-weight:500;text-transform:uppercase;white-space:nowrap;color:#457b44;border-bottom:1px solid #457b44;padding:4px 0}
.room-list-link span{margin-left:10px}
.room-list-image{display:block;overflow:hidden;border-radius:8px;min-width:0}
.room-list-image img{height:100%;min-height:440px;aspect-ratio:1.58;object-fit:cover;border-radius:8px!important;transition:transform .7s}
@media(hover:hover){.room-list-image:hover img{transform:scale(1.025)}}
@media(max-width:1000px) and (min-width:701px){.room-list-row{grid-template-columns:1fr 1.4fr;gap:18px}.room-list-row:nth-child(even){grid-template-columns:1.4fr 1fr}.room-list-copy{padding:24px}.room-list-image img{min-height:460px}.room-list-bottom{flex-wrap:wrap}}
@media(max-width:700px){.page-rooms #main>.rooms-editorial-list{padding:40px var(--section-gutter) 60px}.rooms-list{gap:36px}.room-list-row,.room-list-row:nth-child(even){display:flex;flex-direction:column;gap:0}.room-list-image{order:-1;border-radius:8px 8px 0 0}.room-list-image img{min-height:0;height:auto;aspect-ratio:1.35}.room-list-copy{border-radius:0 0 8px 8px;padding:26px}.room-list-copy p{-webkit-line-clamp:unset}.room-list-bottom{margin-top:0}}

.room-list-copy{transition:background-color .35s ease}
@media(hover:hover){.room-list-row:hover .room-list-copy{background-color:#fff}}
.room-list-row:focus-within .room-list-copy{background-color:#fff}

/* Wellness reference: generous hero, portrait introduction and alternating services. */
.page-wellness .breadcrumbs{display:none}
.page-wellness .page-hero{position:relative;height:85vh;min-height:620px;max-height:940px;margin:0}
.page-wellness .page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-wellness .page-hero::after{background:rgba(0,0,0,.28)}
.page-wellness .page-hero-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:100px 24px 0;text-align:center;z-index:1}
body.page-wellness #main .page-hero h1{font-family:"SVN Recoleta",serif!important;font-weight:300;font-size:clamp(60px,7.6vw,108px);line-height:1.2;color:#fff9e9;margin:0 0 24px}
.page-wellness .page-hero-copy p{font:400 18px/1.7 "SVN Poppins Light",sans-serif;color:#fff9e9;max-width:38em}
.page-wellness #main>.spa-intro{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(60px,10vw,150px);align-items:center;padding:120px var(--section-gutter);background:#faf8ed}
.spa-intro figure{margin:0;min-width:0}
.spa-intro figure img{height:650px;object-fit:cover;border-radius:8px 8px 8px 180px!important}
.spa-intro .section-eyebrow,.spa-services .section-eyebrow{font:500 14px/18px "SVN Poppins Light",sans-serif;letter-spacing:.16em;color:var(--gold)}
body.page-wellness #main .spa-intro h2,body.page-wellness #main .spa-services-heading h2{font-family:"SVN Recoleta",serif!important;font-weight:300;font-size:clamp(44px,5.5vw,78px);line-height:1.13;letter-spacing:-.02em;text-align:left;color:#457b44;margin:28px 0 34px}
.spa-intro-copy p,.spa-service-copy p{line-height:1.65;margin:0 0 18px}
.spa-text-link{display:inline-flex;align-items:center;gap:24px;color:#457b44;font-size:13px;padding:12px 0;border-bottom:1px solid #457b44;margin-top:16px}
.page-wellness #main>.spa-cinematic{position:relative;height:clamp(440px,52vw,730px);padding:0;overflow:hidden}
.spa-cinematic>img{height:100%;width:100%;object-fit:cover}
.spa-cinematic::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.18);pointer-events:none}
.spa-ribbon{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1;overflow:hidden}
.spa-ribbon-track{display:flex;width:max-content;animation:dining-type-drift 36s linear infinite}
.spa-ribbon-group{display:flex;align-items:center;gap:90px;padding-right:90px;flex-shrink:0}
.spa-ribbon span{font:300 clamp(60px,8vw,120px)/1.3 "SVN Recoleta",serif;color:#fff9e9;white-space:nowrap}
.spa-ribbon span::after{content:'✧';font-size:.4em;margin-left:90px;vertical-align:middle}
.page-wellness #main>.spa-services{padding:120px var(--section-gutter);background:#faf8ed}
.spa-services-heading{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:60px}
.spa-services-heading p{line-height:1.65;margin:0 0 34px;max-width:520px}
.spa-service-row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(60px,9vw,130px);align-items:center;margin-bottom:90px;scroll-margin-top:120px}
.spa-service-row>img{width:100%;height:470px;object-fit:cover;border-radius:8px!important}
.spa-service-row-reverse .spa-service-copy{grid-column:2;grid-row:1}
.spa-service-row-reverse>img{grid-column:1;grid-row:1}
body.page-wellness #main .spa-service-copy h3{font-size:clamp(30px,3.3vw,48px);line-height:1.2;color:#457b44;margin:24px 0}
.spa-service-list{list-style:none;margin:30px 0 0;padding:0;border-top:1px solid rgba(69,123,68,.35)}
.spa-service-list li{font-size:18px;line-height:1.5;padding:16px 0;border-bottom:1px solid rgba(69,123,68,.35);color:#457b44}
.spa-booking{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap;padding-top:10px}
body.page-wellness #main .spa-booking h3{font-size:32px;color:#457b44}
.spa-booking>a[href^="tel"]{font-size:26px;color:var(--gold)}
.spa-booking .spa-text-link{margin:0}
@media(max-width:1000px){.page-wellness #main>.spa-intro{gap:50px;padding-block:80px}.spa-intro figure img{height:540px}.spa-service-row{gap:50px}.spa-service-row>img{height:400px}}
@media(max-width:700px){.page-wellness .page-hero{height:70vh;min-height:510px}.page-wellness #main>.spa-intro{grid-template-columns:1fr;gap:40px;padding-block:60px}.spa-intro figure img{height:440px;border-bottom-left-radius:110px!important}.page-wellness #main>.spa-services{padding-block:60px}.spa-services-heading{grid-template-columns:1fr;gap:0;margin-bottom:30px}.spa-service-row{display:flex;flex-direction:column;gap:30px;margin-bottom:60px;align-items:stretch}.spa-service-row>img{height:330px}.spa-ribbon-group{gap:40px;padding-right:40px}.spa-ribbon span::after{margin-left:40px}.spa-booking{text-align:center;gap:18px}.spa-booking h3{width:100%}}
@media(prefers-reduced-motion:reduce){.spa-ribbon-track{animation:none}}

.spa-intro .spa-intro-collage{position:relative;margin-right:40px}
.spa-intro .spa-intro-collage .spa-intro-main{height:650px;border-radius:8px 8px 8px 180px!important;object-fit:cover}
.spa-intro .spa-intro-collage .spa-intro-detail{position:absolute;top:18%;right:-22%;width:50%;height:44%;object-fit:cover;border-radius:110px 110px 8px 8px!important;z-index:1}
@media(max-width:1000px){.spa-intro .spa-intro-collage{margin-right:30px}.spa-intro .spa-intro-collage .spa-intro-main{height:540px}.spa-intro .spa-intro-collage .spa-intro-detail{right:-18%;width:52%}}
@media(max-width:700px){.spa-intro .spa-intro-collage{margin-right:13%}.spa-intro .spa-intro-collage .spa-intro-main{height:480px;border-bottom-left-radius:130px!important}.spa-intro .spa-intro-collage .spa-intro-detail{right:-15%;height:44%;width:52%}}

/* Two-tier masthead: centred brand above a calm navigation row. */
.site-header{display:grid!important;grid-template-columns:1fr auto 1fr!important;grid-template-rows:108px 60px;gap:0!important;height:168px!important;padding:0 4.2%!important;background:rgba(0,0,0,.96)}
.site-header::before{display:none}
.site-header .menu-toggle{grid-column:1;grid-row:1;justify-self:start}
.site-header .brand{position:static;transform:none;grid-column:2;grid-row:1;width:162px!important;justify-self:center}
.site-header .brand img{width:162px!important;max-height:82px;object-fit:contain}
.header-contact{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:24px}
.header-phone{display:flex;align-items:center;gap:10px;color:#fff9e9;font:500 16px "SVN Poppins Light",sans-serif;white-space:nowrap;padding-right:24px;border-right:1px solid rgba(255,249,233,.2)}
.header-phone svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linejoin:round}
.site-header .header-contact .reservation{background:transparent;color:#fff9e9;border:1px solid rgba(255,249,233,.3);border-radius:40px!important;font:500 12px "SVN Poppins Light",sans-serif;text-transform:uppercase;padding:16px 25px;white-space:nowrap}
.site-header .reservation span{margin-left:12px;font-size:18px;line-height:0}
.site-header .header-nav-main{grid-column:1/-1;grid-row:2;display:flex!important;align-items:center;justify-content:center;gap:0!important;transform:none!important;position:relative;height:60px}
.site-header .header-nav-main::before,.site-header .header-nav-main::after{content:'';position:absolute;left:-4.6vw;right:-4.6vw;height:1px;background:rgba(255,249,233,.2)}
.site-header .header-nav-main::before{top:0}.site-header .header-nav-main::after{bottom:0}
.site-header .header-nav-main a{font-size:18px!important;padding:16px 0;color:#fff9e9}
.site-header .header-nav-main a+a::before{content:'·';display:inline-block;margin:0 clamp(15px,2vw,38px);color:rgba(255,249,233,.65)}
.site-header .header-nav-main a:hover,.site-header .header-nav-main a[aria-current="page"]{color:var(--gold)}
@media(max-width:1100px){.header-phone{font-size:13px;gap:8px;padding-right:14px}.header-contact{gap:14px}.site-header .header-contact .reservation{padding:14px 18px;font-size:10px}.site-header .header-nav-main a{font-size:16px!important}.site-header .header-nav-main a+a::before{margin:0 16px}}
@media(max-width:800px){.site-header{grid-template-rows:88px;height:88px!important;grid-template-columns:1fr auto 1fr!important}.site-header .header-nav-main{display:none!important}.header-phone{display:none}.site-header .brand,.site-header .brand img{width:120px!important}.header-contact{gap:0}.site-header .header-contact .reservation{font-size:9px;padding:12px 14px}.site-header .reservation span{margin-left:6px}}
@media(max-width:380px){.site-header .brand,.site-header .brand img{width:100px!important}.site-header .header-contact .reservation{padding:11px 9px;font-size:8px}}
@media(min-width:801px){html{scroll-padding-top:185px}.page-room-detail .room-detail-heading{padding-top:220px}}
.site-header .brand{position:relative;left:auto;top:auto}

/* Let the hero show through the masthead at the top of the page. */
body .site-header:not(.is-scrolled){background:linear-gradient(180deg,rgba(0,0,0,.38) 0%,rgba(0,0,0,.18) 65%,rgba(0,0,0,0) 100%)}
body .site-header.is-scrolled{background:#457b44}
/* Room details start on a light surface rather than a photographic hero. */
body.page-room-detail .site-header:not(.is-scrolled){background:#457b44}

.site-header .header-nav a::after{display:none;content:none}
.site-header .header-nav a:hover,.site-header .header-nav a:focus-visible{text-decoration:none}

/* Softly blur the hero behind the transparent top masthead. */
body .site-header:not(.is-scrolled){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
body .site-header.is-scrolled{ -webkit-backdrop-filter:none;backdrop-filter:none}
body.page-room-detail .site-header:not(.is-scrolled){-webkit-backdrop-filter:none;backdrop-filter:none}

/* One consistent title system across interior page banners. */
body.inner-page #main .page-hero h1{font-family:"SVN Recoleta",serif!important;font-weight:300;font-style:normal;font-size:clamp(60px,7.6vw,108px);line-height:1.2;letter-spacing:-.03em;text-align:center;color:#fff9e9;margin:0 0 26px}
body.inner-page .page-hero-copy p{font-family:"SVN Poppins Light",Arial,sans-serif!important;font-size:18px!important;font-weight:400;font-style:normal;line-height:1.7;letter-spacing:0;color:#fff9e9;text-align:center;max-width:42em;margin:0 auto}
body.inner-page .page-hero-divider{display:none}
body.inner-page .page-hero-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
body.page-room-detail #main .room-detail-heading h1{font-family:"SVN Recoleta",serif!important;font-weight:300;font-size:clamp(48px,6vw,86px);line-height:1.2;letter-spacing:-.03em;text-align:center}
@media(max-width:700px){body.inner-page #main .page-hero h1{font-size:clamp(42px,10vw,60px);line-height:1.15;margin-bottom:24px}body.inner-page .page-hero-copy p{max-width:30em}body.page-room-detail #main .room-detail-heading h1{font-size:40px}}

/* Rounded, translucent booking ribbon with an independent guest popover. */
.homepage-banner .banner-booking{width:min(1000px,88%);grid-template-columns:1fr 1fr 1fr 185px;padding:10px;background:rgba(102,83,73,.55);border:1px solid #fff9e9;border-radius:50px!important;backdrop-filter:blur(16px);box-shadow:none;color:#fff9e9;overflow:visible}
.homepage-banner .booking-bar-field{margin:4px 0;padding:0 28px!important;border-right:1px solid rgba(255,249,233,.65)!important;gap:0;min-height:42px}
.homepage-banner .booking-bar-field>span{display:none}
.homepage-banner .booking-date-trigger{color:#fff9e9;font:400 18px/1.4 "SVN Poppins Light",sans-serif;min-height:42px}
.homepage-banner .booking-bar-promo{display:none}
.homepage-banner .booking-bar-submit{margin:0 0 0 20px;padding:14px 22px;border-radius:40px!important;background:var(--gold);color:#fff;font:500 12px "SVN Poppins Light",sans-serif;text-transform:uppercase}
.homepage-banner .booking-bar-submit span{margin-left:12px;font-size:20px}
.homepage-banner .booking-bar-submit:hover{background:var(--gold)}
.booking-guests-popover{position:relative;width:100%}
.booking-guests-popover summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:16px;font:400 18px/42px "SVN Poppins Light",sans-serif;cursor:pointer;color:#fff9e9}
.booking-guests-popover summary::-webkit-details-marker{display:none}
.homepage-banner .booking-bar-guests .booking-guest-counters{position:absolute;top:calc(100% + 24px);left:50%;transform:translateX(-50%);width:260px;padding:20px 16px;display:flex;flex-direction:column;align-items:stretch;gap:14px;background:#fff;color:#457b44;border:1px solid #e1e1db;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);z-index:5}
.homepage-banner .booking-guest-counter,.homepage-banner .booking-guest-counter:last-child{margin:0;display:grid;grid-template-columns:1fr 28px 30px 28px;gap:12px;align-items:center}
.homepage-banner .booking-guest-counter label{font-size:16px;margin:0}
.homepage-banner .booking-guest-counter input{width:30px;min-height:30px;border:1px solid #deded7;border-radius:4px;color:#457b44;font-size:16px}
.homepage-banner .booking-guest-counter button{width:28px;font-size:20px}
@media(max-width:700px){.homepage-banner .banner-booking{grid-template-columns:1fr 1fr;padding:14px;border-radius:24px!important}.homepage-banner .booking-bar-field{padding:0 12px!important;margin:6px 0}.homepage-banner .booking-bar-field:nth-child(2){border-right:0!important}.homepage-banner .booking-bar-submit{grid-column:2;margin:4px 0 4px 12px}.homepage-banner .booking-date-trigger,.booking-guests-popover summary{font-size:16px}.homepage-banner .booking-bar-guests .booking-guest-counters{left:0;transform:none;width:240px}}

.homepage-banner .booking-bar-submit{background:#457b44}
.homepage-banner .booking-bar-submit:hover{background:var(--green-hover);filter:brightness(1.12)}

.homepage-banner .booking-bar-submit{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1;min-height:50px;padding:14px 30px}
.homepage-banner .booking-bar-submit span{position:absolute;right:22px;top:50%;transform:translateY(-50%);margin:0;font-size:20px;line-height:1}

/* Lighter glass effect for the masthead and booking ribbon. */
body .site-header:not(.is-scrolled){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
body.page-room-detail .site-header:not(.is-scrolled){-webkit-backdrop-filter:none;backdrop-filter:none}
.homepage-banner .banner-booking{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}

/* Booking popovers open above the ribbon. */
.homepage-banner .booking-bar-guests .booking-guest-counters{top:auto;bottom:calc(100% + 26px)}
.homepage-banner .booking-date-popup{top:auto;bottom:calc(100% + 14px)}

/* Match the open menu masthead to the shared header exactly. */
.site-menu .menu-header{display:grid!important;grid-template-columns:1fr auto 1fr;gap:0;height:108px;padding:0 4.2%!important;position:absolute;inset:0 0 auto;border-bottom:1px solid rgba(255,249,233,.2)}
.site-menu .menu-header .menu-close{grid-column:1;justify-self:start;width:38px;height:40px}
.site-menu .menu-header .brand{position:relative;left:auto;top:auto;transform:none;grid-column:2;justify-self:center;width:162px}
.site-menu .menu-header .brand img{width:162px!important;max-height:82px;object-fit:contain}
.site-menu .menu-header .header-contact{grid-column:3;grid-row:1}
.site-menu .menu-header .header-contact .reservation{background:transparent;color:#fff9e9;border:1px solid rgba(255,249,233,.3);border-radius:40px!important;font:500 12px "SVN Poppins Light",sans-serif;text-transform:uppercase;padding:16px 25px;white-space:nowrap}
.site-menu .menu-header .reservation span{margin-left:12px;font-size:18px;line-height:0}
@media(max-width:1100px){.site-menu .menu-header .header-contact .reservation{padding:14px 18px;font-size:10px}}
@media(max-width:800px){.site-menu .menu-header{height:88px}.site-menu .menu-header .brand,.site-menu .menu-header .brand img{width:120px!important}.site-menu .menu-header .header-contact .reservation{font-size:9px;padding:12px 14px}.site-menu .menu-header .reservation span{margin-left:6px}}
@media(max-width:380px){.site-menu .menu-header .brand,.site-menu .menu-header .brand img{width:100px!important}.site-menu .menu-header .header-contact .reservation{padding:11px 9px;font-size:8px}}

/* Full-screen menu drops from above; hover imagery fills its entire canvas. */
.site-menu{background:#457b44;opacity:1;transform:translateY(-100%);transition:transform 700ms cubic-bezier(.22,1,.36,1);isolation:isolate}
.site-menu.is-visible{opacity:1;transform:translateY(0);transition-duration:700ms}
.site-menu .menu-body{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:8%;max-width:none;margin:0;padding:160px 4.2% 50px;min-height:100dvh;border:0}
.site-menu .menu-photo{position:absolute;inset:0;display:block!important;padding:0;margin:0;z-index:-2;opacity:0!important;transform:none!important;transition:opacity 650ms ease!important;pointer-events:none;border:0}
.site-menu.has-menu-background .menu-photo{opacity:1!important}
.site-menu .menu-photo-frame{position:absolute;inset:0;width:100%;height:100%;max-width:none;aspect-ratio:auto;border-radius:0!important}
.site-menu .menu-photo .menu-preview{width:100%;height:100%;object-fit:cover;border-radius:0!important;filter:none}
.site-menu .menu-photo::after{content:'';position:absolute;inset:0;background:rgba(0,0,0,.62)}
.site-menu .menu-navigation{padding:0;margin:0;display:block;border:0;grid-column:1;grid-row:1}
.site-menu .menu-navigation::before,.site-menu .menu-navigation::after{display:none}
.site-menu .menu-navigation nav{align-items:flex-start;text-align:left;gap:8px}
.site-menu .menu-navigation nav a{font:300 clamp(30px,3.2vw,50px)/1.25 "SVN Recoleta",serif;color:#fff9e9;padding:0;border:0}
.site-menu .menu-navigation nav a::after{display:none}
.site-menu .menu-navigation nav a:hover,.site-menu .menu-navigation nav a:focus-visible{color:var(--gold);text-decoration:none}
.site-menu .languages{justify-content:flex-start;margin-top:30px;font-size:14px}
.menu-contact-info{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:36px;color:#fff9e9;padding-top:8px}
.menu-contact-info h3{font:300 30px/1.3 "SVN Recoleta",serif;margin:0 0 30px;color:#fff9e9}
.menu-contact-info p{font:400 18px/1.7 "SVN Poppins Light",sans-serif;margin:0}
.site-menu .menu-header{z-index:3;background:transparent}
@media(max-width:1000px){.menu-contact-info{grid-template-columns:1fr;gap:32px}.menu-contact-info h3{margin-bottom:16px}}
@media(max-width:700px){.site-menu .menu-body{grid-template-columns:1fr;padding:120px 7% 40px;gap:40px}.site-menu .menu-navigation nav a{font-size:32px}.menu-contact-info{grid-column:1;grid-row:2;grid-template-columns:1fr 1fr;gap:20px}.menu-contact-info h3{font-size:22px}.menu-contact-info p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.site-menu{transform:none}.site-menu .menu-photo{transition:none!important}}

/* Keep hover photography above the green canvas and below menu content. */
.site-menu .menu-photo{z-index:0}
.site-menu .menu-navigation,.site-menu .menu-contact-info{position:relative;z-index:2}
.site-menu .menu-header{z-index:3}
.site-menu.has-menu-background .menu-photo{opacity:1!important}
.site-menu .menu-photo::after{background:rgba(0,0,0,.5)}

/* Remove legacy grid placement that collapsed the absolute background layer. */
.site-menu[open]{display:block}
.site-menu .menu-photo{grid-area:auto;left:0;right:0;top:0;bottom:0;width:100%;height:100%;}
.site-menu .menu-photo-frame{grid-area:auto;left:0;right:0;top:0;bottom:0;width:100%;height:100%}

/* Give the closing footer a more generous vertical presence. */
.site-footer{padding-top:clamp(90px,8vw,140px);padding-bottom:64px}
.site-footer .footer-main{min-height:320px}
.site-footer .footer-rule{margin-top:64px}
@media(max-width:700px){.site-footer{padding-top:64px;padding-bottom:40px}.site-footer .footer-main{min-height:0;row-gap:40px}.site-footer .footer-rule{margin-top:44px}}

/* Full-width map with a balanced floating destination panel. */
body:not(.inner-page) .location-map.location-map-live{position:relative;display:block;width:100%;min-height:680px;padding:48px var(--section-gutter);overflow:hidden;background:#faf8ed}
body:not(.inner-page) .location-map-live .location-map-interactive{position:absolute;inset:0;width:100%;height:100%;min-height:680px}
body:not(.inner-page) .location-map-live .location-map-frame{position:relative;inset:auto;width:min(440px,38%);max-width:440px;margin:0 0 0 auto;padding:32px;background:rgba(242,242,236,.97);border:1px solid rgba(69,123,68,.12);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.12);max-height:584px;overflow:auto;z-index:1}
body:not(.inner-page) .location-map-copy h2{margin:14px 0 24px;font-size:32px}
body:not(.inner-page) .location-map-copy>ul{display:flex;flex-direction:column;gap:0}
body:not(.inner-page) .location-map-copy .map-place{padding:14px 0;border-bottom:1px solid rgba(69,123,68,.13)}
body:not(.inner-page) .location-map-copy .map-place>div{min-width:0}
@media(max-width:1000px) and (min-width:701px){body:not(.inner-page) .location-map-live .location-map-frame{width:45%;padding:26px}}
@media(max-width:700px){body:not(.inner-page) .location-map.location-map-live{min-height:0;padding:300px 6% 32px}body:not(.inner-page) .location-map-live .location-map-interactive{height:380px;min-height:0}body:not(.inner-page) .location-map-live .location-map-frame{width:100%;max-width:none;max-height:none;margin:0;padding:26px;box-shadow:0 8px 26px rgba(0,0,0,.1)}}
/* Homepage sections arranged around the editorial reference. */
.section-number{display:inline-grid;place-items:center;width:48px;height:48px;border:1px solid currentColor;border-radius:50%;margin-right:18px;font:400 12px/1 var(--font-body);vertical-align:middle}
#main .home-room-selection{padding:100px 0;background:var(--paper,#faf8ed)}
.home-room-selection .editorial-section-heading{text-align:left;margin-bottom:32px}
.home-room-selection h2{margin:22px 0 0;font-size:clamp(38px,4.3vw,64px)}
.home-room-tabs{display:flex;gap:24px;overflow-x:auto;border-bottom:1px solid #457b4420;padding-bottom:25px;margin-bottom:32px}
.home-room-tabs button{flex-shrink:0;background:none;border:0;padding:10px 0;color:#777;font:500 12px/1.4 var(--font-body);text-transform:uppercase;cursor:pointer}
.home-room-tabs button[aria-selected=true]{color:#457b44;box-shadow:inset 0 2px #457b44}
.home-room-panel{display:grid;grid-template-columns:1.9fr 1fr;gap:24px;align-items:stretch}
.home-room-panel[hidden]{display:none}
.home-room-image{display:block;min-height:410px}.home-room-image img{width:100%;height:100%;aspect-ratio:1.5;object-fit:cover;border-radius:8px!important}
.home-room-copy{border:1px solid #457b4414;border-radius:8px;padding:32px;display:flex;flex-direction:column;color:#457b44}
.home-room-copy h3{font-size:clamp(26px,2.8vw,40px);line-height:1.15;margin:0 0 16px}
#main .home-room-meta{font-size:11px!important;letter-spacing:1px;text-transform:uppercase;line-height:1.8}
.home-room-copy>p{line-height:1.65}.home-room-bottom{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:auto;padding-top:32px;border-top:1px solid #457b4414;font-size:12px}.home-room-bottom .editorial-link{font-size:12px}
#main>.home-dining-layout{position:relative;display:grid;grid-template-columns:1fr 1.35fr;gap:7%;padding:95px max(6vw,calc((100vw - 1280px)/2)) 110px;background:#457b44;overflow:visible;margin:0}
.home-dining-layout .editorial-dining-story{padding:0;background:none;color:#fff9e9;align-self:start}
.home-dining-layout .editorial-dining-story h2{font-size:clamp(40px,4.4vw,66px);line-height:1.08;margin:28px 0;color:inherit}
.home-dining-layout .editorial-dining-story p{color:inherit;max-width:420px;line-height:1.7}.home-dining-layout .editorial-link{color:inherit}
.home-dining-layout .editorial-dining-hero img{width:100%;height:440px;min-height:0;object-fit:cover;border-radius:8px!important}
.home-dining-detail{position:absolute;bottom:-80px;left:5%;width:27%;max-width:350px;margin:0;z-index:2}.home-dining-detail img{width:100%;height:230px;object-fit:cover;border-radius:8px!important}
#main>.home-wellness-layout{padding:150px 0 100px;background:#faf8ed;overflow:hidden}
.home-wellness-layout .editorial-container{display:grid;grid-template-columns:1.4fr 1fr;gap:34px 5%;position:relative}
.home-wellness-layout .wellness-editorial-heading{grid-column:2;grid-row:1;position:relative;z-index:2;margin:0;width:auto}
.home-wellness-layout h2{font-size:clamp(38px,4.5vw,64px);line-height:1.12;margin:25px 0 0}
.home-wellness-layout .wellness-editorial-photo{grid-column:1;grid-row:1 / 3;width:100%;margin:150px 0 0}
.home-wellness-layout .wellness-editorial-photo img{width:100%;height:470px;object-fit:cover;border-radius:8px!important}
.home-wellness-layout .wellness-editorial-statement{grid-column:2;grid-row:2;margin:120px 0 0;padding:0;width:auto;background:none;align-self:end;max-width:340px}
.home-wellness-detail{position:absolute;right:-11%;top:180px;width:22%;margin:0}.home-wellness-detail img{width:100%;height:180px;object-fit:cover;border-radius:8px!important}
#main>.editorial-experiences{padding:100px 0;background:linear-gradient(#00000099,#00000099),url('../img/destinations/anbang-beach.jpg') center/cover;color:#fff9e9}
.editorial-experiences .experience-editorial-heading{margin-bottom:48px}.editorial-experiences .experience-editorial-heading h2,.editorial-experiences .experience-editorial-heading p,.editorial-experiences .editorial-link{color:inherit}
.editorial-experiences .experience-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:stretch}
.editorial-experiences .experience-editorial-card{margin:0;background:#faf8ed;border-radius:8px;overflow:hidden;color:#457b44;display:flex;flex-direction:column;padding:0}
.editorial-experiences .experience-editorial-card>img{height:230px;width:100%;object-fit:cover;border-radius:0!important}
.editorial-experiences .destination-caption{margin:0;padding:28px;flex:1;text-align:center}.editorial-experiences .destination-category{color:var(--gold)}.editorial-experiences .experience-editorial-card h3{color:#457b44;font-size:29px}.editorial-experiences .experience-editorial-card p{color:#457b44;max-width:none}
@media(max-width:800px){
#main .home-room-selection{padding:65px 0}.home-room-tabs{gap:22px}.home-room-panel{grid-template-columns:1fr}.home-room-image{min-height:0}.home-room-image img{height:320px}.home-room-copy{padding:25px}.home-room-bottom{margin-top:25px}
#main>.home-dining-layout{grid-template-columns:1fr;padding:65px var(--section-gutter) 110px;gap:32px}.home-dining-layout .editorial-dining-hero img{height:340px}.home-dining-detail{width:40%;bottom:-45px;left:8%}.home-dining-detail img{height:150px}
#main>.home-wellness-layout{padding:100px 0 65px}.home-wellness-layout .editorial-container{display:flex;flex-direction:column;gap:28px}.home-wellness-layout .wellness-editorial-photo{margin:0}.home-wellness-layout .wellness-editorial-photo img{height:380px}.home-wellness-layout .wellness-editorial-statement{margin:0;max-width:none;align-self:auto}.home-wellness-detail{display:none}
#main>.editorial-experiences{padding:65px 0}.editorial-experiences .experience-editorial-grid{grid-template-columns:1fr}.editorial-experiences .experience-editorial-card>img{height:280px}
}
.home-room-selection .editorial-container,.home-wellness-layout .editorial-container,.editorial-experiences .editorial-container{width:calc(100% - 12vw);max-width:1280px}
@media(max-width:800px){.home-room-selection .editorial-container,.home-wellness-layout .editorial-container,.editorial-experiences .editorial-container{width:calc(100% - 40px)}}

/* Shared typography across pages, navigation and banners. */
body h1,body h2,body h3,body h4,body h5,body h6{font-family:"SVN Recoleta",serif!important;font-weight:400!important}

/* Single-row masthead; navigation is available in the fullscreen menu. */
.site-header{grid-template-rows:108px;height:108px!important}
@media(min-width:801px){html{scroll-padding-top:125px}.page-room-detail .room-detail-heading{padding-top:160px}}
@media(max-width:800px){.site-header{grid-template-rows:88px;height:88px!important}}

/* Subtle separator below the shared masthead. */
.site-header{border-bottom:1px solid rgba(255,249,233,.28)!important}

/* Menu images switch immediately, then settle with a gentle zoom out. */
.site-menu .menu-photo{transition:none!important}
.site-menu .menu-photo .menu-preview{transition:none!important;animation:none;transform:scale(1);opacity:0}
.site-menu .menu-photo .menu-preview.is-current{opacity:1;animation:menu-background-zoom-out 1100ms cubic-bezier(.16,1,.3,1) both}
@keyframes menu-background-zoom-out{from{transform:scale(1.12)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.site-menu .menu-photo .menu-preview.is-current{animation:none}}

.dining-introduction .dining-decoration{transform:translate3d(0,var(--dining-drift,0px),0);transition:transform 180ms ease-out}
@media(prefers-reduced-motion:reduce){.dining-introduction .dining-decoration{transform:none;transition:none}}

/* Dining photos zoom within their fixed, rounded frames. */
.dining-highlight-card>.dining-venue-photo{width:100%;aspect-ratio:41/56;flex-shrink:0;overflow:hidden;border-radius:8px!important}
.dining-venue-photo>img{width:100%;height:100%;object-fit:cover}
.dining-venue-photo>img,.dining-highlight-card .venue-slider-track{transform:scale(1);transition:transform 650ms cubic-bezier(.22,1,.36,1);transform-origin:center}
@media(hover:hover){.dining-venue-photo:hover>img,.dining-highlight-card .venue-slider:hover .venue-slider-track{transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){.dining-venue-photo>img,.dining-highlight-card .venue-slider-track{transition:none}}

/* Opening times and clock icons share the same muted grey. */
.page-dining .venue-hours,.page-dining .venue-hours span{color:#a9b0a9!important}
.page-dining .venue-hours svg{color:inherit;opacity:1}

/* Portrait room cards advance one room at a time. */
#main>.home-room-carousel{padding:90px 0 85px;background:#faf8ed;overflow:hidden}
.home-room-carousel-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:0 3.2vw 55px}
.home-room-carousel-heading h2{text-align:left;font-size:clamp(36px,4.5vw,72px);line-height:1.15;margin:32px 0 0}
.home-room-view-all{flex-shrink:0;letter-spacing:.16em;text-transform:uppercase;font-size:14px;color:#457b44;padding-bottom:10px}
.home-room-carousel-window{overflow:hidden;padding-left:3.2vw}
.home-room-carousel-track{display:flex;gap:26px;will-change:transform}
.home-room-slide{flex:0 0 calc((100vw - 9.6vw - 78px)/3.7);min-width:0;color:#457b44}
.home-room-slide-photo{aspect-ratio:3/4;overflow:hidden;border-radius:8px!important}
.home-room-slide-photo img{width:100%;height:100%;object-fit:cover;transition:transform 650ms ease}
.home-room-slide h3{font-size:clamp(25px,2.4vw,38px);line-height:1.2;margin:23px 0 13px}
#main .home-room-slide-meta{font-size:11px!important;line-height:1.7;color:#2d312c;letter-spacing:.12em;text-transform:uppercase}
@media(hover:hover){.home-room-slide:hover img{transform:scale(1.04)}}
@media(max-width:800px){#main>.home-room-carousel{padding:65px 0}.home-room-carousel-heading{margin:0 20px 32px;display:block}.home-room-view-all{display:inline-block;margin-top:22px;font-size:12px}.home-room-carousel-window{padding-left:20px}.home-room-carousel-track{gap:20px}.home-room-slide{flex-basis:70vw}.home-room-slide h3{font-size:29px}}
@media(prefers-reduced-motion:reduce){.home-room-slide-photo img{transition:none}}

/* Room collection follows the reference's inset heading and right-edge peek. */
.home-room-carousel{--room-collection-inset:clamp(40px,17.4vw,340px);--room-collection-gap:clamp(18px,1.5vw,30px)}
#main>.home-room-carousel{padding-top:clamp(65px,4.5vw,90px);padding-bottom:clamp(65px,4.5vw,90px)}
.home-room-carousel-heading{margin-left:var(--room-collection-inset);margin-right:5vw;margin-bottom:clamp(30px,3vw,58px)}
.home-room-carousel-heading h2{font-size:clamp(36px,3.5vw,68px);margin-top:28px}
.home-room-carousel-window{padding-left:var(--room-collection-inset)}
.home-room-carousel-track{gap:var(--room-collection-gap)}
.home-room-slide{flex-basis:calc((100vw - var(--room-collection-inset) - 3 * var(--room-collection-gap))/3.85)}
.home-room-slide h3{font-size:clamp(24px,2vw,38px);margin-top:18px;margin-bottom:10px}
@media(max-width:800px){.home-room-carousel{--room-collection-inset:24px;--room-collection-gap:20px}.home-room-carousel-heading{margin-right:24px}.home-room-carousel-heading h2{font-size:38px}.home-room-slide{flex-basis:70vw}.home-room-slide h3{font-size:29px}}

/* Clip moving cards at the collection's left boundary. */
.home-room-carousel-window{margin-left:var(--room-collection-inset);padding-left:0;width:calc(100% - var(--room-collection-inset));overflow:hidden}

.home-room-carousel-window{position:relative}
.home-room-arrow{position:absolute;top:calc((100vw - var(--room-collection-inset) - 3 * var(--room-collection-gap))/3.85 * 2/3);z-index:3;display:grid;place-items:center;width:54px;height:54px;padding:0;border:1px solid #ffffff70;border-radius:50%!important;background:rgba(242,242,236,.88);color:#457b44;opacity:0;transform:translateY(-50%);transition:opacity .25s,background .25s;pointer-events:none}
.home-room-arrow span{font:300 35px/1 Arial,sans-serif;margin-top:-3px}
.home-room-arrow-prev{left:16px}.home-room-arrow-next{right:20px}
.home-room-carousel:hover .home-room-arrow,.home-room-carousel:focus-within .home-room-arrow{opacity:1;pointer-events:auto}
.home-room-arrow:hover{background:#fff}
@media(max-width:800px){.home-room-arrow{top:calc(70vw * 2/3);width:44px;height:44px}.home-room-arrow-prev{left:10px}.home-room-arrow-next{right:14px}}
@media(hover:none){.home-room-arrow{opacity:1;pointer-events:auto}}

/* Related rooms share the footer's content width and outer gutters. */
.page-room-detail #main>.other-rooms{width:calc(100% - 2 * var(--section-gutter));max-width:1440px;margin-inline:auto;padding:48px 0 80px}

/* Dining discovery: a changing portrait, venue names and a small food detail. */
#main>.home-dining-explore{display:block;margin:0;padding:80px var(--section-gutter) 90px;background:#457b44;color:#fff9e9;overflow:hidden}
.home-dining-container{max-width:1440px;margin:auto}
.home-dining-heading .section-eyebrow{color:#fff9e9}
.home-dining-heading h2{color:inherit;text-align:left;font-size:clamp(42px,4.8vw,76px);line-height:1.08;margin:32px 0 60px}
.home-dining-grid{display:grid;grid-template-columns:1.05fr 1fr .64fr;gap:6%;align-items:start}
.home-dining-preview{margin:0;background:#fff;border-radius:8px!important;overflow:hidden}
.home-dining-preview-frame{position:relative;aspect-ratio: .86;overflow:hidden}
.home-dining-preview-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none}
.home-dining-preview-frame img.is-active{opacity:1;animation:menu-background-zoom-out 900ms cubic-bezier(.16,1,.3,1) both}
.home-dining-preview figcaption{padding:26px 30px;text-align:center;color:#457b44;font-size:16px;line-height:1.6;min-height:130px;display:grid;place-items:center}
.home-dining-preview figcaption [hidden]{display:none}
.home-dining-options>p{color:inherit;line-height:1.7;padding-bottom:30px;border-bottom:1px solid #fff9e933}
.home-dining-options nav{display:flex;flex-direction:column;gap:22px;margin:45px 0 35px}
.home-dining-options nav a{font:400 clamp(27px,2.8vw,44px)/1.2 "SVN Recoleta",serif;position:relative;transition:color .2s}
.home-dining-options nav a.is-active,.home-dining-options nav a:hover{color:var(--gold)}
.home-dining-options nav a.is-active::before{content:'•';position:absolute;left:-22px;font-size:22px;top:7px}
.home-dining-more{display:inline-flex;align-items:center;gap:20px;padding:13px 24px;border:1px solid #fff9e933;border-radius:40px!important;font-size:12px;text-transform:uppercase;color:inherit}
.home-dining-side-photo{margin:140px 0 0}.home-dining-side-photo img{aspect-ratio:1.25;object-fit:cover;border-radius:8px!important}
@media(max-width:1000px){.home-dining-grid{grid-template-columns:1fr 1fr;gap:6%}.home-dining-side-photo{display:none}}
@media(max-width:700px){#main>.home-dining-explore{padding:60px 24px}.home-dining-heading h2{margin-bottom:35px}.home-dining-grid{grid-template-columns:1fr;gap:30px}.home-dining-preview-frame{aspect-ratio:1.1}.home-dining-options nav{margin:28px 0;gap:20px}.home-dining-options nav a{font-size:34px}.home-dining-options nav a.is-active::before{left:-16px}.home-dining-preview figcaption{min-height:0;padding:22px}}
@media(prefers-reduced-motion:reduce){.home-dining-preview-frame img.is-active{animation:none}}

/* Consistent small section titles without numbered badges. */
body #main .section-eyebrow,body #main .wellness-eyebrow{font-family:"SVN Poppins Light",Arial,sans-serif!important;font-size:14px!important;font-weight:500!important;font-style:normal;line-height:20px!important;letter-spacing:.12em!important;text-transform:uppercase;display:block}
.section-number{display:none!important}

/* Welcome: an oversized editorial introduction and layered hotel portraits. */
#main>.welcome-signature{padding:100px var(--section-gutter) 110px;background:#faf8ed;overflow:hidden}
.welcome-signature-container{max-width:1440px;margin:auto}
.welcome-signature-heading{position:relative;padding-bottom:48px;border-bottom:1px solid #457b4433;margin-bottom:50px}
body .welcome-signature #welcome-title{font-size:clamp(54px,6.8vw,108px);line-height:1.04;letter-spacing:-.035em;max-width:1000px;margin:26px 0 0;color:#457b44}
.welcome-signature #welcome-title em{font-style:normal;padding-left:8vw;color:#457b44}
#main .welcome-location{position:absolute;bottom:56px;right:0;font-size:13px!important;line-height:1.8;text-align:right;letter-spacing:.06em;color:#2d312c}
.welcome-signature-body{display:grid;grid-template-columns:1.55fr 1fr;gap:8%;align-items:start}
.welcome-signature-photo{margin:0;position:relative}
.welcome-signature-photo>img{width:100%;height:clamp(450px,42vw,680px);object-fit:cover;border-radius:180px 8px 8px 8px!important}
.welcome-signature-photo figcaption{margin-top:20px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#2d312c;display:flex;align-items:center;gap:18px}
.welcome-signature-photo figcaption::before{content:'';width:48px;height:1px;background:var(--gold)}
.welcome-signature .editorial-welcome-copy{padding:48px 0 0;max-width:none}
#main .welcome-signature .editorial-lead{font-size:24px!important;line-height:1.5;color:#457b44;margin:0 0 26px}
.welcome-signature .editorial-welcome-copy>p:not(.editorial-lead){line-height:1.8;margin-bottom:28px}
.welcome-signature-detail{position:relative;width:78%;margin:50px 0 0 -15%;padding:12px;background:#faf8ed}
.welcome-signature-detail img{width:100%;aspect-ratio:1.24;object-fit:cover;border-radius:6px!important}
.welcome-signature-detail figcaption{text-align:right;color:#457b44;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:16px 0 0}
@media(max-width:1000px){.welcome-signature-heading{padding-bottom:35px}.welcome-location{display:none}.welcome-signature-body{gap:6%;grid-template-columns:1.2fr 1fr}.welcome-signature-photo>img{height:580px}.welcome-signature .editorial-welcome-copy{padding-top:20px}.welcome-signature-detail{width:95%;margin-top:30px}}
@media(max-width:700px){#main>.welcome-signature{padding:60px 24px 70px}.welcome-signature-heading{margin-bottom:32px}body .welcome-signature #welcome-title{font-size:clamp(40px,9vw,60px)}.welcome-signature #welcome-title em{padding-left:4vw}.welcome-signature-body{grid-template-columns:1fr;gap:30px}.welcome-signature-photo>img{height:450px;border-radius:110px 6px 6px 6px!important}.welcome-signature .editorial-welcome-copy{padding:0}#main .welcome-signature .editorial-lead{font-size:22px!important}.welcome-signature-detail{width:70%;margin:35px 0 0 auto;padding:0}.welcome-signature-detail img{aspect-ratio:1.1}}

/* Updated gallery: consistent framing, subtle rounding and photo hover. */
.gallery-photo-frame{aspect-ratio:4/3;overflow:hidden;border-radius:8px!important;background:#e9e9e2}
.gallery-photo-frame img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:8px!important;transition:transform 650ms cubic-bezier(.22,1,.36,1)}
.gallery-item span{font-family:var(--font-body);font-size:14px;line-height:1.5;padding:16px 0 8px}
.gallery-filters button{font-family:var(--font-body);font-size:14px;border-radius:30px!important}
.page-gallery .gallery-full-photo{border-radius:8px!important;object-fit:contain}
@media(hover:hover){.gallery-item:hover .gallery-photo-frame img{transform:scale(1.04)}}
@media(prefers-reduced-motion:reduce){.gallery-photo-frame img{transition:none}}

/* Wellness title sits across the image edge, with copy below on the right. */
@media(min-width:801px){
.home-wellness-layout .editorial-container{grid-template-columns:1.4fr 1fr;gap:34px 5%}
.home-wellness-layout .wellness-editorial-heading{grid-column:1/-1;grid-row:1;margin-left:38%;width:52%;z-index:2}
.home-wellness-layout .wellness-editorial-heading h2{font-size:clamp(40px,4.2vw,64px);line-height:1.18;margin-top:22px}
.home-wellness-layout .wellness-editorial-photo{grid-column:1;grid-row:1 / 3;margin-top:125px}
.home-wellness-layout .wellness-editorial-statement{grid-column:2;grid-row:2;margin:130px 0 0;align-self:end;max-width:360px}
.home-wellness-layout .home-wellness-detail{top:155px;right:-11%}
}

/* Amenities hierarchy: titles lead, descriptions remain at the body size. */
body #main .comforts-heading h2{font-size:clamp(42px,4.5vw,68px);line-height:1.15}
body #main .comforts-grid h3{font-size:clamp(25px,2.1vw,32px);line-height:1.3}
body #main .all-amenities-grid h3{font-family:"SVN Recoleta",serif!important;font-size:24px;line-height:1.3;margin-bottom:10px}
@media(max-width:700px){body #main .comforts-heading h2{font-size:40px}body #main .comforts-grid h3{font-size:27px}body #main .all-amenities-grid h3{font-size:23px}}

/* Vimeo film covers the complete homepage banner, without letterboxing. */
.hero.hero-video{position:relative;width:100%;height:100svh;min-height:620px;overflow:hidden;background:#182315 url('../img/green--gem.jpg') center/cover}
.hero-video-frame{position:absolute;inset:0;overflow:hidden;pointer-events:none;container-type:size}
.hero-video-frame iframe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:max(100cqw,177.5cqh);height:max(100cqh,56.338cqw);max-width:none;border:0;display:block}
@media(max-width:700px){.hero.hero-video{height:100svh;min-height:640px}}

/* Closing invitation over the golden-hour rice fields. */
#main>.editorial-closing{background:linear-gradient(rgba(0,0,0,.38),rgba(0,0,0,.38)),url('../img/Golden-Hour-Rice-Field-Farmer.jpg') center/cover no-repeat;color:#fff9e9}
body #main .editorial-closing h2,.editorial-closing p{color:#fff9e9}
body #main .editorial-closing .section-eyebrow{color:#fff9e9}

.editorial-closing .editorial-primary.reservation{border-radius:999px!important;display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:19px 32px;background:#457b44;color:#fff9e9;border:1px solid transparent}

/* Destination backdrop is softly desaturated; card descriptions use body grey. */
#main>.editorial-experiences{position:relative;isolation:isolate;background:#343434}
#main>.editorial-experiences::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.5)),url('../img/destinations/anbang-beach.jpg') center/cover no-repeat;filter:grayscale(.8);pointer-events:none}
body #main .editorial-experiences .experience-editorial-card p{color:#2d312c}

/* Taller destination carousel with a single-card journey to the left. */
#main>.editorial-experiences{padding-top:120px;padding-bottom:120px}
.destination-carousel{position:relative}
.destination-carousel-window{overflow:hidden}
.editorial-experiences .experience-editorial-grid{display:flex;gap:28px;align-items:stretch;will-change:transform}
.editorial-experiences .experience-editorial-card{flex:0 0 calc((100% - 56px)/3);min-width:0}
.editorial-experiences .experience-editorial-card>img{height:340px;flex-shrink:0}
.editorial-experiences .destination-caption{padding:32px 28px;min-height:205px}
.destination-carousel-arrow{position:absolute;top:170px;transform:translateY(-50%);z-index:3;width:52px;height:52px;border-radius:50%!important;border:1px solid #ffffff80;background:rgba(242,242,236,.92);color:#457b44;padding:0;display:grid;place-items:center;font:300 35px/1 Arial,sans-serif}
.destination-carousel-prev{left:-26px}.destination-carousel-next{right:-26px}
.destination-carousel-arrow:hover{background:#fff}
@media(max-width:1000px){.editorial-experiences .experience-editorial-card{flex-basis:calc((100% - 28px)/2)}}
@media(max-width:700px){#main>.editorial-experiences{padding:75px 0}.editorial-experiences .experience-editorial-card{flex-basis:100%}.editorial-experiences .experience-editorial-card>img{height:320px}.destination-carousel-arrow{top:160px;width:44px;height:44px}.destination-carousel-prev{left:-12px}.destination-carousel-next{right:-12px}}

/* Crop the film's embedded top/bottom letterbox bands inside the hero. */
.hero-video-frame iframe{transform:translate(-50%,-50%) scale(1.22);transform-origin:center}

/* Six key amenities, balanced in two rows with matching line icons. */
.amenities-six .comforts-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 48px;margin-top:50px}
.amenities-six .comforts-grid>a{padding:28px 0 12px;display:grid;grid-template-rows:42px auto 1fr;align-content:start}
.amenities-six .comforts-grid svg{width:34px;height:34px;fill:none;stroke:#fff9e9;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
body #main .amenities-six .comforts-grid h3{font-size:clamp(22px,1.8vw,28px);line-height:1.35;margin:18px 0 14px;min-height:2.7em;text-wrap:balance}
body #main .amenities-six .comforts-grid p{font-size:16px!important;line-height:1.8;margin:0;max-width:34ch;color:#e4e8dc}
body #main .amenities-six .comforts-heading h2{font-size:clamp(38px,4vw,60px)}
@media(max-width:900px){.amenities-six .comforts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 32px}}
@media(max-width:550px){.amenities-six .comforts-grid{grid-template-columns:1fr;gap:20px;margin-top:35px}body #main .amenities-six .comforts-grid h3{min-height:0;font-size:25px}.amenities-six .comforts-grid>a{padding-top:24px}.amenities-six .comforts-heading{display:block}.amenities-six .comforts-heading>p{margin-top:22px;max-width:none}.amenities-six .comforts-heading .section-eyebrow{margin-bottom:20px}}

/* Shared responsive type scale for Prata and Plus Jakarta Sans. */
:root{--type-body:16px;--type-section:clamp(34px,3.5vw,54px);--type-card:clamp(23px,1.9vw,29px);--type-label:12px}
body{font-size:var(--type-body);line-height:1.75}
body #main p:not(.section-eyebrow):not(.wellness-eyebrow):not(.venue-hours):not(.other-room-meta):not(.room-editorial-meta):not(.home-room-slide-meta):not(.home-room-meta):not(.destination-category):not(.destination-transfer):not(.welcome-location){font-size:var(--type-body)!important;line-height:1.75}
body #main .section-eyebrow,body #main .wellness-eyebrow{font-size:var(--type-label)!important;line-height:1.6!important;letter-spacing:.16em!important}
body #main h2{font-size:var(--type-section);line-height:1.22;letter-spacing:-.025em}
body #main h3{font-size:var(--type-card);line-height:1.35;letter-spacing:-.02em}
body #main .comforts-grid h3{font-size:var(--type-card)}
body #main .comforts-heading h2{font-size:var(--type-section)}
body #main .welcome-signature #welcome-title{font-size:clamp(44px,5.7vw,86px);line-height:1.12;letter-spacing:-.035em}
body #main .welcome-signature .editorial-lead{font-size:var(--type-body)!important;line-height:1.6}
body #main .editorial-closing h2{font-size:clamp(42px,5vw,76px);line-height:1.18}
body.inner-page #main .page-hero h1{font-size:clamp(48px,6vw,88px);line-height:1.15;letter-spacing:-.035em}
body.page-room-detail #main .room-detail-heading h1{font-size:clamp(38px,4.6vw,66px);line-height:1.2}
body.inner-page .page-hero-copy p{font-family:var(--font-body)!important;font-size:var(--type-body)!important;line-height:1.7}
.home-dining-options nav a{font-size:clamp(27px,2.5vw,38px);line-height:1.35}
.site-menu .menu-navigation nav a{font-size:clamp(30px,3vw,46px);line-height:1.25}
.home-dining-preview figcaption,.gallery-item span{font-size:14px;line-height:1.7}
body .site-footer,body .site-footer address p{font-size:16px!important;line-height:1.8}
body .site-footer h3{font-size:clamp(24px,2.2vw,32px);line-height:1.4}
.site-footer .footer-main nav{font-size:15px;line-height:1.8}
.homepage-banner .booking-date-trigger,.homepage-banner .booking-guests-popover summary{font-size:16px}
@media(max-width:700px){
:root{--type-body:16px;--type-section:clamp(30px,7.5vw,38px);--type-card:24px;--type-label:11px}
body #main .welcome-signature #welcome-title{font-size:clamp(34px,8.4vw,48px)}
body #main .welcome-signature .editorial-lead{font-size:var(--type-body)!important}
body.inner-page #main .page-hero h1{font-size:clamp(38px,9vw,54px)}
body.page-room-detail #main .room-detail-heading h1{font-size:clamp(32px,8vw,42px)}
body #main .editorial-closing h2{font-size:clamp(38px,9vw,52px)}
.home-dining-options nav a{font-size:28px}
.site-menu .menu-navigation nav a{font-size:30px}
body .site-footer,body .site-footer address p{font-size:16px!important}
.homepage-banner .booking-date-trigger,.homepage-banner .booking-guests-popover summary{font-size:14px}
}

/* Heading sizes follow the responsive hierarchy defined for each section. */

/* Fixed masthead with a soft black fade. */
body .site-header{
 position:fixed;top:0;left:0;width:100%;
 background:transparent!important;
 -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
 border-bottom:0!important;box-shadow:none!important;
}
body .site-header::before,body .site-header .header-nav-main::before,body .site-header .header-nav-main::after{display:none!important}

/* Restore the solid masthead background after scrolling. */
body .site-header.is-scrolled{background:#457b44!important}

/* Compact fixed masthead after scrolling. */
body .site-header{transition:height .3s ease,grid-template-rows .3s ease,background-color .35s ease,color .35s ease}
body .site-header .brand{transition:width .3s ease}
body .site-header .brand img{transition:width .3s ease,max-height .3s ease,opacity .35s ease}
body .site-header.is-scrolled{height:76px!important;grid-template-rows:76px}
body .site-header.is-scrolled .brand,body .site-header.is-scrolled .brand img{width:120px!important}
body .site-header.is-scrolled .brand img{max-height:60px}
@media(max-width:800px){
 body .site-header.is-scrolled{height:68px!important;grid-template-rows:68px}
 body .site-header.is-scrolled .brand,body .site-header.is-scrolled .brand img{width:96px!important}
 body .site-header.is-scrolled .brand img{max-height:48px}
}

/* Centered accommodation cards inspired by the room collection reference. */
#main>.home-room-carousel{padding:64px 0 70px;background:#faf8ed;overflow:hidden}
.home-room-carousel-heading{display:block;text-align:center;margin:0 24px 36px}
.home-room-carousel-heading h2{text-align:center;margin:12px 0 0}
.home-room-carousel-window{--card-step:19%;position:relative;margin:0;width:100%;height:690px;padding:0;overflow:hidden;touch-action:pan-y}
.home-room-carousel-track{display:block;position:relative;width:100%;height:100%;transform:none!important}
.home-room-slide{position:absolute;left:50%;top:90px;width:17%;margin:0;background:#fff;color:#2d312c;box-shadow:0 5px 18px #00000009;transform:translateX(calc(-50% + var(--slot) * (100vw * .20)));transition:transform .55s ease,top .55s ease,width .55s ease,opacity .35s ease;opacity:1}
.home-room-slide[aria-hidden="true"]{opacity:0;pointer-events:none}
.home-room-slide.is-active{top:0;width:21%;z-index:2}
.home-room-slide-photo{height:350px;aspect-ratio:auto;border-radius:0!important;overflow:hidden}
.home-room-slide-photo img{width:100%;height:100%;object-fit:cover;border-radius:0!important}
.home-room-card-copy{text-align:center;padding:30px 18px}
body #main .home-room-slide h3{font-size:24px!important;line-height:1.25;letter-spacing:0;margin:0;min-height:64px;display:grid;place-items:center}
body #main .home-room-slide.is-active h3{font-size:30px!important;min-height:76px}
.home-room-card-detail{display:none}
.is-active .home-room-card-detail{display:block}
.is-active .home-room-card-detail::before{content:'';display:block;width:30px;height:1px;background:#457b44;margin:20px auto}
body #main .home-room-card-detail p{font-size:16px!important;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.home-room-card-actions{display:flex;justify-content:center;gap:5px;margin-top:26px}
.home-room-card-actions a,.home-room-card-actions .reservation{display:inline-flex;align-items:center;justify-content:center;padding:11px 14px;border:1px solid #dcded7;border-radius:0!important;font:400 11px/1.4 var(--font-body);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;color:#2d312c;background:#fff}
.home-room-card-actions .reservation{background:#457b44;border-color:#457b44;color:#fff9e9}
.home-room-card-actions a:hover{background:#eef0e8;color:var(--green-hover)}
.home-room-arrow{top:340px;opacity:1;pointer-events:auto;width:36px;height:50px;border:0;background:transparent;font:300 38px/1 Arial,sans-serif;color:#777;transform:translateY(-50%)}
.home-room-arrow-prev{left:3px}.home-room-arrow-next{right:3px}
@media(min-width:1800px){.home-room-slide-photo{height:410px}.home-room-carousel-window{height:750px}}
@media(max-width:1100px){
 .home-room-slide{width:27%;transform:translateX(calc(-50% + var(--slot) * (100vw * .32)))}
 .home-room-slide.is-active{width:33%}
 .home-room-slide-photo{height:320px}
 .home-room-carousel-window{height:690px}
}
@media(max-width:700px){
 #main>.home-room-carousel{padding:48px 0}
 .home-room-carousel-heading{margin:0 22px 28px}
 .home-room-slide{top:45px;width:70%;transform:translateX(calc(-50% + var(--slot) * (100vw * .80)))}
 .home-room-slide.is-active{width:76%}
 .home-room-slide-photo{height:300px}
 .home-room-card-copy{padding:24px 18px}
 body #main .home-room-slide.is-active h3{font-size:28px!important}
 .home-room-carousel-window{height:650px}
 .home-room-arrow{top:260px;background:#ffffffd9;width:30px;height:44px}
}
@media(prefers-reduced-motion:reduce){.home-room-slide{transition:none}}

/* Shared cream circle and fine green arrow. */
:root{--arrow-cream:#eeecdf;--arrow-green:#457b44;--arrow-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 12h14m-6-6 6 6-6 6' fill='none' stroke='black' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
body .gem-arrow-control,body .gem-arrow-icon{
 display:inline-flex!important;align-items:center!important;justify-content:center!important;
 width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important;flex-shrink:0!important;
 padding:0!important;border:0!important;border-radius:50%!important;background:var(--arrow-cream)!important;color:var(--arrow-green)!important;
 font-size:0!important;line-height:1!important;letter-spacing:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
 vertical-align:middle;transition:background-color .2s ease,opacity .2s ease;
}
body .gem-arrow-icon{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}
body .gem-arrow-control::before,body .gem-arrow-icon::before{display:none!important}
body .gem-arrow-control::after,body .gem-arrow-icon::after{content:''!important;display:block!important;position:static!important;width:20px!important;height:20px!important;margin:0!important;border:0!important;background:var(--arrow-green)!important;-webkit-mask:var(--arrow-mask) center/contain no-repeat!important;mask:var(--arrow-mask) center/contain no-repeat!important;transform:none;opacity:1!important}
body .gem-arrow-control>*{display:none!important}
body [data-arrow-direction="left"]::after{transform:rotate(180deg)!important}
body [data-arrow-direction="up"]::after{transform:rotate(-90deg)!important}
body [data-arrow-direction="down"]::after{transform:rotate(90deg)!important}
body [data-arrow-direction="diagonal"]::after{transform:rotate(-45deg)!important}
body .gem-arrow-control:hover,body a:hover>.gem-arrow-icon{background:#e3e1d1!important}
body .gem-arrow-control:disabled{opacity:.35!important}
body .footer-back-top svg.gem-arrow-icon{padding:11px!important;fill:none!important;stroke:var(--arrow-green)!important;stroke-width:1.2!important}
body .site-header .reservation .gem-arrow-icon,body .site-menu .reservation .gem-arrow-icon,body .booking-bar-submit .gem-arrow-icon{margin-left:12px;font-size:0!important}
@media(max-width:700px){body .gem-arrow-control{width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important}}

/* Balanced Plus Jakarta Sans room names in the home collection. */
body #main .home-room-slide h3{
 font-family:"SVN Recoleta",serif!important;
 font-size:clamp(14px,1.15vw,18px)!important;
 font-weight:400!important;line-height:1.5;letter-spacing:.035em;
 text-transform:uppercase;min-height:60px;
}
body #main .home-room-slide.is-active h3{
 font-size:clamp(18px,1.45vw,23px)!important;
 font-weight:500!important;line-height:1.4;min-height:68px;
}
@media(max-width:700px){
 body #main .home-room-slide h3{font-size:16px!important}
 body #main .home-room-slide.is-active h3{font-size:20px!important}
}

/* Keep the homepage amenities section hidden. */
#main > .amenities-six[hidden]{display:none!important}

/* Spa section background. */
#main > .home-wellness-layout{
 background-image:url('../img/bg.jpg');
 background-position:center;
 background-size:cover;
 background-repeat:no-repeat;
}

/* Text actions do not display decorative arrows. */
body a .gem-arrow-icon,
body button:not(.gem-arrow-control) .gem-arrow-icon,
body .footer-back-top svg.gem-arrow-icon{display:none!important}

/* Scrolled masthead matches the Welcome section's cream background. */
body .site-header.is-scrolled{background:#faf8ed!important;color:#457b44}
body .site-header.is-scrolled .brand::after{background:#457b44}
body .site-header.is-scrolled .menu-toggle span{background:#457b44}
body .site-header.is-scrolled .header-phone,
body .site-header.is-scrolled .header-nav a{color:#457b44}
body .site-header.is-scrolled .header-phone{border-color:rgba(69,123,68,.2)}
body .site-header.is-scrolled .header-contact .reservation{background:transparent;color:#457b44;border-color:rgba(69,123,68,.35)}
body .site-header.is-scrolled .header-contact .reservation:hover{background:var(--green-hover);color:#f2f2ec;border-color:var(--green-hover)}

/* Extended, gradual fade behind the initial masthead. */
body .site-header:not(.is-scrolled){isolation:isolate}
body .site-header:not(.is-scrolled)::before{
 content:"";display:block!important;position:absolute;inset:0 0 auto;
 height:230px;z-index:-1;pointer-events:none;opacity:1;
 background:linear-gradient(to bottom,rgba(0,0,0,.76) 0%,rgba(0,0,0,.69) 15%,rgba(0,0,0,.56) 30%,rgba(0,0,0,.40) 45%,rgba(0,0,0,.25) 60%,rgba(0,0,0,.12) 75%,rgba(0,0,0,.035) 90%,rgba(0,0,0,0) 100%);
}
@media(max-width:800px){body .site-header:not(.is-scrolled)::before{height:190px}}

/* Subtle rounded corners for room cards and their images. */
body .home-room-slide{border-radius:6px!important;overflow:hidden}
body .home-room-slide .home-room-slide-photo,
body .home-room-slide .home-room-slide-photo img{border-radius:6px 6px 0 0!important}
body .room-list-row .room-list-image,
body .room-list-row .room-list-image img,
body .other-rooms .other-room,
body .other-rooms .other-room img{border-radius:6px!important}

/* Canela Light venue names in the homepage dining selector. */
body .home-dining-options nav a{
 font-family:"SVN Recoleta",serif!important;
 font-weight:300;
}

@font-face{font-family:"Canela-Light";src:url("../fonts/Canela-Light.ttf") format("truetype");font-weight:300;font-style:normal;font-display:swap}
body.page-dining .dining-marquee span{font-family:"SVN Recoleta",serif!important;font-weight:300;font-style:normal}

/* Plus Jakarta Sans headings throughout Destination and its homepage preview. */
body.page-destination #main h1,
body.page-destination #main h2,
body.page-destination #main h3,
body #main .editorial-experiences h2,
body #main .editorial-experiences h3,
body #main .destination-section h2,
body #main .destination-section h3{
 font-family:"SVN Recoleta",serif!important;
 font-weight:400!important;
}

/* Destination card names share the responsive card scale. */
body.page-destination #main .destination-stop h2,
body #main .destination-section .destination-caption h3{font-size:var(--type-card)}

/* Footer: brand row, four balanced columns, and a separate copyright row. */
body .site-footer.footer-columns{padding:48px 5.5% 28px}
.footer-columns .footer-top{max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:28px;padding-bottom:30px;border-bottom:1px solid #adb89d}
.footer-columns .footer-top .footer-logo{width:180px;max-width:55%;margin:0}
.footer-columns .footer-top .footer-social{margin:0;justify-content:flex-end;gap:14px}
body .footer-columns .footer-main{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1.15fr .7fr .7fr 1.45fr;gap:40px;align-items:start;min-height:0;padding:38px 0 42px}
body .footer-columns .footer-main address{padding:0;text-align:left;align-self:start;font-style:normal}
body .footer-columns .footer-main address p{margin:0 0 12px;line-height:1.8}
body .footer-columns .footer-main nav{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:12px;padding:0;text-align:left;font-family:var(--font-body);font-size:16px;line-height:1.8}
body .footer-columns .footer-subscribe{grid-column:auto;grid-row:auto;border:0;padding:0;text-align:left;align-items:stretch;justify-content:flex-start}
body .footer-columns .footer-subscribe h3{font-family:"SVN Recoleta",serif!important;font-size:20px!important;line-height:1.5;text-align:left;margin:0 0 18px;text-wrap:balance}
.footer-columns .footer-subscribe .subscribe-form{width:100%;max-width:none}
.footer-columns .subscribe-note{text-align:left;margin-top:12px}
body .footer-columns .footer-bottom{border-top:1px solid #adb89d;padding-top:22px;gap:20px}
@media(max-width:1000px){body .footer-columns .footer-main{grid-template-columns:1fr 1fr;gap:32px 40px}}
@media(max-width:600px){
 body .site-footer.footer-columns{padding:34px 24px 24px}
 .footer-columns .footer-top{padding-bottom:24px;gap:20px}
 .footer-columns .footer-top .footer-logo{width:145px}
 .footer-columns .footer-top .footer-social{gap:8px}
 .footer-columns .footer-top .footer-social a{width:36px;height:36px}
 body .footer-columns .footer-main{grid-template-columns:1fr 1fr;gap:28px 20px;padding:28px 0}
 body .footer-columns .footer-main address,body .footer-columns .footer-subscribe{grid-column:1/-1}
 body .footer-columns .footer-main address p{margin-bottom:8px}
 body .footer-columns .footer-bottom{align-items:flex-start;flex-direction:column;gap:12px}
}

/* Newsletter submit arrow sits naturally inside the email field. */
body .site-footer .subscribe-form button.gem-arrow-control{
 width:52px!important;min-width:52px!important;height:52px!important;min-height:52px!important;
 border-radius:0!important;background:transparent!important;align-self:center;
}
body .site-footer .subscribe-form button.gem-arrow-control::after{background:var(--white)!important;width:22px!important;height:22px!important}
body .site-footer .subscribe-form button.gem-arrow-control:hover{background:rgba(255,249,233,.12)!important}
body .site-footer .subscribe-form button.gem-arrow-control:focus-visible{outline:2px solid var(--white);outline-offset:-4px}

/* Soft corners for the newsletter email form. */
body .site-footer .subscribe-form{border-radius:6px!important;overflow:hidden}

/* Fine-line contact icons aligned with the footer details. */
body .footer-columns .footer-main address .footer-contact-row{display:flex;align-items:flex-start;gap:12px}
.footer-contact-icon{display:block;width:19px;height:19px;flex:0 0 19px;margin-top:5px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.footer-contact-row>a,.footer-contact-row>span{min-width:0;overflow-wrap:anywhere}

/* Subtle corners on Destination cards across the site. */
body .editorial-experiences .experience-editorial-card,
body .destination-guide-grid .destination-stop,
body .destination-section .destination-card{border-radius:6px!important;overflow:hidden}
body .editorial-experiences .experience-editorial-card>img,
body .destination-guide-grid .destination-stop>img{border-radius:6px 6px 0 0!important}

/* Clean white Destination cards without borders. */
body .editorial-experiences .experience-editorial-card,
body .destination-guide-grid .destination-stop,
body .destination-section .destination-card{border:0!important;background:#fff!important;box-shadow:none!important}

/* Canela typography for the fullscreen navigation menu. */
body .site-menu .menu-navigation nav a{font-family:"SVN Recoleta",serif!important;font-weight:400}

/* Soft corners on the room card actions. */
body .home-room-card-actions a,
body .home-room-card-actions .reservation{border-radius:6px!important}

/* Consistent action buttons across content sections. */
body #main :is(.editorial-link,.editorial-primary,.home-dining-more,.section-link,.page-link,.room-list-link,.spa-text-link,.room-detail-book,.destination-page-link,.home-room-view-all,.welcome-story-link,.dining-feature-link,.book-button,.detail-button,.reservation,.home-room-card-actions a,.booking-bar-submit),
body .detail-dialog a.reservation{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 min-height:44px;padding:12px 20px!important;width:auto;
 border:1px solid #457b44!important;border-radius:6px!important;
 background:#457b44!important;color:#fff9e9!important;
 font:400 11px/1.5 "SVN Poppins Light",Arial,sans-serif!important;
 letter-spacing:.04em!important;text-transform:uppercase;
 text-decoration:none!important;box-shadow:none;white-space:normal;text-align:center;
 transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
body #main :is(.editorial-link,.home-dining-more,.section-link,.page-link,.room-list-link,.spa-text-link,.destination-page-link,.home-room-view-all,.welcome-story-link,.dining-feature-link,.detail-button),
body #main .home-room-card-actions a:not(.reservation){
 background:#fff!important;color:#457b44!important;border-color:#dcded7!important;
}
body #main :is(.editorial-link,.editorial-primary,.home-dining-more,.section-link,.page-link,.room-list-link,.spa-text-link,.room-detail-book,.destination-page-link,.home-room-view-all,.welcome-story-link,.dining-feature-link,.book-button,.detail-button,.reservation,.home-room-card-actions a,.booking-bar-submit):hover{
 background:#4e724d!important;color:#fff9e9!important;border-color:#4e724d!important;text-decoration:none!important;
}
body #main :is(.editorial-link,.section-link,.page-link,.room-list-link,.spa-text-link,.room-detail-book,.destination-page-link)::after{display:none!important}
body .site-header .header-contact .reservation,
body .site-menu .menu-header .header-contact .reservation{border-radius:6px!important;font-family:"SVN Poppins Light",Arial,sans-serif!important}

/* Plus Jakarta Sans names for related room cards. */
body #main .other-rooms .other-room h3{
 font-family:"SVN Recoleta",serif!important;
 font-size:28px!important;font-weight:400!important;line-height:1.4;letter-spacing:0;
}

/* Restrained Destination hover motion and soft depth. */
body .editorial-experiences .experience-editorial-card,
body .destination-guide-grid .destination-stop,
body .destination-section .destination-card{
 transition:transform .6s cubic-bezier(.22,1,.36,1),box-shadow .6s ease;
}
body .editorial-experiences .experience-editorial-card>img,
body .destination-guide-grid .destination-stop>img,
body .destination-section .destination-card>img{
 transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter 1.1s ease,clip-path 1.1s cubic-bezier(.22,1,.36,1);
 clip-path:inset(0);transform:scale(1);filter:none;
}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 body .editorial-experiences .experience-editorial-card:hover,
 body .destination-guide-grid .destination-stop:hover,
 body .destination-section .destination-card:hover{
  transform:translateY(-4px);box-shadow:0 14px 32px rgba(42,49,31,.10)!important;
 }
 body .editorial-experiences .experience-editorial-card:hover>img,
 body .destination-guide-grid .destination-stop:hover>img,
 body .destination-section .destination-card:hover>img{
  transform:scale(1.035);clip-path:inset(1.7%);filter:brightness(1.025) saturate(1.025);
 }
}
@media(prefers-reduced-motion:reduce){
 body .editorial-experiences .experience-editorial-card,
 body .destination-guide-grid .destination-stop,
 body .destination-section .destination-card,
 body .editorial-experiences .experience-editorial-card>img,
 body .destination-guide-grid .destination-stop>img,
 body .destination-section .destination-card>img{transition:none;transform:none;filter:none}
}

/* Refined travel-time typography and spacing in Destination cards. */
body #main .destination-guide-grid .destination-stop-copy{padding:26px 24px 28px}
body #main .destination-guide-grid .destination-category{font-size:10px;letter-spacing:.14em;line-height:1.6}
body #main .destination-guide-grid .destination-stop h2{line-height:1.4;margin:14px 0 20px;min-height:2.8em}
body #main .destination-guide-grid .destination-stop .destination-transfer{
 font-family:"SVN Poppins Light",Arial,sans-serif;
 font-size:14px!important;font-weight:400!important;line-height:1.85!important;letter-spacing:.015em;
 color:var(--gold);min-height:4.7em;margin:0 0 20px;padding:0 0 16px;
 border-bottom:1px solid rgba(164,116,73,.16);
}
body #main .destination-guide-grid .destination-transfer strong{font-size:inherit;font-weight:400}
body #main .destination-guide-grid .destination-stop-copy>p:not(.destination-transfer){line-height:1.85;margin-bottom:20px}
@media(max-width:600px){
 body #main .destination-guide-grid .destination-stop-copy{padding:24px}
 body #main .destination-guide-grid .destination-stop h2{min-height:0;margin-bottom:16px}
 body #main .destination-guide-grid .destination-stop .destination-transfer{min-height:0}
}

/* Consistent Canela headings throughout the website. */
body h1,body h2,body h3,body h4,body h5,body h6{font-family:"SVN Recoleta",serif!important;font-weight:400!important}
body #main .destination-page-content .destination-page-intro,
body #main .destination-page-content .destination-page-intro h2{color:#457b44}
body #main .destination-page-content .destination-page-intro p{color:#2d312c}

/* Canela for About headings, including the nested slogan text. */
body.page-about #main h1,
body.page-about #main h2,
body.page-about #main h3,
body #main #about .slogan-text,
body #main #about .slogan-text>span:not(.slogan-leaf){font-family:"SVN Recoleta",serif!important;font-weight:400!important}

/* Footer signature and compact social links below the contact details. */
.footer-columns .footer-top .footer-slogan{
 margin:0;color:var(--white);font-family:"SVN Recoleta",serif;
 font-size:clamp(24px,2.4vw,36px);font-weight:400;line-height:1.3;
 letter-spacing:.01em;text-align:right;text-wrap:balance;
}
.footer-columns .footer-contact-group{min-width:0}
.footer-columns .footer-contact-group .footer-social{justify-content:flex-start;gap:10px;margin:18px 0 0 31px}
.footer-columns .footer-contact-group .footer-social a{width:32px;height:32px;border:1px solid rgba(255,249,233,.4);border-radius:50%!important}
.footer-columns .footer-contact-group .footer-social svg{width:15px;height:15px;stroke-width:1.5}
@media(max-width:600px){
 body .footer-columns .footer-main .footer-contact-group{grid-column:1/-1}
 .footer-columns .footer-top .footer-logo{flex:0 0 125px}
 .footer-columns .footer-top .footer-slogan{font-size:23px;max-width:180px}
}

/* Original SVG slogan in the footer brand row. */
.footer-columns .footer-top .footer-slogan{width:clamp(180px,20vw,260px);max-width:50%;flex-shrink:1}
.footer-columns .footer-top .footer-slogan img{display:block;width:100%;height:auto;object-fit:contain;filter:brightness(0) saturate(100%) invert(91%) sepia(20%) saturate(320%) hue-rotate(342deg)}
@media(max-width:600px){.footer-columns .footer-top .footer-slogan{width:150px;max-width:45%}}

/* Compact, consistent spacing between destination names and travel times. */
body #main .destination-guide-grid .destination-stop h2{
 min-height:0;margin:12px 0 12px;line-height:1.3;
}
body #main .destination-guide-grid .destination-stop .destination-transfer{
 min-height:0;margin:0 0 16px;padding:0 0 14px;line-height:1.7!important;
}

/* Unified gold for section labels and destination travel information. */
body #main .section-eyebrow,
body #main .wellness-eyebrow,
body #main .destination-category,
body #main .destination-transfer,
body #main .destination-transfer strong{color:var(--gold)!important}

/* Plus Jakarta Sans names for related rooms, preserving the 28px size. */
body #main .other-rooms .other-room h3{
 font-family:"SVN Poppins Light",Arial,sans-serif!important;
 font-size:28px!important;font-weight:400!important;line-height:1.4;letter-spacing:0;
}

/* Solid green booking action in the masthead and menu. */
body .site-header .header-contact .reservation,
body .site-header.is-scrolled .header-contact .reservation,
body .site-menu .menu-header .header-contact .reservation{
 background:#457b44!important;color:#fff!important;border-color:#457b44!important;
}
body .site-header .header-contact .reservation:hover,
body .site-header.is-scrolled .header-contact .reservation:hover,
body .site-menu .menu-header .header-contact .reservation:hover{
 background:#4e724d!important;color:#fff!important;border-color:#4e724d!important;
}

/* Booking form corners match the site's shared button and form radius. */
body #main .homepage-banner .banner-booking,
body #main .homepage-banner .banner-booking .booking-bar-submit{border-radius:6px!important}

/* Borderless booking bar. */
body #main .homepage-banner .banner-booking{border:0!important}

/* Plus Jakarta Sans titles in the homepage Destination cards. */
body #main .editorial-experiences .experience-editorial-card h3{
 font-family:"SVN Poppins Light",Arial,sans-serif!important;
 font-size:28px!important;font-weight:400!important;line-height:1.4;letter-spacing:0;
}

/* Hide the homepage closing field banner. */
body #main > .editorial-closing[hidden]{display:none!important}

/* A light riverside backdrop for the homepage Destination collection. */
body #main > .editorial-experiences{
 background:linear-gradient(135deg,#faf8f1 0%,#f1f3e9 55%,#f7f3e9 100%);
 color:#457b44;padding-top:90px;padding-bottom:100px;
}
body #main > .editorial-experiences::before{
 background:url('../img/destination-river-lines.svg') center/cover no-repeat;
 filter:none;opacity:1;
}
body #main .editorial-experiences .experience-editorial-heading h2{color:#457b44}
body #main .editorial-experiences .experience-editorial-heading p{color:#2d312c}
body #main .editorial-experiences .experience-editorial-heading{position:relative;padding-top:26px}
body #main .editorial-experiences .experience-editorial-heading::before{
 content:'';position:absolute;top:0;left:0;width:64px;height:1px;background:var(--gold);
}
body #main .editorial-experiences .destination-carousel-window{padding-top:6px;padding-bottom:24px;margin-top:-6px;margin-bottom:-24px}
@media(max-width:700px){body #main > .editorial-experiences{padding-top:58px;padding-bottom:64px}}

/* White background for the homepage Spa section. */
body #main > .home-wellness-layout{background:#fff}

/* Full-section Spa photography. */
body #main > .home-wellness-layout{
 background-color:#fff;
 background-image:url('../img/the-gem-spa-bag.jpg');
 background-position:center;
 background-repeat:no-repeat;
 background-size:cover;
}

/* A delicate leaf marks the selected dining venue. */
body .home-dining-options nav a{transition:color .35s ease}
body .home-dining-options nav a::before{
 content:'';position:absolute;left:-36px;top:50%;width:25px;height:14px;
 background:var(--gold);-webkit-mask:url('../img/leaf-icon.svg') center/contain no-repeat;mask:url('../img/leaf-icon.svg') center/contain no-repeat;
 opacity:0;transform:translate(-7px,-50%) rotate(-12deg);
 transition:opacity .4s ease,transform .5s cubic-bezier(.22,1,.36,1);pointer-events:none;
}
body .home-dining-options nav a:is(.is-active,:hover,:focus-visible)::before{
 opacity:1;transform:translate(0,-50%) rotate(0);
}
body .home-dining-options nav a:focus-visible{color:var(--gold)}
@media(max-width:700px){
 body .home-dining-options nav{padding-left:28px}
 body .home-dining-options nav a::before{left:-29px;width:20px;height:12px}
}
@media(prefers-reduced-motion:reduce){body .home-dining-options nav a,body .home-dining-options nav a::before{transition:none}}

/* Dining venue labels without decorative markers. */
body .home-dining-options nav a::before{content:none!important;display:none!important}
@media(max-width:700px){body .home-dining-options nav{padding-left:0}}

/* Subtle white outline for the dining discovery button. */
body #main .home-dining-options .home-dining-more{border:1px solid rgba(255,255,255,.4)!important}
body #main .home-dining-options .home-dining-more:hover{border-color:rgba(255,255,255,.65)!important}

/* Centered, balanced Spa section heading. */
body #main .home-wellness-layout .wellness-editorial-heading{
 grid-column:1/-1;width:100%;max-width:680px;margin:0 auto;text-align:center;
}
body #main .home-wellness-layout .wellness-editorial-heading .section-eyebrow{text-align:center}
body #main .home-wellness-layout .wellness-editorial-heading h2{
 text-align:center;margin:18px 0 30px;line-height:1.25;
}

/* Balanced vertical rhythm for the Spa heading and imagery. */
body #main > .home-wellness-layout{padding-top:72px;padding-bottom:80px}
body #main .home-wellness-layout .editorial-container{row-gap:36px}
body #main .home-wellness-layout .wellness-editorial-heading{grid-row:1}
body #main .home-wellness-layout .wellness-editorial-heading h2{margin:16px 0 0}
body #main .home-wellness-layout .wellness-editorial-photo{grid-row:2;grid-column:1;margin-top:0}
body #main .home-wellness-layout .wellness-editorial-statement{grid-row:2;margin-top:0;align-self:center}
@media(max-width:700px){
 body #main > .home-wellness-layout{padding-top:48px;padding-bottom:56px}
 body #main .home-wellness-layout .editorial-container{gap:28px}
 body #main .home-wellness-layout .wellness-editorial-heading h2{margin:14px 0 0}
}

/* Let the Spa title read continuously without a forced line break. */
body #main .home-wellness-layout .wellness-editorial-heading{max-width:100%}
body #main .home-wellness-layout .wellness-editorial-heading h2{text-wrap:wrap}

/* Landscape photography and compact proportions for the room collection. */
body #main .home-room-carousel-window{height:550px}
body #main .home-room-slide{top:52px}
body #main .home-room-slide.is-active{top:0}
body #main .home-room-slide-photo{height:auto;aspect-ratio:4/3}
body #main .home-room-slide-photo img{height:100%;object-position:center}
body #main .home-room-card-copy{padding:24px 18px}
body #main .home-room-slide h3{min-height:54px;line-height:1.35}
body #main .home-room-slide.is-active h3{min-height:60px}
body #main .is-active .home-room-card-detail::before{margin:16px auto}
body #main .home-room-card-actions{margin-top:20px;flex-wrap:wrap}
body #main .home-room-arrow{top:185px}
@media(min-width:1800px){body #main .home-room-carousel-window{height:610px}}
@media(max-width:1100px){body #main .home-room-carousel-window{height:570px}}
@media(max-width:700px){
 body #main .home-room-carousel-window{height:570px}
 body #main .home-room-slide{top:30px}
 body #main .home-room-slide.is-active{top:0}
 body #main .home-room-slide-photo{height:auto;aspect-ratio:4/3}
 body #main .home-room-card-copy{padding:22px 18px}
 body #main .home-room-arrow{top:170px}
}

/* Larger room photography with equal gaps around the featured card. */
@media(min-width:1101px){
 body #main .home-room-slide{
  width:18%;
  transform:translateX(calc(-50% + var(--slot) * 19.2vw + var(--side) * 2.5vw));
 }
 body #main .home-room-slide.is-active{width:23%}
 body #main .home-room-carousel-window{height:590px}
 body #main .home-room-arrow{top:200px}
}
@media(min-width:1800px){body #main .home-room-carousel-window{height:650px}}
@media(min-width:701px) and (max-width:1100px){
 body #main .home-room-slide{width:29%;transform:translateX(calc(-50% + var(--slot) * 33.5vw + var(--side) * 1.5vw))}
 body #main .home-room-slide.is-active{width:34%}
}

/* Canela room names in the homepage collection. */
body #main .home-room-slide h3,
body #main .home-room-slide.is-active h3{
 font-family:"SVN Recoleta",serif!important;font-weight:400!important;
 color:var(--green);
}

/* Three generous room cards with a prominent central selection. */
@media(min-width:701px){
 body #main .home-room-carousel-window{
  --room-stage:min(1600px,calc(100vw - 96px));
  width:var(--room-stage);max-width:1600px;margin-inline:auto;
  height:clamp(590px,calc(var(--room-stage) * .255 + 300px),740px);
  overflow:visible;
 }
 body #main .home-room-slide{
  width:28%;top:48px;
  transform:translateX(calc(-50% + var(--slot) * var(--room-stage) * .33));
 }
 body #main .home-room-slide.is-active{width:34%;top:0}
 body #main .home-room-slide[aria-hidden="true"]{visibility:hidden}
 body #main .home-room-slide-photo{aspect-ratio:4/3}
 body #main .home-room-card-copy{padding:26px 24px}
 body #main .home-room-slide h3{font-size:clamp(17px,1.3vw,22px)!important;min-height:60px}
 body #main .home-room-slide.is-active h3{font-size:clamp(21px,1.55vw,27px)!important;min-height:64px}
 body #main .home-room-arrow{top:calc(var(--room-stage) * .125);z-index:4}
 body #main .home-room-arrow-prev{left:-24px}
 body #main .home-room-arrow-next{right:-24px}
}
@media(max-width:700px){body #main .home-room-slide[aria-hidden="true"]{visibility:hidden}}

/* Centered route to the full room collection. */
body #main .home-room-collection-footer{display:flex;justify-content:center;margin:16px 24px 0;position:relative;z-index:2}
body #main .home-room-collection-footer .home-room-view-all{min-width:170px}

/* Green outline for the full room collection action. */
body #main .home-room-collection-footer .home-room-view-all{
 color:#457b44!important;border-color:#457b44!important;background:transparent!important;
}
body #main .home-room-collection-footer .home-room-view-all:hover{
 color:#fff!important;border-color:var(--green-hover)!important;background:var(--green-hover)!important;
}

/* Cards travel beyond the collection edge before being clipped. */
body #main .home-room-carousel-track{overflow:hidden}
body #main .home-room-slide[aria-hidden="true"]{opacity:1;visibility:visible}

/* Final visual rhythm: preserve section geometry, imagery and brand surfaces. */
:root{
 --type-section:clamp(32px,3.2vw,48px);
 --type-card:clamp(23px,1.9vw,28px);
 --gem-ease:cubic-bezier(.22,1,.36,1);
}
body{ text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased }
body #main :is(h1,h2,h3){text-wrap:balance}
body #main p{ text-wrap:pretty }
body #main .welcome-signature #welcome-title{
 font-size:clamp(38px,4.5vw,64px);line-height:1.16;letter-spacing:-.03em;
}
body.inner-page #main .page-hero h1{
 font-size:clamp(44px,5.6vw,80px);line-height:1.16;letter-spacing:-.025em;
}
body.page-room-detail #main .room-detail-heading h1{
 font-size:clamp(36px,4.5vw,64px);line-height:1.2;
}
body #main :is(.home-room-carousel-heading,.experience-editorial-heading,.home-wellness-layout) h2{
 font-size:var(--type-section);line-height:1.22;letter-spacing:-.025em;
}
body.page-wellness #main :is(.spa-intro,.spa-services-heading) h2,
body.page-dining #main .dining-introduction h2{
 font-size:var(--type-section);line-height:1.25;margin-block:24px 32px;
}
body #main .welcome-signature .editorial-lead{
 font-size:clamp(17px,1.35vw,20px)!important;line-height:1.65;margin-bottom:24px;
}
body #main .editorial-experiences .experience-editorial-card h3,
body #main .other-rooms .other-room h3{
 font-family:"SVN Recoleta",serif!important;
 font-size:clamp(23px,1.9vw,28px)!important;line-height:1.3;letter-spacing:-.015em;
}
body #main .home-room-slide h3{letter-spacing:.01em}
body #main .home-room-card-detail p{line-height:1.7}
body #main .home-room-card-copy{padding-block:24px}
body #main .is-active .home-room-card-detail::before{margin:18px auto}
body #main .home-room-card-actions{margin-top:22px;gap:8px}
body #main :is(.editorial-link,.page-link,.section-link,.destination-page-link,.home-room-view-all){
 line-height:1.5;letter-spacing:.09em;
}
body :is(a,button,input,select,textarea):focus-visible{
 outline:2px solid var(--gold);outline-offset:4px;
}
body :is(.reservation,.editorial-link,.page-link,.section-link,.home-room-view-all,.home-room-card-actions a,.gallery-filters button){
 transition:background-color .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease;
}
body #main .home-room-slide{
 transition:transform .65s var(--gem-ease),top .65s var(--gem-ease),width .65s var(--gem-ease);
}
body .footer-columns .footer-main nav a{line-height:1.8}
@media(max-width:700px){
 :root{--type-section:clamp(30px,7.5vw,38px);--type-card:24px}
 body #main .welcome-signature #welcome-title{font-size:clamp(34px,8.5vw,46px)}
 body.inner-page #main .page-hero h1{font-size:clamp(40px,10vw,56px)}
 body.page-room-detail #main .room-detail-heading h1{font-size:clamp(32px,8vw,42px)}
 body #main .home-room-card-copy{padding:22px 18px}
 body #main .home-room-card-actions a{min-height:42px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 body #main .home-room-slide,
 body :is(.reservation,.editorial-link,.page-link,.section-link,.home-room-view-all,.home-room-card-actions a,.gallery-filters button){transition:none}
}

/* Warm, readable accents against the existing green dining surface. */
body #main .home-dining-explore .section-eyebrow{color:#e6d3af!important}
body .home-dining-options nav a:is(.is-active,:hover,:focus-visible){color:#f0dfbf}
body .home-dining-options nav a::before{background:#e6d3af}
body #main :is(.welcome-signature,.home-room-carousel,.editorial-experiences,.home-wellness-layout) .section-eyebrow{color:#856441!important}

/* Restore section hierarchy on inner pages without enlarging card headings. */
body.inner-page #main h2{font-size:var(--type-section);line-height:1.25;letter-spacing:-.025em}
body.inner-page #main h3{font-size:var(--type-card);line-height:1.35;letter-spacing:-.015em}
body.page-destination #main .destination-guide-grid .destination-stop h2{font-size:var(--type-card);line-height:1.3}
body.page-dining #main .dining-highlights-heading h2{font-size:var(--type-section);line-height:1.25}

/* Room detail body copy stays at a consistent reading size. */
body.page-room-detail #main :is(.room-page-intro,.room-page-amenities,.room-detail-rules) :is(p,li){
 font-size:16px!important;line-height:1.75;
}

/* Align the Spa photograph, copy and detail photograph along their top edge. */
@media(min-width:801px){
 body #main .home-wellness-layout .wellness-editorial-statement{align-self:start}
 body #main .home-wellness-layout .wellness-editorial-statement>p:first-child{margin-top:0}
 body #main .home-wellness-layout .home-wellness-detail{
  position:relative;grid-column:1/-1;grid-row:2;align-self:start;justify-self:end;
  top:0;right:-11%;margin:0;
 }
}

/* Decorative, edge-to-edge Spa video beneath the existing content. */
body #main > .home-wellness-layout{position:relative;isolation:isolate}
.home-wellness-layout>.spa-background-video{
 position:absolute;inset:0;width:100%;height:100%;overflow:hidden;
 container-type:size;z-index:-1;pointer-events:none;
}
.home-wellness-layout>.spa-background-video iframe{
 position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
 width:max(100cqw,177.778cqh);height:max(100cqh,56.25cqw);
 max-width:none;border:0;display:block;
}
@media(prefers-reduced-motion:reduce){
 .home-wellness-layout>.spa-background-video{display:none}
}

/* Soft cream lettering remains legible over the Spa film. */
body #main .home-wellness-layout .wellness-editorial-heading h2,
body #main .home-wellness-layout .wellness-editorial-heading .section-eyebrow,
body #main .home-wellness-layout .wellness-editorial-statement p{
 color:#fff4df!important;
 text-shadow:0 2px 12px rgba(24,25,17,.42);
}
body #main .home-wellness-layout .wellness-editorial-statement .editorial-link{
 color:#fff4df;
}

/* Welcome reference: a facade portrait and a clean text-and-garden column. */
body #main .welcome-signature-body{grid-template-columns:1fr 1.12fr;gap:8%;align-items:start}
body #main .welcome-signature-photo>img{
 display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;
 border-radius:8px!important;
}
body #main .welcome-signature .editorial-welcome-copy{padding-top:clamp(24px,3vw,48px)}
body #main .welcome-signature-detail{width:100%;margin:40px 0 0;padding:0;background:none}
body #main .welcome-signature-detail img{display:block;width:100%;aspect-ratio:1.38;object-fit:cover;border-radius:8px!important}
@media(max-width:700px){
 body #main .welcome-signature-body{grid-template-columns:1fr;gap:28px}
 body #main .welcome-signature .editorial-welcome-copy{padding-top:0}
 body #main .welcome-signature-detail{margin-top:28px}
}

/* Smaller garden portrait in the Welcome copy column. */
body #main .welcome-signature-detail{width:75%}

/* Welcome spacing for the shorter introduction. */
body #main .welcome-signature .editorial-welcome-copy{padding-top:clamp(16px,2vw,28px)}
body #main .welcome-signature .editorial-welcome-copy>p{margin:0 0 24px;line-height:1.75}
body #main .welcome-signature-detail{margin-top:32px}
@media(max-width:700px){
 body #main .welcome-signature .editorial-welcome-copy{padding-top:0}
 body #main .welcome-signature-detail{margin-top:28px}
}

/* Welcome title belongs to the story column beside the facade portrait. */
body #main .welcome-signature .editorial-welcome-copy{padding-top:24px}
body #main .welcome-signature #welcome-title{
 font-size:clamp(32px,3.1vw,46px);line-height:1.2;letter-spacing:-.025em;
 text-align:left;margin:0 0 28px;max-width:100%;
}
body #main .welcome-signature #welcome-title em{padding-left:0;font-style:normal}
body #main .welcome-signature-detail{margin-top:36px}
@media(max-width:700px){
 body #main .welcome-signature .editorial-welcome-copy{padding-top:0}
 body #main .welcome-signature #welcome-title{font-size:clamp(30px,7.8vw,38px);margin-bottom:22px}
 body #main .welcome-signature-detail{margin-top:28px}
}

/* Quiet, balanced proportions for the Welcome story. */
body #main>.welcome-signature{padding-block:clamp(64px,7vw,104px)}
body #main .welcome-signature-container{max-width:1240px}
body #main .welcome-signature-body{grid-template-columns:1.08fr 1fr;gap:7.5%}
body #main .welcome-signature .editorial-welcome-copy{padding-top:20px}
body #main .welcome-signature #welcome-title{
 font-size:clamp(34px,3.25vw,48px);line-height:1.18;letter-spacing:-.025em;margin-bottom:28px;
}
body #main .welcome-signature .editorial-welcome-copy>p{
 max-width:49ch;line-height:1.85;color:#4b5047;margin-bottom:28px;
}
body #main .welcome-signature .editorial-link{font-size:11px;letter-spacing:.12em;padding:14px 22px}
body #main .welcome-signature-detail{width:75%;margin-top:40px}
body #main .welcome-signature-photo>img{object-position:center;box-shadow:0 12px 32px rgba(45,49,44,.04)}
@media(min-width:701px) and (max-width:1000px){
 body #main .welcome-signature-body{gap:6%}
 body #main .welcome-signature #welcome-title{font-size:34px}
 body #main .welcome-signature .editorial-welcome-copy{padding-top:0}
}
@media(max-width:700px){
 body #main>.welcome-signature{padding:56px 24px 64px}
 body #main .welcome-signature-body{grid-template-columns:1fr;gap:32px}
 body #main .welcome-signature .editorial-welcome-copy{padding-top:0}
 body #main .welcome-signature #welcome-title{font-size:clamp(30px,8vw,38px);margin-bottom:24px}
 body #main .welcome-signature-detail{margin-top:32px}
}

/* Destination alternative: warm limestone with restrained bronze detailing. */
body #main>.editorial-experiences{
 background:radial-gradient(ellipse at 12% 0%,#fffdf8 0%,transparent 58%),
  linear-gradient(120deg,#eee7da 0%,#f7f3eb 48%,#e9e1d3 100%);
 border-top:1px solid #b9a18230;border-bottom:1px solid #b9a18230;
}
body #main>.editorial-experiences::before{
 background:repeating-linear-gradient(112deg,transparent 0 94px,rgba(137,113,78,.025) 95px,transparent 97px 220px);
 opacity:1;filter:none;
}

/* Destination artwork on the warm cream surface. */
body #main>.editorial-experiences{
 background:#faf8ed url('../img/bg.gif') right bottom / cover no-repeat;
}
body #main>.editorial-experiences::before{background:none}

/* Slightly smaller Destination background artwork. */
body #main>.editorial-experiences{background-size:80% auto}

/* Clean footer link columns on phones. */
@media(max-width:700px){
 body .site-footer.footer-columns .footer-main nav{border-left:0;border-right:0}
}

/* Keep the local background video visible throughout playback. */
.hero.hero-video .hero-video-frame{opacity:1}

/* Banner signature sits above the booking bar without obscuring the film. */
.hero-banner-copy{
 position:absolute;left:5%;right:5%;bottom:22%;z-index:1;text-align:center;
 color:#fff9e9;text-shadow:0 2px 22px rgba(0,0,0,.35);
 animation:hero-copy-enter 1.8s cubic-bezier(.2,.65,.25,1) both;
}
.hero-banner-eyebrow{
 display:block;font:500 clamp(11px,1vw,18px)/1.6 var(--font-body);
 letter-spacing:.16em;color:#f1dfb5;margin-bottom:14px;
}
.hero-banner-title{
 font:300 clamp(36px,4.2vw,80px)/1.18 "SVN Recoleta",serif;
 letter-spacing:-.025em;text-wrap:balance;
}
@keyframes hero-copy-enter{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
 .hero-banner-copy{left:24px;right:24px;bottom:20%}
 .hero-banner-eyebrow{font-size:10px;letter-spacing:.13em;margin-bottom:16px}
 .hero-banner-title{font-size:clamp(34px,8vw,48px);line-height:1.2}
}
@media(prefers-reduced-motion:reduce){.hero-banner-copy{animation:none}}

/* Soft green film overlay and a lower banner signature. */
.hero.hero-video::after{
 content:'';position:absolute;inset:0;pointer-events:none;
 background:linear-gradient(180deg,rgba(40,66,32,.20),rgba(40,66,32,.28) 55%,rgba(30,51,25,.38));
}
.hero.hero-video .hero-banner-copy{bottom:17%}
@media(max-width:700px){.hero.hero-video .hero-banner-copy{bottom:15%}}

/* Room gallery scrolls vertically with the page, horizontally within its track. */
body.page-room-detail .room-page-track{
 overflow-y:hidden;overscroll-behavior-y:auto;touch-action:pan-x pan-y pinch-zoom;
}
body.page-room-detail .room-page-gallery{isolation:isolate}
body.page-room-detail .site-header{z-index:20;background:#faf8ed!important}

/* Canela Light for banner titles across desktop and mobile. */
body.inner-page #main .page-hero h1,
body.page-room-detail #main .room-detail-heading h1,
body .hero-banner-title{
 font-family:"SVN Recoleta",serif!important;
 font-weight:300!important;
 font-style:normal;
}

/* Full-height Spa film on phones, covering the entire section. */
@media(max-width:700px){
 body #main>.home-wellness-layout{
  min-height:100vh;min-height:100svh;
 }
 body #main .home-wellness-layout>.spa-background-video{
  inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);
 }
 body #main .home-wellness-layout>.spa-background-video iframe{
  width:max(100cqw,177.778cqh);height:max(100cqh,56.25cqw);
  transform:translate(-50%,-50%) scale(1.22);transform-origin:center;
 }
}

/* Full-width welcome photo and centered footer on phones. */
@media(max-width:700px){
 body #main .welcome-signature-detail{width:100%;max-width:none;margin:32px 0 0;padding:0}
 body .footer-columns .footer-top{flex-direction:column;justify-content:center;gap:22px;text-align:center}
 body .footer-columns .footer-top .footer-logo{flex:0 0 auto;width:160px;max-width:100%;margin:0 auto}
 body .footer-columns .footer-top .footer-slogan{width:190px;max-width:100%;margin:0 auto}
 body .footer-columns .footer-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px 20px;text-align:center}
 body .footer-columns .footer-main .footer-contact-group{grid-column:1/-1}
 body .footer-columns .footer-main address{text-align:center}
 body .footer-columns .footer-main address .footer-contact-row{justify-content:center;gap:10px}
 body .footer-columns .footer-contact-group .footer-social{justify-content:center;margin:20px 0 0;gap:14px}
 body .footer-columns .footer-main nav{align-items:center;text-align:center}
 body .footer-columns .footer-subscribe{grid-column:1/-1;text-align:center}
 body .footer-columns .footer-subscribe h3,body .footer-columns .subscribe-note{text-align:center}
 body .footer-columns .footer-bottom{align-items:center;justify-content:center;text-align:center;gap:16px}
}

/* Plain background for the Welcome section. */
body #main>.welcome-signature{
 background-image:none;
}

/* Quiet local banner loop and an on-demand hotel film. */
.hero-video-frame video{display:block;width:100%;height:100%;object-fit:cover}
.hotel-film-trigger{display:inline-flex;align-items:center;justify-content:center;gap:13px;margin-top:26px;padding:4px 0;border:0;background:none;color:#fff;font:600 11px/1.5 var(--font-body);letter-spacing:.15em;text-transform:uppercase}
.hotel-film-play{display:grid;place-items:center;width:42px;height:42px;border:2px solid rgba(255,255,255,.95);border-radius:50%;font-size:20px;padding-left:2px;transition:background .3s,border-color .3s}
.hotel-film-trigger:hover .hotel-film-play{background:rgba(255,244,223,.15);border-color:#fff4df}
.hotel-film-dialog{position:fixed;inset:0;width:min(1120px,calc(100vw - 144px),150svh);max-width:94vw;max-height:92svh;margin:auto;padding:0;border:0;overflow:visible;background:transparent;color:#fff}
.hotel-film-dialog::backdrop{background:rgba(12,19,11,.94)}
.hotel-film-player{position:relative;aspect-ratio:16/9;width:100%;max-height:calc(92svh - 48px);background:#000;border-radius:20px!important;overflow:hidden;box-shadow:0 24px 100px #0006}
.hotel-film-player iframe{display:block;width:100%;height:100%;position:absolute;inset:0;border:0}
.hotel-film-close{position:absolute;top:6px;right:-58px;z-index:2;width:44px;height:44px;padding:0;border:1px solid #ffffff80;border-radius:50%!important;background:rgba(16,28,19,.35);color:inherit;font-size:0;cursor:pointer;transition:background .2s,border-color .2s}
.hotel-film-close::before,.hotel-film-close::after{content:"";position:absolute;top:50%;left:50%;width:16px;height:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.hotel-film-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.hotel-film-close:hover{background:#ffffff22;border-color:#fff}
@media(max-width:700px){.hotel-film-dialog{width:min(94vw,140svh);padding-top:56px}.hotel-film-close{top:0;right:0}.hotel-film-player{border-radius:16px!important}}
@media(max-width:700px){.hotel-film-trigger{margin-top:20px;font-size:10px;letter-spacing:.12em}.hotel-film-play{width:38px;height:38px}.hero.hero-video .hero-banner-copy{bottom:17%}}
@media(prefers-reduced-motion:reduce){.hotel-film-play{transition:none}}

/* White signature on the film; the quieter-stay message moves to the footer. */
.hero-banner-slogan img{width:clamp(280px,42vw,720px);max-width:100%;height:auto;margin:0 auto;object-fit:contain;filter:brightness(0) invert(1)}
body .footer-columns .footer-top .footer-slogan-text{width:auto;max-width:60%;font-family:"SVN Recoleta",serif;font-size:clamp(24px,2.5vw,38px);font-weight:300;line-height:1.3;color:#fff;letter-spacing:0;text-wrap:balance}
@media(max-width:700px){body .footer-columns .footer-top .footer-slogan-text{width:100%;max-width:320px;font-size:26px;text-align:center}}

/* Calendar corners match the guest selector. */
.homepage-banner .booking-date-popup{border-radius:10px!important;overflow:hidden}

/* Select phrases use the true Canela Light Italic face. */
@font-face{font-family:"Canela-LightItalic";src:url('../fonts/Canela-LightItalic.ttf') format('truetype');font-weight:300;font-style:italic;font-display:swap}
body #main .heading-light-italic{font-family:"SVN Recoleta",serif!important;font-weight:300!important;font-style:italic}

/* Offers: portrait photography alongside the complete package details. */
body.page-offers .offer-editorial{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,5vw,80px);align-items:start;max-width:1200px;padding-bottom:0;border:0}
.offer-editorial-photo{margin:0}
.offer-editorial-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center}
body.page-offers .offer-editorial .offer-heading{display:block;background:transparent}
body.page-offers .offer-editorial .offer-heading>div{display:inline-block;padding:0 0 20px}
body.page-offers #main .offer-editorial .offer-heading h2{text-align:left;margin:0 0 20px;font-size:clamp(32px,3.4vw,48px);line-height:1.2}
body.page-offers .offer-editorial .offer-tiers{display:flex;flex-direction:column;gap:26px;margin:8px 0 26px}
body.page-offers .offer-editorial .offer-tier{padding:0;border:0;background:transparent}
body.page-offers #main .offer-editorial .offer-tier h3{font-size:clamp(25px,2.2vw,32px);line-height:1.3}
body.page-offers .offer-editorial .offer-tier ul{margin-top:18px;padding-left:18px;font-size:14px;line-height:1.8}
body.page-offers .offer-editorial .offer-tier li+li{margin-top:10px}
body.page-offers .offer-editorial .offer-note{margin:0 0 22px;font-size:13px;line-height:1.7}
body.page-offers .offer-editorial-copy{min-width:0}
@media(max-width:700px){body.page-offers .offer-editorial{grid-template-columns:minmax(0,1fr);gap:30px}.offer-editorial-photo img{aspect-ratio:4/5;max-height:580px}body.page-offers .offer-editorial .offer-heading>div{padding-bottom:12px}}

/* Offers banner copy sits near the bottom, centered horizontally. */
body.page-offers #main .page-hero{place-items:end center}
body.page-offers #main .page-hero-copy{width:100%;padding:24px 24px clamp(40px,6vw,80px);align-items:center;justify-content:center;text-align:center}
body.page-offers #main .page-hero>img{object-position:center center}

/* Destination cream booking form with green text, icons and dividers. */
body #main .homepage-banner .banner-booking{background:#faf8ed;color:var(--green);backdrop-filter:none;-webkit-backdrop-filter:none}
body #main .homepage-banner .booking-bar-field{border-right-color:rgba(69,123,68,.45)!important;color:var(--green)}
body #main .homepage-banner .booking-date-trigger,
body #main .homepage-banner .booking-guests-popover summary{color:var(--green)}

body #main .homepage-banner .banner-booking .booking-bar-submit{border:1px solid var(--green)!important;color:#fff}

/* Refined booking ribbon: inset action and softer separators. */
@media(min-width:701px){
 body #main .homepage-banner .banner-booking{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 174px;padding:8px;box-shadow:0 8px 28px rgba(24,42,20,.12)}
 body #main .homepage-banner .booking-bar-field{margin:6px 0;padding:0 26px!important;min-height:40px;border-right-color:rgba(69,123,68,.25)!important}
 body #main .homepage-banner .booking-bar-guests{border-right:0!important}
 body #main .homepage-banner .booking-date-trigger{min-height:40px;font-size:14px}
 body #main .homepage-banner .booking-guests-popover summary{font-size:14px;line-height:40px}
 body #main .homepage-banner .banner-booking .booking-bar-submit{align-self:center;min-height:48px;margin:0;padding:16px 20px;font-size:12px;font-weight:600;letter-spacing:.08em;line-height:1.2;transition:background .25s,box-shadow .25s}
 body #main .homepage-banner .banner-booking .booking-bar-submit:hover{background:#4e724d;filter:none;box-shadow:0 3px 10px rgba(40,66,32,.16)}
}

/* Booking action sits flush against the ribbon edges. */
@media(min-width:701px){
 body #main .homepage-banner .banner-booking{padding:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 198px}
 body #main .homepage-banner .booking-bar-field{margin:15px 0}
 body #main .homepage-banner .banner-booking .booking-bar-submit{align-self:stretch;margin:0;min-height:70px;border-radius:0 6px 6px 0!important;font-size:14px;letter-spacing:.03em}
}

body #main .homepage-banner .banner-booking .booking-bar-submit{border:5px solid #f4f0e7!important}

/* Bold booking calls to action across the header, menu and booking forms. */
body #main .homepage-banner .banner-booking .booking-bar-submit,
body .site-header .header-contact .reservation,
body .site-menu .header-contact .reservation,
body .reservation-panel .reservation-submit{font-size:12px!important;font-weight:700!important;letter-spacing:1px!important}

/* Related-room controls belong to the heading row, outside the image track. */
body.page-room-detail #main .other-rooms .other-rooms-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}
.other-rooms-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}
body.page-room-detail #main .other-rooms .other-rooms-controls .other-rooms-arrow{position:relative;inset:auto;transform:none;flex:0 0 44px;width:44px;height:44px;margin:0}
body.page-room-detail #main .other-rooms-carousel{padding:0;isolation:isolate}
@media(max-width:600px){body.page-room-detail #main .other-rooms .other-rooms-heading{gap:12px}body.page-room-detail #main .other-rooms .other-rooms-controls .other-rooms-arrow{flex-basis:38px;width:38px;height:38px}}

/* Listing facts use the same line icons as the room detail page. */
body.page-rooms .room-list-meta{display:flex;flex-wrap:wrap;gap:12px 20px}
body.page-rooms .room-list-meta>span,body.page-rooms .room-list-view{display:inline-flex;align-items:center;gap:8px}
body.page-rooms .room-list-meta>span::after{content:none}
body.page-rooms .room-list-meta svg,body.page-rooms .room-list-view svg{display:block;flex:0 0 20px;width:20px;height:20px;fill:none;stroke:var(--green);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
body.page-rooms .room-list-meta span+span::before{content:none;margin:0}

/* Underlined discovery links on the Rooms listing only. */
body.page-rooms #main .room-list-link{
 display:inline-flex;align-items:center;justify-content:center;gap:8px;
 width:fit-content;min-height:0;padding:9px 0!important;
 border:0!important;border-bottom:1px solid currentColor!important;border-radius:0!important;
 background:transparent!important;color:#776b53!important;box-shadow:none!important;
 font-size:11px!important;font-weight:400!important;line-height:1.5;
 letter-spacing:1.5px!important;text-transform:uppercase;text-decoration:none!important;
}
body.page-rooms #main .room-list-link::after{content:'→';display:inline-block!important;font-size:14px;line-height:1}
body.page-rooms #main .room-list-link>span[aria-hidden]{display:none!important}
body.page-rooms #main .room-list-link:hover{background:transparent!important;color:var(--green-hover)!important}

/* Clip moving cards within their track without a covering frame. */
body.page-room-detail #main .other-rooms-carousel{background:transparent;border:0;box-shadow:none}
body.page-room-detail #main .other-rooms-carousel .other-rooms-grid{position:relative;overflow-x:auto;overflow-y:hidden;background:transparent;border:0;box-shadow:none}

/* Homepage room showcase: generous photograph beside the room details. */
html body #main .home-room-carousel{padding:72px var(--section-gutter);overflow:hidden}
html body #main .home-room-carousel-window{position:relative;width:100%;max-width:1320px;height:auto;min-height:0;margin:auto;padding:0;overflow:visible}
html body #main .home-room-carousel-track{position:relative;display:block;height:auto;overflow:visible;transform:none}
html body #main .home-room-slide,html body #main .home-room-slide.is-active{position:relative;inset:auto;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.85fr);gap:clamp(30px,4.5vw,72px);width:100%;height:auto;margin:0;transform:none;opacity:1;visibility:visible;background:transparent;border:0;border-radius:0!important;overflow:visible;transition:none}
html body #main .home-room-slide[hidden]{display:none!important}
html body #main .home-room-slide-photo{width:100%;height:auto;aspect-ratio:3/2;margin:0;border-radius:8px!important;overflow:hidden}
html body #main .home-room-slide-photo img{width:100%;height:100%;object-fit:cover}
html body #main .home-room-card-copy{padding:32px 0 0;text-align:left;background:transparent;opacity:1;transform:none}
html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{font-size:clamp(26px,2.6vw,38px)!important;min-height:0;margin:0 88px 24px 0;text-align:left}
html body #main .home-room-card-detail{display:block;height:auto;max-height:none;opacity:1;visibility:visible;transform:none;overflow:visible}
html body #main .home-room-card-detail>p{margin:0 0 22px;text-align:left;max-width:46ch}
.home-room-facts{display:grid;grid-template-columns:1fr 1fr;gap:15px 22px;margin:0 0 28px;font-size:14px}
.home-room-facts>span{display:flex;align-items:center;gap:9px}
.home-room-facts svg{width:22px;height:22px;flex:0 0 22px;fill:none;stroke:var(--gold);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
html body #main .home-room-card-actions{justify-content:flex-start;flex-wrap:wrap;gap:14px}
html body #main .home-room-arrow{position:absolute;top:26px;bottom:auto;left:auto;right:0;transform:none;z-index:3}
html body #main .home-room-arrow-prev{right:52px}
.home-room-dots{display:flex;justify-content:center;gap:10px;width:56%;max-width:740px;margin:20px 0 0}
.home-room-dots button{display:block;width:7px;height:7px;min-height:0;padding:0;border:0;border-radius:50%;background:#d6d7cf}
.home-room-dots button[aria-pressed="true"]{background:var(--gold)}
@media(max-width:700px){
 html body #main .home-room-carousel{padding:52px 24px}
 html body #main .home-room-slide,html body #main .home-room-slide.is-active{grid-template-columns:minmax(0,1fr);gap:24px}
 html body #main .home-room-card-copy{padding:0}
 html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{margin-right:0;margin-bottom:18px;font-size:28px!important}
 html body #main .home-room-carousel-window{padding-top:58px}
 html body #main .home-room-arrow{top:0}
 .home-room-dots{width:100%;margin-top:24px}
 .home-room-facts{gap:14px;font-size:13px}
}

/* Smooth horizontal room changes and compact single-line names. */
html body #main .home-room-carousel-track{overflow:hidden}
html body #main .home-room-slide.is-room-leaving{position:absolute;inset:0 auto auto 0;pointer-events:none}
html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{font-size:clamp(16px,1.65vw,24px)!important;white-space:nowrap;min-width:0;margin-right:96px;letter-spacing:0}
@media(max-width:700px){html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{font-size:clamp(16px,4.5vw,22px)!important;margin-right:0}}

/* Left-aligned room typography and its fine divider. */
html body #main .home-room-card-copy,
html body #main .home-room-card-copy h3,
html body #main .home-room-card-detail,
html body #main .home-room-card-detail>p{text-align:left}
html body #main .home-room-card-detail::before{content:'';display:block;width:64px;height:1px;margin:0 0 22px;background:rgba(69,123,68,.25)}
html body #main .home-room-card-detail>p{display:block;-webkit-line-clamp:unset;overflow:visible}

/* Room showcase spacing follows the spacious two-column reference. */
html body #main .home-room-carousel-heading{margin:0 auto 68px;padding:0;text-align:center}
html body #main .home-room-slide,html body #main .home-room-slide.is-active{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(36px,4.6vw,72px)}
html body #main .home-room-card-copy{padding:34px 0 0}
html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{font-size:clamp(24px,2.25vw,34px)!important;text-transform:uppercase;margin:0 112px 20px 0;line-height:1.2}
html body #main .home-room-card-detail::before{width:154px;margin:0 0 18px;background:var(--green)}
html body #main .home-room-card-detail>p{font-size:14px!important;line-height:1.5;max-width:none;margin:0 0 30px}
html body #main .home-room-facts{gap:18px 28px;margin-bottom:30px}
html body #main .home-room-arrow{top:26px}
html body #main .home-room-dots{width:calc((100% - clamp(36px,4.6vw,72px))* .583333);max-width:none;justify-content:flex-end;margin:16px 0 0;padding-right:4px}
html body #main .home-room-collection-footer{display:flex;justify-content:center;margin:20px auto 0;padding:0}
@media(max-width:700px){
 html body #main .home-room-carousel-heading{margin-bottom:32px}
 html body #main .home-room-slide,html body #main .home-room-slide.is-active{grid-template-columns:minmax(0,1fr);gap:26px}
 html body #main .home-room-card-copy{padding:0}
 html body #main .home-room-slide h3,html body #main .home-room-slide.is-active h3{font-size:24px!important;margin:0 0 20px}
 html body #main .home-room-arrow{top:0}
 html body #main .home-room-dots{width:100%;justify-content:center;margin-top:22px}
 html body #main .home-room-collection-footer{margin-top:24px}
}

/* Keep the room title divider aligned to the left in every slide state. */
html body #main .home-room-slide .home-room-card-detail::before,
html body #main .home-room-slide.is-active .home-room-card-detail::before{margin-left:0!important;margin-right:auto!important;background:var(--green)}

/* Consistent 25px room titles aligned with their green divider. */
html body #main .home-room-slide h3,
html body #main .home-room-slide.is-active h3{font-size:25px!important;text-align:left}

/* Remove the old centered grid alignment from every homepage room name. */
html body #main .home-room-slide h3,
html body #main .home-room-slide.is-active h3{display:block;place-items:unset;text-align:left;justify-self:start;margin-left:0;padding-left:0}
html body #main .home-room-slide h3>a{display:block;text-align:left;margin-left:0;padding-left:0}

/* Room facts sit independently below the description on every room card. */
html body #main .home-room-card-copy>.home-room-facts{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);width:100%;margin:0 0 30px;gap:18px 28px;text-align:left}
html body #main .home-room-card-copy>.home-room-facts>span{min-width:0;white-space:normal}

/* Full-width dining photography with a restrained green editorial panel. */
body #main>.dining-panorama{position:relative;padding:0;background:var(--green);overflow:hidden;color:#fff9e9}
.dining-panorama-slide{position:relative;display:flex;align-items:center;min-height:720px;height:clamp(680px,49vw,850px);padding:70px max(7vw,24px) 100px}
.dining-panorama-slide[hidden]{display:none!important}
.dining-panorama-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.dining-panorama-panel{position:relative;z-index:1;width:490px;max-width:100%;padding:40px 48px 36px;background:rgba(70,105,42,.88);border-radius:6px;box-shadow:0 8px 32px #182a1414}
body #main .dining-panorama-panel .section-eyebrow{color:#e2c592!important;letter-spacing:1.5px!important}
body #main .dining-panorama-panel h2{font-family:"SVN Recoleta",serif!important;font-weight:300!important;font-size:28px;text-align:left;text-transform:uppercase;line-height:1.25;color:#fff9e9;margin:6px 0 24px}
body #main .dining-panorama-description p{font-size:14px!important;line-height:1.6;color:inherit;margin:0 0 16px}
.dining-panorama-explore{display:flex;align-items:center;gap:8px;width:fit-content;margin:48px 0 0 auto;border-bottom:1px solid currentColor;padding-bottom:4px;color:#e2c592;font-size:12px;letter-spacing:1.5px;text-transform:uppercase}
.dining-panorama-explore:hover{color:#fff}
.dining-panorama-controls{position:absolute;z-index:2;bottom:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;padding:8px 14px;background:#28422080;border-radius:30px}
.dining-panorama-controls>button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid #fff9e977;border-radius:50%;background:transparent;color:#fff9e9;font-size:20px}
.dining-panorama-dots{display:flex;gap:12px}
.dining-panorama-dots button{width:8px;height:8px;padding:0;border:1px solid #fff9e9;border-radius:50%;background:transparent}
.dining-panorama-dots button[aria-pressed="true"]{background:#fff9e9}
@media(max-width:700px){
 .dining-panorama-slide{height:auto;min-height:760px;align-items:flex-end;padding:220px 24px 100px}
 .dining-panorama-panel{width:100%;padding:28px 26px;background:rgba(58,91,34,.92)}
 body #main .dining-panorama-panel h2{font-size:26px}
 .dining-panorama-explore{margin-top:26px}
 .dining-panorama-image{object-position:center}
}

/* Dining slides travel horizontally without overlapping the section flow. */
body #main .dining-panorama-slide.is-dining-leaving{position:absolute;inset:0;width:100%;pointer-events:none}

/* A more compact dining panorama with room for the full description. */
body #main .dining-panorama-slide{min-height:580px;height:clamp(580px,42vw,680px);padding-top:48px;padding-bottom:88px}
body #main .dining-panorama-panel{padding:32px 40px 30px}
body #main .dining-panorama-explore{margin-top:30px}
@media(max-width:700px){
 body #main .dining-panorama-slide{height:auto;min-height:640px;padding:150px 24px 90px}
 body #main .dining-panorama-panel{padding:26px}
 body #main .dining-panorama-explore{margin-top:24px}
}

/* Lantern welcome: hanging artwork, calm green field and curved transitions. */
body #main>.welcome-lantern{position:relative;isolation:isolate;overflow:visible;background:#457b44!important;color:#f5f1df;padding:0 var(--section-gutter) 220px;min-height:750px}
.welcome-lantern::before{content:"";position:absolute;inset:-64px 0 auto;height:65px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1320 64' preserveAspectRatio='none'%3E%3Cpath fill='%23457b44' d='M0 0 Q660 120 1320 0 V64 H0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none;z-index:-1}
.welcome-lantern::after{content:"";position:absolute;inset:auto 0 -1px;height:88px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1320 88' preserveAspectRatio='none'%3E%3Cpath fill='%23dcdcbc' d='M0 87 Q660 -77 1320 87 V88 H0Z'/%3E%3Cpath fill='%23faf8ed' d='M0 87 Q660 -32 1320 87 V88 H0Z'/%3E%3C/svg%3E") center/100% 100% no-repeat;pointer-events:none}
.welcome-lantern-inner{max-width:1040px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:start}
.welcome-lantern-art{margin:-36px 0 0;width:100%;max-width:440px}
.welcome-lantern-art img{display:block;width:100%;height:auto;border-radius:0!important}
body #main .welcome-lantern .editorial-welcome-copy{padding:130px 0 0;max-width:360px}
body #main .welcome-lantern #welcome-title{font-family:"SVN Recoleta",serif;font-weight:400;font-size:44px;line-height:1.22;letter-spacing:0;color:inherit;margin:0 0 12px}
body #main .welcome-lantern .editorial-welcome-copy>p{font-family:var(--font-body);font-size:14px!important;line-height:1.45!important;margin:0;color:inherit;max-width:350px}
@media(max-width:1000px) and (min-width:701px){.welcome-lantern-inner{gap:48px}body #main .welcome-lantern .editorial-welcome-copy{padding-top:90px}body #main .welcome-lantern #welcome-title{font-size:36px}}
@media(max-width:700px){body #main>.welcome-lantern{padding:0 24px 120px;min-height:0}.welcome-lantern::before{inset-block-start:-32px;height:33px}.welcome-lantern-inner{grid-template-columns:1fr;gap:20px}.welcome-lantern-art{width:min(100%,340px);margin:-16px auto 0}body #main .welcome-lantern .editorial-welcome-copy{padding:0;max-width:440px;margin:0 auto}body #main .welcome-lantern #welcome-title{font-size:36px}body #main .welcome-lantern .editorial-welcome-copy>p{max-width:none}.welcome-lantern::after{height:55px}}

/* Shared warm ivory page canvas. */
html,body{background-color:#faf8ed}

/* A quiet invitation to discover the hotel below the film. */
.hero-discover{position:absolute;z-index:3;left:50%;bottom:100px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 20px;color:#faf8ed;text-align:center;text-decoration:none;opacity:.85;transition:opacity .3s ease}
.hero-discover-label{font:400 10px/1.5 var(--font-body);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;text-shadow:0 1px 8px #0004}
.hero-discover-icon{display:block;animation:discover-drift 3s ease-in-out infinite;filter:drop-shadow(0 1px 4px #0003)}
.hero-discover:hover,.hero-discover:focus-visible{color:#faf8ed;opacity:1}
.hero-discover:focus-visible{outline:1px solid currentColor;outline-offset:5px;border-radius:3px}
#welcome-discover{scroll-margin-top:100px}
@keyframes discover-drift{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(7px);opacity:1}}
@media(max-width:700px){.hero-discover{bottom:70px;gap:12px}.hero-discover-label{font-size:9px;letter-spacing:.16em}}
@media(prefers-reduced-motion:reduce){.hero-discover-icon{animation:none}.hero-discover{transition:none}html{scroll-behavior:auto!important}}

/* Clip the hanging artwork and green field along one continuous curve. */
.welcome-curve-defs{position:absolute;overflow:hidden;pointer-events:none}
body #main>.welcome-lantern{margin-top:-64px;padding-top:64px;padding-bottom:280px;min-height:960px;clip-path:url(#welcome-top-curve)}
.welcome-lantern::before{display:none}
.welcome-lantern-inner{max-width:1100px;grid-template-columns:1.08fr 1fr;gap:100px}
.welcome-lantern-art{max-width:480px;margin-top:-64px}
body #main .welcome-lantern .editorial-welcome-copy{padding-top:160px}
@media(min-width:1600px){body #main>.welcome-lantern{min-height:1080px}}
@media(max-width:1000px) and (min-width:701px){body #main>.welcome-lantern{min-height:860px}.welcome-lantern-inner{gap:48px}body #main .welcome-lantern .editorial-welcome-copy{padding-top:120px}}
@media(max-width:700px){body #main>.welcome-lantern{margin-top:-32px;padding-top:32px;padding-bottom:150px;min-height:940px}.welcome-lantern-inner{grid-template-columns:1fr;gap:40px}.welcome-lantern-art{max-width:360px;margin-top:-32px}body #main .welcome-lantern .editorial-welcome-copy{padding-top:0}}

/* A fixed curve depth keeps the video underneath the entire welcome edge. */
body #main>.welcome-lantern{
 --welcome-curve-depth:64px;
 margin-top:calc(-1 * var(--welcome-curve-depth) - 2px);
 padding-top:calc(var(--welcome-curve-depth) + 2px);
 clip-path:polygon(0% calc(var(--welcome-curve-depth) * 0.000000), 2.5% calc(var(--welcome-curve-depth) * 0.097500), 5% calc(var(--welcome-curve-depth) * 0.190000), 7.5% calc(var(--welcome-curve-depth) * 0.277500), 10% calc(var(--welcome-curve-depth) * 0.360000), 12.5% calc(var(--welcome-curve-depth) * 0.437500), 15% calc(var(--welcome-curve-depth) * 0.510000), 17.5% calc(var(--welcome-curve-depth) * 0.577500), 20% calc(var(--welcome-curve-depth) * 0.640000), 22.5% calc(var(--welcome-curve-depth) * 0.697500), 25% calc(var(--welcome-curve-depth) * 0.750000), 27.5% calc(var(--welcome-curve-depth) * 0.797500), 30% calc(var(--welcome-curve-depth) * 0.840000), 32.5% calc(var(--welcome-curve-depth) * 0.877500), 35% calc(var(--welcome-curve-depth) * 0.910000), 37.5% calc(var(--welcome-curve-depth) * 0.937500), 40% calc(var(--welcome-curve-depth) * 0.960000), 42.5% calc(var(--welcome-curve-depth) * 0.977500), 45% calc(var(--welcome-curve-depth) * 0.990000), 47.5% calc(var(--welcome-curve-depth) * 0.997500), 50% calc(var(--welcome-curve-depth) * 1.000000), 52.5% calc(var(--welcome-curve-depth) * 0.997500), 55% calc(var(--welcome-curve-depth) * 0.990000), 57.5% calc(var(--welcome-curve-depth) * 0.977500), 60% calc(var(--welcome-curve-depth) * 0.960000), 62.5% calc(var(--welcome-curve-depth) * 0.937500), 65% calc(var(--welcome-curve-depth) * 0.910000), 67.5% calc(var(--welcome-curve-depth) * 0.877500), 70% calc(var(--welcome-curve-depth) * 0.840000), 72.5% calc(var(--welcome-curve-depth) * 0.797500), 75% calc(var(--welcome-curve-depth) * 0.750000), 77.5% calc(var(--welcome-curve-depth) * 0.697500), 80% calc(var(--welcome-curve-depth) * 0.640000), 82.5% calc(var(--welcome-curve-depth) * 0.577500), 85% calc(var(--welcome-curve-depth) * 0.510000), 87.5% calc(var(--welcome-curve-depth) * 0.437500), 90% calc(var(--welcome-curve-depth) * 0.360000), 92.5% calc(var(--welcome-curve-depth) * 0.277500), 95% calc(var(--welcome-curve-depth) * 0.190000), 97.5% calc(var(--welcome-curve-depth) * 0.097500), 100% calc(var(--welcome-curve-depth) * 0.000000), 100% 100%, 0 100%);
}
.welcome-lantern-art{margin-top:calc(-1 * var(--welcome-curve-depth) - 2px)}
.hero-discover{bottom:30px;padding:0 20px}
@media(max-width:700px){body #main>.welcome-lantern{--welcome-curve-depth:32px}.hero-discover{bottom:30px}}

/* Use the supplied regular and light faces without synthetic bold or italic. */
body{font-family:"SVN Poppins Light",Arial,sans-serif;font-weight:300;font-synthesis:none}
body #main .heading-light-italic{font-family:"SVN Recoleta",serif!important;font-weight:400!important;font-style:normal}

/* Enlarge the hanging lantern by 50% while keeping its top edge in place. */
.welcome-lantern-art{width:150%;max-width:720px;margin-left:-25%}
@media(max-width:700px){.welcome-lantern-art{width:min(150%,510px);max-width:none;margin-left:50%;transform:translateX(-50%)}}

/* Full-width cream masthead, with navigation and a flush booking panel. */
body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(150px,.65fr) 225px!important;grid-template-rows:104px;height:104px!important;gap:0;padding:0 0 0 clamp(32px,8vw,160px);background:#faf8ed!important;color:#343434;z-index:30;transform:translateY(0);transition:transform .55s cubic-bezier(.22,1,.36,1);border:0!important}
body .site-header.header-redesign.is-header-hidden{transform:translateY(-101%);pointer-events:none}
body .header-redesign .menu-toggle{display:none}
body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand{position:static;width:190px!important;justify-self:start;transform:none;margin:0;padding:0}
body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:190px!important;max-height:84px;height:auto;opacity:1;filter:none}
body .site-header.header-redesign .brand::after{display:none}
.header-desktop-nav{display:flex;align-items:center;justify-content:center;gap:22px;white-space:nowrap}
.header-desktop-nav a{font:300 18px/1.4 var(--font-body);color:#343434;transition:color .2s}
.header-desktop-nav a:hover{color:var(--green-hover)}
.header-language{display:flex;align-items:center;justify-content:center;gap:9px;font:300 14px/1.4 var(--font-body);letter-spacing:.06em;white-space:nowrap}
.header-language a{color:inherit}.header-language a[aria-current="page"]{color:#457b44}
.header-language-unavailable{cursor:default}
body .header-redesign .header-contact{height:100%;margin:0;justify-self:stretch;display:flex;align-items:stretch;gap:0}
body .site-header.header-redesign .header-contact .reservation{display:flex;align-items:center;justify-content:center;width:100%;height:100%;margin:0;padding:20px;border:0!important;border-radius:0!important;background:#457b44;color:#faf8ed;font:300 22px/1.3 var(--font-body);letter-spacing:0;text-transform:uppercase;white-space:nowrap}
body .site-header.header-redesign .header-contact .reservation:hover{background:#4e724d;color:#faf8ed}
@media(max-width:1250px) and (min-width:1001px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{padding-left:30px;grid-template-columns:200px 1fr 140px 170px!important}.header-desktop-nav{gap:14px}.header-desktop-nav a{font-size:15px}body .site-header.header-redesign .header-contact .reservation{font-size:18px}}
@media(max-width:1000px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{grid-template-columns:48px minmax(110px,1fr) auto 145px!important;grid-template-rows:82px;height:82px!important;padding-left:20px}body .header-redesign .menu-toggle{display:block;width:28px}body .header-redesign .menu-toggle span{width:25px;background:#457b44}.header-desktop-nav{display:none}body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand,body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:130px!important;max-height:66px}.header-language{font-size:11px;gap:6px;padding:0 16px}body .site-header.header-redesign .header-contact .reservation{font-size:16px;padding:12px}}
@media(max-width:520px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{grid-template-columns:36px minmax(92px,1fr) auto 102px!important;grid-template-rows:74px;height:74px!important;padding-left:12px}body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand,body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:105px!important;max-height:58px}.header-language{font-size:10px;gap:4px;padding:0 8px}body .site-header.header-redesign .header-contact .reservation{font-size:13px;padding:8px}}
@media(prefers-reduced-motion:reduce){body .site-header.header-redesign{transition:none}}

/* Explicit placement replaces the previous centered-logo grid. */
body .site-header.header-redesign>.brand{grid-column:1;grid-row:1;order:0}
body .site-header.header-redesign>.header-desktop-nav{grid-column:2;grid-row:1;order:0}
body .site-header.header-redesign>.header-language{grid-column:3;grid-row:1;order:0}
body .site-header.header-redesign>.header-contact{grid-column:4;grid-row:1;order:0}
body .site-header.header-redesign .header-contact .reservation{font-size:22px!important;font-weight:300!important;letter-spacing:0!important}
@media(max-width:1250px){body .site-header.header-redesign .header-contact .reservation{font-size:18px!important}}
@media(max-width:1000px){body .site-header.header-redesign>.menu-toggle{grid-column:1;grid-row:1}body .site-header.header-redesign>.brand{grid-column:2}body .site-header.header-redesign .header-contact .reservation{font-size:16px!important}}
@media(max-width:520px){body .site-header.header-redesign .header-contact .reservation{font-size:13px!important}}
body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{padding:0 0 0 clamp(32px,8vw,160px)!important}
@media(max-width:1250px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{padding-left:30px!important}}
@media(max-width:1000px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{padding-left:20px!important}}
@media(max-width:520px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{padding-left:12px!important}}

/* Compact masthead and unobscured banner film. */
body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{height:82px!important;grid-template-rows:82px}
body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand,body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:158px!important;max-height:70px}
body .site-header.header-redesign::before,body .site-header.header-redesign:not(.is-scrolled)::before{display:none!important;content:none;background:none}
.hero.hero-video::after{display:none;content:none;background:none}
@media(max-width:1000px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{height:70px!important;grid-template-rows:70px}body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand,body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:120px!important;max-height:58px}}
@media(max-width:520px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{height:64px!important;grid-template-rows:64px}body .site-header.header-redesign .brand,body .site-header.header-redesign.is-scrolled .brand,body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{width:100px!important;max-height:52px}}

/* Requested header height across viewport sizes. */
body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{height:80px!important;grid-template-rows:80px}

/* Consistent requested header type size. */
body .site-header.header-redesign .header-desktop-nav a,
body .site-header.header-redesign .header-language,
body .site-header.header-redesign .header-contact .reservation{font-size:14px!important}

/* Smaller proportional logo within the 80px masthead. */
body .site-header.header-redesign .brand,
body .site-header.header-redesign.is-scrolled .brand{width:auto!important}
body .site-header.header-redesign .brand img,
body .site-header.header-redesign.is-scrolled .brand img{width:auto!important;height:54px;max-height:54px}
@media(max-width:520px){body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{height:44px;max-height:44px}}

/* Requested ultra-compact 10px header and proportional logo. */
body .site-header.header-redesign,
body .site-header.header-redesign.is-scrolled{height:10px!important;grid-template-rows:10px}
body .site-header.header-redesign .brand img,
body .site-header.header-redesign.is-scrolled .brand img{width:auto!important;height:8px;max-height:8px}
body .site-header.header-redesign .header-contact .reservation{padding-block:0;min-height:0;line-height:10px}

/* Compact 70px header with a proportional logo. */
body .site-header.header-redesign,
body .site-header.header-redesign.is-scrolled{height:70px!important;grid-template-rows:70px}
body .site-header.header-redesign .brand img,
body .site-header.header-redesign.is-scrolled .brand img{width:auto!important;height:46px;max-height:46px}
@media(max-width:520px){body .site-header.header-redesign .brand img,body .site-header.header-redesign.is-scrolled .brand img{height:40px;max-height:40px}}

/* Japanese glyphs use native Japanese faces; Latin branding retains the supplied fonts. */
html[lang="ja"]{--font-body:"SVN Poppins Light","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
html[lang="ja"] body{font-family:var(--font-body);line-break:strict;word-break:normal;overflow-wrap:anywhere}
html[lang="ja"] :is(h1,h2,h3,h4,h5,h6){font-family:"SVN Recoleta","Hiragino Mincho ProN","Yu Mincho",serif!important;letter-spacing:.02em}
html[lang="ja"] .header-desktop-nav{gap:16px}
html[lang="ja"] .header-desktop-nav a{white-space:nowrap}
html[lang="ja"] #main p{line-height:1.9}
html[lang="ja"] body #main .welcome-lantern #welcome-title{font-family:"Hiragino Mincho ProN","Yu Mincho",serif;font-size:32px;line-height:1.6;letter-spacing:0}
@media(max-width:1000px) and (min-width:701px){html[lang="ja"] body #main .welcome-lantern #welcome-title{font-size:27px}}
@media(max-width:380px){html[lang="ja"] body #main .welcome-lantern #welcome-title{font-size:28px}}

/* Balanced navigation around the centered logo; languages sit beside booking. */
@media(min-width:1151px){
 body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{--header-book-width:clamp(150px,12vw,210px);--header-language-width:118px;display:flex!important;justify-content:flex-end;padding:0!important;gap:0!important}
 body .site-header.header-redesign>.brand,body .site-header.header-redesign.is-scrolled>.brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2}
 body .site-header.header-redesign>.header-desktop-nav{display:block;position:absolute;inset:0;pointer-events:none}
 .header-nav-left,.header-nav-right{position:absolute;top:0;height:100%;display:flex;align-items:center;gap:clamp(18px,1.6vw,32px);pointer-events:auto}
 .header-nav-left{right:calc(50% + 120px);justify-content:flex-end}
 .header-nav-right{left:calc(50% + 120px);right:calc(var(--header-book-width) + var(--header-language-width) + 20px);justify-content:center;gap:clamp(16px,1.4vw,28px)}
 body .site-header.header-redesign>.header-language{position:relative;flex:0 0 var(--header-language-width);height:100%;justify-content:flex-end;padding:0 14px 0 0;gap:7px;letter-spacing:.02em}
 body .site-header.header-redesign>.header-contact{flex:0 0 var(--header-book-width);height:70px}
 body .site-header.header-redesign .header-contact .reservation{line-height:1.4;padding:0 20px}
}
@media(min-width:1151px) and (max-width:1350px){
 .header-nav-left{right:calc(50% + 90px)}
 .header-nav-right{left:calc(50% + 90px);right:calc(var(--header-book-width) + var(--header-language-width) + 8px);gap:14px}
}
@media(min-width:1001px) and (max-width:1150px){
 body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{grid-template-columns:48px minmax(110px,1fr) auto 145px!important;padding:0 0 0 20px!important}
 body .site-header.header-redesign>.menu-toggle{display:block;grid-column:1;grid-row:1}
 body .site-header.header-redesign>.menu-toggle span{width:25px;background:#457b44}
 body .site-header.header-redesign>.brand{grid-column:2}
 body .site-header.header-redesign>.header-desktop-nav{display:none}
 body .site-header.header-redesign>.header-language{padding:0 14px;gap:7px}
}
body .site-header.header-redesign .header-contact .reservation{line-height:1.4}
@media(max-width:380px){body .site-header.header-redesign,body .site-header.header-redesign.is-scrolled{grid-template-columns:30px minmax(86px,1fr) 94px 90px!important}.header-language{gap:3px;padding-inline:5px}}

/* Keep the welcome opening line intact and lower the copy by 200px. */
body #main .welcome-lantern #welcome-title>span:first-child{white-space:nowrap}
body #main .welcome-lantern .editorial-welcome-copy{padding-top:360px}
@media(max-width:1000px) and (min-width:701px){body #main .welcome-lantern .editorial-welcome-copy{padding-top:320px}}
@media(max-width:700px){body #main .welcome-lantern .editorial-welcome-copy{padding-top:200px}}
html[lang="en"] body #main .welcome-lantern #welcome-title{font-size:clamp(24px,3.3vw,44px)}
@media(max-width:1000px) and (min-width:701px){html[lang="en"] body #main .welcome-lantern #welcome-title{font-size:clamp(23px,3.15vw,32px)}}
@media(max-width:700px){html[lang="en"] body #main .welcome-lantern #welcome-title{font-size:clamp(23px,6.8vw,36px)}}

/* Keep the welcome headline intact and lower its copy by another 100px. */
body #main .welcome-lantern #welcome-title>span:first-child{white-space:nowrap}
body #main .welcome-lantern .editorial-welcome-copy{padding-top:260px}
@media(max-width:1000px) and (min-width:701px){body #main .welcome-lantern .editorial-welcome-copy{padding-top:220px}}
@media(max-width:700px){body #main .welcome-lantern .editorial-welcome-copy{padding-top:100px}html[lang="en"] body #main .welcome-lantern #welcome-title{font-size:clamp(26px,7.5vw,36px)}}
body .site-header.header-redesign,
body .site-header.header-redesign.is-scrolled{border-bottom:1px solid #e0e0c1!important}

.map-explore-destination{display:inline-flex;align-items:center;gap:20px;margin-top:18px;font-size:12px;color:var(--green);text-decoration:none}.map-explore-destination:hover{text-decoration:underline;text-underline-offset:4px}.map-explore-destination span{font-size:20px}

/* Let the map information panel fit its content without an inner scrollbar. */
body:not(.inner-page) .location-map-live .location-map-frame{max-height:none;overflow:visible}

/* Activities: quiet editorial cards and generous, alternating experience stories. */
body #main>.home-activities{background:#faf8ed;padding-block:90px 100px}
body #main .home-activities .experience-editorial-heading{align-items:end;padding-top:0;margin-bottom:42px}
body #main .home-activities .experience-editorial-heading::before{display:none}
body #main .home-activities .experience-editorial-heading h2{margin:14px 0 0}
body #main .home-activities .experience-editorial-heading>div:last-child{max-width:340px}
body #main .home-activities .experience-editorial-heading p{margin:0 0 22px}
body #main .home-activities .experience-editorial-card{background:transparent!important;border-radius:6px!important;box-shadow:none!important;text-align:left}
body #main .home-activities .experience-editorial-card>img{height:380px;object-fit:cover;object-position:center 38%;border-radius:6px!important;transition:transform 1s cubic-bezier(.22,1,.36,1)}
body #main .home-activities .destination-caption{padding:28px 0 0;text-align:left}
body #main .home-activities .destination-caption h3{font-size:27px!important;line-height:1.3;margin:12px 0}
body #main .home-activities .destination-caption p{margin:0;max-width:36ch;font-size:14px!important;line-height:1.8}
.activity-card-link{display:inline-flex;align-items:center;gap:20px;margin-top:22px;padding-bottom:7px;border-bottom:1px solid #457b4444;color:#457b44;font-size:11px;letter-spacing:.03em}
.home-activities .destination-carousel-arrow{top:190px}
body.page-destination{background:#faf8ed}
body.page-destination #main>.page-hero{height:460px;min-height:0;margin-top:70px}
body.page-destination .page-hero>img{object-position:center 42%}
body.page-destination .page-hero::after{background:linear-gradient(90deg,#17251670,#17251618)}
body.page-destination #main .page-hero h1{font-size:clamp(44px,5vw,70px)}
.activities-page{max-width:1240px;margin:auto;padding:70px 40px 0}
.activities-intro{max-width:720px;margin:0 auto;text-align:center}
.activities-intro h2{font-size:clamp(32px,3.2vw,46px);line-height:1.3;color:#457b44;margin:18px 0 24px;text-wrap:balance}
.activities-intro p{max-width:640px;margin:auto;line-height:1.9}
.activity-jump-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 32px;margin:38px 0 72px;padding:24px 0;border-block:1px solid #e0e0c1}
.activity-jump-links a{font-size:12px;color:#457b44;text-underline-offset:6px}
.activity-jump-links a:hover{text-decoration:underline}
.activity-stories{display:grid;gap:80px}
.activity-story{display:grid;grid-template-columns:1.1fr 1fr;gap:8%;align-items:center;scroll-margin-top:100px}
.activity-story figure{margin:0;overflow:hidden;border-radius:6px}
.activity-story figure img{display:block;width:100%;height:490px;object-fit:cover;object-position:center 38%;border-radius:6px}
.activity-story:nth-child(even) figure{grid-column:2;grid-row:1}
.activity-story:nth-child(even) .activity-story-copy{grid-column:1;grid-row:1}
.activity-story-copy{padding-block:24px;max-width:440px}
.activity-number{display:block;font:400 44px/1.2 "SVN Recoleta",serif;color:#457b4444;margin-bottom:28px}
.activity-story h2{color:#457b44;font-size:clamp(30px,3vw,40px);line-height:1.3;margin:16px 0 24px;text-wrap:balance}
.activity-story p{margin:0 0 28px;line-height:1.9}
.activities-enquiry{margin:90px 0 0;padding:56px 28px;text-align:center;border-block:1px solid #e0e0c1}
.activities-enquiry h2{color:#457b44;font-size:clamp(30px,3vw,42px);margin:16px 0 20px}
.activities-enquiry p{max-width:620px;margin:0 auto 28px}
body.page-destination .experience-nearby{max-width:1240px;margin:auto;padding:80px 40px 100px}
.experience-nearby .destination-page-intro{text-align:center;max-width:720px;margin:0 auto 44px}
body.page-destination .experience-nearby .destination-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}
body.page-destination .experience-nearby .destination-stop{display:flex;flex-direction:column;gap:0;scroll-margin-top:100px}
body.page-destination .experience-nearby .destination-stop>img{width:100%;height:210px;aspect-ratio:auto;object-fit:cover;border-radius:6px}
body.page-destination .experience-nearby .destination-stop-copy{padding:22px 0 0;width:100%;max-width:none}
body.page-destination .experience-nearby .destination-stop h2{font-size:25px;margin:10px 0 14px}
body.page-destination .experience-nearby .destination-stop p{font-size:13px!important;line-height:1.8}
@media(max-width:1000px){body.page-destination .experience-nearby .destination-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-story{gap:6%}.activity-story figure img{height:420px}}
@media(max-width:700px){body #main>.home-activities{padding-block:60px 65px}body #main .home-activities .experience-editorial-heading{display:grid;gap:26px;margin-bottom:30px}body #main .home-activities .experience-editorial-card>img{height:360px}.home-activities .destination-carousel-arrow{top:180px}body.page-destination #main>.page-hero{height:360px}.activities-page{padding:48px 24px 0}.activity-jump-links{gap:16px 24px;margin-bottom:44px}.activity-stories{gap:46px}.activity-story{grid-template-columns:1fr;gap:22px}.activity-story:nth-child(even) figure,.activity-story:nth-child(even) .activity-story-copy{grid-column:auto;grid-row:auto}.activity-story figure img{height:420px}.activity-story-copy{padding:0;max-width:none}.activity-number{font-size:32px;margin-bottom:16px}.activities-enquiry{margin-top:50px;padding:38px 0}.activities-enquiry h2{font-size:30px}body.page-destination .experience-nearby{padding:55px 24px 65px}body.page-destination .experience-nearby .destination-guide-grid{grid-template-columns:1fr}.activity-story .page-link{font-size:11px}}
body #main .home-activities .destination-caption h3{font-family:"SVN Recoleta",serif!important;text-align:left}
body.page-destination #main .activity-story h2{text-align:left}
html[lang="ja"] body #main .home-activities .destination-caption h3{font-family:"Hiragino Mincho ProN","Yu Mincho",serif!important}
body.page-destination .experience-nearby .destination-stop{border:0;box-shadow:none;background:transparent}

/* Room navigation sits beneath the slide rather than over its image or copy. */
html body #main .home-room-carousel-window{padding-top:0;padding-bottom:68px}
html body #main .home-room-carousel-window>.home-room-arrow{top:auto;bottom:0;left:auto;right:0;transform:none}
html body #main .home-room-carousel-window>.home-room-arrow-prev{right:52px}

/* Large room photographs with an overlapping, airy information card. */
body.page-rooms #main>.rooms-editorial-list{padding:60px var(--section-gutter) 90px}
body.page-rooms .rooms-list{max-width:1320px;gap:80px}
body.page-rooms .room-list-row,body.page-rooms .room-list-row:nth-child(even){display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:0;align-items:center;isolation:isolate;scroll-margin-top:100px}
body.page-rooms .room-list-row .room-list-image,body.page-rooms .room-list-row:nth-child(even) .room-list-image{grid-column:1/10;grid-row:1;position:relative;width:100%;border-radius:8px;overflow:hidden}
body.page-rooms .room-list-image img{display:block;width:100%;height:clamp(480px,46vw,620px);min-height:0;aspect-ratio:auto;object-fit:cover}
body.page-rooms .room-list-row .room-list-copy,body.page-rooms .room-list-row:nth-child(even) .room-list-copy{grid-column:9/13;grid-row:1;position:relative;z-index:1;margin:40px 0;padding:36px;min-height:480px;max-width:none;background:#fff;border:1px solid #457b4410;border-radius:8px;box-shadow:0 8px 30px #263a2510;align-self:center}
body.page-rooms #main .room-list-copy h2{font-size:clamp(28px,2.8vw,40px);line-height:1.16;font-weight:400;letter-spacing:-.02em;margin:0 0 22px;text-transform:none;white-space:normal;text-wrap:balance}
body.page-rooms .room-list-meta{gap:10px 14px;margin-bottom:22px;font-size:9px;font-weight:300;letter-spacing:.03em;line-height:1.5}
body.page-rooms .room-list-meta>span{gap:6px;white-space:nowrap}
body.page-rooms .room-list-meta svg{width:16px;height:16px;flex-basis:16px}
body.page-rooms #main .room-list-copy>p{font-size:14px!important;line-height:1.85;margin:0 0 32px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
body.page-rooms .room-list-bottom{justify-content:flex-end;margin-top:auto;padding-top:22px;border-top:1px solid #457b4415}
body.page-rooms #main .room-list-link{font-size:10px!important;line-height:1.6;letter-spacing:.1em;gap:12px}
@media(min-width:701px) and (max-width:1050px){body.page-rooms .room-list-row .room-list-image,body.page-rooms .room-list-row:nth-child(even) .room-list-image{grid-column:1/9}body.page-rooms .room-list-row .room-list-copy,body.page-rooms .room-list-row:nth-child(even) .room-list-copy{grid-column:8/13;padding:28px;min-height:440px}body.page-rooms .room-list-image img{height:530px}body.page-rooms #main .room-list-copy h2{font-size:30px}}
@media(max-width:700px){body.page-rooms #main>.rooms-editorial-list{padding:36px 24px 60px}body.page-rooms .rooms-list{gap:44px}body.page-rooms .room-list-row,body.page-rooms .room-list-row:nth-child(even){display:flex;flex-direction:column;gap:0}body.page-rooms .room-list-image{order:-1}body.page-rooms .room-list-image img{height:auto;aspect-ratio:4/3}body.page-rooms .room-list-row .room-list-copy,body.page-rooms .room-list-row:nth-child(even) .room-list-copy{width:calc(100% - 24px);min-height:0;margin:-24px auto 0;padding:26px 24px;align-self:center}body.page-rooms #main .room-list-copy h2{font-size:29px;margin-bottom:20px}body.page-rooms .room-list-meta{font-size:9px;gap:10px 16px}body.page-rooms #main .room-list-copy>p{-webkit-line-clamp:unset;margin-bottom:26px}body.page-rooms .room-list-bottom{padding-top:20px}}

/* Alternate room photographs and keep both actions together on the left. */
@media(min-width:701px){
 body.page-rooms .room-list-row:nth-child(even) .room-list-image{grid-column:4/13;grid-row:1}
 body.page-rooms .room-list-row:nth-child(even) .room-list-copy{grid-column:1/5;grid-row:1}
}
@media(min-width:701px) and (max-width:1050px){
 body.page-rooms .room-list-row:nth-child(even) .room-list-image{grid-column:5/13}
 body.page-rooms .room-list-row:nth-child(even) .room-list-copy{grid-column:1/6}
}
body.page-rooms .room-list-bottom{justify-content:flex-start;gap:22px;flex-wrap:wrap}
body.page-rooms #main .room-list-book{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:12px 20px;border:1px solid var(--green);border-radius:5px;background:var(--green);color:#faf8ed;font:300 11px/1.4 var(--font-body);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
body.page-rooms #main .room-list-book:hover{background:#4e724d;border-color:#4e724d;color:#faf8ed}

/* Muted cream room information panels. */
body.page-rooms .room-list-row .room-list-copy,
body.page-rooms .room-list-row:nth-child(even) .room-list-copy,
body.page-rooms .room-list-row:hover .room-list-copy,
body.page-rooms .room-list-row:focus-within .room-list-copy{background:#e0e0c1}

/* Narrow room information panels by 20px, without a border. */
body.page-rooms .room-list-row .room-list-copy,
body.page-rooms .room-list-row:nth-child(even) .room-list-copy{width:calc(100% - 20px);justify-self:end;border:0}
@media(min-width:701px){body.page-rooms .room-list-row:nth-child(even) .room-list-copy{justify-self:start}}
@media(max-width:700px){body.page-rooms .room-list-row .room-list-copy,body.page-rooms .room-list-row:nth-child(even) .room-list-copy{width:calc(100% - 44px)}}

/* Shared brand palette. */
:root{--green:#457b44;--green-hover:#4e724d;--editorial-green:#457b44}

/* Minimal experience carousel following the image reference. */
body #main .home-activities .experience-editorial-heading{display:block;margin-bottom:44px;padding:0}
body #main .home-activities .experience-editorial-heading h2{margin:0;text-align:left}
body #main .home-activities .destination-caption{padding-top:28px}
body #main .home-activities .destination-caption h3{margin:8px 0 12px}
body #main .home-activities .destination-caption p{max-width:none}
@media(max-width:700px){body #main .home-activities .experience-editorial-heading{margin-bottom:30px}}

/* Hover keeps the experience layout still; only image tone and title color fade. */
body #main .home-activities .experience-editorial-card,
body #main .home-activities .experience-editorial-card:hover{transform:none;box-shadow:none!important;transition:none}
body #main .home-activities .experience-editorial-card>img,
body #main .home-activities .experience-editorial-card:hover>img{transform:none;clip-path:none;filter:brightness(1) saturate(1);transition:filter .9s cubic-bezier(.22,1,.36,1)}
body #main .home-activities .destination-caption{transform:none;transition:none}
body #main .home-activities .destination-caption h3{transition:color .65s ease}
@media(hover:hover) and (prefers-reduced-motion:no-preference){
 body #main .home-activities .experience-editorial-card:hover>img{filter:brightness(1.035) saturate(1.035)}
 body #main .home-activities .experience-editorial-card:hover h3{color:var(--green-hover)}
}
@media(prefers-reduced-motion:reduce){body #main .home-activities .experience-editorial-card>img,body #main .home-activities .destination-caption h3{transition:none}}

/* A restrained image zoom stays clipped inside its fixed frame. */
body #main .home-activities .activity-image-frame{display:block;flex-shrink:0;height:380px;overflow:hidden;border-radius:6px}
body #main .home-activities .activity-image-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 38%;transform:scale(1);transition:transform 1.2s cubic-bezier(.22,1,.36,1);border-radius:0!important}
@media(hover:hover) and (prefers-reduced-motion:no-preference){body #main .home-activities .experience-editorial-card:hover .activity-image-frame img{transform:scale(1.035)}}
@media(max-width:700px){body #main .home-activities .activity-image-frame{height:360px}}
@media(prefers-reduced-motion:reduce){body #main .home-activities .activity-image-frame img{transition:none}}

/* Solid brand-green dining panel, side arrows and a quiet dot indicator. */
body #main .dining-panorama-panel{background:#457b44;opacity:1;backdrop-filter:none}
.dining-panorama-controls{background:none;border-radius:0;padding:8px;bottom:24px}
body #main .dining-panorama>.dining-panorama-arrow{position:absolute;z-index:3;top:50%;bottom:auto;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #faf8ed80;border-radius:50%;background:#faf8ed;color:var(--green);font-size:20px;transition:background .3s ease,color .3s ease}
body #main .dining-panorama>.dining-panorama-prev{left:20px;right:auto}
body #main .dining-panorama>.dining-panorama-next{right:20px;left:auto}
body #main .dining-panorama>.dining-panorama-arrow:hover{background:#4e724d;color:#faf8ed}
@media(max-width:700px){body #main .dining-panorama>.dining-panorama-arrow{top:85px;width:38px;height:38px}body #main .dining-panorama>.dining-panorama-prev{left:18px}body #main .dining-panorama>.dining-panorama-next{right:18px}}
@media(prefers-reduced-motion:reduce){body #main .dining-panorama>.dining-panorama-arrow{transition:none}}

/* Shared content rails follow the footer: 5.5vw gutters, capped at 1440px. */
:root{--content-max:1440px;--page-gutter:max(5.5vw,calc((100vw - 1440px)/2));--section-gutter:var(--page-gutter);--section-space:88px}
body .site-footer.footer-columns{padding-inline:var(--page-gutter)}
body .footer-columns :is(.footer-top,.footer-main,.footer-bottom){max-width:var(--content-max);margin-inline:auto;width:100%}
html body #main>.home-room-carousel,
body #main>.welcome-lantern,
body:not(.inner-page) .location-map.location-map-live{padding-inline:var(--page-gutter)}
html body #main .home-room-carousel-window,
html body #main .home-room-carousel-heading,
body #main .welcome-lantern-inner{width:100%;max-width:var(--content-max);margin-inline:auto}
body #main :is(.home-activities,.home-wellness-layout)>.editorial-container{width:calc(100% - 2 * var(--page-gutter));max-width:var(--content-max);margin-inline:auto;padding-inline:0}
body #main .welcome-lantern-art{width:100%;max-width:720px;margin-left:0}
body #main .dining-panorama-slide{padding-inline:var(--page-gutter)}
body #main .dining-panorama-panel{max-width:100%}
body #main>.home-activities,
html body #main>.home-room-carousel{padding-block:var(--section-space)}
body.inner-page #main>:is(.rooms-editorial-list,.activities-page,.experience-nearby,.dining-introduction,.dining-atmosphere,.dining-highlights,.dining-pool,.spa-intro,.spa-services,.gallery-content,.offers-content,.contact-content,.intro,.about-purpose,.page-story){width:100%;max-width:none;margin-inline:0;padding-inline:var(--page-gutter)}
body.page-rooms .rooms-list{max-width:var(--content-max);width:100%;margin-inline:auto;gap:var(--section-space)}
body.inner-page #main>:is(.rooms-editorial-list,.activities-page,.dining-introduction,.spa-intro,.spa-services,.gallery-content,.offers-content,.contact-content,.intro,.about-purpose){padding-top:var(--section-space)}
body.inner-page #main>:is(.rooms-editorial-list,.experience-nearby,.spa-services,.gallery-content,.offers-content,.contact-content,.about-purpose){padding-bottom:var(--section-space)}
.activities-page .activity-stories{gap:var(--section-space)}
body.page-destination .experience-nearby{padding-top:var(--section-space)}
body #main .home-activities .destination-carousel-prev{left:-22px}
body #main .home-activities .destination-carousel-next{right:-22px}
@media(max-width:1000px){:root{--section-space:64px}}
@media(max-width:700px){
 :root{--page-gutter:24px;--section-space:52px}
 body .site-footer.footer-columns{padding-inline:var(--page-gutter)}
 body #main .welcome-lantern-inner{grid-template-columns:1fr}
 body #main .welcome-lantern-art{width:min(100%,510px);margin-left:auto;margin-right:auto;transform:none}
 body #main .home-activities .destination-carousel-prev{left:-16px}
 body #main .home-activities .destination-carousel-next{right:-16px}
}

/* Spa: one generous image and a unified right-hand story column. */
body #main>.home-wellness-layout{padding-block:var(--section-space);background-color:#344b33}
body #main .home-wellness-layout>.spa-background-video{z-index:-2}
body #main .home-wellness-layout::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:rgba(19,28,19,.36)}
body #main .home-wellness-layout>.editorial-container{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(40px,5vw,80px);align-items:center}
body #main .home-wellness-layout .wellness-editorial-photo{grid-column:1;grid-row:1;margin:0;width:100%;padding:0}
body #main .home-wellness-layout .wellness-editorial-photo img{display:block;width:100%;height:clamp(390px,36vw,560px);aspect-ratio:auto;object-fit:cover;object-position:center;border-radius:7px!important}
body #main .home-wellness-layout .home-spa-copy{grid-column:2;grid-row:1;min-width:0;padding-block:24px}
body #main .home-wellness-layout .wellness-editorial-heading{display:block;width:100%;max-width:none;margin:0;text-align:left}
body #main .home-wellness-layout .wellness-editorial-heading .section-eyebrow{text-align:left}
body #main .home-wellness-layout .wellness-editorial-heading h2{font-size:clamp(32px,3.2vw,46px);text-align:left;line-height:1.25;margin:20px 0 26px;text-wrap:balance;letter-spacing:-.02em}
body #main .home-wellness-layout .wellness-editorial-statement{display:block;width:100%;max-width:460px;margin:0;padding:0;align-self:auto;text-align:left}
body #main .home-wellness-layout .wellness-editorial-statement p{margin:0 0 30px;line-height:1.85}
body #main .home-wellness-layout .wellness-editorial-statement .editorial-link{margin:0}
@media(max-width:700px){body #main .home-wellness-layout>.editorial-container{grid-template-columns:1fr;gap:30px}body #main .home-wellness-layout .home-spa-copy{grid-column:1;grid-row:2;padding:0}body #main .home-wellness-layout .wellness-editorial-photo img{height:auto;aspect-ratio:4/3}body #main .home-wellness-layout .wellness-editorial-heading h2{font-size:32px;margin:16px 0 22px}body #main .home-wellness-layout .wellness-editorial-statement{max-width:none}}

/* Experience stories begin directly with the title. */
body.page-destination #main .activity-story-copy{padding-block:16px}
body.page-destination #main .activity-story h2{margin:0 0 24px;line-height:1.25}
body.page-destination #main .activity-story p{margin:0 0 28px}
@media(max-width:700px){body.page-destination #main .activity-story-copy{padding:0}body.page-destination #main .activity-story h2{margin-bottom:20px}}

/* Taller nearby destination photography, without numbered category labels. */
body.page-destination .experience-nearby .destination-stop>img{height:clamp(280px,25vw,360px);object-fit:cover;object-position:center}
body.page-destination #main .experience-nearby .destination-stop-copy{padding-top:24px}
body.page-destination #main .experience-nearby .destination-stop h2{min-height:0;margin:0 0 16px;line-height:1.3}
@media(max-width:700px){body.page-destination .experience-nearby .destination-stop>img{height:auto;aspect-ratio:4/3}body.page-destination #main .experience-nearby .destination-stop-copy{padding-top:22px}}

/* A single destination heading introduces the nearby places. */
body.page-destination .experience-nearby .destination-page-intro{margin:0 auto 44px}
body.page-destination .experience-nearby .destination-page-intro h2{margin:0;color:var(--green)}

/* Divider between hotel experiences and nearby destinations. */
body.page-destination .experience-nearby{position:relative;margin-top:var(--section-space)!important}
body.page-destination .experience-nearby::before{content:"";position:absolute;top:0;left:var(--page-gutter);right:var(--page-gutter);height:1px;background:#e0e0c1}

/* Equal breathing room above and below the destination heading. */
body.page-destination #main>.experience-nearby{padding-top:0}
body.page-destination #main .experience-nearby .destination-page-intro{max-width:none;margin:0;padding:56px 0}
body.page-destination #main .experience-nearby .destination-page-intro h2{margin:0;line-height:1.25}
@media(max-width:700px){body.page-destination #main .experience-nearby .destination-page-intro{padding:36px 0}}

/* Static spa backdrop replaces the decorative film. */
body #main>.home-wellness-layout{background-image:url('../img/spa-bg.png');background-position:center;background-size:cover;background-repeat:no-repeat}

/* Light spa surface with readable green headings and dark body text. */
body #main>.home-wellness-layout{background-color:#faf8ed}
body #main .home-wellness-layout::before{background:rgba(250,248,237,.78)}
body #main .home-wellness-layout .wellness-editorial-heading h2,
body #main .home-wellness-layout .wellness-editorial-heading .section-eyebrow{color:var(--green)!important;text-shadow:none}
body #main .home-wellness-layout .wellness-editorial-statement p{color:var(--text)!important;text-shadow:none}

/* Reduce visible spa background detail by a further 30%. */
body #main .home-wellness-layout::before{background:rgba(250,248,237,.846)}

/* Halve the remaining spa backdrop visibility. */
body #main .home-wellness-layout::before{background:rgba(250,248,237,.923)}

/* Muted cream spa canvas, preserving the current backdrop visibility. */
body #main>.home-wellness-layout{background-color:#e0e0c1}
body #main .home-wellness-layout::before{background:rgba(224,224,193,.923)}

/* Keep the opening spa phrase on a single line. */
body #main .home-wellness-layout #wellness-title>.heading-light-italic{white-space:nowrap}
@media(max-width:380px){html[lang="vi"] body #main .home-wellness-layout #wellness-title{font-size:28px}}

body #main .home-wellness-layout #wellness-title>.spa-title-second{display:block;white-space:nowrap}

/* Move the muted cream surface from Spa to Experiences. */
body #main>.home-wellness-layout{background-color:#faf8ed}
body #main .home-wellness-layout::before{background:rgba(250,248,237,.923)}
body #main>.home-activities{background:#e0e0c1}

/* Only homepage section titles use the shared uppercase scale. */
:root{--section-heading-size:40px}
html body:not(.inner-page):not(.page-room-detail) #main :is(#welcome-title,#rooms-title,#wellness-title,#destination-title),
html body:not(.inner-page):not(.page-room-detail) #main .dining-panorama-panel h2,
html body:not(.inner-page):not(.page-room-detail) #location-map-title{
 font-size:var(--section-heading-size)!important;
 font-weight:400!important;
 line-height:1.3!important;
 letter-spacing:0!important;
 text-transform:uppercase!important;
}
html body:not(.inner-page):not(.page-room-detail) :is(#welcome-title,#rooms-title,#wellness-title,#destination-title,#location-map-title)>span{text-transform:uppercase!important}
@media(max-width:1000px){:root{--section-heading-size:34px}}
@media(max-width:700px){:root{--section-heading-size:28px}}

/* Gallery text filters with a fine top rule and selected-tab underline. */
body.page-gallery #main .gallery-filters{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px 36px;border-top:1px solid #e0e0c1;padding-top:30px;margin:0 0 38px}
body.page-gallery #main .gallery-filters button,
body.page-gallery #main .gallery-filters button:hover,
body.page-gallery #main .gallery-filters button[aria-pressed="true"]{position:relative;border:0;border-radius:0!important;background:transparent;color:var(--green);padding:10px 0 12px;min-height:44px;font:300 14px/1.5 var(--font-body);box-shadow:none;transform:none;transition:color .3s ease}
body.page-gallery #main .gallery-filters button::after{content:"";position:absolute;bottom:3px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform .3s ease}
body.page-gallery #main .gallery-filters button[aria-pressed="true"]::after{transform:scaleX(1)}
body.page-gallery #main .gallery-filters button:hover{color:var(--green-hover)}
body.page-gallery #main .gallery-filters button:focus-visible{outline:1px solid var(--green);outline-offset:5px}
@media(max-width:700px){body.page-gallery #main .gallery-filters{gap:8px 24px;padding-top:24px;margin-bottom:30px}}
@media(prefers-reduced-motion:reduce){body.page-gallery #main .gallery-filters button,body.page-gallery #main .gallery-filters button::after{transition:none}}

/* Gallery filters retain only the active-tab underline. */
body.page-gallery #main .gallery-filters{border-top:0}

/* Homepage offer: a single linked artwork with an outside close control. */
.offers-popup{position:fixed;inset:0;width:min(820px,calc(100vw - 144px),86svh);max-width:none;max-height:none;height:auto;margin:auto;padding:0;border:0;background:transparent;overflow:visible;color:#faf8ed}
.offers-popup::backdrop{background:rgba(14,20,13,.78)}
.offers-popup-link{display:block;border-radius:20px;overflow:hidden;box-shadow:0 20px 80px #0005}
.offers-popup-link img{display:block;width:100%;height:auto;object-fit:contain}
.offers-popup-close{position:absolute;top:8px;right:-68px;display:grid;place-items:center;width:48px;height:48px;margin:0;padding:0;border:1px solid #faf8ed99;border-radius:50%!important;color:#faf8ed;background:transparent;transition:background .25s ease,border-color .25s ease}
.offers-popup-close span::before,.offers-popup-close span::after{content:"";position:absolute;top:50%;left:50%;width:21px;height:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.offers-popup-close span::after{transform:translate(-50%,-50%) rotate(-45deg)}
.offers-popup-close:hover{background:#ffffff20;border-color:#faf8ed}
.offers-popup[open]{animation:offer-popup-enter .45s cubic-bezier(.22,1,.36,1) both}
@keyframes offer-popup-enter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:700px){.offers-popup{width:min(calc(100vw - 36px),calc(100svh - 110px))}.offers-popup-link{border-radius:14px}.offers-popup-close{top:-52px;right:0;width:40px;height:40px}}
@media(prefers-reduced-motion:reduce){.offers-popup[open]{animation:none}.offers-popup-close{transition:none}}
.offers-popup{height:fit-content}

/* Compact offer artwork leaves generous space around the homepage. */
.offers-popup{width:min(520px,calc(100vw - 120px),74svh)}
.offers-popup-link{border-radius:16px}
.offers-popup::backdrop{background:rgba(14,20,13,.65)}
.offers-popup-close{width:40px;height:40px;right:-54px;top:0}
@media(max-width:700px){.offers-popup{width:min(420px,calc(100vw - 48px),calc(100svh - 130px))}.offers-popup-close{right:0;top:-48px;width:36px;height:36px}}

/* Requested offer width, constrained to fit the viewport. */
.offers-popup{width:min(650px,calc(100vw - 120px),86svh)}
@media(max-width:700px){.offers-popup{width:min(650px,calc(100vw - 48px),calc(100svh - 130px))}}

/* Mobile header: centered logo, menu left, booking right. */
@media(max-width:1150px){
 body .site-header.header-redesign,
 body .site-header.header-redesign.is-scrolled{display:flex!important;justify-content:space-between;align-items:center;padding:0 0 0 16px!important;gap:0!important}
 body .site-header.header-redesign>.header-language{display:none!important}
 body .site-header.header-redesign>.brand,
 body .site-header.header-redesign.is-scrolled>.brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:auto!important;margin:0;padding:0}
 body .site-header.header-redesign>.menu-toggle{display:block;flex:0 0 30px;z-index:1}
 body .site-header.header-redesign>.header-contact{height:70px;flex:0 0 112px;margin:0;z-index:1}
 body .site-header.header-redesign .header-contact .reservation{padding:0 12px;line-height:1.4}
}
@media(max-width:380px){body .site-header.header-redesign>.header-contact{flex-basis:92px}body .site-header.header-redesign .header-contact .reservation{font-size:12px!important;padding:0 8px}}

/* Centered fullscreen navigation without hover photographs. */
body .site-menu{background:var(--green)}
body .site-menu .menu-photo{display:none!important}
body .site-menu .menu-body{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;min-height:100dvh;margin:0;padding:140px 24px 44px;text-align:center}
body .site-menu .menu-navigation{width:100%;max-width:600px;padding:0;margin:0;text-align:center}
body .site-menu .menu-navigation nav{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
body .site-menu .menu-navigation nav a{font-size:clamp(26px,4svh,36px);line-height:1.25;text-align:center}
body .site-menu .languages{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:26px;text-align:center}
body .site-menu .menu-contact-info{display:grid;grid-template-columns:1fr 1fr;gap:36px;width:100%;max-width:650px;padding:0;text-align:center}
body .site-menu .menu-contact-info h3{font-size:22px;margin:0 0 12px;text-align:center}
body .site-menu .menu-contact-info p{font-size:13px;line-height:1.8;text-align:center}
@media(max-width:700px){body .site-menu .menu-body{padding:112px 24px 32px;gap:28px}body .site-menu .menu-navigation nav{gap:6px}body .site-menu .menu-navigation nav a{font-size:clamp(24px,3.8svh,30px)}body .site-menu .menu-contact-info{gap:18px}body .site-menu .menu-contact-info h3{font-size:19px}body .site-menu .menu-contact-info p{font-size:12px}}
@media(max-width:380px){body .site-menu .menu-contact-info{grid-template-columns:1fr;gap:20px}}

/* Independent lantern and handwritten signature layers for a gentle scroll drift. */
@font-face{font-family:"Gem Signature";src:url('../fonts/LCSacTrial-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
body #main .welcome-lantern-art{position:relative}
.welcome-lantern-visual{transform:translate3d(0,var(--lantern-scroll,0px),0) rotate(var(--lantern-tilt,0deg));transform-origin:50% 8%}
.welcome-lantern-visual img{display:block;width:100%;height:auto}
body #main .welcome-lantern-slogan{position:absolute;z-index:1;top:43%;left:2%;width:96%;margin:0;padding:0;color:#faf8ed;font:400 clamp(46px,6.7vw,100px)/.98 "Gem Signature",cursive;letter-spacing:0;text-align:center;text-transform:none;pointer-events:none;text-shadow:0 2px 16px #34462520;transform:translate3d(0,var(--slogan-scroll,0px),0) rotate(-9deg)}
.welcome-lantern-slogan span{display:block;white-space:nowrap}
.welcome-lantern-slogan span+span{margin-top:10px;padding-left:8%}
@media(max-width:700px){body #main .welcome-lantern-slogan{font-size:clamp(42px,11.5vw,68px)}}
@media(prefers-reduced-motion:reduce){.welcome-lantern-visual{transform:none}body #main .welcome-lantern-slogan{transform:rotate(-9deg)}}

/* Upright, left-aligned signature with no rotational motion. */
body #main .welcome-lantern-slogan{text-align:left;left:8%;width:90%;font-style:normal;transform:translate3d(0,var(--slogan-scroll,0px),0)}
body #main .welcome-lantern-slogan span+span{padding-left:0}
.welcome-lantern-visual{transform:translate3d(0,var(--lantern-scroll,0px),0)}
@media(prefers-reduced-motion:reduce){body #main .welcome-lantern-slogan,.welcome-lantern-visual{transform:none}}

/* Recoleta lettering and deeper, gently eased scroll layers. */
body #main .welcome-lantern-slogan{font-family:"SVN Recoleta",serif;font-size:clamp(44px,5.4vw,78px);font-weight:400;font-style:normal;line-height:1.12;letter-spacing:-.035em;text-align:left}
body #main .welcome-lantern-slogan span+span{margin-top:8px;padding-left:0}
@media(max-width:700px){body #main .welcome-lantern-slogan{font-size:clamp(30px,9.4vw,48px);line-height:1.15}}

/* Large signature, translated with the selected site language. */
body #main .welcome-lantern-slogan{font-size:110px}
@media(min-width:701px) and (max-width:1300px){body #main .welcome-lantern-slogan{font-size:clamp(48px,7.4vw,96px)}}
@media(max-width:700px){body #main .welcome-lantern-slogan{font-size:clamp(44px,14vw,78px)}}
html[lang="ja"] body #main .welcome-lantern-slogan{font-family:"SVN Recoleta","Hiragino Mincho ProN","Yu Mincho",serif}

/* Opening times match the dining detail page. */
body #main .dining-panorama-panel .venue-hours{display:flex;align-items:center;gap:9px;margin:-8px 0 22px;color:#faf8ed;font-size:12px;line-height:1.5}
body #main .dining-panorama-panel .venue-hours svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.3}
body #main .dining-panorama-panel .venue-hours-time{font-size:12px;letter-spacing:.02em}

/* Soft dining artwork over the solid brand-green panel. */
body #main .dining-panorama-panel{background-color:var(--green);background-image:linear-gradient(rgba(69,123,68,.92),rgba(69,123,68,.92)),url('../img/bg-dining.png');background-position:center;background-repeat:no-repeat;background-size:cover}
body #main .dining-panorama-panel .venue-hours,
body #main .dining-panorama-panel .venue-hours-time{color:#fff!important;text-transform:uppercase}
body #main .dining-panorama-panel .venue-hours svg{color:#fff;stroke:#fff}

/* White footer logo; preserve the header artwork's original colors. */
body .site-footer .footer-logo img{filter:brightness(0) invert(1)}

/* Mobile and tablet navigation: white logo without the contact details below. */
@media(max-width:1366px){
 body .site-menu .menu-header .brand img{filter:brightness(0) invert(1)}
 body .site-menu .menu-contact-info{display:none}
 body .site-menu .menu-header .header-contact .reservation{
  border:1px solid #fff!important;
 }
 body .site-header.header-redesign>.header-contact{height:100%;align-self:stretch}
 body .site-header.header-redesign .header-contact .reservation{
  width:100%;height:100%;margin:0;border:0!important;
 }
}

#nearby-destination-title{scroll-margin-top:110px}

/* Seasonal packages share the footer content rails and a clear divider. */
body.page-offers .offer-editorial{max-width:var(--content-max);width:100%;margin-inline:auto}
body.page-offers .offer-editorial+.offer-editorial{margin-top:var(--section-space);padding-top:var(--section-space);border-top:1px solid #e0e0c1}
body.page-offers .offer-winter .offer-period+.offer-period{margin-top:16px}
.offer-winter{scroll-margin-top:100px}
