html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,sans-serif;background:#F8F7F2;color:#1F2A2C;-webkit-font-smoothing:antialiased}
::selection{background:#D4A34A;color:#04363C}

/* Buttons */
.btn-primary,.btn-gold,.btn-outline,.btn-light{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.8rem 1.4rem;border-radius:999px;font-weight:600;font-size:.875rem;letter-spacing:.02em;transition:all .35s ease;white-space:nowrap}
.btn-primary{background:#087E8B;color:#F8F7F2}
.btn-primary:hover{background:#065F69;transform:translateY(-1px);box-shadow:0 12px 28px -12px rgba(8,126,139,.7)}
.btn-gold{background:#D4A34A;color:#04363C}
.btn-gold:hover{background:#c39236;transform:translateY(-1px);box-shadow:0 12px 28px -12px rgba(212,163,74,.8)}
.btn-outline{border:1.5px solid #087E8B;color:#087E8B;background:transparent}
.btn-outline:hover{background:#087E8B;color:#F8F7F2}
.btn-light{background:rgba(248,247,242,.12);color:#F8F7F2;border:1px solid rgba(248,247,242,.4);backdrop-filter:blur(6px)}
.btn-light:hover{background:#F8F7F2;color:#04363C}

/* Booking buttons (label + link-type sub-label) */
.btn-book{flex-direction:column;gap:.15rem;line-height:1.15;text-align:center;padding-top:.6rem;padding-bottom:.6rem}
.btn-book small{display:block;font-size:.64rem;font-weight:500;letter-spacing:.04em;opacity:.85;white-space:normal}
.btn-book[data-link-type="third-party"] small::before{content:"↗ ";}
.btn-book.is-disabled,.btn-book.is-disabled:hover{background:#E5E7EB;color:#64748B;border-color:transparent;cursor:not-allowed;box-shadow:none;transform:none}

.eyebrow{font-size:.72rem;letter-spacing:.32em;text-transform:uppercase;font-weight:600;color:#087E8B}
.chip{display:inline-flex;align-items:center;padding:.3rem .7rem;border-radius:999px;background:#F8F7F2;color:#065F69;font-size:.7rem;font-weight:600;letter-spacing:.03em;border:1px solid rgba(8,126,139,.15)}
.shadow-card{box-shadow:0 20px 45px -25px rgba(4,54,60,.35)}

/* Nav */
.nav-link{position:relative;padding:.25rem 0;transition:color .3s}
.nav-link::after{content:"";position:absolute;left:0;bottom:-4px;height:1.5px;width:0;background:#D4A34A;transition:width .35s}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{width:100%}

/* Hero */
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 2.2s ease}
.hero-slide.is-active{opacity:1}
.hero-slide img{width:100%;height:115%;object-fit:cover;transform:scale(1.12)}
.hero-slide.is-active img{animation:kenburns 15s ease-out forwards}
@keyframes kenburns{from{transform:scale(1.18) translate3d(0,0,0)}to{transform:scale(1.03) translate3d(-1.5%,-1%,0)}}
.hero-dot{width:2.25rem;height:3px;border-radius:3px;background:rgba(248,247,242,.4);transition:all .4s}
.hero-dot.is-active{background:#D4A34A;width:3.5rem}
.scroll-cue{animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(8px);opacity:1}}

/* Reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}
.reveal.is-visible{opacity:1;transform:none}

/* Rails */
.rail{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.5rem .25rem 1.5rem;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>*{scroll-snap-align:start;flex:0 0 86%}
@media(min-width:640px){.rail>*{flex-basis:calc(50% - .75rem)}}
@media(min-width:1024px){.rail>*{flex-basis:calc(33.333% - 1rem)}}

/* Cards (floating 3D) */
.hotel-card{transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .5s;transform-style:preserve-3d;will-change:transform}
.hotel-card:hover{box-shadow:0 34px 60px -28px rgba(4,54,60,.5)}
.hotel-card .card-media img{transition:transform 1.4s cubic-bezier(.2,.8,.2,1)}
.hotel-card:hover .card-media img{transform:scale(1.07)}
@media(min-width:768px){
  .list-view{grid-template-columns:1fr!important}
  .list-view .hotel-card{flex-direction:row}
  .list-view .hotel-card .card-media{width:42%;aspect-ratio:auto;min-height:100%}
}

/* Ocean depth */
.ocean-depth{background:linear-gradient(180deg,#F8F7F2 0%,#EAF5F4 45%,#CFE9EA 100%)}
.deep-water{background:radial-gradient(1200px 500px at 20% 0%,rgba(8,126,139,.55),transparent 60%),radial-gradient(900px 500px at 90% 100%,rgba(212,163,74,.18),transparent 60%),#04363C}

/* Map markers */
.bp-marker{display:block;width:18px;height:18px;border-radius:50%;background:var(--c,#087E8B);border:3px solid #F8F7F2;box-shadow:0 0 0 0 rgba(8,126,139,.5);animation:pulse 2.6s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(8,126,139,.45)}70%{box-shadow:0 0 0 14px rgba(8,126,139,0)}100%{box-shadow:0 0 0 0 rgba(8,126,139,0)}}
.leaflet-popup-content-wrapper{border-radius:18px!important;padding:2px}
.leaflet-popup-content{margin:12px 14px!important;font-family:Inter,sans-serif}
.leaflet-container{font-family:Inter,sans-serif;background:#CFE9EA}

/* Compare table */
.compare-table th,.compare-table td{padding:1rem 1.1rem;text-align:left;vertical-align:top;border-bottom:1px solid rgba(8,126,139,.1);font-size:.9rem}
.compare-table th[scope=row]{font-weight:600;color:#04363C;white-space:nowrap;background:rgba(248,247,242,.7)}

/* Legal prose */
.prose-legal h2{font-family:"Cormorant Garamond",Georgia,serif;font-size:1.9rem;color:#04363C;margin:2.5rem 0 .8rem;font-weight:600}
.prose-legal h3{font-weight:600;color:#065F69;margin:1.5rem 0 .5rem}
.prose-legal p,.prose-legal li{line-height:1.8;color:#3d4b4d;margin-bottom:.9rem}
.prose-legal ul{list-style:disc;padding-left:1.4rem}

/* Lightbox */
#lightbox{background:rgba(4,54,60,.94)}
#lightbox img{max-height:80vh}

.filter-btn[aria-pressed="true"]{background:#087E8B;color:#F8F7F2;border-color:#087E8B}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}