@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');

:root{--forest:#173d36;--forest-deep:#102d28;--cream:#f8f6ef;--ink:#19312d;--muted:#586f69;--line:#d9e0d8;--gold:#dfc395}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}
img,video{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.12;letter-spacing:-.028em}
h1{font-size:clamp(3.2rem,6.7vw,6.6rem);max-width:950px;margin-bottom:1.3rem}
h2{font-size:clamp(2.55rem,4.3vw,4.5rem);margin-bottom:1.1rem}
.container{width:min(1200px,calc(100% - 48px));margin-inline:auto}
.skip-link{position:absolute;left:-9999px;top:8px;background:#fff;padding:10px;z-index:100}
.skip-link:focus{left:8px}
.site-header{position:absolute;inset:0 0 auto;z-index:10;color:#fff;border-bottom:1px solid rgba(255,255,255,.28)}
.header-inner{min-height:88px;display:flex;align-items:center;gap:34px}
.brand{display:flex;align-items:center;justify-content:center;width:150px;height:78px;flex:0 0 150px;padding:4px 8px;background:#fff;border-radius:3px;text-decoration:none}
.brand img{width:100%;height:100%;object-fit:contain}
.main-nav{display:flex;align-items:center;gap:26px;margin-left:auto}
.main-nav a,.languages a{font-size:.86rem;font-weight:600;text-decoration:none;white-space:nowrap}
.main-nav a:hover,.languages a:hover{text-decoration:underline;text-underline-offset:5px}
.languages{display:flex;gap:10px;align-items:center}
.languages a{opacity:.72}
.languages a[aria-current=page]{opacity:1;text-decoration:underline;text-underline-offset:5px}
.hero{min-height:760px;min-height:min(90svh,900px);position:relative;display:flex;align-items:center;color:#fff;overflow:hidden;background:#436553}
.hero-image{position:absolute;inset:0;background:url('/assets/lake-and-palms.jpg') center 46%/cover no-repeat;transform:scale(1.02)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,36,32,.84),rgba(8,36,32,.54) 55%,rgba(8,36,32,.2)),linear-gradient(0deg,rgba(8,36,32,.4),transparent 40%)}
.hero-content{position:relative;z-index:1;padding-top:150px;padding-bottom:110px}
.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.73rem;font-weight:700;color:#3f7868;margin-bottom:22px}
.eyebrow.light{color:#ecddc5}
.hero-lead{max-width:600px;font-size:clamp(1.04rem,1.6vw,1.24rem);line-height:1.7;margin-bottom:32px;color:#f3f5f0}
.actions{display:flex;gap:29px;align-items:center;flex-wrap:wrap}
.button{min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:30px;padding:12px 24px;text-decoration:none;font-size:.94rem;font-weight:700;border-radius:4px;transition:transform .18s,background .18s}
.button:hover{transform:translateY(-2px)}
.button-light{background:#f5f1e8;color:var(--forest-deep)}
.button-light:hover{background:#fff}
.button-whatsapp{gap:12px;background:#25d366;color:#073b24;border-radius:999px;box-shadow:0 10px 24px rgba(12,83,42,.22);white-space:nowrap}
.button-whatsapp:hover{background:#43e07a;box-shadow:0 14px 30px rgba(12,83,42,.28)}
.wa-icon{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;flex:0 0 25px}
.wa-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.text-link{font-weight:700;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px}
.text-link.light{color:#fff}
.text-link:hover{opacity:.72}
.hero-caption{position:absolute;bottom:24px;right:24px;font-size:.75rem;letter-spacing:.07em;opacity:.85}
.section{padding:clamp(82px,10vw,150px) 0}
.intro{padding-block:105px;border-bottom:1px solid var(--line)}
.intro-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:8%;align-items:end}
.intro-grid h2{max-width:630px;margin-bottom:0}
.section-lead{font-size:1.16rem;color:var(--muted);margin-bottom:5px}
.room-section{background:#e9eee7}
.room-grid{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(450px,1.28fr);align-items:center;gap:9%}
.room-copy p:not(.eyebrow){color:var(--muted);max-width:410px}
.room-copy .room-tip{border-left:2px solid #75947e;padding-left:17px;font-size:.9rem;margin:24px 0 28px}
.video-frame{background:#173d36;padding:10px;box-shadow:0 22px 54px rgba(11,43,36,.18)}
.video-frame video{width:100%;max-height:560px;object-fit:contain;background:#071c18}
.gallery-section{background:var(--cream)}
.gallery-head{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:32px}
.gallery-head h2{margin-bottom:0}
.gallery-head>p{color:var(--muted);max-width:300px;margin-bottom:6px}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.gallery figure{position:relative;margin:0;overflow:hidden;aspect-ratio:3/4;background:#d9e0d8}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.gallery figure:hover img{transform:scale(1.04)}
.gallery-item{display:block;width:100%;height:100%;cursor:zoom-in}
.review-panel{position:sticky;top:8px;z-index:6;display:grid;grid-template-columns:1fr auto;gap:8px 20px;margin-bottom:24px;padding:16px 20px;background:#fff;border:1px solid #b5c9bd;border-radius:12px;box-shadow:0 12px 34px rgba(16,45,40,.16)}
.review-intro strong{display:block;font-size:1.05rem;color:var(--forest-deep)}
.review-intro p{margin:2px 0 0;font-size:.82rem;color:var(--muted);line-height:1.45}
.review-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.review-count{font-size:.85rem;font-weight:700;color:var(--forest-deep);white-space:nowrap}
.review-actions button{min-height:38px;padding:7px 13px;border:1px solid var(--forest);border-radius:6px;background:var(--forest);color:#fff;font:700 .82rem/1.2 'DM Sans',Arial,sans-serif;cursor:pointer}
.review-actions .review-clear{background:#fff;color:var(--forest)}
.review-actions button:hover{filter:brightness(1.12)}
.review-link{grid-column:1/-1;width:100%;min-height:35px;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#f8faf7;color:var(--muted);font:400 .76rem/1.3 'DM Sans',Arial,sans-serif}
.review-feedback{grid-column:1/-1;font-size:.78rem;color:var(--forest);min-height:0}
.review-feedback:empty{display:none}
.review-remove{position:absolute;top:10px;right:10px;z-index:2;display:grid;place-items:center;width:42px;height:42px;border:2px solid #fff;border-radius:50%;background:#173d36;color:#fff;box-shadow:0 3px 14px rgba(0,0,0,.42);font:400 1.8rem/1 Arial,sans-serif;cursor:pointer}
.review-remove:hover{background:#ad3030}
.marked-for-removal img{opacity:.35;filter:grayscale(1)}
.marked-for-removal .review-remove{background:#ad3030}
.review-remove:focus-visible,.review-actions button:focus-visible,.review-link:focus-visible{outline:3px solid #cf9c53;outline-offset:3px}
.lightbox{width:min(96vw,1500px);height:min(96dvh,1000px);max-width:none;max-height:none;margin:auto;padding:12px;background:#102d28;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.lightbox::backdrop{background:rgba(3,19,16,.9)}
.lightbox-bar{display:flex;justify-content:space-between;align-items:center;min-height:40px;padding:0 8px 8px;font-size:.9rem}
.lightbox button{display:grid;place-items:center;border:0;background:rgba(255,255,255,.16);color:#fff;cursor:pointer;border-radius:50%}
.lightbox button:hover{background:rgba(255,255,255,.32)}
.lightbox-close{width:38px;height:38px;font-size:1.7rem;line-height:1}
.lightbox-stage{display:grid;grid-template-columns:50px minmax(0,1fr) 50px;align-items:center;gap:8px;height:calc(100% - 92px)}
.lightbox-stage button{width:48px;height:48px;font-size:2.2rem}
.lightbox-image{width:100%;height:100%;object-fit:contain}
.lightbox-caption{margin:6px 0 0;text-align:center;font-size:.88rem;color:#dbe6db}
.contact-section{background:var(--forest);color:#fff}
.contact-grid{display:grid;grid-template-columns:1fr 330px;gap:12%;align-items:end}
.contact-grid h2{max-width:670px}
.contact-grid p:not(.eyebrow){color:#dbe6db;max-width:530px;margin-bottom:0}
.contact-action{display:flex;flex-direction:column;align-items:start;gap:14px}
.contact-action small{color:#cedfd3;line-height:1.5}
.site-footer{background:var(--forest-deep);color:#dbe6db;padding:28px 0}
.footer-inner{display:flex;align-items:center;gap:30px;font-size:.82rem}
.brand-footer{font-family:Georgia,serif;font-size:1.3rem;color:#fff}
.footer-inner .languages{margin-left:auto}
a:focus-visible,video:focus-visible{outline:3px solid #d4ac68;outline-offset:4px}
@media(max-width:1000px){.main-nav{gap:15px}.header-inner{gap:20px}.room-grid{gap:6%;grid-template-columns:minmax(260px,.8fr) minmax(380px,1.2fr)}}
@media(max-width:760px){.container{width:min(100% - 32px,1200px)}.site-header{position:absolute}.header-inner{min-height:74px;flex-wrap:wrap;padding:14px 0;gap:15px}.brand{width:124px;height:70px;flex-basis:124px}.main-nav{order:3;width:100%;overflow-x:auto;margin-left:0;gap:20px;padding:0 0 4px}.languages{margin-left:auto}.hero{min-height:750px}.hero-content{padding-top:200px;padding-bottom:90px}.hero-shade{background:linear-gradient(90deg,rgba(8,36,32,.83),rgba(8,36,32,.39)),linear-gradient(0deg,rgba(8,36,32,.5),transparent 50%)}.intro-grid,.room-grid,.contact-grid{grid-template-columns:1fr;gap:28px}.intro{padding-block:75px}.room-copy{max-width:620px}.room-copy p:not(.eyebrow){max-width:600px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-head{display:block}.gallery-head>p{margin-top:22px}.footer-inner{flex-wrap:wrap}.footer-inner .languages{width:100%;margin-left:0}}
@media(max-width:480px){h1{font-size:clamp(3rem,12vw,4.4rem)}.hero{min-height:730px}.hero-content{padding-top:220px}.hero-caption{right:16px}.gallery{gap:8px}.gallery figure{aspect-ratio:1/1.28}.lightbox{width:100vw;height:100dvh;border:0;border-radius:0;padding:8px}.lightbox-stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:2px}.lightbox-stage button{width:38px;height:38px;font-size:2rem}.actions{align-items:start;flex-direction:column;gap:24px}.button{width:100%}.contact-action{width:100%}}
@media(max-width:760px){.review-panel{grid-template-columns:1fr;gap:8px;padding:12px}.review-actions{justify-content:flex-start}.review-link,.review-feedback{grid-column:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.gallery img{transition:none}}
