*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height,80px) + 16px)}
body{margin:0;background:var(--background,#f8fbfa);color:var(--text,#173733);font:var(--body-size,17px)/var(--line-height,1.68) var(--body-font,Inter,system-ui,sans-serif);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 68%,#fff);outline-offset:3px}
h1,h2,h3,h4,p{margin-top:0}
h1,h2,h3,h4{color:var(--heading);font-family:var(--heading-font,Georgia,serif);font-weight:600;letter-spacing:-.03em}
h1{font-size:calc(clamp(3.2rem,7vw,7rem)*var(--heading-scale,1.04));line-height:.98}
h2{font-size:calc(clamp(2.25rem,4.8vw,4.65rem)*var(--heading-scale,1.04));line-height:1.04}
h3{font-size:clamp(1.35rem,2.3vw,2rem);line-height:1.18}
p{margin-bottom:1.1em}
main{min-height:65vh;overflow:hidden}
.container{width:min(calc(100% - 44px),var(--content-width,1220px));margin-inline:auto}
.container-reading{width:min(100%,820px)!important;margin-inline:auto}
.container-full{width:100%!important;max-width:none!important}
.section{padding:var(--pt,var(--section-space,96px)) 0 var(--pb,var(--section-space,96px));position:relative}
.surface-soft{background:var(--surface)}
.surface-dark{background:var(--footer-bg);color:var(--footer-text)}
.surface-dark h2,.surface-dark h3,.surface-dark h4,.surface-dark .eyebrow{color:var(--footer-text)}
.surface-accent{background:var(--accent)}
.surface-transparent{background:transparent}
.skip-link{position:fixed;left:16px;top:12px;z-index:9999;background:#fff;color:#111;padding:10px 14px;border-radius:10px;transform:translateY(-160%);box-shadow:0 8px 30px rgba(0,0,0,.2)}
.skip-link:focus{transform:none}
.announcement{position:relative;z-index:200;background:var(--accent);color:var(--public-accent-text,#10211b);font-size:.84rem;font-weight:800}
.announcement .container{display:flex;justify-content:center;gap:14px;padding:8px 0;text-align:center}
.announcement a{text-decoration:underline}

.eyebrow{display:inline-flex;align-items:center;gap:9px;margin-bottom:16px;color:var(--primary);font-size:.72rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}
.eyebrow:before{content:"";width:34px;height:1px;background:currentColor;opacity:.65}
.lead{font-size:clamp(1.07rem,1.6vw,1.32rem);color:var(--muted);max-width:760px}
.prose{color:var(--text)}
.prose>*:last-child{margin-bottom:0}
.prose p,.prose li{max-width:76ch}
.prose ul,.prose ol{padding-left:1.35em}
.prose a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.lead-prose{font-size:1.06rem}
.section-heading{max-width:800px;margin:0 auto 46px;text-align:center}
.section-heading.align-left{text-align:left;margin-left:0}
.section-heading p{margin:0 auto;color:var(--muted);max-width:680px;font-size:1.02rem}
.section-heading.align-left p{margin-left:0}
.section-heading.light p{color:color-mix(in srgb,var(--footer-text) 72%,transparent)}
.section-heading.light .eyebrow{color:var(--accent)}

.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 22px;border:1px solid transparent;border-radius:999px;font-weight:850;line-height:1;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,background .22s ease,color .22s ease,border-color .22s ease}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--button-bg,var(--primary));color:var(--button-text,#fff);box-shadow:0 12px 28px color-mix(in srgb,var(--button-bg,var(--primary)) 22%,transparent)}
.button-secondary{background:transparent;border-color:var(--line);color:var(--heading)}
.button-secondary:hover{background:var(--surface)}
.button-light{background:#fff;color:var(--heading);box-shadow:0 14px 36px rgba(0,0,0,.12)}
.button-ghost-light{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.4);color:#fff;backdrop-filter:blur(12px)}
.text-link{color:var(--primary);font-weight:850;text-decoration:none}
.text-link:hover{text-decoration:underline;text-underline-offset:4px}
.block-actions,.story-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

.site-header{position:fixed;inset:0 0 auto;z-index:300;height:var(--nav-height);color:var(--header-text);transition:background .25s ease,color .25s ease,box-shadow .25s ease,backdrop-filter .25s ease;border-bottom:1px solid transparent}
.site-header.glass{background:color-mix(in srgb,var(--header-bg) 30%,transparent);backdrop-filter:blur(16px)}
.site-header.solid{background:var(--header-bg)}
.site-header.transparent{background:transparent}
.site-header.is-scrolled,.is-detail .site-header{background:color-mix(in srgb,var(--header-bg) 95%,#fff);box-shadow:0 12px 30px rgba(15,48,40,.1);backdrop-filter:blur(18px)}
.header-inner{width:min(calc(100% - 44px),1760px);height:100%;margin:auto;display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:14px;min-width:235px}
.brand img{width:auto;height:var(--logo-size);max-width:150px;object-fit:contain}
.brand-copy{display:grid;line-height:1.1}
.brand-copy strong{font-family:var(--heading-font);font-size:1.05rem;letter-spacing:.01em}
.brand-copy small{font-size:.62rem;text-transform:uppercase;letter-spacing:.13em;opacity:.76;margin-top:5px;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.desktop-nav{display:flex;align-items:center;justify-content:center;gap:8px;margin-left:auto}
.desktop-nav>a,.nav-more>summary{padding:10px 12px;border-radius:10px;font-size:.86rem;font-weight:800;cursor:pointer;list-style:none;transition:.2s}
.desktop-nav>a:hover,.nav-more>summary:hover{background:rgba(255,255,255,.12)}
.nav-more{position:relative}
.nav-more summary::-webkit-details-marker{display:none}
.nav-more>div{position:absolute;top:calc(100% + 14px);right:0;min-width:180px;background:#fff;color:var(--text);padding:10px;border-radius:15px;box-shadow:0 22px 60px rgba(9,37,29,.18);border:1px solid var(--line)}
.nav-more>div a{display:block;padding:10px 12px;border-radius:9px;font-weight:750}
.nav-more>div a:hover{background:var(--surface)}
.button-header{background:#fff;color:var(--heading);min-height:44px;padding-inline:18px;white-space:nowrap}
.menu-toggle{display:none;margin-left:auto;border:0;background:transparent;padding:10px;width:48px;height:48px;position:relative}
.menu-toggle span{display:block;height:2px;background:currentColor;margin:5px 0;border-radius:2px}
.menu-toggle b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.mobile-nav{display:none}

.hero{position:relative;height:var(--hero-d,78vh);min-height:600px;color:var(--hero-text,#fff);background:var(--header-bg);overflow:hidden}
.hero-home{min-height:720px}
.hero-media,.hero-gradient{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-gradient{background:radial-gradient(circle at 72% 22%,color-mix(in srgb,var(--primary) 70%,#fff),transparent 36%),linear-gradient(135deg,var(--header-bg),#081f1a)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--hero-overlay-color,#143c39) calc(var(--hero-overlay,.5)*100%),transparent) 0%,color-mix(in srgb,var(--hero-overlay-color,#143c39) calc(var(--hero-overlay,.5)*65%),transparent) 48%,color-mix(in srgb,var(--hero-overlay-color,#143c39) calc(var(--hero-overlay,.5)*35%),transparent) 100%)}
.hero-inner{height:100%;display:flex;align-items:flex-end;padding-top:calc(var(--nav-height) + 70px);padding-bottom:9vh;position:relative}
.hero-copy{max-width:860px}
.hero-copy h1{color:var(--hero-text);max-width:13ch;margin-bottom:24px;text-wrap:balance}
.hero-copy p{font-size:clamp(1.08rem,1.8vw,1.38rem);max-width:660px;color:color-mix(in srgb,var(--hero-text) 88%,transparent);margin-bottom:30px}
.hero-eyebrow{color:color-mix(in srgb,var(--hero-text) 86%,transparent)}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.hero-align-center .hero-copy{margin-inline:auto;text-align:center}
.hero-align-center .hero-copy h1,.hero-align-center .hero-copy p{margin-inline:auto}
.hero-align-center .hero-actions{justify-content:center}
.hero-scroll{position:absolute;right:0;bottom:9vh;display:grid;gap:8px;justify-items:center;font-size:.65rem;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:rgba(255,255,255,.7)}
.hero-scroll span{width:1px;height:38px;background:rgba(255,255,255,.55)}

.trust-strip{position:relative;z-index:20;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 16px 50px rgba(18,55,45,.05)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid>div{padding:23px 28px;border-right:1px solid var(--line);display:flex;align-items:baseline;gap:9px}
.trust-grid>div:last-child{border-right:0}
.trust-grid strong{font:600 1.35rem var(--heading-font);color:var(--heading)}
.trust-grid span{font-size:.78rem;color:var(--muted);font-weight:750}

.media-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(34px,7vw,92px);align-items:center}
.media-split.reverse>div:first-child{order:2}
.media-split.reverse>.feature-image{order:1}
.feature-image,.wide-image{width:100%;border-radius:var(--image-radius);object-fit:cover;box-shadow:0 28px 80px rgba(18,52,43,.12)}
.feature-image{aspect-ratio:4/3}
.wide-image{margin-top:28px;max-height:720px}
.story-copy h2{max-width:11ch}
.story-media{position:relative}
.story-media:after{content:"";position:absolute;width:42%;aspect-ratio:1;right:-6%;bottom:-8%;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);z-index:-1}
.visual-fallback{min-height:480px;border-radius:var(--image-radius);background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 72%,#fff),var(--header-bg));display:grid;place-items:center;color:#fff;font:600 2rem var(--heading-font);padding:30px;text-align:center}
.editorial-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);align-items:center;background:var(--card);border-radius:calc(var(--card-radius) + 8px);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 90px rgba(22,65,54,.08)}
.editorial-media{height:100%;min-height:560px}
.editorial-media img{width:100%;height:100%;object-fit:cover}
.editorial-copy{padding:clamp(34px,6vw,80px)}
.editorial-copy h2{max-width:10ch}
.editorial-copy h3{margin:26px 0 12px}
.feature-rule{width:72px;height:1px;background:var(--accent);margin:34px 0}

.filter-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin:-16px 0 30px}
.filter-chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:9px 14px;font-size:.78rem;font-weight:800;cursor:pointer}
.filter-chip.is-active,.filter-chip:hover{background:var(--heading);border-color:var(--heading);color:#fff}
.stay-grid{display:grid;gap:24px}
.stay-grid-1{grid-template-columns:1fr}
.stay-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.stay-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stay-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.stay-card,.news-card,.review-card,.promo-card,.info-card,.menu-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden;box-shadow:0 18px 50px rgba(20,55,45,calc(var(--shadow-strength,.08)/100));transition:transform .28s ease,box-shadow .28s ease}
.stay-card:hover,.news-card:hover,.promo-card:hover{transform:translateY(-5px);box-shadow:0 30px 80px rgba(20,55,45,.13)}
.stay-card.is-hidden{display:none}
.stay-image-wrap{position:relative;display:block;overflow:hidden}
.stay-image,.image-placeholder{width:100%;aspect-ratio:16/11;object-fit:cover;transition:transform .6s ease}
.stay-card:hover .stay-image{transform:scale(1.035)}
.image-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#c9dad3,#628e7f);color:#fff;font:600 1.35rem var(--heading-font);padding:20px;text-align:center}
.stay-badge{position:absolute;left:16px;top:16px;background:rgba(255,255,255,.91);backdrop-filter:blur(10px);color:var(--heading);padding:7px 11px;border-radius:999px;font-size:.7rem;font-weight:900}
.stay-body{padding:26px;display:grid;gap:24px}
.stay-body h3{margin-bottom:10px}
.stay-body p,.news-body p,.promo-body p{color:var(--muted);margin-bottom:0}
.stay-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;font-size:.82rem;color:var(--muted)}
.stay-meta strong{color:var(--heading)}

.availability-section{background:linear-gradient(180deg,var(--background),color-mix(in srgb,var(--surface) 62%,var(--background)))}
.availability-box{display:grid;grid-template-columns:1.2fr 1.2fr .72fr auto;gap:12px;align-items:end;background:var(--card);border-radius:calc(var(--card-radius) + 2px);padding:20px;box-shadow:0 25px 80px rgba(20,55,45,.12);border:1px solid var(--line)}
label{display:grid;gap:7px;font-weight:760;color:var(--heading)}
label>span{font-size:.78rem}
input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:15px;padding:12px 14px;color:var(--text);outline:0;transition:.2s}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 13%,transparent)}
textarea{resize:vertical}
.checkbox{grid-template-columns:auto 1fr;align-items:start;gap:10px;font-weight:600;margin:14px 0 20px;color:var(--muted)}
.checkbox input{width:18px;height:18px;margin-top:3px}
.hp{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.availability-results{margin-top:24px;background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:24px}
.results-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px}
.results-head strong{font-size:1.15rem;color:var(--heading)}
.results-head span{color:var(--muted)}
.mini-stay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mini-stay{display:flex;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--background)}
.mini-stay span{color:var(--primary);font-size:.82rem;font-weight:850}
.empty-state{padding:24px;border:1px dashed color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--surface) 55%,#fff)}
.empty-state.compact{padding:16px}
.empty-state p{color:var(--muted)}

.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.gallery-grid figure{grid-column:span 4;margin:0;border-radius:var(--image-radius);overflow:hidden;position:relative;background:#dfe8e4;min-height:280px}
.gallery-grid figure:nth-child(7n+1){grid-column:span 7}
.gallery-grid figure:nth-child(7n+2){grid-column:span 5}
.gallery-grid figure:nth-child(7n+5){grid-column:span 5}
.gallery-grid figure:nth-child(7n+6){grid-column:span 7}
.gallery-open{border:0;padding:0;width:100%;height:100%;cursor:zoom-in;background:transparent}
.gallery-grid img{width:100%;height:100%;min-height:280px;aspect-ratio:4/3;object-fit:cover;transition:transform .45s ease}
.gallery-open:hover img{transform:scale(1.025)}
.gallery-grid figcaption{position:absolute;inset:auto 12px 12px;background:rgba(255,255,255,.88);backdrop-filter:blur(9px);border-radius:10px;padding:7px 10px;font-size:.75rem;pointer-events:none}

.map-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.55fr);background:#fff;border-radius:calc(var(--card-radius) + 4px);overflow:hidden;border:1px solid rgba(255,255,255,.15);min-height:560px;box-shadow:0 30px 80px rgba(0,0,0,.2)}
.interactive-map{min-height:560px;background:#d9e4df;position:relative;z-index:1}
.map-fallback{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:4px;color:var(--heading)}
.map-points{padding:18px;display:grid;align-content:start;gap:9px;max-height:560px;overflow:auto;background:var(--card)}
.map-point-card{border:1px solid var(--line);background:var(--background);text-align:left;padding:13px 14px;border-radius:13px;cursor:pointer}
.map-point-card:hover{border-color:var(--primary);background:var(--surface)}
.map-point-card strong,.map-point-card span,.map-point-card small{display:block}
.map-point-card strong{color:var(--heading)}
.map-point-card span{color:var(--primary);font-size:.72rem;font-weight:800;margin-top:3px}
.map-point-card small{color:var(--muted);margin-top:5px;line-height:1.35}
.leaflet-popup-content-wrapper{border-radius:14px!important}
.leaflet-container{font:14px/1.45 var(--body-font)!important}

.calendar-legend{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin:-18px 0 28px;color:var(--muted);font-size:.76rem;font-weight:800}
.calendar-legend span{display:flex;align-items:center;gap:7px}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.dot.available{background:#50a874}.dot.limited{background:#d7a53e}.dot.full{background:#b7584f}.dot.event{background:var(--accent)}
.month-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.month-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:20px;box-shadow:0 18px 50px rgba(20,55,45,.05)}
.month-title{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:15px}
.month-title strong{font:600 1.5rem var(--heading-font);color:var(--heading)}
.month-title span{font-size:.75rem;color:var(--muted)}
.weekday-row,.days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.weekday-row{margin-bottom:5px}
.weekday-row span{text-align:center;font-size:.62rem;text-transform:uppercase;color:var(--muted);font-weight:850}
.day{aspect-ratio:1;border:0;border-radius:10px;display:grid;place-items:center;background:var(--surface);font-size:.75rem;position:relative;cursor:help}
.day.empty{background:transparent}
.day.available{background:color-mix(in srgb,#50a874 16%,#fff);color:#276240}
.day.limited{background:color-mix(in srgb,#d7a53e 18%,#fff);color:#805f1c}
.day.full{background:color-mix(in srgb,#b7584f 15%,#fff);color:#7f302a}
.day.has-event i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--accent);bottom:5px;right:5px}
.calendar-action{text-align:center;margin-top:28px}

.review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.review-card{padding:30px}
.review-card .stars{color:var(--accent);letter-spacing:.12em;font-size:.9rem;margin-bottom:14px}
.review-card h3{margin-bottom:10px}
.review-card blockquote{margin:0 0 22px;font:1.12rem/1.62 var(--heading-font);color:var(--heading)}
.review-card footer{display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:.78rem}
.review-card footer strong{color:var(--text)}

.promo-grid,.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.promo-card img,.news-card img{width:100%;aspect-ratio:16/10;object-fit:cover}
.promo-body,.news-body{padding:24px}
.news-date{display:block;color:var(--muted);font-size:.72rem;font-weight:800;margin-bottom:9px}
.news-body h3{margin-bottom:10px}
.news-body h3 a:hover{color:var(--primary)}
.menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.menu-card{padding:24px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);color:#fff}
.menu-card h3{color:#fff;margin-bottom:8px}
.menu-card p{color:rgba(255,255,255,.72)}
.menu-card small{display:block;margin-top:14px;color:rgba(255,255,255,.56)}
.menu-day{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:900;margin-bottom:12px}

.faq-list{display:grid;gap:10px}
.faq-list details{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:0 20px}
.faq-list summary{cursor:pointer;font-weight:850;padding:18px 4px;list-style:none;color:var(--heading)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";float:right;color:var(--primary);font-size:1.35rem}
.faq-list details[open] summary::after{content:"–"}
.faq-list details .prose{padding:0 4px 20px;color:var(--muted)}

.contact-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:24px}
.contact-form-card,.contact-aside,.form-card,.booking-sidecard{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:0 24px 70px rgba(20,55,45,.08)}
.contact-form-card{padding:30px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:16px}
.contact-form-card>form>label:not(.checkbox):not(.hp),.form-card>label:not(.checkbox):not(.hp){margin-bottom:16px}
.contact-aside{padding:32px;background:var(--heading);color:#fff}
.contact-aside h3{color:#fff;font-size:2.2rem}
.contact-aside p{color:rgba(255,255,255,.72)}
.contact-list{display:grid;gap:0;margin-top:26px}
.contact-list>a,.contact-list>div{display:grid;gap:2px;padding:14px 0;border-top:1px solid rgba(255,255,255,.15)}
.contact-list span{font-size:.68rem;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.55)}
.contact-list strong{font-size:.9rem;color:#fff;overflow-wrap:anywhere}
.form-note{font-size:.78rem;color:var(--muted)}

.final-cta-inner{display:flex;justify-content:space-between;gap:36px;align-items:center}
.final-cta-inner h2{max-width:11ch}
.final-cta-inner p{max-width:650px;color:rgba(255,255,255,.7)}
.final-actions{display:flex;gap:10px;flex-wrap:wrap}

.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:64px;align-items:start}
.detail-main h2{max-width:12ch}
.booking-sidecard{position:sticky;top:calc(var(--nav-height) + 24px);padding:26px}
.sidecard-inner{display:grid;gap:16px}
.side-price{font:600 1.8rem var(--heading-font);color:var(--heading)}
.side-actions{display:grid;gap:9px}
.sidecard-inner small{color:var(--muted)}
.amenity-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:26px}
.amenity-chips span{display:flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:var(--surface);font-size:.76rem;font-weight:800}
.amenity-chips i{font-style:normal}
.amenities-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.amenity{display:flex;gap:12px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px}
.amenity-icon{min-width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--surface);color:var(--primary);font-weight:900}
.amenity small{display:block;color:var(--muted);margin-top:2px}
.amenity p{font-size:.78rem;color:var(--muted);margin:7px 0 0}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.info-card{padding:28px}
.detail-booking-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:60px;align-items:start}
.form-card{padding:28px}
.back-row{display:flex;justify-content:flex-start}
.article-body{font-size:1.05rem}
.article-body h2{font-size:2.4rem;margin-top:1.6em}
.article-body h3{margin-top:1.5em}
.article-meta{color:var(--muted);font-size:.8rem;font-weight:800}
.container-reading.article-body{width:min(100%,760px)!important}

.embed-frame{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--image-radius);overflow:hidden;background:#111}
.embed-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.site-footer{background:var(--footer-bg);color:var(--footer-text);padding:70px 0 24px}
.footer-grid{display:grid;grid-template-columns:1.3fr repeat(3,minmax(140px,.55fr));gap:46px}
.footer-brand img{max-width:150px;max-height:90px;object-fit:contain;margin-bottom:18px}
.footer-title{font:600 2rem var(--heading-font);color:var(--footer-text)}
.footer-brand p{max-width:420px;color:color-mix(in srgb,var(--footer-text) 62%,transparent)}
.site-footer h3{color:var(--footer-text);font:850 .9rem var(--body-font);margin-bottom:15px}
.footer-links{display:grid;gap:8px}
.footer-links a,.footer-links span{color:color-mix(in srgb,var(--footer-text) 72%,transparent);font-size:.86rem}
.footer-links a:hover{color:var(--footer-text)}
.footer-bottom{border-top:1px solid color-mix(in srgb,var(--footer-text) 15%,transparent);padding-top:20px;margin-top:52px;display:flex;justify-content:space-between;gap:20px;color:color-mix(in srgb,var(--footer-text) 55%,transparent);font-size:.75rem}

.flash{position:relative;z-index:400;padding:12px 0;font-weight:800}
.flash-success{background:#dff2e8;color:#165f43}
.flash-error{background:#ffe8e3;color:#8a3027}
.health,.error-page{padding-top:calc(var(--nav-height) + 100px);min-height:75vh}
.health h1,.error-page h1{font-size:clamp(3rem,7vw,5.5rem);margin-bottom:22px}
.health-grid{display:grid;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:8px 22px;margin:28px 0}
.health-row{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid var(--line)}
.health-row:last-child{border-bottom:0}
.ok{color:#18714f}.warn{color:#a26b25}

.lightbox{border:0;background:rgba(7,22,18,.94);padding:28px;max-width:none;width:100vw;height:100vh;color:#fff}
.lightbox::backdrop{background:rgba(0,0,0,.85)}
.lightbox img{width:auto;max-width:min(92vw,1400px);height:auto;max-height:82vh;object-fit:contain;margin:auto}
.lightbox p{text-align:center;margin:12px auto 0;color:rgba(255,255,255,.76)}
.lightbox-close{position:fixed;right:22px;top:18px;width:48px;height:48px;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:2rem;line-height:1;cursor:pointer}
.sticky-booking{position:fixed;right:20px;bottom:20px;z-index:250;background:var(--button-bg);color:var(--button-text);font-weight:900;border-radius:999px;padding:13px 18px;box-shadow:0 16px 45px rgba(0,0,0,.2)}

.section,.stay-card,.news-card,.review-card,.promo-card{opacity:.001;transform:translateY(12px)}
.section.in-view,.stay-card.in-view,.news-card.in-view,.review-card.in-view,.promo-card.in-view{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
.trust-strip{opacity:1!important;transform:none!important}

@media(max-width:1180px){
.desktop-nav{gap:2px}.desktop-nav>a,.nav-more>summary{padding-inline:9px;font-size:.8rem}.brand{min-width:190px}.brand-copy small{display:none}
.stay-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.promo-grid,.news-grid,.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.footer-grid{grid-template-columns:1.2fr repeat(2,.7fr)}.footer-grid>div:last-child{grid-column:2/4}
}
@media(max-width:960px){
.site-header{height:76px}.header-inner{width:min(calc(100% - 30px),1760px)}
.desktop-nav,.button-header{display:none}.brand{min-width:0;flex:1}.brand img{height:50px}.menu-toggle{display:block}
.mobile-nav{display:grid;position:fixed;top:76px;left:0;right:0;max-height:calc(100vh - 76px);overflow:auto;background:#fff;color:var(--text);padding:18px 24px 30px;transform:translateY(-130%);opacity:0;pointer-events:none;transition:.28s ease;border-top:1px solid var(--line);box-shadow:0 30px 60px rgba(18,52,43,.14)}
.mobile-nav.is-open{transform:none;opacity:1;pointer-events:auto}
.mobile-nav a{padding:12px 0;border-bottom:1px solid var(--line);font-weight:800}
.mobile-book{color:var(--primary)!important}
.site-header.menu-open{background:#fff!important;color:var(--heading)!important}
.hero{height:var(--hero-m,72svh);min-height:620px}.hero-home{min-height:660px}.hero-inner{padding-top:120px;padding-bottom:74px}.hero-scroll{display:none}
.trust-grid{grid-template-columns:repeat(2,1fr)}.trust-grid>div:nth-child(2){border-right:0}.trust-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}
.media-split,.editorial-grid,.contact-grid,.detail-layout,.detail-booking-grid{grid-template-columns:1fr}
.media-split.reverse>div:first-child,.media-split.reverse>.feature-image{order:initial}
.editorial-media{min-height:430px}
.booking-sidecard{position:static}
.map-shell{grid-template-columns:1fr}.map-points{max-height:310px}
.month-grid{grid-template-columns:1fr}
.review-grid{grid-template-columns:1fr}
.info-grid{grid-template-columns:1fr}
.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:last-child{grid-column:auto}.footer-brand{grid-column:1/-1}
}
@media(max-width:680px){
.container{width:min(calc(100% - 28px),var(--content-width))}
.section{padding:var(--pt,72px) 0 var(--pb,72px)}
h1{font-size:clamp(3rem,14vw,4.7rem)}h2{font-size:clamp(2.25rem,10vw,3.5rem)}
.hero{min-height:590px}.hero-home{min-height:650px}.hero-inner{align-items:flex-end;padding-bottom:56px}.hero-overlay{background:linear-gradient(0deg,color-mix(in srgb,var(--hero-overlay-color) 84%,transparent),color-mix(in srgb,var(--hero-overlay-color) 18%,transparent) 76%)}
.hero-copy p{font-size:1.03rem}.hero-actions{display:grid}.hero-actions .button{width:100%}
.trust-grid{grid-template-columns:1fr 1fr}.trust-grid>div{padding:17px 12px;display:grid;gap:0}.trust-grid strong{font-size:1.15rem}.trust-grid span{font-size:.68rem}
.story-copy h2,.editorial-copy h2{max-width:none}
.editorial-copy{padding:30px 24px}.editorial-media{min-height:330px}
.stay-grid-2,.stay-grid-3,.stay-grid-4{grid-template-columns:1fr}.stay-body{padding:22px}.stay-meta{align-items:flex-start;flex-direction:column}
.availability-box{grid-template-columns:1fr;padding:16px}.mini-stay-grid{grid-template-columns:1fr}.results-head{display:grid;gap:4px}
.gallery-grid{gap:8px}.gallery-grid figure,.gallery-grid figure:nth-child(7n+1),.gallery-grid figure:nth-child(7n+2),.gallery-grid figure:nth-child(7n+5),.gallery-grid figure:nth-child(7n+6){grid-column:span 12;min-height:240px}.gallery-grid img{min-height:240px}
.interactive-map{min-height:440px}
.month-card{padding:14px}.day{border-radius:7px;font-size:.7rem}
.promo-grid,.news-grid,.menu-grid{grid-template-columns:1fr}
.form-grid{grid-template-columns:1fr}.contact-form-card,.contact-aside,.form-card{padding:22px}
.amenities-grid{grid-template-columns:1fr}
.final-cta-inner{display:grid}.final-actions{display:grid}.final-actions .button{width:100%}
.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.footer-bottom{display:grid}
.lightbox{padding:18px}
.sticky-booking{left:14px;right:14px;bottom:14px;text-align:center}
.brand-copy strong{font-size:.9rem}
}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.section,.stay-card,.news-card,.review-card,.promo-card{opacity:1;transform:none}
}

/* =========================================================
   V7 FULL ONEPAGE — DATABASE DRIVEN DESIGN OVERRIDES
   These rules consume CSS variables emitted from Hub settings.
   ========================================================= */
:root{
  --grid-d:3;--grid-t:2;--grid-m:1;--grid-gap:24px;
}
.button{min-height:var(--button-height,48px)}
input,select,textarea{border-radius:var(--form-radius,14px)}
.section{padding-top:var(--pt,var(--section-space));padding-bottom:var(--pb,var(--section-space))}
.section>.container,.section>.container-full{min-width:0}

.site-header{height:var(--nav-height,80px);border-bottom-width:var(--header-border-width,1px);border-bottom-color:var(--header-border-color,transparent)}
.site-header.glass,.site-header.header-mode-overlay-glass{background:color-mix(in srgb,var(--header-bg) calc(var(--header-opacity,.30)*100%),transparent);backdrop-filter:blur(var(--header-blur,16px));-webkit-backdrop-filter:blur(var(--header-blur,16px))}
.site-header.header-mode-overlay-transparent{background:transparent}
.site-header.header-mode-solid{background:var(--header-bg)}
.site-header.is-scrolled,.is-detail .site-header{background:color-mix(in srgb,var(--header-scrolled-bg,var(--header-bg)) calc(var(--header-scrolled-opacity,.98)*100%),transparent);color:var(--header-scrolled-text,var(--header-text));box-shadow:0 calc(var(--header-shadow,8)*1px) calc(var(--header-shadow,8)*4px) rgba(12,42,34,.12);backdrop-filter:blur(var(--header-blur,16px));-webkit-backdrop-filter:blur(var(--header-blur,16px))}
.header-inner{width:min(calc(100% - (var(--header-pad-x,34px)*2)),var(--header-max-width,1760px));height:100%;padding-block:var(--header-pad-y,8px)}
.desktop-nav{gap:var(--nav-gap,8px)}
.desktop-nav>a,.nav-more>summary{font-size:var(--nav-size,14px);border-radius:var(--nav-radius,8px);padding:10px 12px}
.desktop-nav>a:hover,.nav-more>summary:hover{background:var(--nav-hover-bg,rgba(255,255,255,.12))}
.desktop-nav>a.is-active{background:var(--nav-active-bg,rgba(255,255,255,.18))}
.site-header.is-scrolled .desktop-nav>a:hover,.is-detail .site-header .desktop-nav>a:hover{background:color-mix(in srgb,var(--primary) 10%,transparent)}
.site-header.is-scrolled .desktop-nav>a.is-active,.is-detail .site-header .desktop-nav>a.is-active{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--heading)}

.stay-grid,.news-grid{display:grid;grid-template-columns:repeat(var(--grid-d),minmax(0,1fr));gap:var(--grid-gap)}
.stay-card{min-width:0}
.stay-card .stay-body{padding:var(--card-padding,26px)}
.stay-card h3{font-size:var(--stay-title-size,var(--stay-title-global,28px));line-height:1.08}
.stay-card .stay-body p{font-size:var(--stay-text-size,16px)}
.stay-card .stay-meta{font-size:var(--stay-meta-size,13px)}
.stay-card.text-center .stay-body,.stay-card.text-center .stay-meta{text-align:center;align-items:center}
.stay-card.text-right .stay-body,.stay-card.text-right .stay-meta{text-align:right;align-items:flex-end}
.stay-card.density-compact .stay-body{padding:calc(var(--card-padding,26px)*.72)}
.stay-card.density-airy .stay-body{padding:calc(var(--card-padding,26px)*1.2)}
.stay-card.card-style-minimal{box-shadow:none;border-color:transparent;background:transparent}
.stay-card.card-style-minimal .stay-body{padding-inline:2px}
.stay-card.card-style-image .stay-body{background:var(--card)}
.stay-card.card-style-luxury{box-shadow:0 26px 70px rgba(15,48,40,.13)}
.stay-image-wrap{position:relative;display:block;overflow:hidden;background:var(--surface)}
.stay-image-wrap.ratio-landscape{aspect-ratio:4/3}
.stay-image-wrap.ratio-wide{aspect-ratio:16/9}
.stay-image-wrap.ratio-square{aspect-ratio:1/1}
.stay-image-wrap.ratio-portrait{aspect-ratio:4/5}
.stay-image-wrap.ratio-cinema{aspect-ratio:21/9}
.stay-image-wrap.fit-cover .stay-image{object-fit:cover}
.stay-image-wrap.fit-contain .stay-image{object-fit:contain;background:var(--surface)}
.stay-badge.badge-top-left{top:16px;left:16px;right:auto;bottom:auto}
.stay-badge.badge-top-right{top:16px;right:16px;left:auto;bottom:auto}
.stay-badge.badge-bottom-left{bottom:16px;left:16px;right:auto;top:auto}
.stay-badge.badge-bottom-right{bottom:16px;right:16px;left:auto;top:auto}

.detail-chips{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 24px}
.detail-chips span{display:inline-flex;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--heading);font-weight:750;font-size:.83rem}
.booking-teaser-panel{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:clamp(24px,5vw,70px);align-items:center;border-radius:var(--section-radius,28px);background:var(--card);border:1px solid var(--line);padding:clamp(26px,5vw,58px);box-shadow:var(--shadow-soft,0 18px 60px rgba(15,48,40,.08));overflow:hidden}
.booking-teaser-copy h2{margin:.25em 0 .35em}
.booking-teaser-media{border-radius:var(--image-radius,20px);overflow:hidden;min-height:240px}
.booking-teaser-media img{width:100%;height:100%;min-height:240px;object-fit:cover}
.booking-teaser-panel.no-image{grid-template-columns:1fr}

.share-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:28px 0;padding-top:20px;border-top:1px solid var(--line)}
.button-small{min-height:38px!important;padding:8px 14px!important;font-size:.82rem!important}
.copy-status{font-size:.82rem;color:var(--muted)}

.site-footer{padding:var(--footer-pad,66px) 0 24px}
.site-footer h2,.site-footer h3{color:var(--footer-heading,var(--footer-text))}
.site-footer a{color:var(--footer-link,var(--footer-text))}
.site-footer .footer-brand img{max-height:var(--footer-logo-size,118px);width:auto}
.footer-grid.footer-layout-compact{grid-template-columns:1.4fr repeat(2,minmax(0,1fr))}
.footer-grid.footer-layout-wide{grid-template-columns:1.5fr repeat(3,minmax(0,1fr))}
.footer-grid.footer-layout-centered{grid-template-columns:1fr;text-align:center;max-width:800px;margin-inline:auto}
.footer-grid.footer-layout-centered .footer-socials,.footer-grid.footer-layout-centered .footer-links{justify-content:center}

body.no-motion *,body.no-motion *:before,body.no-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.image-error{visibility:hidden}

@media(max-width:1023px){
  .stay-grid,.news-grid{grid-template-columns:repeat(var(--grid-t),minmax(0,1fr))}
  .booking-teaser-panel{grid-template-columns:1fr}
  .header-inner{width:min(calc(100% - 30px),var(--header-max-width,1760px));padding-block:0}
}
@media(max-width:639px){
  .stay-grid,.news-grid{grid-template-columns:repeat(var(--grid-m),minmax(0,1fr));gap:min(var(--grid-gap),20px)}
  .booking-teaser-panel{padding:22px;border-radius:min(var(--section-radius,28px),22px)}
  .detail-chips{gap:7px}.detail-chips span{font-size:.78rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}.section,.stay-card,.news-card,.review-card,.promo-card{opacity:1!important;transform:none!important}
}

/* Extended future-ready builder blocks */
.builder-full-image{margin:0}.builder-full-image img{width:100%;max-height:820px;object-fit:cover;border-radius:var(--image-radius);display:block}.builder-full-image figcaption{padding:10px 4px;color:var(--muted);font-size:.82rem}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:clamp(20px,3vw,34px)}.metric-card strong{display:block;font:700 clamp(2rem,4vw,3.7rem)/1 var(--heading-font);color:var(--heading)}.metric-card span{display:block;font-weight:800;margin-top:10px}.metric-card small{display:block;color:var(--muted);margin-top:7px}
.builder-card-grid{display:grid;grid-template-columns:repeat(var(--builder-cols,3),minmax(0,1fr));gap:22px}.builder-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);overflow:hidden;min-width:0}.builder-card>img{width:100%;aspect-ratio:16/10;object-fit:cover}.builder-card-body{padding:var(--card-padding);display:grid;gap:9px}.builder-card-body h3,.builder-card-body p{margin:0}.builder-card-icon{font-size:1.35rem}.builder-card-value{font:700 1.35rem var(--heading-font);color:var(--accent)}.builder-after-grid{margin-top:28px}
.builder-quote{max-width:900px;margin:0 auto;text-align:center}.builder-quote blockquote{margin:0;font:500 clamp(2rem,5vw,4.3rem)/1.08 var(--heading-font);letter-spacing:-.025em;color:var(--heading)}.surface-dark .builder-quote blockquote{color:#fff}.builder-quote figcaption{margin-top:22px;font-weight:800;color:var(--muted)}
.builder-timeline{list-style:none;padding:0;margin:0;display:grid;gap:18px}.builder-timeline li{display:grid;grid-template-columns:46px 1fr;gap:16px;align-items:start}.builder-timeline li>span{width:46px;height:46px;border-radius:999px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:850}.builder-timeline h3,.builder-timeline p{margin:0}.builder-timeline p{color:var(--muted);margin-top:5px}
.rules-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rules-list article{display:grid;grid-template-columns:40px 1fr;gap:13px;background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);padding:20px}.rules-list article>span{width:40px;height:40px;border-radius:999px;background:var(--surface);display:grid;place-items:center;font-weight:850;color:var(--heading)}.rules-list p{margin:.3em 0 0;color:var(--muted)}
.builder-slider{display:grid;grid-auto-flow:column;grid-auto-columns:min(78vw,720px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px}.builder-slider figure{margin:0;scroll-snap-align:start}.builder-slider img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--image-radius)}.builder-slider figcaption{padding:10px 4px;color:var(--muted)}
@media(max-width:1023px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.builder-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:639px){.metric-grid,.builder-card-grid,.rules-list{grid-template-columns:1fr}.builder-slider{grid-auto-columns:88vw}}

/* ==========================================================
   V7.2 HUB-DRIVEN SIGNATURE ONEPAGE — quieter, editorial, premium UX
   ========================================================== */
body{background:var(--background);}
main{background:var(--background)}
.section{padding-top:clamp(72px,7vw,var(--section-space));padding-bottom:clamp(72px,7vw,var(--section-space))}
.section+.section{isolation:isolate}
.container{width:min(calc(100% - 56px),var(--content-width,1220px))}

.button{border-radius:14px;min-height:52px;padding-inline:24px;letter-spacing:-.01em}
.button-header{border-radius:14px;box-shadow:0 10px 30px rgba(0,0,0,.08)}

.site-header{border-bottom-color:rgba(255,255,255,.08)}
.site-header:not(.is-scrolled) .brand-copy strong{color:#fff}
.site-header:not(.is-scrolled) .brand-copy small{color:rgba(255,255,255,.72)}
.site-header.is-scrolled .brand-copy strong,.is-detail .site-header .brand-copy strong{color:var(--heading)}
.site-header.is-scrolled .brand-copy small,.is-detail .site-header .brand-copy small{color:var(--muted)}
.desktop-nav>a,.nav-more>summary{font-weight:760;letter-spacing:-.01em}

.hero{isolation:isolate}
.hero-home{height:min(var(--hero-d,94vh),980px);min-height:760px}
.hero-media{transform:scale(1.002)}
.hero-gradient{background:radial-gradient(circle at 72% 16%,color-mix(in srgb,var(--primary) 58%,#9acbc1),transparent 34%),linear-gradient(145deg,#0d3f37 0%,#174942 46%,#082922 100%)}
.hero-overlay{background:linear-gradient(90deg,color-mix(in srgb,var(--hero-overlay-color,#143c39) 78%,transparent) 0%,color-mix(in srgb,var(--hero-overlay-color,#143c39) 55%,transparent) 46%,color-mix(in srgb,var(--hero-overlay-color,#143c39) 12%,transparent) 100%)}
.hero:after{content:"";position:absolute;z-index:1;inset:auto 0 0;height:26%;background:linear-gradient(180deg,transparent,rgba(7,30,25,.24));pointer-events:none}
.hero-inner{z-index:2;padding-bottom:clamp(70px,9vh,110px)}
.hero-copy{max-width:820px}
.hero-copy h1{max-width:11.5ch;font-size:calc(clamp(3.7rem,6.7vw,6.7rem)*var(--heading-scale,1));line-height:.96;letter-spacing:-.045em;text-shadow:0 5px 38px rgba(0,0,0,.13)}
.hero-copy p{max-width:610px;font-size:clamp(1.05rem,1.5vw,1.28rem);line-height:1.62}
.hero-eyebrow{letter-spacing:.22em}
.hero-scroll{right:18px;bottom:clamp(70px,9vh,110px)}

.section-heading{max-width:none;margin:0 0 46px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.58fr);column-gap:clamp(42px,8vw,120px);align-items:end;text-align:left}
.section-heading .eyebrow{grid-column:1/-1}
.section-heading h2{grid-column:1;margin:0;max-width:12ch;font-size:calc(clamp(2.45rem,4.2vw,4.3rem)*var(--heading-scale,1));letter-spacing:-.04em}
.section-heading p{grid-column:2;margin:0;max-width:540px;font-size:1rem;line-height:1.68;justify-self:end}
.section-heading.align-left{display:block;max-width:760px}
.section-heading.align-left p{margin-top:12px}

.stays-section{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 72%,var(--background)))}
.stays-section>.container{width:min(calc(100% - 56px),1480px)}
.filter-row{justify-content:flex-start;margin:-12px 0 34px}
.filter-chip{padding:9px 15px;border-radius:12px;background:color-mix(in srgb,var(--card) 92%,transparent);box-shadow:0 4px 18px rgba(21,58,48,.04)}
.stay-grid{align-items:stretch}
.stay-card{border-color:color-mix(in srgb,var(--line) 72%,transparent);box-shadow:0 12px 38px rgba(18,55,45,.075);border-radius:calc(var(--card-radius) + 2px)}
.stay-card:hover{transform:translateY(-4px);box-shadow:0 24px 64px rgba(18,55,45,.12)}
.stay-image-wrap.ratio-landscape{aspect-ratio:16/10}
.stay-image{height:100%;aspect-ratio:auto}
.image-placeholder{height:100%;aspect-ratio:auto;background:radial-gradient(circle at 70% 24%,color-mix(in srgb,var(--primary) 58%,#b6d4cb),transparent 33%),linear-gradient(145deg,#2c695e,#123f37);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.68)}
.stay-badge{top:15px;left:15px;padding:6px 10px;border-radius:10px;font-size:.66rem;box-shadow:0 7px 22px rgba(0,0,0,.08)}
.stay-body{height:100%;align-content:space-between}
.stay-body h3{letter-spacing:-.035em}
.stay-body p{line-height:1.6}
.stay-meta{padding-top:4px;border-top:1px solid color-mix(in srgb,var(--line) 75%,transparent)}

.availability-section{background:var(--background)}
.availability-section>.container{width:min(calc(100% - 56px),1320px)}
.availability-box{padding:28px;border-radius:22px;border-color:color-mix(in srgb,var(--line) 80%,transparent);box-shadow:0 18px 55px rgba(18,55,45,.09);gap:14px}
.availability-box label{font-size:.78rem;letter-spacing:.015em}
.availability-box input,.availability-box select{min-height:52px;border-radius:12px;background:color-mix(in srgb,#fff 94%,var(--surface))}
.availability-results{border-radius:22px;box-shadow:0 16px 46px rgba(18,55,45,.06)}

.booking-teaser-section{padding-top:clamp(50px,5vw,72px);padding-bottom:clamp(76px,7vw,110px)}
.booking-teaser-section>.container{width:min(calc(100% - 56px),1320px)}
.booking-teaser-panel{grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);padding:0;gap:0;border-radius:30px;box-shadow:0 24px 80px rgba(18,55,45,.1);border-color:color-mix(in srgb,var(--line) 70%,transparent)}
.booking-teaser-copy{padding:clamp(36px,5vw,68px)}
.booking-teaser-copy h2{font-size:clamp(2.4rem,4vw,4.1rem);max-width:10ch;letter-spacing:-.04em}
.booking-teaser-media{border-radius:0;min-height:420px;height:100%}
.booking-teaser-media img{min-height:420px;height:100%;object-fit:cover}
.booking-teaser-panel:not(.has-image){grid-template-columns:1fr;background:linear-gradient(135deg,var(--heading),color-mix(in srgb,var(--heading) 78%,var(--primary)));color:#fff;border:0}
.booking-teaser-panel:not(.has-image) h2,.booking-teaser-panel:not(.has-image) .eyebrow{color:#fff}
.booking-teaser-panel:not(.has-image) .lead{color:rgba(255,255,255,.76)}

.review-grid{gap:22px}
.review-card{border-radius:22px;padding:32px;box-shadow:0 14px 44px rgba(18,55,45,.065)}
.review-card blockquote{font-size:1.18rem;line-height:1.58}

.news-section>.container{width:min(calc(100% - 56px),1320px)}
.news-card{border-radius:22px;box-shadow:0 12px 38px rgba(18,55,45,.065)}
.news-card img{aspect-ratio:16/9}
.news-body{padding:26px}

.contact-grid{gap:28px}
.contact-form-card,.contact-aside{border-radius:24px}
.contact-form-card{padding:34px}
.contact-aside{padding:38px;background:linear-gradient(145deg,var(--heading),color-mix(in srgb,var(--heading) 82%,var(--primary)))}

.site-footer{padding-top:clamp(64px,7vw,96px)}
.footer-grid{gap:clamp(30px,5vw,64px)}
.footer-brand .footer-title{font-size:2.2rem;letter-spacing:-.035em}
.footer-bottom{margin-top:56px}

@media(max-width:1023px){
  .container,.stays-section>.container,.availability-section>.container,.booking-teaser-section>.container,.news-section>.container{width:min(calc(100% - 34px),var(--content-width,1220px))}
  .section-heading{grid-template-columns:1fr;gap:14px}
  .section-heading .eyebrow,.section-heading h2,.section-heading p{grid-column:1;justify-self:start}
  .section-heading h2{max-width:15ch}
  .booking-teaser-panel{grid-template-columns:1fr}
  .booking-teaser-media{order:-1;min-height:320px}
  .booking-teaser-media img{min-height:320px}
  .hero-home{min-height:720px;height:88svh}
}
@media(max-width:639px){
  .container,.stays-section>.container,.availability-section>.container,.booking-teaser-section>.container,.news-section>.container{width:min(calc(100% - 26px),var(--content-width,1220px))}
  .section{padding-top:68px;padding-bottom:68px}
  .hero-home{min-height:680px;height:86svh}
  .hero-copy h1{font-size:clamp(3rem,15vw,4.5rem);max-width:10.5ch}
  .hero-copy p{font-size:1rem}
  .section-heading{margin-bottom:32px}
  .section-heading h2{font-size:clamp(2.25rem,11vw,3.2rem)}
  .filter-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;margin-right:-13px}
  .filter-chip{white-space:nowrap}
  .availability-box{padding:18px;border-radius:18px}
  .booking-teaser-panel{border-radius:22px}
  .booking-teaser-copy{padding:28px 24px}
  .booking-teaser-media,.booking-teaser-media img{min-height:250px}
}

/* V7.2 Hub-controlled header layout */
.site-header.header-layout-boxed .header-inner{max-width:min(var(--header-max-width),calc(100% - 32px));margin-inline:auto;border-radius:calc(var(--radius) * .65);}
.site-header.header-layout-full .header-inner{max-width:var(--header-max-width);margin-inline:auto;}

/* V7.3 — all Hub template choices are real layout systems. Individual Hub settings remain overrides via CSS variables. */
.theme-plaza .hero-copy{max-width:860px}.theme-plaza .stay-card,.theme-plaza .news-card{border-radius:6px}.theme-plaza .section-heading h2{letter-spacing:-.035em}.theme-plaza .button{border-radius:4px}.theme-plaza .hero-content{align-items:flex-end}.theme-plaza .stay-media{aspect-ratio:4/3}
.theme-estate .hero-copy{max-width:780px}.theme-estate .stay-card{border-radius:28px}.theme-estate .stay-media{aspect-ratio:5/4}.theme-estate .section-soft{border-radius:32px}.theme-estate .button{border-radius:999px}
.theme-lake .hero-copy{max-width:820px}.theme-lake .hero{min-height:max(78vh,620px)}.theme-lake .stay-card{border-radius:18px}.theme-lake .stay-media{aspect-ratio:16/10}.theme-lake .section-heading{border-bottom:1px solid var(--line);padding-bottom:22px}.theme-lake .button{border-radius:10px}
.theme-editorial .container{max-width:min(var(--content-width),1320px)}.theme-editorial .section-heading{grid-template-columns:minmax(0,.9fr) minmax(300px,.7fr)}.theme-editorial .section-heading h2{font-size:clamp(3rem,6vw,6rem);line-height:.92}.theme-editorial .stay-grid{gap:34px}.theme-editorial .stay-card{border-radius:0;border-width:0 0 1px}.theme-editorial .stay-media{border-radius:0;aspect-ratio:3/2}.theme-editorial .button{border-radius:0}
.theme-classic .section-heading{text-align:center;display:block;max-width:850px;margin-inline:auto;margin-bottom:48px}.theme-classic .stay-card{text-align:center;border-radius:14px}.theme-classic .stay-body{align-items:center}.theme-classic .button{border-radius:6px}.theme-classic .hero-copy{text-align:center;margin-inline:auto}.theme-classic .hero-actions{justify-content:center}
.theme-minimal .site-header{border-bottom:1px solid var(--line)}.theme-minimal .hero-overlay{opacity:.28}.theme-minimal .section{padding-block:calc(var(--section-space)*1.15)}.theme-minimal .stay-card,.theme-minimal .news-card,.theme-minimal .form-card{box-shadow:none;border-radius:0}.theme-minimal .stay-media{border-radius:0;aspect-ratio:16/9}.theme-minimal .button{border-radius:0}.theme-minimal .eyebrow{letter-spacing:.22em}
.theme-nature .hero-overlay{background:linear-gradient(90deg,rgba(22,50,37,.74),rgba(22,50,37,.18))}.theme-nature .stay-card{border-radius:32px}.theme-nature .stay-media{aspect-ratio:4/3}.theme-nature .section-soft{border-radius:42px}.theme-nature .button{border-radius:18px}
.theme-boutique .hero{min-height:max(92vh,720px)}.theme-boutique .hero-overlay{background:linear-gradient(180deg,rgba(12,20,18,.18),rgba(12,20,18,.78))}.theme-boutique .section-heading h2{font-size:clamp(2.8rem,5.2vw,5rem)}.theme-boutique .stay-card{border-radius:4px}.theme-boutique .stay-media{aspect-ratio:3/4}.theme-boutique .button{border-radius:2px;text-transform:uppercase;letter-spacing:.08em}
.theme-modern .section-heading h2{font-family:system-ui,sans-serif;font-weight:800;letter-spacing:-.05em}.theme-modern .stay-card{border-radius:16px}.theme-modern .stay-grid{gap:16px}.theme-modern .button{border-radius:12px}.theme-modern .hero-copy{max-width:900px}.theme-modern .eyebrow{font-weight:900}
.theme-heritage .hero-overlay{background:linear-gradient(0deg,rgba(41,31,24,.78),rgba(41,31,24,.16))}.theme-heritage .section-heading h2{font-weight:500}.theme-heritage .stay-card{border-radius:10px;border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}.theme-heritage .stay-media{aspect-ratio:4/3}.theme-heritage .button{border-radius:4px}.theme-heritage .site-footer{border-top:4px solid var(--accent)}
.theme-forest .hero{min-height:max(94vh,720px)}.theme-forest .hero-overlay{background:linear-gradient(90deg,rgba(10,39,28,.82),rgba(10,39,28,.35))}.theme-forest .section-soft{background:color-mix(in srgb,var(--surface) 90%,var(--primary))}.theme-forest .stay-card{border-radius:26px;overflow:hidden}.theme-forest .stay-media{aspect-ratio:5/4}.theme-forest .button{border-radius:999px}.theme-forest .eyebrow{color:var(--accent)}
@media(max-width:760px){.theme-editorial .section-heading h2{font-size:clamp(2.45rem,12vw,4rem)}.theme-boutique .stay-media{aspect-ratio:4/3}.theme-classic .section-heading{text-align:left}.theme-classic .hero-copy{text-align:left}.theme-classic .hero-actions{justify-content:flex-start}}
/* V7.3 hero/detail controls and enterprise booking dock */
.hero{min-height:var(--hero-d)}
.hero-inner{min-height:var(--hero-d);display:flex}
.hero-vertical-top .hero-inner{align-items:flex-start;padding-top:calc(var(--nav-height) + 48px)}
.hero-vertical-center .hero-inner{align-items:center}.hero-vertical-bottom .hero-inner{align-items:flex-end}
.hero-width-narrow .hero-copy{max-width:680px}.hero-width-wide .hero-copy{max-width:980px}
.hero-gradient-top .hero-overlay{background:linear-gradient(180deg,color-mix(in srgb,var(--hero-overlay-color) calc(var(--hero-overlay)*100%),transparent),transparent 76%)}
.hero-gradient-bottom .hero-overlay{background:linear-gradient(0deg,color-mix(in srgb,var(--hero-overlay-color) calc(var(--hero-overlay)*100%),transparent),transparent 76%)}
.hero-gradient-left .hero-overlay{background:linear-gradient(90deg,color-mix(in srgb,var(--hero-overlay-color) calc(var(--hero-overlay)*100%),transparent),transparent 78%)}
.hero-gradient-right .hero-overlay{background:linear-gradient(270deg,color-mix(in srgb,var(--hero-overlay-color) calc(var(--hero-overlay)*100%),transparent),transparent 78%)}
.hero-gradient-radial .hero-overlay{background:radial-gradient(circle at 35% 65%,color-mix(in srgb,var(--hero-overlay-color) calc(var(--hero-overlay)*100%),transparent),transparent 72%)}
.sticky-booking-dock{position:fixed;right:22px;bottom:22px;z-index:80;display:flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--card) 94%,transparent);border:1px solid var(--line);padding:8px;border-radius:18px;box-shadow:0 18px 60px rgba(14,42,34,.18);backdrop-filter:blur(16px)}
.sticky-booking-dock a,.sticky-booking-dock button{min-height:44px;border:0;border-radius:12px;padding:0 16px;font-weight:800;text-decoration:none;display:inline-grid;place-items:center;cursor:pointer}.sticky-booking,.sticky-quick-search button{background:var(--button-bg);color:var(--button-text)}.sticky-contact{background:var(--surface);color:var(--heading)}
.sticky-quick-search{display:flex;gap:6px;align-items:center}.sticky-quick-search input{height:44px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--text);padding:0 9px;max-width:142px}
@media(max-width:1023px){.hero{min-height:var(--hero-t)}.hero-inner{min-height:var(--hero-t)}}
@media(max-width:700px){.hero{min-height:var(--hero-m)}.hero-inner{min-height:var(--hero-m)}.sticky-booking-dock{left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:1fr 1fr}.sticky-quick-search{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.sticky-quick-search input{max-width:none;width:100%}.sticky-quick-search button{grid-column:1/-1}.sticky-booking-dock>a{width:100%}}

/* =========================================================
   V7.4.0000 — Navigation, floating actions & stay-card CTAs
   ========================================================= */
.stay-card{display:flex;flex-direction:column;height:100%}
.stay-body{flex:1;display:flex;flex-direction:column;gap:18px}
.stay-meta{margin-top:auto}
.stay-actions{display:grid;gap:10px;margin-top:auto;padding-top:2px}
.stay-actions.action-layout-split{grid-template-columns:minmax(0,.92fr) minmax(0,1.18fr)}
.stay-actions.action-layout-stack{grid-template-columns:1fr}
.stay-actions.action-layout-full{grid-template-columns:1fr}
.stay-actions.action-layout-full .button{width:100%}
.button-card{min-height:46px;padding:10px 14px;font-size:.78rem;line-height:1.15;text-align:center;white-space:normal}
.stay-actions .button-secondary{background:var(--card);border-color:color-mix(in srgb,var(--heading) 22%,var(--line));color:var(--heading)}
.stay-actions .button-secondary:hover{background:var(--surface)}
.desktop-nav .nav-home{font-weight:900}
.sticky-booking-dock.has-booking:not(.has-contact),.sticky-booking-dock.has-contact:not(.has-booking){padding:7px}
.sticky-booking-dock.has-booking:not(.has-contact)>a,.sticky-booking-dock.has-contact:not(.has-booking)>a{min-width:0}
@media(max-width:1180px){
  .stay-actions.action-layout-split{grid-template-columns:1fr}
}
@media(max-width:700px){
  .stay-actions{grid-template-columns:1fr!important}
  .button-card{width:100%;font-size:.82rem}
  .sticky-booking-dock.has-booking:not(.has-contact),.sticky-booking-dock.has-contact:not(.has-booking){grid-template-columns:1fr}
}
