/* V2: interaction surfaces and motion retain the property's visual identity. */
.hero{height:auto;min-height:max(720px,calc(100svh - 34px));max-height:none}
.hero-copy{height:auto;min-height:inherit}
.lucide{width:19px;height:19px;stroke-width:1.6;flex-shrink:0;vertical-align:middle}
.hero-line{display:block;overflow:hidden;padding-bottom:.09em;margin-bottom:-.09em}
.hero-line>span{display:block}
.hero-facts span{display:flex;align-items:center;gap:8px}
.hero-facts .lucide{width:16px;height:16px}
.site-header{transition:background .25s,padding .25s}
.site-header.is-docked{position:fixed;top:0;background:#142c23f2;backdrop-filter:blur(18px);padding-block:15px;border-bottom:1px solid #ffffff20;z-index:10}
.nav-cta,.button,.copy-button{border-radius:5px}
.button{gap:9px;transition:background .2s,box-shadow .2s}
.button:hover{transform:none;box-shadow:0 6px 22px #0002}
.video-control{display:flex;align-items:center;gap:9px;border-radius:999px}
.video-control .lucide{width:15px;height:15px}
.stay-facts dt,.form-grid label{display:flex;align-items:center;gap:8px}
.stay-facts dt .lucide{width:18px;height:18px;color:var(--forest)}
.booking-panel{border-radius:12px;box-shadow:0 16px 50px #1c392d08}
.stay-choices{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:7px;background:#f0f2ec;border-radius:10px}
.stay-highlight{position:absolute;top:7px;left:7px;border-radius:7px;background:white;border:1px solid #b6c8b1;box-shadow:0 3px 12px #1c392d0d;pointer-events:none}
.stay-choices label{position:relative;margin:0;padding:14px 12px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px;cursor:pointer;border:1px solid transparent;border-radius:7px}
.stay-choices label:has(input:checked){background:white;border-color:#b6c8b1}
.stay-choices.selector-ready label:has(input:checked){background:transparent;border-color:transparent}
.stay-choices label:focus-within{outline:3px solid #b97e25;outline-offset:2px}
.stay-choices input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.stay-choices span:not(.stay-highlight){pointer-events:none}
.stay-choices strong{font-size:1rem}
.stay-choices small{font-size:.75rem;line-height:1.4;margin-top:4px;color:var(--muted)}
.stay-choices b{margin:0;font-size:.875rem;pointer-events:none}
.form-grid input,textarea{border-radius:5px}
.form-grid label .lucide{width:16px;height:16px;color:var(--muted)}
.copy-button{display:inline-flex;gap:8px;align-items:center;transition:background .2s}
.copy-button.is-copied{background:#edf4e8}
.photo-open{position:relative;display:block;width:100%;padding:0;background:var(--forest);border:0;cursor:zoom-in;overflow:hidden;border-radius:6px}
.photo-open img{transition:filter .2s;will-change:auto}
.photo-open:hover img{filter:brightness(.94)}
.photo-expand{position:absolute;right:14px;bottom:14px;display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#142c23bd;backdrop-filter:blur(8px);border:1px solid #ffffff60;color:white;border-radius:50%;transition:background .2s}
.photo-expand .lucide{width:17px;height:17px}
.photo-open:hover .photo-expand{background:var(--forest)}
.gallery-intro{max-width:320px;color:var(--muted)}
.gallery-controls{display:flex;align-items:center;gap:10px;margin-top:22px}
.gallery-controls>span{font-size:.875rem;margin-right:auto}
.icon-button{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;border:1px solid #aeb8aa;border-radius:50%;background:transparent;color:inherit;cursor:pointer;transition:background .2s,opacity .2s}
.icon-button:hover{background:#1c392d0a}
.icon-button:disabled{opacity:.35;cursor:default}
.photo-grid{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:calc((100% - 44px)/3);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#bbc4b3 transparent;padding:6px 0 20px;overscroll-behavior-inline:contain;scroll-padding-inline:1px}
.photo-grid figure,.photo-grid figure:nth-child(2),.photo-grid figure:nth-child(3){padding:0;grid-column:auto;scroll-snap-align:start}
.photo-grid img,.photo-grid figure:nth-child(3) img{aspect-ratio:.82;object-fit:cover}
.photo-grid figcaption{font-size:1.35rem}
.faq details{overflow:hidden}
.faq summary{min-height:62px}
.faq details p{overflow:hidden}
.mobile-booking{display:none}
#gallery-dialog{width:min(1100px,94vw);max-width:none;max-height:94svh;padding:0;border:1px solid #ffffff30;border-radius:12px;background:#142c23;color:white;overflow-y:auto;box-shadow:0 30px 100px #0006}
#gallery-dialog::backdrop{background:#071c16e0;backdrop-filter:blur(10px)}
.lightbox-shell{padding:24px}
.lightbox-header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}
.lightbox-header .eyebrow{font-size:.75rem;color:var(--gold);margin-bottom:6px}
.lightbox-header h2{font-size:1.9rem}
.lightbox-header .icon-button,.lightbox-navigation .icon-button{border-color:#ffffff60}
.lightbox-header .icon-button:hover,.lightbox-navigation .icon-button:hover{background:#ffffff10}
.lightbox-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;background:#0c211a;border-radius:6px;overflow:hidden;touch-action:pan-y}
#lightbox-image{width:100%;height:min(55svh,600px);object-fit:contain}
#gallery-loading{position:absolute;font-size:.875rem;color:#ffffffb0}
.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:18px 0}
.lightbox-footer>p{font-size:.875rem;max-width:650px;color:#e0e7dc;line-height:1.55}
.lightbox-navigation{display:flex;align-items:center;gap:15px;white-space:nowrap}
#lightbox-count{font-size:.875rem;min-width:45px;text-align:center;font-variant-numeric:tabular-nums}
.lightbox-thumbnails{display:flex;justify-content:center;gap:9px}
.lightbox-thumbnails button{padding:3px;border:1px solid transparent;background:transparent;border-radius:5px;cursor:pointer}
.lightbox-thumbnails button[aria-current=true]{border-color:var(--gold)}
.lightbox-thumbnails img{width:65px;height:44px;object-fit:cover;border-radius:2px;opacity:.65}
.lightbox-thumbnails button[aria-current=true] img{opacity:1}
.gallery-open{overflow:hidden}
@media(max-width:800px){
  body{padding-bottom:88px}
  .site-header.is-docked{display:none}
  .hero-copy{padding-bottom:155px}
  .video-control{bottom:102px}
  .hero-facts{gap:12px 16px}
  .hero-facts .lucide{width:15px;height:15px}
  .mobile-booking{display:flex;align-items:center;justify-content:space-between;gap:16px;position:fixed;z-index:15;bottom:12px;left:12px;right:12px;padding:13px 15px calc(13px + env(safe-area-inset-bottom));background:#142c23f7;backdrop-filter:blur(18px);color:white;border:1px solid #ffffff25;border-radius:12px;box-shadow:0 8px 35px #0003}
  .mobile-booking>div{display:flex;flex-direction:column;line-height:1.35}
  .mobile-booking strong{font-family:var(--serif);font-weight:400;font-size:1.6rem;letter-spacing:-.03em;white-space:nowrap}
  .mobile-booking span{font-size:.75rem;color:#e1e7dd;margin-top:3px}
  .mobile-booking .button{background:var(--gold);color:var(--deep);width:auto;min-height:48px;padding:12px 16px;white-space:nowrap}
  .photo-grid{grid-auto-columns:calc((100% - 20px)/2);gap:20px}
  .lightbox-footer{gap:18px;align-items:flex-start}
  #lightbox-image{height:45svh}
}
@media(max-width:480px){
  .hero{min-height:max(820px,calc(100svh - 52px))}
  .hero-copy{padding-top:135px;padding-bottom:175px}
  .hero-facts{max-width:350px;font-size:.75rem;gap:10px 15px}
  .hero-facts span:last-child{flex-basis:100%}
  .hero-line{padding-bottom:.1em;margin-bottom:-.1em}
  .stay-choices label{padding:13px 10px}
  .booking-panel{padding:25px 20px}
  .gallery-intro{max-width:none;margin-top:20px}
  .gallery-intro p{font-size:1rem}
  .photo-grid{grid-auto-columns:84%;gap:16px}
  .photo-grid img{aspect-ratio:.92}
  .photo-grid figcaption{font-size:1.3rem}
  .photo-grid figcaption span{font-size:.75rem}
  #gallery-dialog{width:calc(100vw - 16px);max-height:94svh;border-radius:9px}
  .lightbox-shell{padding:16px}
  .lightbox-header .eyebrow{font-size:.6875rem}
  .lightbox-footer{flex-direction:column;gap:15px}
  .lightbox-navigation{align-self:center}
  .lightbox-thumbnails img{width:47px;height:36px}
  .lightbox-thumbnails{gap:6px}
  #lightbox-image{height:40svh}
  .mobile-booking{gap:10px;padding-inline:12px}
  .mobile-booking .button{padding-inline:13px;font-size:.8125rem}
}
@media(prefers-reduced-motion:reduce){.site-header,.photo-open img,.photo-expand,.icon-button,.copy-button{transition:none}.photo-grid{scroll-behavior:auto}}
