:root{--forest:#17372d;--deep:#0e241d;--leaf:#668c67;--sun:#e9b85c;--cream:#f4f0e8;--paper:#faf9f5;--ink:#1a2922;--muted:#68736c;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',sans-serif;--display:'Manrope',sans-serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55;overflow-x:hidden}img{display:block;width:100%;object-fit:cover}a{color:inherit;text-decoration:none}button,select,input{font:inherit}.section-wrap{max-width:1200px;margin:auto;padding-left:5vw;padding-right:5vw}.site-header{position:fixed;top:0;z-index:10;width:100%;height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;color:#fff;background:rgba(23,55,45,.88);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.14)}.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;letter-spacing:-.05em;font-size:1.15rem}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid currentColor;border-radius:50%;font-family:var(--serif);font-weight:500;font-size:1rem}.brand-accent{color:var(--sun)}.brand-logo{max-height:55px;width:auto}.desktop-nav{display:flex;gap:34px;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}.desktop-nav a{opacity:.82;transition:opacity .2s,color .2s}.desktop-nav a:hover{opacity:1;color:var(--sun)}.header-cta{border:1px solid rgba(255,255,255,.45);padding:10px 17px;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;background:none;color:#fff;cursor:pointer}.header-cta span,.text-link span,.button span{color:var(--sun);font-size:1.1em}.menu-toggle,.mobile-nav{display:none}.hero{position:relative;min-height:93vh;background:var(--forest);color:#fff;display:flex;align-items:flex-end;overflow:hidden}.hero-image{position:absolute;inset:0;height:100%;object-position:center 43%}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,25,19,.78),rgba(7,25,19,.28) 58%,rgba(7,25,19,.08)),linear-gradient(0deg,rgba(7,25,19,.65),transparent 48%)}.hero-copy{position:relative;z-index:1;width:min(700px,90%);margin:0 0 11vh 10vw}.eyebrow{font:700 .68rem var(--display);letter-spacing:.2em;color:var(--leaf);text-transform:uppercase}.eyebrow.light{color:#eacb8a}.hero h1{font:500 clamp(3.4rem,7vw,6.5rem)/.97 var(--serif);letter-spacing:-.045em;margin:20px 0}.hero h1 em,h2 em{font-style:italic;color:var(--sun)}.hero-description{max-width:370px;color:rgba(255,255,255,.78);font-size:1rem}.hero-actions{display:flex;gap:28px;align-items:center;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;border:0;padding:15px 19px;cursor:pointer;font:700 .72rem var(--display);letter-spacing:.1em;text-transform:uppercase;transition:transform .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-sun{background:var(--sun);color:var(--deep)}.button-dark{background:var(--forest);color:#fff}.text-link{display:inline-flex;gap:16px;align-items:center;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(23,55,45,.3);padding-bottom:7px}.text-link.light{color:#fff;border-color:rgba(255,255,255,.4)}.hero-note{position:absolute;right:6vw;bottom:10vh;display:flex;gap:14px;align-items:center;color:rgba(255,255,255,.82);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em}.hero-note .line{height:1px;width:42px;background:var(--sun)}.hero-scroll{position:absolute;bottom:26px;left:5vw;color:rgba(255,255,255,.7);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;display:flex;gap:12px;align-items:center}.hero-scroll span{display:block;width:90px;height:1px;background:rgba(255,255,255,.5)}.intro{padding-top:125px;padding-bottom:105px}.intro-kicker{display:flex;gap:18px;align-items:center;color:var(--muted);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase}.intro-kicker span:first-child{color:var(--sun);font-weight:700}.rule{width:55px;height:1px;background:#cfd2ca}.intro-content{display:grid;grid-template-columns:1.2fr .8fr;gap:12%;margin-top:54px}.intro h2,.section-heading h2,.celebrate h2,.booking h2,.location h2{font:500 clamp(2.8rem,4.7vw,4.5rem)/1.02 var(--serif);letter-spacing:-.045em}.intro-text{max-width:370px;padding-top:13px}.intro-text p,.celebrate-copy>p,.location p{color:var(--muted);font-size:1rem;margin-bottom:27px}.amenities{border-top:1px solid #d9dcd4;display:grid;grid-template-columns:repeat(4,1fr);margin-top:98px}.amenities div{display:flex;gap:16px;padding:23px 12px 0 0;border-right:1px solid #d9dcd4;color:var(--muted);font-size:.84rem}.amenities div:not(:first-child){padding-left:27px}.amenities div:last-child{border:0}.amenities strong{font:1.5rem var(--serif);color:var(--leaf)}.stays{padding-top:25px;padding-bottom:115px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:45px}.section-heading h2{margin-top:11px}.filter-tabs{display:flex;gap:7px;align-items:center}.filter{border:1px solid #d9dcd4;background:none;padding:9px 15px;color:var(--muted);font-size:.7rem;cursor:pointer}.filter.active,.filter:hover{background:var(--forest);border-color:var(--forest);color:#fff}.stay-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start}.stay-card{background:#fff;box-shadow:0 10px 40px rgba(23,55,45,.07)}.stay-card:nth-child(2){margin-top:78px}.stay-card:nth-child(3){grid-column:2;margin-top:-220px}.stay-photo{position:relative;height:390px;overflow:hidden}.stay-card:not(.featured) .stay-photo{height:300px}.stay-photo img{height:100%;transition:transform .7s}.stay-card:hover .stay-photo img{transform:scale(1.05)}.stay-number{position:absolute;left:20px;top:19px;color:#fff;font:italic 1.1rem var(--serif)}.pill{position:absolute;right:18px;top:17px;background:rgba(255,255,255,.9);color:var(--forest);padding:7px 11px;font-size:.62rem;text-transform:uppercase;letter-spacing:.1em}.stay-info{padding:24px 25px 26px}.stay-title{display:flex;justify-content:space-between;align-items:center}.stay-title h3{font:500 1.9rem var(--serif)}.stay-title span{font-size:1.3rem;color:var(--leaf)}.stay-info>p{color:var(--muted);font-size:.88rem;max-width:470px;margin:9px 0 18px}.tag-row{display:flex;gap:7px;flex-wrap:wrap}.tag-row span{border:1px solid #e2e5dd;color:var(--muted);padding:5px 9px;font-size:.63rem;text-transform:uppercase;letter-spacing:.06em}.stay-footer{border-top:1px solid #e6e7e1;margin-top:23px;padding-top:17px;display:flex;align-items:end;justify-content:space-between;gap:15px}.stay-footer small{display:block;color:var(--muted);font-size:.68rem}.stay-footer strong{display:block;font:500 1.4rem var(--serif);color:var(--forest)}.stay-footer i{font:400 .72rem var(--sans);color:var(--muted)}.reserve-link{border:0;border-bottom:1px solid var(--forest);background:none;padding:0 0 6px;color:var(--forest);font:700 .68rem var(--display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.reserve-link span{color:var(--leaf);margin-left:7px;font-size:1rem}.price-note{grid-column:1/-1;margin-top:25px;color:var(--muted);font-size:.77rem}.price-note span{color:var(--sun);margin-right:8px}.details-band,.booking{background:var(--forest);color:#fff}.details-band{padding:105px 0}.details-layout{display:grid;grid-template-columns:1fr 1fr;gap:14%}.details-band h2,.booking h2{font:500 clamp(2.7rem,4.5vw,4.4rem)/1 var(--serif);letter-spacing:-.04em;margin-top:15px}.detail-list div{display:grid;grid-template-columns:37px 1fr;gap:18px;border-top:1px solid rgba(255,255,255,.2);padding:20px 0}.detail-list span{color:var(--sun);font:.7rem var(--display)}.detail-list p{font-size:.86rem;color:rgba(255,255,255,.7)}.detail-list strong{font-size:1rem;color:#fff}.celebrate{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:center;padding-top:125px;padding-bottom:125px}.celebrate-image{position:relative;height:590px}.celebrate-image img{height:100%}.celebrate-image:after{content:'';position:absolute;inset:14px;border:1px solid rgba(255,255,255,.65)}.celebrate-image span{position:absolute;z-index:1;bottom:34px;left:34px;color:#fff;font:italic 1.25rem var(--serif);line-height:1.1}.celebrate-copy{max-width:450px}.celebrate-copy h2{margin:15px 0 27px}.price-callout{display:flex;gap:18px;align-items:center;border-top:1px solid #d9dcd4;border-bottom:1px solid #d9dcd4;padding:18px 0;margin:26px 0;color:var(--forest)}.price-callout strong{font:500 1.5rem var(--serif)}.price-callout span{color:var(--muted);font-size:.72rem}.gallery{padding-top:45px;padding-bottom:125px}.gallery .section-heading{align-items:center}.gallery-grid{display:grid;grid-template-columns:1.25fr .75fr .75fr;grid-template-rows:250px 250px;gap:12px}.gallery-grid img{height:100%;filter:saturate(.88)}.gallery-large{grid-row:span 2}.gallery-wide{grid-column:span 2}.booking{padding:110px 0}.booking-layout{display:grid;grid-template-columns:1fr .75fr;gap:15%;align-items:start}.booking h2{margin:14px 0 20px}.booking-layout>div:first-child>p{max-width:350px;color:rgba(255,255,255,.7)}.booking-facts{display:flex;flex-direction:column;gap:9px;color:#d9e1d7;font-size:.78rem;margin-top:30px}.booking-form{background:#f9f6ee;color:var(--ink);padding:30px}.booking-form label{display:block;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;margin:0 0 7px}.booking-form select,.booking-form input{width:100%;background:transparent;border:0;border-bottom:1px solid #cbd0c8;border-radius:0;padding:10px 0 12px;margin-bottom:22px;color:var(--forest);outline:none}.button.full{width:100%;margin-top:4px}.booking-form small{display:block;color:var(--muted);font-size:.67rem;text-align:center;margin-top:15px}.location{display:grid;grid-template-columns:1fr 1fr;gap:14%;align-items:center;padding-top:120px;padding-bottom:120px}.location h2{margin:15px 0 23px;font-size:clamp(2.5rem,4vw,3.8rem)}.location p{max-width:390px}.map-card{height:260px;background:linear-gradient(135deg,#b5c5a3,#dbe0ca);display:flex;align-items:center;justify-content:center;gap:15px;position:relative;color:var(--forest)}.map-card:before{content:'';position:absolute;inset:18px;border:1px solid rgba(23,55,45,.23)}.map-pin{display:grid;place-items:center;position:relative;width:43px;height:43px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--sun);font:500 1.4rem var(--serif);color:var(--forest)}.map-card div:nth-child(2){position:relative;display:flex;flex-direction:column}.map-card strong{font:500 1.2rem var(--serif)}.map-card span{font-size:.7rem;color:var(--muted)}.map-arrow{position:absolute;right:27px;top:23px;font-size:1.4rem}footer{background:var(--deep);color:#fff;padding:50px 5vw 20px}.footer-inner,.footer-bottom{max-width:1200px;margin:auto}.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:30px}.footer-inner p{color:rgba(255,255,255,.55);font-size:.8rem}.footer-inner>div:last-child{display:flex;gap:24px;color:#dbe2d7;font-size:.76rem}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:48px;padding-top:17px;display:flex;justify-content:space-between;color:rgba(255,255,255,.42);font-size:.68rem}
+@media(max-width:800px){.site-header{height:66px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:block;border:0;background:none;color:#fff;font-size:1.4rem}.mobile-nav{display:flex;position:fixed;z-index:9;top:66px;left:0;right:0;background:var(--forest);flex-direction:column;padding:0 7vw;max-height:0;overflow:hidden;transition:max-height .3s}.mobile-nav.open{max-height:300px;padding-top:12px;padding-bottom:15px}.mobile-nav a{padding:10px 0;color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.hero{min-height:760px}.hero-image{object-position:57% center}.hero-copy{margin:0 7vw 13vh}.hero h1{font-size:clamp(3rem,14vw,5rem)}.hero-note{display:none}.intro,.stays,.gallery,.location{padding-top:80px;padding-bottom:80px}.intro-content,.details-layout,.celebrate,.booking-layout,.location{grid-template-columns:1fr;gap:42px}.intro-text{padding:0}.amenities{grid-template-columns:repeat(2,1fr);margin-top:55px}.amenities div{padding:18px 5px 18px 0!important;border-right:0;border-bottom:1px solid #d9dcd4}.amenities div:nth-child(odd){border-right:1px solid #d9dcd4}.section-heading{display:block}.filter-tabs{margin-top:25px}.stay-grid{display:block}.stay-card:nth-child(2),.stay-card:nth-child(3){margin-top:18px}.stay-photo,.stay-card:not(.featured) .stay-photo{height:320px}.details-band{padding:80px 0}.celebrate-image{height:420px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:210px 210px 210px}.gallery-large{grid-row:span 2}.gallery-wide{grid-column:span 2}.booking{padding:80px 0}.location{display:grid}.map-card{height:220px}.footer-inner{display:grid;grid-template-columns:1fr 1fr}.footer-inner>p{grid-column:1/-1;grid-row:2}.footer-inner>div:last-child{grid-column:1/-1;grid-row:3}.footer-bottom{display:block;line-height:2}.footer-bottom span{display:block}}@media(max-width:450px){.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.stay-title h3{font-size:1.65rem}.stay-footer{align-items:flex-start;flex-direction:column}.reserve-link{margin-top:4px}.celebrate-copy h2{font-size:2.6rem}.gallery-grid{grid-template-rows:180px 180px 180px}.footer-inner{display:flex;flex-direction:column}}
:root{--forest:#17372d;--deep:#0e241d;--leaf:#668c67;--sun:#e9b85c;--cream:#f4f0e8;--paper:#faf9f5;--ink:#1a2922;--muted:#68736c;--serif:'Fraunces',Georgia,serif;--sans:'Plus Jakarta Sans',sans-serif;--display:'Bricolage Grotesque',sans-serif}
.stay-amenities{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 18px;margin:18px 0 0;padding:13px 0 0;border-top:1px solid #e6e7e1;color:var(--muted);font-size:.76rem}.stay-amenities li{position:relative;padding-left:15px}.stay-amenities li:before{content:'✦';position:absolute;left:0;color:var(--sun);font-size:.62rem}.weekend-price{margin-top:3px;color:var(--leaf)!important}.booking-form{border:0}.booking-form button{font-size:.68rem}.booking-form:focus-within{box-shadow:0 0 0 3px rgba(233,184,92,.32)}
.family-prices{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:16px;color:var(--muted);font-size:.68rem}.family-prices span{border:1px solid #e2e5dd;padding:7px 6px;display:flex;flex-direction:column;gap:2px}.family-prices strong{color:var(--forest);font:500 .85rem var(--serif)}
.promo{display:grid;grid-template-columns:minmax(0,.85fr) minmax(300px,.65fr);gap:12%;align-items:center;padding-top:110px;padding-bottom:110px}.promo-copy{max-width:500px}.promo h2,.next-stay h2{font:500 clamp(2.8rem,4.7vw,4.5rem)/1.02 var(--serif);letter-spacing:-.045em;margin:14px 0 25px}.promo-copy>p:not(.eyebrow),.next-stay-copy>p:not(.eyebrow){color:var(--muted);max-width:460px;margin-bottom:28px}.promo-visual{position:relative;margin:0;max-height:490px;overflow:hidden;background:var(--deep)}.promo-visual img{height:100%;max-height:490px;object-position:center 28%}.promo-visual:after{content:'';position:absolute;inset:13px;border:1px solid rgba(255,255,255,.45);pointer-events:none}.promo-visual figcaption{position:absolute;z-index:1;right:27px;bottom:24px;left:27px;color:#fff;font:700 .62rem var(--display);letter-spacing:.1em;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.8)}.next-stay{display:grid;grid-template-columns:.88fr 1fr;align-items:stretch;gap:0;margin-bottom:125px;background:var(--deep);color:#fff}.next-stay-image{min-height:420px;overflow:hidden}.next-stay-image img{height:100%;object-position:center}.next-stay-copy{display:flex;align-items:flex-start;justify-content:center;flex-direction:column;padding:65px 8vw}.next-stay-copy .eyebrow{color:#eacb8a}.next-stay-copy>p:not(.eyebrow){color:rgba(255,255,255,.7)}.next-stay-copy .text-link{color:#fff;border-color:rgba(255,255,255,.4)}
.stay-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:stretch}.stay-card,.stay-card.featured{display:flex;flex-direction:column;height:100%;cursor:pointer;transition:transform .25s,box-shadow .25s}.stay-card:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(23,55,45,.14)}.stay-card:focus{outline:3px solid rgba(233,184,92,.7);outline-offset:4px}.stay-card:nth-child(2),.stay-card:nth-child(3){grid-column:auto;margin-top:0}.stay-photo,.stay-card:not(.featured) .stay-photo{height:280px}.stay-info{display:flex;flex:1;flex-direction:column}.stay-open-link{display:inline-flex;align-items:center;gap:9px;align-self:flex-start;margin-top:17px;padding:0 0 6px;border:0;border-bottom:1px solid var(--forest);background:none;color:var(--forest);font:700 .66rem var(--display);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.stay-open-link span{color:var(--leaf);font-size:1rem}.stay-open-link:focus-visible{outline:2px solid var(--sun);outline-offset:4px}.stay-footer{margin-top:auto}
.stay-dialog{position:relative;width:min(1080px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:auto;border:0;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(0,0,0,.35)}.stay-dialog::backdrop{background:rgba(6,22,17,.78);backdrop-filter:blur(4px)}.stay-dialog-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(350px,.9fr);min-height:640px}.dialog-gallery{display:flex;min-height:100%;flex-direction:column;background:var(--deep)}.dialog-gallery>img{min-height:0;height:530px;object-position:center}.dialog-thumbnails{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:12px;background:var(--deep)}.dialog-thumbnail{height:74px;overflow:hidden;border:1px solid rgba(255,255,255,.25);padding:0;background:transparent;cursor:pointer}.dialog-thumbnail.active{border:2px solid var(--sun)}.dialog-thumbnail img{height:100%;opacity:.7;transition:opacity .2s,transform .2s}.dialog-thumbnail:hover img,.dialog-thumbnail.active img{opacity:1;transform:scale(1.05)}.dialog-content{display:flex;flex-direction:column;padding:64px 48px 45px}.dialog-content h2{font:500 clamp(2.5rem,4vw,4rem)/1.02 var(--serif);letter-spacing:-.045em;margin:12px 0 20px}.dialog-description{color:var(--muted);margin-bottom:26px}.dialog-facts{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid #d9dcd4;border-left:1px solid #d9dcd4;margin:0 0 25px}.dialog-facts div{min-height:78px;padding:12px;border-right:1px solid #d9dcd4;border-bottom:1px solid #d9dcd4}.dialog-facts dt{color:var(--muted);font:700 .62rem var(--display);letter-spacing:.1em;text-transform:uppercase}.dialog-facts dd{margin:5px 0 0;color:var(--forest);font:500 .9rem var(--serif);line-height:1.25}.dialog-includes h3{font:700 .68rem var(--display);letter-spacing:.13em;text-transform:uppercase}.dialog-includes ul{display:grid;gap:9px;margin:13px 0 20px;padding:0;list-style:none;color:var(--muted);font-size:.82rem}.dialog-includes li{position:relative;padding-left:17px}.dialog-includes li:before{content:'✦';position:absolute;left:0;color:var(--sun);font-size:.66rem}.dialog-note{border-top:1px solid #d9dcd4;padding-top:14px;color:var(--muted);font-size:.76rem;margin-bottom:25px}.dialog-content .button{align-self:flex-start;margin-top:auto}.dialog-close{position:absolute;z-index:2;top:15px;right:15px;width:38px;height:38px;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(14,36,29,.76);color:#fff;cursor:pointer;padding:0;line-height:0;transition:background .2s}.dialog-close:hover{background:var(--forest)}
@media(max-width:800px){.site-header{height:66px}.desktop-nav,.header-cta{display:none}.menu-toggle{display:block;border:0;background:none;color:#fff;font-size:1.4rem}.mobile-nav{display:flex;position:fixed;z-index:9;top:66px;left:0;right:0;background:var(--forest);flex-direction:column;padding:0 7vw;max-height:0;overflow:hidden;transition:max-height .3s}.mobile-nav.open{max-height:300px;padding-top:12px;padding-bottom:15px}.mobile-nav a{padding:10px 0;color:#fff;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em}.hero{min-height:760px}.hero-image{object-position:57% center}.hero-copy{margin:0 7vw 13vh}.hero h1{font-size:clamp(3rem,14vw,5rem)}.hero-note{display:none}.intro,.stays,.gallery,.location{padding-top:80px;padding-bottom:80px}.intro-content,.details-layout,.celebrate,.booking-layout,.location{grid-template-columns:1fr;gap:42px}.intro-text{padding:0}.amenities{grid-template-columns:repeat(2,1fr);margin-top:55px}.amenities div{padding:18px 5px 18px 0!important;border-right:0;border-bottom:1px solid #d9dcd4}.amenities div:nth-child(odd){border-right:1px solid #d9dcd4}.section-heading{display:block}.filter-tabs{margin-top:25px}.stay-grid{display:block}.stay-card:nth-child(2),.stay-card:nth-child(3){margin-top:18px}.stay-photo,.stay-card:not(.featured) .stay-photo{height:320px}.details-band{padding:80px 0}.celebrate-image{height:420px}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:210px 210px 210px}.gallery-large{grid-row:span 2}.gallery-wide{grid-column:span 2}.booking{padding:80px 0}.location{display:grid}.map-card{height:220px}.footer-inner{display:grid;grid-template-columns:1fr 1fr}.footer-inner>p{grid-column:1/-1;grid-row:2}.footer-inner>div:last-child{grid-column:1/-1;grid-row:3}.footer-bottom{display:block;line-height:2}.footer-bottom span{display:block}.stay-amenities{grid-template-columns:1fr}.family-prices{grid-template-columns:repeat(2,1fr)}.filter-tabs{overflow:auto;padding-bottom:4px}.stay-footer{align-items:flex-start}}@media(max-width:450px){.hero-actions{align-items:flex-start;flex-direction:column;gap:18px}.stay-title h3{font-size:1.65rem}.stay-footer{align-items:flex-start;flex-direction:column}.reserve-link{margin-top:4px}.celebrate-copy h2{font-size:2.6rem}.gallery-grid{grid-template-rows:180px 180px 180px}.footer-inner{display:flex;flex-direction:column}}
@media(max-width:800px){.promo{grid-template-columns:1fr;gap:40px;padding-top:80px;padding-bottom:80px}.promo-visual{max-height:520px}.promo-visual img{max-height:520px}.next-stay{grid-template-columns:1fr;margin-bottom:80px;padding:0}.next-stay-image{min-height:360px}.next-stay-copy{padding:55px 9vw}.next-stay h2{font-size:clamp(2.5rem,10vw,3.6rem)}}
@media(max-width:980px){.stay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-card:nth-child(3){grid-column:auto}.stay-dialog-layout{grid-template-columns:1fr}.dialog-gallery>img{height:min(54vh,500px)}.dialog-content{padding:48px 7vw}.dialog-close{top:12px;right:12px}}@media(max-width:620px){.stay-grid{grid-template-columns:1fr}.stay-photo,.stay-card:not(.featured) .stay-photo{height:320px}.stay-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px)}.dialog-gallery>img{height:46vh}.dialog-thumbnails{gap:5px;padding:8px}.dialog-thumbnail{height:57px}.dialog-content{padding:36px 24px 30px}.dialog-facts{grid-template-columns:1fr}.dialog-content .button{width:100%}}
.stay-dialog{position:fixed;top:50%;right:auto;bottom:auto;left:50%;margin:0;transform:translate(-50%,-50%)}

/* Gallery canvas */
.gallery-canvas{position:relative;display:grid;grid-template-columns:minmax(0,1.22fr) minmax(150px,.7fr) minmax(150px,.7fr);grid-template-rows:250px 220px 170px;grid-template-areas:"feature nevada familiar" "feature nevada familiar" "wide wide detail";gap:12px;padding:12px;background:var(--deep);box-shadow:0 20px 48px rgba(23,55,45,.12)}
.gallery-frame{position:relative;min-width:0;margin:0;overflow:hidden;background:#28483b}.gallery-frame:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 43%,rgba(6,22,17,.68) 100%);pointer-events:none}.gallery-frame img{height:100%;filter:saturate(.88) contrast(1.03);transition:transform .7s cubic-bezier(.2,.65,.2,1),filter .4s}.gallery-frame:hover img{filter:saturate(1.05) contrast(1.04);transform:scale(1.055)}.gallery-frame figcaption{position:absolute;z-index:1;right:19px;bottom:16px;left:19px;color:#fff;font:italic 1rem/1.15 var(--serif);text-shadow:0 1px 12px rgba(0,0,0,.35)}.gallery-frame figcaption span{display:block;font:700 .58rem var(--display);letter-spacing:.16em;text-transform:uppercase}.gallery-feature{grid-area:feature}.gallery-feature figcaption{right:28px;bottom:27px;left:28px}.gallery-feature figcaption span{margin-bottom:7px;color:#f0cf8a}.gallery-feature figcaption strong{display:block;max-width:220px;font:500 clamp(1.6rem,2.7vw,2.25rem)/1 var(--serif);letter-spacing:-.035em}.gallery-nevada{grid-area:nevada}.gallery-familiar{grid-area:familiar}.gallery-wide{grid-area:wide}.gallery-wide img{object-position:center 60%}.gallery-wide figcaption{bottom:18px}.gallery-detail{grid-area:detail}.gallery-mark{position:absolute;display:flex;z-index:2;align-items:flex-start;justify-content:center;flex-direction:column;gap:3px;right:26px;bottom:27px;max-width:190px;padding:14px 17px;color:var(--forest);background:var(--sun);box-shadow:0 10px 20px rgba(0,0,0,.18)}.gallery-mark span{font:500 1.25rem/1 var(--serif);letter-spacing:-.04em}.gallery-mark small{font:700 .52rem var(--display);letter-spacing:.12em;text-transform:uppercase}
@media(max-width:800px){.gallery-canvas{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);grid-template-rows:205px 205px 160px 185px;grid-template-areas:"feature nevada" "feature familiar" "wide wide" "detail detail"}.gallery-mark{right:22px;bottom:205px}.gallery-feature figcaption{right:18px;bottom:20px;left:18px}.gallery-feature figcaption strong{font-size:1.55rem}.gallery-frame figcaption{right:15px;bottom:13px;left:15px}}
@media(max-width:450px){.gallery-canvas{grid-template-rows:165px 165px 135px 170px;gap:8px;padding:8px}.gallery-mark{right:16px;bottom:185px;padding:10px 12px}.gallery-mark span{font-size:1.05rem}.gallery-mark small{font-size:.46rem}.gallery-feature figcaption strong{font-size:1.35rem}}

/* ── Booking Dialog ── */
.booking-dialog {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(920px, calc(100vw - 24px));
  max-width: none;
  max-height: calc(100dvh - 24px);
  overflow: hidden;
  border: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 32px 90px rgba(0,0,0,.42);
}
.booking-dialog::backdrop {
  background: rgba(6,22,17,.82);
  backdrop-filter: blur(6px);
}
.booking-dialog-close {
  position: absolute;
  z-index: 3;
  top: 14px; right: 14px;
  width: 38px; height: 38px;
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 50%;
  background: rgba(14,36,29,.76);
  color: #fff;
  padding: 0;
  line-height: 0;
  cursor: pointer;
  transition: background .2s;
}
.booking-dialog-close:hover { background: var(--forest); }

.booking-dialog-layout {
  display: grid;
  grid-template-columns: minmax(0, .52fr) minmax(0, .48fr);
  min-height: min(640px, 80vh);
}

/* Hero side */
.booking-dialog-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: hidden;
  background: var(--deep);
}
.booking-dialog-hero-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 40%;
}
.booking-dialog-hero-shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(7,25,19,.85) 0%, rgba(7,25,19,.35) 55%, rgba(7,25,19,.1) 100%);
}
.booking-dialog-hero-content {
  position: relative;
  z-index: 1;
  padding: 0 36px 26px;
  color: #fff;
}
.booking-dialog-hero-content h2 {
  font: 500 clamp(2rem, 3.5vw, 3rem)/1.02 var(--serif);
  letter-spacing: -.04em;
  margin: 10px 0 6px;
}
.booking-dialog-price {
  color: var(--sun);
  font: 500 1.2rem var(--serif);
}
.booking-dialog-price i {
  font: 400 .72rem var(--sans);
  color: rgba(255,255,255,.6);
}

/* Step indicator bar */
.booking-dialog-steps {
  position: relative;
  z-index: 1;
  display: flex;
  gap: 0;
  background: var(--deep);
}
.booking-step {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 10px;
  font: 700 .62rem var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.35);
  border-top: 2px solid transparent;
  transition: color .3s, border-color .3s, background .3s;
}
.booking-step > span {
  display: grid;
  place-items: center;
  width: 22px; height: 22px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  font-size: .65rem;
  transition: background .3s, color .3s;
}
.booking-step.active {
  color: #fff;
  border-top-color: var(--sun);
  background: rgba(255,255,255,.04);
}
.booking-step.active > span {
  background: var(--sun);
  color: var(--deep);
}
.booking-step.done {
  color: rgba(255,255,255,.6);
}
.booking-step.done > span {
  background: var(--leaf);
  color: #fff;
}

/* Form side */
.booking-dialog-form {
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  max-height: calc(100dvh - 24px);
  background: #f9f6ee;
}
.booking-dialog-step {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 32px 34px;
  animation: bookingFadeIn .35s ease;
}
.booking-dialog-step[hidden] { display: none; }
@keyframes bookingFadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Shared form heading */
.booking-form-heading {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.booking-form-heading > span {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 27px; height: 27px;
  border-radius: 50%;
  background: var(--forest);
  color: var(--sun);
  font: 700 .7rem var(--display);
}
.booking-form-heading strong {
  display: block;
  color: var(--forest);
  font: 700 .76rem var(--display);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.booking-form-heading small {
  display: block;
  margin-top: 2px;
  color: var(--muted);
  font-size: .72rem;
  text-align: left;
}

/* Grids */
.booking-stay-grid,
.booking-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}
.booking-field { min-width: 0; }
.booking-field-wide { grid-column: span 2; }
.booking-stay-selector {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}
.booking-stay-selector legend {
  padding: 0;
  color: var(--muted);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.booking-stay-selector-intro {
  margin: 5px 0 12px;
  color: var(--muted);
  font-size: .69rem;
  line-height: 1.4;
}
.booking-stay-options {
  display: grid;
  gap: 9px;
}
.booking-stay-option {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d5d9d1;
  background: #fff;
  color: var(--forest);
  text-align: left;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s, transform .2s, background .2s;
}
.booking-stay-option > img {
  width: 100%;
  height: 100%;
  min-height: 110px;
  object-fit: cover;
}
.booking-stay-option-content {
  display: grid;
  align-content: center;
  gap: 4px;
  min-width: 0;
  padding: 13px 15px;
}
.booking-stay-option-topline {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.booking-stay-option-topline strong {
  font: 500 1.08rem var(--serif);
  letter-spacing: -.015em;
}
.booking-stay-option-check {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 20px;
  height: 20px;
  border: 1px solid #b8c1b8;
  border-radius: 50%;
  color: transparent;
  font-size: .71rem;
  transition: background .2s, border-color .2s, color .2s;
}
.booking-stay-option-meta,
.booking-stay-option-note {
  color: var(--muted);
  font-size: .63rem;
  line-height: 1.35;
}
.booking-stay-option-price {
  margin-top: 1px;
  color: var(--forest);
  font: 700 .77rem var(--display);
  letter-spacing: .035em;
}
.booking-stay-option-price small {
  color: var(--muted);
  font: 400 .62rem var(--sans);
  letter-spacing: 0;
}
.booking-stay-option:hover {
  border-color: var(--leaf);
  box-shadow: 0 7px 18px rgba(23,55,45,.08);
  transform: translateY(-1px);
}
.booking-stay-option.is-selected {
  border-color: var(--forest);
  background: #f2f6ef;
  box-shadow: inset 3px 0 0 var(--sun), 0 7px 18px rgba(23,55,45,.08);
}
.booking-stay-option.is-selected .booking-stay-option-check {
  border-color: var(--forest);
  background: var(--forest);
  color: #fff;
}
.booking-stay-option:focus-visible {
  outline: 3px solid rgba(102,140,103,.35);
  outline-offset: 2px;
}
.booking-choice-native,
.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.booking-field label {
  display: block;
  color: var(--muted);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin: 0 0 7px;
}
.booking-field label span {
  font-size: .62rem;
  letter-spacing: 0;
  text-transform: none;
}
.booking-dialog-form .booking-field select,
.booking-dialog-form .booking-field input,
.booking-dialog-form .booking-field textarea {
  width: 100%;
  margin: 0;
  padding: 12px 13px;
  border: 1px solid #d5d9d1;
  border-radius: 0;
  background: #fff;
  color: var(--forest);
  font: inherit;
  outline: none;
  transition: border-color .2s, box-shadow .2s;
}
.booking-dialog-form .booking-field textarea {
  resize: vertical;
  min-height: 89px;
  line-height: 1.45;
}
.booking-dialog-form .booking-field input::placeholder,
.booking-dialog-form .booking-field textarea::placeholder {
  color: #9aa299;
}
.booking-dialog-form .booking-field select:focus,
.booking-dialog-form .booking-field input:focus,
.booking-dialog-form .booking-field textarea:focus {
  border-color: var(--leaf);
  box-shadow: 0 0 0 3px rgba(102,140,103,.15);
}

/* Step nav buttons */
.booking-step-buttons {
  display: flex;
  gap: 12px;
  margin-top: 4px;
}
.booking-step-buttons .button { flex: 1; }
.button-outline {
  background: transparent;
  color: var(--forest);
  border: 1px solid #c0c5bb;
  padding: 15px 19px;
  cursor: pointer;
  font: 700 .72rem var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
  transition: background .2s, color .2s;
}
.button-outline:hover {
  background: var(--forest);
  color: #fff;
}
.button.full { width: 100%; }

/* Summary card */
.booking-summary {
  border: 1px solid #d6d8d1;
  background: #fff;
  padding: 21px;
}
.booking-summary-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 15px;
  padding-bottom: 15px;
  border-bottom: 1px solid #e2e4de;
}
.booking-summary-heading span {
  color: var(--muted);
  font: 700 .64rem var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.booking-summary-heading strong {
  font: 500 1.25rem var(--serif);
  color: var(--forest);
  text-align: right;
}
.booking-summary dl {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: 16px 0;
}
.booking-summary dt {
  color: var(--muted);
  font: 700 .6rem var(--display);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.booking-summary dd {
  margin: 4px 0 0;
  color: var(--forest);
  font: 500 .88rem var(--serif);
  line-height: 1.25;
}
.booking-summary p {
  border-top: 1px solid #e2e4de;
  padding-top: 12px;
  color: var(--muted);
  font-size: .7rem;
}

.booking-disclaimer {
  display: block;
  color: var(--muted);
  font-size: .67rem;
  text-align: center;
  margin-top: 6px;
}

/* Mobile nav reserve button */
.mobile-nav-reserve {
  padding: 10px 0;
  color: #fff;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .1em;
  background: none;
  border: 0;
  text-align: left;
  cursor: pointer;
}

/* ── Responsive booking dialog ── */
@media (max-width: 800px) {
  .booking-dialog {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
  }
  .booking-dialog-layout {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .booking-dialog-hero {
    min-height: 200px;
  }
  .booking-dialog-hero-content h2 {
    font-size: 1.8rem;
  }
  .booking-dialog-form {
    max-height: none;
  }
}

/* Keep the portrait poster for Glamping Primavera fully visible. */
.next-stay-image {
  background: var(--deep);
}

.next-stay-image img {
  object-fit: contain;
  object-position: center;
}

/* Booking quote */
.booking-quote {
  display: grid;
  gap: 10px;
  margin-top: 20px;
  padding: 16px;
  border: 1px solid #d6d8d1;
  background: #fff;
}

.booking-quote > div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  color: var(--muted);
  font-size: .76rem;
}

.booking-quote strong {
  color: var(--forest);
  font: 500 .95rem var(--serif);
  text-align: right;
}

.booking-quote-total {
  margin-top: 3px;
  padding-top: 11px;
  border-top: 1px solid #d6d8d1;
  color: var(--forest) !important;
}

.booking-quote-total strong {
  font-size: 1.18rem;
}

.booking-quote small {
  color: var(--muted);
  font-size: .66rem;
  line-height: 1.45;
}
@media (max-width: 620px) {
  .booking-dialog-step {
    padding: 25px 20px;
    gap: 18px;
  }
  .booking-stay-grid,
  .booking-contact-grid {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .booking-field-wide { grid-column: auto; }
  .booking-stay-option { grid-template-columns: 76px minmax(0, 1fr); }
  .booking-stay-option > img { min-height: 104px; }
  .booking-stay-option-content { padding: 11px 12px; }
  .booking-stay-option-topline strong { font-size: 1rem; }
  .booking-summary dl {
    grid-template-columns: 1fr;
    gap: 11px;
  }
  .booking-summary-heading {
    align-items: flex-start;
    flex-direction: column;
  }
  .booking-summary-heading strong { text-align: left; }
  .booking-step-buttons { flex-direction: column; }
  .booking-dialog-hero { min-height: 160px; }
}

/* Typography, map and entrance motion refinements */
body{font-size:16px;line-height:1.65}
h1,h2,h3{letter-spacing:0}
.hero h1,.intro h2,.section-heading h2,.celebrate h2,.booking h2,.location h2,.promo h2,.next-stay h2{line-height:1.06}
.hero-description,.intro-text p,.celebrate-copy>p,.location p,.promo-copy>p:not(.eyebrow),.next-stay-copy>p:not(.eyebrow){line-height:1.75}
.eyebrow,.button,.text-link,.reserve-link,.stay-open-link,.desktop-nav,.filter,.tag-row span,.pill,.detail-list span,.footer-inner>div:last-child{letter-spacing:.08em}
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1);transition-delay:var(--reveal-delay,0ms)}
.js [data-reveal="left"]{transform:translateX(-34px)}
.js [data-reveal="right"]{transform:translateX(34px)}
.js [data-reveal="hero"]{transform:translateY(18px);transition-duration:1s}
.js [data-reveal].reveal-visible{opacity:1;transform:none}
.map-card{height:420px;overflow:hidden;background:#dbe0ca;box-shadow:0 18px 42px rgba(23,55,45,.12)}
.map-card:before{z-index:1;pointer-events:none}
.map-card iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.86) contrast(.96)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js [data-reveal],.js [data-reveal="left"],.js [data-reveal="right"],.js [data-reveal="hero"]{opacity:1;transform:none;transition:none}.button:hover,.stay-card:hover{transform:none}}

/* Hero slideshow */
.hero-slideshow{position:absolute;inset:0;background:var(--forest)}
.hero-slideshow .hero-image{position:absolute;inset:0;width:100%;height:100%;opacity:0;animation:hero-crossfade 21s ease-in-out infinite;will-change:opacity,transform}
.hero-slideshow .hero-image:nth-child(1){animation-delay:0s}
.hero-slideshow .hero-image:nth-child(2){animation-delay:7s}
.hero-slideshow .hero-image:nth-child(3){animation-delay:14s}
@keyframes hero-crossfade{0%{opacity:0;transform:scale(1.02)}6%{opacity:1}30%{opacity:1;transform:scale(1.06)}39%{opacity:0;transform:scale(1.07)}100%{opacity:0;transform:scale(1.02)}}
@media(prefers-reduced-motion:reduce){.hero-slideshow .hero-image{animation:none}.hero-slideshow .hero-image:not(:first-child){display:none}.hero-slideshow .hero-image:first-child{opacity:1}}

/* Desktop header: give the navigation enough width to align and breathe beside the logo. */
@media (min-width: 801px) {
  .site-header {
    height: 84px;
  }

  .brand-logo {
    width: 135px;
    height: auto;
    max-height: none;
  }

  .desktop-nav {
    align-items: center;
    gap: clamp(38px, 4vw, 56px);
    transform: translateY(4px);
  }

  .desktop-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding-inline: 8px;
    line-height: 1;
    white-space: nowrap;
  }
}

/* The detail list no longer uses numbered markers. */
.detail-list div {
  grid-template-columns: 1fr;
}

/* Decoration gallery */
.decorations-gallery {
  padding-top: 45px;
  padding-bottom: 125px;
}

.decorations-heading {
  align-items: flex-end;
  margin-bottom: 38px;
}

.decorations-intro {
  max-width: 520px;
  margin-top: 20px;
  color: var(--muted);
  font-size: .95rem;
}

.decorations-heading .button {
  flex-shrink: 0;
}

.decorations-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr .85fr;
  grid-template-rows: 235px 235px;
  gap: 12px;
}

.decorations-card {
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: var(--deep);
}

.decorations-card-featured {
  grid-row: span 2;
}

.decorations-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.9);
  transition: transform .6s ease, filter .3s ease;
}

.decorations-card:hover img {
  transform: scale(1.04);
  filter: saturate(1);
}

.decorations-card:after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(0deg, rgba(7,25,19,.72), transparent 52%);
  pointer-events: none;
}

.decorations-card figcaption {
  position: absolute;
  z-index: 1;
  right: 18px;
  bottom: 16px;
  left: 18px;
  color: #fff;
  font: 700 .68rem var(--display);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.booking-decoration-fields {
  display: grid;
  grid-column: span 2;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  padding: 16px;
  border: 1px solid #e2e5dd;
  background: #f4f1e9;
}

.booking-decoration-fields[hidden] {
  display: none;
}

@media (max-width: 800px) {
  .decorations-gallery {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .decorations-heading .button {
    margin-top: 25px;
  }

  .decorations-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 220px 180px 180px;
  }

  .decorations-card-featured {
    grid-column: span 2;
    grid-row: auto;
  }

  .booking-decoration-fields {
    grid-template-columns: 1fr;
  }
}

/* Slightly increase the reading scale across text and typographic icons. */
html {
  font-size: 106.25%;
}

body {
  font-size: 17px;
}

/* Header interactions: polished feedback without competing with the hero. */
.brand,
.desktop-nav a,
.header-cta,
.menu-toggle {
  -webkit-tap-highlight-color: transparent;
}

.brand {
  border-radius: 4px;
  transition: transform .28s ease, filter .28s ease;
}

.brand:hover {
  transform: translateY(-2px) scale(1.025);
  filter: drop-shadow(0 5px 10px rgba(0,0,0,.2));
}

.desktop-nav a {
  position: relative;
  isolation: isolate;
  opacity: .84;
  transition: color .25s ease, opacity .25s ease, transform .25s ease;
}

.desktop-nav a::after {
  position: absolute;
  right: 8px;
  bottom: 2px;
  left: 8px;
  height: 2px;
  content: '';
  background: var(--sun);
  border-radius: 999px;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .3s cubic-bezier(.22,1,.36,1);
}

.desktop-nav a:hover {
  color: var(--sun);
  opacity: 1;
  transform: translateY(-2px);
}

.desktop-nav a:hover::after,
.desktop-nav a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.header-cta {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-color: rgba(255,255,255,.55);
  border-radius: 2px;
  transition: color .28s ease, border-color .28s ease, box-shadow .28s ease, transform .28s ease;
}

.header-cta::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: '';
  background: var(--sun);
  transform: translateX(-102%);
  transition: transform .32s cubic-bezier(.22,1,.36,1);
}

.header-cta:hover {
  color: var(--deep);
  border-color: var(--sun);
  box-shadow: 0 8px 20px rgba(0,0,0,.18);
  transform: translateY(-2px);
}

.header-cta:hover::before {
  transform: translateX(0);
}

.header-cta span {
  display: inline-block;
  transition: transform .28s ease, color .28s ease;
}

.header-cta:hover span {
  color: currentColor;
  transform: translate(3px,-2px);
}

.menu-toggle {
  border-radius: 50%;
  cursor: pointer;
  transition: color .2s ease, background .2s ease, transform .25s ease;
}

.menu-toggle:hover {
  color: var(--sun);
  background: rgba(255,255,255,.1);
  transform: rotate(8deg) scale(1.08);
}

.brand:focus-visible,
.desktop-nav a:focus-visible,
.header-cta:focus-visible,
.menu-toggle:focus-visible {
  outline: 2px solid var(--sun);
  outline-offset: 5px;
}

@media (prefers-reduced-motion: reduce) {
  .brand,
  .desktop-nav a,
  .desktop-nav a::after,
  .header-cta,
  .header-cta::before,
  .header-cta span,
  .menu-toggle {
    transition-duration: .01ms;
  }
}

/* Availability calendar and Wompi checkout */
.booking-dialog{width:min(1080px,calc(100vw - 24px))}
.booking-dialog-layout{grid-template-columns:minmax(300px,.42fr) minmax(480px,.58fr)}
.availability-calendar{padding:16px;border:1px solid #d6d8d1;background:#fff}
.calendar-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.calendar-heading strong{display:block;color:var(--forest);font:700 .72rem var(--display);letter-spacing:.08em;text-transform:uppercase}
.calendar-heading small{display:block;margin-top:2px;color:var(--muted);font-size:.66rem}
.calendar-navigation{display:flex;gap:6px}
.calendar-navigation button{display:grid;place-items:center;width:31px;height:31px;border:1px solid #d5d9d1;background:#fff;color:var(--forest);cursor:pointer}
.calendar-navigation button:disabled{opacity:.35;cursor:not-allowed}
.calendar-selection{margin:11px 0 0;padding:8px 10px;border-left:3px solid var(--sun);background:#f8f5ea;color:var(--forest);font-size:.69rem}
.calendar-month{margin:13px 0 8px;color:var(--forest);font:500 1.08rem var(--serif);text-transform:capitalize}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.calendar-weekdays{margin-bottom:4px;color:var(--muted);font:700 .58rem var(--display);text-align:center}
.calendar-day{position:relative;display:flex;min-width:0;min-height:49px;padding:5px 3px;border:1px solid transparent;background:#f6f5f0;color:var(--forest);cursor:pointer;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.calendar-day:hover:not(:disabled){border-color:var(--forest)}
.calendar-day time{font:700 .7rem var(--display)}
.calendar-day small{margin-top:5px;font-size:.53rem;white-space:nowrap}
.calendar-day.calendar-empty{visibility:hidden}
.calendar-day.tier-low{background:#dcebdc}
.calendar-day.tier-high{background:#f6e2b8}
.calendar-day.is-reserved{background:#f1c9c6;color:#8a312d;cursor:not-allowed;text-decoration:line-through}
.calendar-day.is-held{background:#eadac5;color:#755838;cursor:not-allowed}
.calendar-day.is-blocked,.calendar-day:disabled{background:#dedfd9;color:#92978f;cursor:not-allowed}
.calendar-day.is-in-range{box-shadow:inset 0 0 0 2px var(--leaf)}
.calendar-day.is-selected{background:var(--forest);color:#fff;box-shadow:inset 0 0 0 2px var(--sun)}
.calendar-day.is-checkout-option{cursor:pointer;text-decoration:none}
.calendar-legend{display:flex;flex-wrap:wrap;gap:7px 13px;margin-top:12px;color:var(--muted);font-size:.58rem}
.calendar-legend span{display:inline-flex;align-items:center;gap:5px}
.calendar-legend i{display:block;width:9px;height:9px;border:1px solid rgba(23,55,45,.12)}
.legend-low{background:#dcebdc}.legend-high{background:#f6e2b8}.legend-reserved{background:#f1c9c6}.legend-held{background:#eadac5}.legend-blocked{background:#dedfd9}
.calendar-status{min-height:1.2em;margin-top:9px;color:var(--muted);font-size:.64rem}
.calendar-status.is-error,.booking-submit-status.is-error{color:#9a332f}
.booking-submit-status{padding:11px 13px;border-left:3px solid var(--sun);background:#fff5df;color:var(--forest);font-size:.72rem}
.booking-submit-btn:disabled{opacity:.6;cursor:wait;transform:none}
.payment-result{position:fixed;z-index:20;top:90px;left:50%;width:min(680px,calc(100vw - 28px));padding:16px 48px 16px 18px;transform:translateX(-50%);border-left:4px solid var(--sun);background:#fff;color:var(--forest);box-shadow:0 14px 45px rgba(7,25,19,.22);font-size:.84rem}
.payment-result.is-approved{border-color:var(--leaf)}
.payment-result.is-failed,.payment-result.is-review{border-color:#a5453f}

@media(max-width:800px){
  .booking-dialog-layout{grid-template-columns:1fr}
  .booking-dialog{overflow-y:auto}
  .booking-dialog-form{overflow:visible}
}
@media(max-width:620px){
  .calendar-day{min-height:45px}
  .calendar-day small{display:none}
  .calendar-legend{gap:6px 10px}
}

/* Right-align the copy layered over the hero slideshow */
.hero-copy{
  margin:0 10vw 11vh auto;
  text-align:right;
}
.hero-description{margin-left:auto}
.hero-actions{justify-content:flex-end}
.hero-note{bottom:3vh}
.hero-shade{
  background:linear-gradient(270deg,rgba(7,25,19,.78),rgba(7,25,19,.28) 58%,rgba(7,25,19,.08)),linear-gradient(0deg,rgba(7,25,19,.65),transparent 48%);
}

@media(max-width:800px){
  .hero-copy{margin:0 7vw 13vh auto}
  .hero-actions{align-items:flex-end}
}

/* Mirror the first hero image while keeping the overlay copy readable */
.hero-slideshow .hero-image:first-child{
  animation-name:hero-crossfade-flipped;
  object-position:center 28%;
}
@keyframes hero-crossfade-flipped{
  0%{opacity:0;transform:scaleX(-1) scale(1.02)}
  6%{opacity:1}
  30%{opacity:1;transform:scaleX(-1) scale(1.06)}
  39%{opacity:0;transform:scaleX(-1) scale(1.07)}
  100%{opacity:0;transform:scaleX(-1) scale(1.02)}
}
@media(prefers-reduced-motion:reduce){
  .hero-slideshow .hero-image:first-child{
    transform:scaleX(-1);
    object-position:center 28%;
  }
}
/* Final catalog and dialog alignment */
.stays{position:relative;overflow:hidden;padding-top:45px;padding-bottom:115px;width:100%}
.stays-container{position:relative;z-index:2;max-width:1540px;width:min(1540px,86vw);margin-left:auto;margin-right:auto;padding-left:clamp(12px,1.8vw,28px);padding-right:clamp(12px,1.8vw,28px)}
.stays .section-heading{display:flex;justify-content:center;align-items:center;text-align:center;margin-bottom:clamp(30px,3.5vw,46px)}
.stays .section-heading h2{text-align:center;margin:0 auto}
.stay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2vw,30px);align-items:stretch;justify-content:center;width:100%;margin:0 auto}
.stays .price-note{text-align:center;margin-top:28px}
.dialog-close,.booking-dialog-close{display:grid;place-items:center;padding:0}

/* Background jungle foliage decor (non-green, warm tone slightly darker than #FAF9F5 background) */
.stays-decor{position:absolute;inset:0;pointer-events:none;user-select:none;z-index:1;overflow:hidden}
.stays-decor-leaf{position:absolute;pointer-events:none;line-height:0}
.stays-decor-leaf img{display:block;width:100%;height:auto;pointer-events:none;filter:sepia(.2) saturate(.15) brightness(.93)}
.stays-decor-top-left{top:-35px;left:-45px;width:clamp(200px,18vw,300px);transform:rotate(-16deg);opacity:.85}
.stays-decor-bottom-left{bottom:15px;left:-35px;width:clamp(210px,19vw,310px);transform:rotate(20deg) scaleX(-1);opacity:.75}
.stays-decor-top-right{top:-25px;right:-35px;width:clamp(220px,20vw,320px);transform:rotate(22deg);opacity:.8}
.stays-decor-bottom-right{bottom:25px;right:-40px;width:clamp(200px,18vw,300px);transform:rotate(-22deg);opacity:.85}
.stays-decor-mid-left{top:45%;left:-60px;width:clamp(170px,15vw,250px);transform:rotate(12deg);opacity:.5}

@media(min-width:981px){
  .stay-card{min-width:0;display:flex;flex-direction:column;height:100%;background:#fff;border-radius:4px;overflow:hidden;box-shadow:0 12px 36px rgba(23,55,45,.08);transition:transform .25s,box-shadow .25s}
  .stay-card:hover{transform:translateY(-5px);box-shadow:0 20px 48px rgba(23,55,45,.14)}
  .stay-photo,.stay-card:not(.featured) .stay-photo{height:auto;aspect-ratio:16 / 11}
  .stay-info{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
  .stay-title h3{font-size:clamp(1.45rem,1.6vw,1.75rem);line-height:1.1}
  .stay-info>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:9px 0 12px;line-height:1.4;font-size:.9rem}
  .stay-amenities{display:none}
  .stay-open-link{margin-top:10px}
  .stay-footer>div{min-width:0}
  .stay-footer strong{font-size:1.3rem;line-height:1.1}
  .stay-footer small{line-height:1.35}
  .reserve-link{padding:12px 14px 11px;font-size:.68rem;letter-spacing:.08em}
}
.whatsapp-float{position:fixed;right:24px;bottom:24px;z-index:20;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#25d366;color:#fff;box-shadow:0 8px 24px rgba(14,36,29,.28);transition:transform .2s,box-shadow .2s}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(14,36,29,.36)}
.whatsapp-float:focus-visible{outline:3px solid var(--sun);outline-offset:4px}
.whatsapp-float svg{width:31px;height:31px;fill:currentColor}
.reserve-link{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:2px;background:var(--sun);color:#111;padding:11px 15px 10px;font:800 .68rem var(--display);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;box-shadow:0 5px 12px rgba(14,36,29,.12);transition:transform .2s,background .2s,box-shadow .2s}
.reserve-link:hover{background:#f1c66c;color:#111;transform:translateY(-2px);box-shadow:0 8px 16px rgba(14,36,29,.18)}
.reserve-link span{margin-left:0;color:#111;font-size:1rem}
@media(max-width:980px){.stay-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.stay-grid{grid-template-columns:1fr}}
@media(max-width:450px){.whatsapp-float{right:16px;bottom:16px;width:54px;height:54px}.whatsapp-float svg{width:29px;height:29px}}

/* Keep the rate and booking actions aligned across every stay card */
@media(min-width:981px){
  .stay-footer{min-height:96px;align-items:stretch}
  .stay-footer>div{display:flex;min-height:76px;flex-direction:column;justify-content:flex-end}
  .stay-footer .reserve-link{align-self:end;margin-top:auto}
}

/* Stack the price above a full-width booking action */
.stay-footer{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.stay-footer>div{display:flex;min-height:76px;flex-direction:column;justify-content:flex-end}
.stay-footer .reserve-link{align-self:stretch;width:100%;margin-top:0}

@media(max-width:800px){
  .amenities{border-top:0}
  .amenities div,.amenities div:nth-child(odd),.amenities div:last-child{border:0}
}

/* Shared lightbox for the visual galleries */
[data-lightbox-group]{cursor:zoom-in}
[data-lightbox-group]:focus-visible{outline:3px solid var(--sun);outline-offset:-3px}
.image-lightbox{position:fixed;top:50%;left:50%;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:0;padding:24px 70px;border:0;background:var(--deep);color:#fff;transform:translate(-50%,-50%)}
.image-lightbox::backdrop{background:rgba(4,16,12,.86);backdrop-filter:blur(5px)}
.image-lightbox-content{display:flex;min-height:min(680px,calc(100dvh - 80px));align-items:center;justify-content:center;flex-direction:column;gap:10px}
.image-lightbox-content img{width:100%;height:min(70dvh,680px);object-fit:contain}
.image-lightbox-content p{color:rgba(255,255,255,.88);font:italic 1.05rem var(--serif);text-align:center}
.image-lightbox-content small{color:var(--sun);font:700 .62rem var(--display);letter-spacing:.12em}
.image-lightbox-close,.image-lightbox-arrow{position:absolute;z-index:1;display:grid;place-items:center;padding:0;line-height:0;border:1px solid rgba(255,255,255,.38);background:rgba(14,36,29,.84);color:#fff;cursor:pointer;transition:background .2s,border-color .2s}
.image-lightbox-close{top:14px;right:14px;width:38px;height:38px;border-radius:50%}
.image-lightbox-arrow{top:50%;width:42px;height:42px;border-radius:50%;transform:translateY(-50%)}
.image-lightbox-prev{left:16px}.image-lightbox-next{right:16px}
.image-lightbox-close:hover,.image-lightbox-arrow:hover{background:var(--forest);border-color:var(--sun)}
@media(max-width:620px){
  .image-lightbox{width:calc(100vw - 18px);max-height:calc(100dvh - 18px);padding:48px 36px 28px}
  .image-lightbox-content{min-height:calc(100dvh - 110px)}
  .image-lightbox-content img{height:65dvh}
  .image-lightbox-arrow{width:34px;height:34px}
  .image-lightbox-prev{left:7px}.image-lightbox-next{right:7px}
}

/* Upcoming experience feature */
.coming-soon{background:var(--deep);color:#fff;padding:105px 0 115px}
.coming-soon-inner{display:flex;flex-direction:column;align-items:center;gap:34px}
.coming-soon-heading{text-align:center}
.coming-soon-heading h2{margin-top:14px;font:500 clamp(2.5rem,5vw,4.4rem)/1.04 var(--serif);letter-spacing:-.04em}
.coming-soon-visual{width:min(440px,100%);margin:0;background:#111;box-shadow:0 20px 55px rgba(0,0,0,.28)}
.coming-soon-visual img{width:100%;height:auto;object-fit:contain}
@media(max-width:620px){
  .coming-soon{padding:76px 0 82px}
  .coming-soon-inner{gap:24px}
  .coming-soon-visual{width:min(100%,380px)}
}

/* Full-page image preloader */
.site-preloader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;align-content:center;gap:14px;background:var(--forest,#17372d);color:#fff;text-align:center;opacity:1;visibility:visible;transition:opacity .35s ease,visibility 0s linear 0s}
.site-preloader-logo{display:block;width:min(270px,72vw);height:auto;max-height:92px;object-fit:contain}
.site-preloader p{margin:0;font:600 1rem var(--display,Arial),sans-serif;letter-spacing:.04em}
.site-preloader-progress{width:min(260px,65vw);height:3px;overflow:hidden;background:rgba(255,255,255,.22)}
.site-preloader-progress span{display:block;width:0;height:100%;background:var(--sun,#efb84e);transition:width .2s ease}
.site-preloader small{color:rgba(255,255,255,.76);font:500 .72rem var(--display,Arial),sans-serif;letter-spacing:.08em;text-transform:uppercase}
body[aria-busy="true"]{overflow:hidden}
.site-preloader[aria-hidden="true"]{opacity:0;visibility:hidden;transition:opacity .35s ease,visibility 0s linear .35s}
@media(prefers-reduced-motion:reduce){.site-preloader,.site-preloader-progress span{transition:none}}

/* ── Decoration hint ── */
.booking-decoration-hint {
  margin-top: 10px;
  padding: 11px 14px;
  background: #fdf5e0;
  border-left: 3px solid var(--sun, #e9b85c);
  border-radius: 0 4px 4px 0;
  color: var(--ink, #1a2922);
  font-size: .76rem;
  line-height: 1.55;
}

/* ── Perfectly centered icon button vectors ── */
.dialog-close svg,
.booking-dialog-close svg,
.image-lightbox-close svg,
.image-lightbox-arrow svg,
.calendar-navigation button svg {
  display: block;
  pointer-events: none;
  flex-shrink: 0;
  margin: auto;
}

.dialog-close:focus-visible,
.booking-dialog-close:focus-visible,
.image-lightbox-close:focus-visible,
.image-lightbox-arrow:focus-visible,
.calendar-navigation button:focus-visible {
  outline: 2px solid var(--sun);
  outline-offset: 2px;
}

