@font-face { font-family:'Source Sans Pro'; src:url('/fonts/source-sans-pro-300.ttf') format('truetype'); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:'Source Sans Pro'; src:url('/fonts/source-sans-pro-400.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Source Sans Pro'; src:url('/fonts/source-sans-pro-600.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }
@font-face { font-family:'Lato'; src:url('/fonts/lato-300.ttf') format('truetype'); font-style:normal; font-weight:300; font-display:swap; }
@font-face { font-family:'Lato'; src:url('/fonts/lato-400.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Lato'; src:url('/fonts/lato-italic-400.ttf') format('truetype'); font-style:italic; font-weight:400; font-display:swap; }
@font-face { font-family:'Quicksand'; src:url('/fonts/quicksand-400.ttf') format('truetype'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Quicksand'; src:url('/fonts/quicksand-600.ttf') format('truetype'); font-style:normal; font-weight:600; font-display:swap; }

:root { --ink:#153a46; --ink-deep:#0b2932; --sea:#0f8295; --aqua:#68cbd2; --foam:#d9f2ef; --sand:#f2ece1; --sun:#ffb52e; --coral:#f45b49; --paper:#fffdf8; --blue:#18a8df; --royal:#2247a8; --red:#df2438; --orange:#ff8d18; --lime:#74bd2f; --pink:#b21d6b; --purple:#7134a5; --peach:#fff0e2; --lilac:#f4eafa; --lemon:#fff5bf; --font-body:'Lato','Source Sans Pro',Arial,sans-serif; --font-heading:'Quicksand','Source Sans Pro',Arial,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); font-weight:400; }
main { overflow:clip; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
button,input,select,textarea { font:inherit; }
::selection { background:var(--sun); color:var(--ink-deep); }
section[id] { scroll-margin-top:18px; }
:focus-visible { outline:3px solid var(--sun); outline-offset:4px; }
.skip-link { position:fixed; z-index:1000; top:12px; left:12px; padding:12px 18px; border-radius:999px; background:#fff; color:var(--ink-deep); font-weight:800; transform:translateY(-180%); transition:transform .2s ease; }
.skip-link:focus { transform:translateY(0); }

.hero { position:relative; min-height:100svh; overflow:hidden; color:#fff; isolation:isolate; }
.hero__film { position:absolute; inset:0; z-index:-3; overflow:hidden; background:#0b2932; }
.hero__shot { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transform:scale(1.075); animation:heroFilm 24s linear infinite both; will-change:transform,opacity; }
.hero__shot--one { object-position:center; animation-delay:-1s; }
.hero__shot--two { object-position:center 58%; animation-delay:7s; }
.hero__shot--three { object-position:center; animation-delay:15s; }
.hero__veil { position:absolute; inset:0; z-index:-2; background:linear-gradient(90deg,rgba(8,39,47,.86) 0%,rgba(8,39,47,.58) 40%,rgba(8,39,47,.08) 75%),linear-gradient(180deg,rgba(5,33,40,.58) 0%,transparent 22%,transparent 66%,rgba(5,33,40,.68) 100%); }
.hero::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.23; background-image:radial-gradient(circle at 84% 22%,var(--sun) 0 7px,transparent 8px),radial-gradient(circle at 90% 29%,var(--coral) 0 10px,transparent 11px),radial-gradient(circle at 80% 34%,var(--blue) 0 5px,transparent 6px),radial-gradient(rgba(255,255,255,.2) .6px,transparent .6px); background-size:auto,auto,auto,5px 5px; mix-blend-mode:screen; }
.site-header { position:relative; z-index:10; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:11px clamp(24px,4.2vw,72px); border-bottom:1px solid rgba(255,255,255,.28); }
.wordmark { display:inline-flex; width:fit-content; align-items:center; gap:13px; line-height:1; }
.wordmark__logo { width:118px; height:82px; object-fit:contain; filter:drop-shadow(0 4px 12px rgba(5,33,40,.22)); }
.wordmark__place { max-width:105px; font-family:var(--font-heading); font-size:8px; font-weight:600; line-height:1.45; letter-spacing:.16em; text-transform:uppercase; opacity:.82; }
.site-nav { display:flex; align-items:center; gap:clamp(20px,2vw,38px); font-family:var(--font-heading); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.site-nav a { position:relative; padding:8px 0; }
.site-nav a::after { content:''; position:absolute; right:100%; bottom:2px; left:0; height:1px; background:#fff; transition:right .3s ease; }
.site-nav a:hover::after { right:0; }
.header-cta { justify-self:end; display:flex; align-items:center; gap:22px; padding:13px 18px 13px 22px; border:1px solid rgba(255,255,255,.7); border-radius:999px; background:linear-gradient(115deg,var(--coral),var(--orange)); box-shadow:0 10px 28px rgba(244,91,73,.3); font-family:var(--font-heading); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; transition:.25s ease; }
.header-cta:hover { border-color:#fff; background:#fff; color:var(--ink); }
.header-cta span { font-size:15px; }
.mobile-menu { display:none; }
.hero__content { width:min(760px,calc(100% - 48px)); margin-left:clamp(24px,8vw,134px); padding-top:clamp(100px,16vh,170px); padding-bottom:190px; }
.eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 25px; font-family:var(--font-heading); font-size:11px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.eyebrow span { width:34px; height:1px; background:var(--sun); }
.hero h1 { max-width:860px; margin:0; font-family:var(--font-heading); font-size:clamp(60px,7.9vw,118px); font-weight:400; line-height:.9; letter-spacing:-.045em; text-wrap:balance; }
.hero h1 em,.section-heading h2 em,.experience h2 em,.nearby h2 em,.gallery-section h2 em,.reviews h2 em,.booking h2 em,.location h2 em { color:var(--sea); font-style:normal; font-weight:400; }
.hero h1 em { color:#ffe165; text-shadow:0 4px 26px rgba(255,181,46,.24); }
.hero__lead { max-width:560px; margin:32px 0 0; color:rgba(255,255,255,.9); font-size:clamp(16px,1.3vw,20px); line-height:1.65; }
.hero__actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:36px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:53px; padding:0 26px; border:0; border-radius:999px; font-family:var(--font-heading); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:transform .25s ease,background .25s ease,color .25s ease; }
.button:hover { transform:translateY(-2px); }
.button--sun { gap:32px; background:linear-gradient(115deg,var(--sun),var(--orange)); color:#18383c; box-shadow:0 13px 35px rgba(255,141,24,.25); }
.button--sun:hover { background:linear-gradient(115deg,#ffd45d,var(--sun)); }
.button--ghost { border:1px solid rgba(255,255,255,.58); background:rgba(255,255,255,.07); color:#fff; backdrop-filter:blur(8px); }
.button--ghost:hover { background:#fff; color:var(--ink); }
.hero__meta { position:absolute; right:clamp(24px,4.2vw,72px); bottom:32px; display:flex; border-top:1px solid rgba(255,255,255,.35); }
.hero__meta div { display:flex; min-width:150px; flex-direction:column; padding:18px 26px 0 0; }
.hero__meta strong { font-family:var(--font-heading); font-size:28px; font-weight:400; }
.hero__meta span { margin-top:4px; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
.scroll-cue { position:absolute; bottom:30px; left:clamp(24px,4.2vw,72px); display:flex; align-items:center; gap:15px; font-size:9px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.scroll-cue i { display:grid; width:35px; height:35px; place-items:center; border:1px solid rgba(255,255,255,.5); border-radius:50%; font-style:normal; }
.color-ribbon { position:relative; z-index:5; display:grid; height:10px; grid-template-columns:repeat(6,1fr); }
.color-ribbon span:nth-child(1) { background:var(--red); }.color-ribbon span:nth-child(2) { background:var(--orange); }.color-ribbon span:nth-child(3) { background:var(--lime); }.color-ribbon span:nth-child(4) { background:var(--blue); }.color-ribbon span:nth-child(5) { background:var(--royal); }.color-ribbon span:nth-child(6) { background:var(--pink); }

.booking-strip { position:relative; z-index:6; display:grid; grid-template-columns:.9fr 1.65fr auto; align-items:center; width:min(1380px,calc(100% - 48px)); min-height:132px; margin:-30px auto 0; padding:20px 30px; border-radius:24px; background:#fff; box-shadow:0 22px 70px rgba(18,61,71,.16); }
.booking-strip>div:first-child { display:flex; flex-direction:column; gap:7px; }
.booking-strip>div:first-child span { color:var(--sea); font-size:10px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.booking-strip strong { font-family:var(--font-heading); font-size:22px; font-weight:400; }
.booking-strip__benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; color:#59727a; }
.booking-strip__benefits>div { display:flex; min-width:116px; align-items:center; gap:10px; padding:6px 10px; }
.booking-strip__benefits i { display:grid; width:40px; height:40px; flex:0 0 40px; place-items:center; border:0; border-radius:14px; color:#fff; font-family:var(--font-heading); font-size:17px; font-style:normal; transition:.25s ease; }
.booking-strip__benefits>div:nth-child(1) i { background:var(--coral); }.booking-strip__benefits>div:nth-child(2) i { background:var(--blue); }.booking-strip__benefits>div:nth-child(3) i { background:var(--purple); }.booking-strip__benefits>div:nth-child(4) i { background:var(--lime); }
.booking-strip__benefits span { font-size:9px; font-weight:800; line-height:1.45; letter-spacing:.08em; text-transform:uppercase; }
.booking-strip__benefits>div:hover i { color:#fff; transform:translateY(-3px) rotate(-3deg); }
.booking-strip>a { display:flex; align-items:center; gap:30px; padding:16px 22px; border-radius:99px; background:linear-gradient(115deg,var(--blue),var(--royal)); box-shadow:0 10px 26px rgba(34,71,168,.22); color:#fff; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }

.section { padding:clamp(90px,10vw,160px) clamp(24px,8vw,134px); }
.section-kicker { margin:0 0 22px; color:var(--sea); font-size:10px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.section-kicker::before { content:''; display:inline-block; width:22px; height:1px; margin:0 10px 3px 0; background:currentColor; }
.section-kicker--light { color:#96e5e5; }
.section-heading h2,.standard h2,.nearby h2,.gallery-section h2,.reviews h2,.booking h2,.location h2 { margin:0; font-family:var(--font-heading); font-size:clamp(50px,6.2vw,96px); font-weight:400; line-height:.96; letter-spacing:-.045em; }
.story { background:radial-gradient(circle at 93% 8%,rgba(255,181,46,.27),transparent 22%),radial-gradient(circle at 3% 86%,rgba(24,168,223,.18),transparent 25%),var(--sand); }
.story__grid { display:grid; grid-template-columns:.78fr 1.45fr .62fr; align-items:end; gap:clamp(22px,3vw,54px); margin-top:70px; }
.story__copy { align-self:center; padding-bottom:55px; }
.story__copy .lead { margin:0 0 24px; color:var(--ink-deep); font-family:var(--font-heading); font-size:25px; line-height:1.3; }
.story__copy>p:not(.lead) { margin:0; color:#5c7176; font-size:15px; line-height:1.8; }
.text-link { display:inline-flex; align-items:center; gap:20px; margin-top:34px; border-bottom:1px solid currentColor; padding-bottom:8px; color:var(--sea); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.story figure { margin:0; }
.story__main-photo img { aspect-ratio:4/5; border-radius:30px 30px 100px 30px; object-fit:cover; box-shadow:0 28px 70px rgba(21,58,70,.13); }
.story__main-photo figcaption { display:flex; justify-content:space-between; margin-top:13px; color:#6a7c80; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.story__side-photo { transform:translateY(70px); }
.story__side-photo img { aspect-ratio:4/5.5; border-radius:90px 25px 25px 25px; object-fit:cover; }
.story__side-photo span { display:block; margin-top:14px; color:#6a7c80; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.story .section-heading h2 em { color:var(--coral); }

.experience { display:grid; grid-template-columns:1.08fr .92fr; min-height:760px; background:linear-gradient(145deg,var(--royal),var(--purple) 52%,var(--pink)); color:#fff; }
.experience__image { position:relative; min-height:660px; }
.experience__image img { width:100%; height:100%; object-fit:cover; }
.image-tag { position:absolute; right:28px; bottom:28px; padding:11px 15px; border:1px solid rgba(255,255,255,.65); border-radius:99px; background:var(--coral); box-shadow:0 10px 30px rgba(0,0,0,.2); font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.experience__content { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(35px,7vw,120px); }
.experience h2 { margin:0; font-family:var(--font-heading); font-size:clamp(48px,5.3vw,82px); font-weight:400; line-height:.96; letter-spacing:-.045em; }
.experience h2 em { color:#ffe165; }
.experience__content>p:not(.section-kicker) { max-width:560px; margin:35px 0 0; color:#bfd0d3; font-size:16px; line-height:1.75; }
.experience__stats { display:flex; gap:55px; margin-top:60px; padding-top:26px; border-top:1px solid rgba(255,255,255,.18); }
.experience__stats div { display:flex; flex-direction:column; gap:8px; }
.experience__stats strong { font-family:var(--font-heading); font-size:29px; font-weight:400; color:#fff; }
.experience__stats span { color:#8fa9af; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.experience__content>small { margin-top:25px; color:#718e95; font-size:9px; }

.never-ending { padding:clamp(90px,9vw,145px) clamp(24px,6vw,100px); background:radial-gradient(circle at 8% 13%,rgba(255,181,46,.32),transparent 22%),radial-gradient(circle at 92% 86%,rgba(178,29,107,.2),transparent 25%),linear-gradient(145deg,#fff8d8,#eefaff 46%,#f8e9ff); }
.never-ending__intro { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:32px 80px; max-width:1320px; margin:0 auto 60px; }
.never-ending__intro .section-kicker { grid-column:1/-1; margin-bottom:-4px; }
.never-ending__intro h2 { margin:0; font-family:var(--font-heading); font-size:clamp(52px,6.5vw,98px); font-weight:400; line-height:.94; letter-spacing:-.05em; }
.never-ending__intro h2 em { color:var(--coral); font-style:normal; font-weight:400; }
.never-ending__intro>p:last-child { max-width:520px; margin:0 0 8px; color:#5c747a; font-size:16px; line-height:1.75; }
.never-ending__media { display:grid; grid-template-columns:1.15fr .8fr .62fr; gap:12px; max-width:1420px; margin:0 auto; }
.never-ending__media figure { position:relative; min-width:0; height:620px; margin:0; overflow:hidden; border-radius:28px; background:var(--ink-deep); box-shadow:0 24px 60px rgba(27,57,76,.16); }
.never-ending__media img,.never-ending__media video { width:100%; height:100%; object-fit:cover; }
.never-ending__video video { background:#102c36; }
.never-ending__photo--tall img { object-position:center 35%; }
.never-ending__media figcaption { position:absolute; right:16px; bottom:16px; left:16px; display:flex; align-items:center; gap:10px; width:fit-content; max-width:calc(100% - 32px); padding:11px 14px; border:1px solid rgba(255,255,255,.52); border-radius:999px; background:rgba(9,39,49,.66); color:#fff; font-size:9px; font-weight:800; letter-spacing:.1em; line-height:1.4; text-transform:uppercase; backdrop-filter:blur(10px); }
.never-ending__video figcaption span { display:grid; width:28px; height:28px; flex:0 0 28px; place-items:center; border-radius:50%; background:var(--sun); color:var(--ink-deep); font-size:9px; }
.never-ending__highlights { display:grid; grid-template-columns:1fr 1fr; gap:14px; max-width:1120px; margin:34px auto 0; }
.never-ending__highlights article { display:flex; min-height:150px; align-items:center; gap:22px; padding:28px; border-radius:26px; box-shadow:0 16px 42px rgba(27,57,76,.1); }
.never-ending__highlights article:first-child { background:linear-gradient(135deg,#dff9ff,#fff); }
.never-ending__highlights article:last-child { background:linear-gradient(135deg,#fff0bd,#fff); }
.never-ending__highlights i { display:grid; width:62px; height:62px; flex:0 0 62px; place-items:center; border-radius:20px; background:linear-gradient(145deg,var(--blue),var(--royal)); color:#fff; font-family:var(--font-heading); font-size:25px; font-style:normal; transform:rotate(-4deg); }
.never-ending__highlights article:last-child i { background:linear-gradient(145deg,var(--coral),var(--orange)); transform:rotate(4deg); }
.never-ending__highlights strong { font-family:var(--font-heading); font-size:25px; font-weight:600; }
.never-ending__highlights p { margin:7px 0 0; color:#63777c; font-size:13px; line-height:1.6; }

.standard { background:radial-gradient(circle at 90% 12%,rgba(116,189,47,.13),transparent 23%),var(--paper); }
.standard .section-heading h2 em { color:var(--blue); }
.standard__top { display:grid; grid-template-columns:1.6fr .6fr; align-items:end; gap:60px; }
.standard__top>p { margin:0 0 10px; color:#657b80; font-size:16px; line-height:1.75; }
.standard__visuals { position:relative; display:grid; grid-template-columns:1.55fr .72fr .72fr; gap:15px; margin-top:75px; }
.standard__visuals figure { margin:0; overflow:hidden; border-radius:24px; }
.standard__visuals img { height:530px; object-fit:cover; transition:transform .7s ease; }
.standard__visuals figure:hover img { transform:scale(1.025); }
.standard__large img { object-position:center; }
.standard__badge { position:absolute; top:-34px; left:calc(56% - 40px); display:grid; width:94px; height:94px; place-items:center; border-radius:50%; background:linear-gradient(145deg,var(--sun),var(--orange)); box-shadow:0 15px 35px rgba(255,141,24,.3); color:var(--ink-deep); transform:rotate(-6deg); }
.standard__badge strong { align-self:end; font-family:var(--font-heading); font-size:28px; font-weight:400; }
.standard__badge span { align-self:start; font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.amenities { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:58px; }
.amenity { min-height:160px; padding:28px; border:1px solid rgba(21,58,70,.08); border-radius:22px; transition:transform .25s ease,box-shadow .25s ease; }
.amenity:hover { transform:translateY(-4px); box-shadow:0 18px 38px rgba(21,58,70,.1); }
.amenity:nth-child(1) { background:#fff0e7; }.amenity:nth-child(2) { background:#e8f8ff; }.amenity:nth-child(3) { background:#f1f9de; }.amenity:nth-child(4) { background:#f4eafb; }.amenity:nth-child(5) { background:#fff6cc; }.amenity:nth-child(6) { background:#ffeaf1; }
.amenity>span { display:grid; width:31px; height:31px; place-items:center; border-radius:10px; background:var(--sea); color:#fff; font-size:9px; font-weight:800; letter-spacing:.08em; }
.amenity:nth-child(1)>span { background:var(--coral); }.amenity:nth-child(2)>span { background:var(--blue); }.amenity:nth-child(3)>span { background:var(--lime); }.amenity:nth-child(4)>span { background:var(--purple); }.amenity:nth-child(5)>span { background:var(--orange); }.amenity:nth-child(6)>span { background:var(--pink); }
.amenity strong { display:block; margin-top:25px; font-family:var(--font-heading); font-size:25px; font-weight:400; }
.amenity p { margin:7px 0 0; color:#738487; font-size:12px; }
.standard__extra { display:grid; grid-template-columns:260px 1fr; gap:35px; margin-top:30px; padding:24px 28px; border-radius:22px; background:linear-gradient(105deg,#e8f8ff,#fff6cc 52%,#ffeaf1); color:#4d666b; font-size:12px; line-height:1.7; }
.standard__extra span { font-weight:800; text-transform:uppercase; letter-spacing:.07em; }
.standard__extra p { margin:0; }

.pricing { background:linear-gradient(145deg,#0b2932,#143a54 55%,#252c6e); color:#fff; }
.pricing__intro { display:grid; grid-template-columns:1.45fr .55fr; align-items:end; gap:70px; }
.pricing .section-kicker { color:#96e5e5; }
.pricing .section-heading h2 em { color:#96e5e5; }
.pricing__intro>div:last-child>p { margin:24px 0 8px; color:#9eb4b9; font-size:14px; line-height:1.75; }
.pricing__promo { display:inline-flex; padding:10px 14px; border-radius:999px; background:linear-gradient(115deg,#d9f26a,var(--lime)); color:var(--ink-deep); font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; transform:rotate(-2deg); }
.pricing__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:70px; }
.pricing-card { position:relative; display:flex; min-height:510px; flex-direction:column; padding:34px; border:1px solid rgba(255,255,255,.22); border-radius:26px; background:#10333d; overflow:hidden; }
.pricing-card:nth-child(1) { background:linear-gradient(155deg,#126b7b,#0c3944); }.pricing-card:nth-child(3) { background:linear-gradient(155deg,#59308f,#2c315f); }
.pricing-card--featured { border-color:#ffd95d; background:linear-gradient(145deg,var(--coral),#c83465 58%,var(--purple)); box-shadow:0 25px 55px rgba(0,0,0,.22); transform:translateY(-15px); }
.pricing-card--featured::before { content:'Najpopularniejszy termin'; position:absolute; top:25px; right:-45px; width:180px; padding:7px 0; background:var(--sun); color:var(--ink-deep); font-size:7px; font-weight:900; letter-spacing:.1em; text-align:center; text-transform:uppercase; transform:rotate(45deg); }
.pricing-card__top { display:flex; align-items:center; justify-content:space-between; color:#8ea8ad; }
.pricing-card__top>span { font-size:9px; font-weight:800; letter-spacing:.15em; }
.pricing-card__top>p { margin:0; font-size:9px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.pricing-card h3 { display:flex; align-items:flex-end; gap:9px; margin:45px 0 34px; font-family:var(--font-heading); font-size:clamp(32px,3vw,47px); font-weight:400; letter-spacing:-.03em; }
.pricing-card h3 small { padding-bottom:7px; color:#8ea8ad; font-family:var(--font-body); font-size:9px; font-weight:800; letter-spacing:.14em; }
.pricing-card__rows { border-top:1px solid rgba(255,255,255,.17); }
.pricing-card__rows>div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 0; border-bottom:1px solid rgba(255,255,255,.17); }
.pricing-card__rows>div>span { color:#a2b7bb; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.pricing-card__rows p { display:grid; grid-template-columns:auto auto; align-items:baseline; gap:8px; margin:0; text-align:right; }
.pricing-card__rows del { color:#78959b; font-size:10px; }
.pricing-card__rows strong { font-family:var(--font-heading); font-size:31px; font-weight:400; }
.pricing-card__rows small { grid-column:1/-1; color:#78959b; font-size:7px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.pricing-card>a { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:30px; color:#96e5e5; font-size:9px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
.pricing-card>a span { font-size:18px; }
.pricing__terms { display:grid; grid-template-columns:repeat(4,1fr); margin-top:42px; border-top:1px solid rgba(255,255,255,.17); border-left:1px solid rgba(255,255,255,.17); }
.pricing__terms>div { min-height:120px; padding:23px; border-right:1px solid rgba(255,255,255,.17); border-bottom:1px solid rgba(255,255,255,.17); }
.pricing__terms span { color:#96e5e5; font-size:8px; font-weight:800; letter-spacing:.14em; }
.pricing__terms p { margin:18px 0 0; color:#91a9ae; font-size:11px; line-height:1.6; }
.pricing__terms strong { color:#fff; font-weight:700; }
.pricing__note { max-width:960px; margin:22px 0 0; color:#718f95; font-size:9px; line-height:1.65; }

.pool-feature { position:relative; height:min(78vw,880px); min-height:590px; overflow:hidden; }
.pool-feature>img { width:100%; height:100%; object-fit:cover; }
.pool-feature::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(34,25,91,.78),rgba(15,130,149,.22) 68%,transparent); }
.pool-feature__card { position:absolute; z-index:1; top:50%; left:clamp(24px,8vw,134px); max-width:560px; transform:translateY(-50%); color:#fff; }
.pool-feature__card>span { font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.pool-feature h2 { margin:22px 0; font-family:var(--font-heading); font-size:clamp(50px,5.5vw,88px); font-weight:400; line-height:.96; letter-spacing:-.045em; }
.pool-feature p { max-width:470px; margin:0; font-size:17px; line-height:1.7; color:rgba(255,255,255,.85); }
.pool-feature__security { display:flex; flex-wrap:wrap; gap:9px; margin-top:28px; }
.pool-feature__security span { padding:10px 13px; border:1px solid rgba(255,255,255,.5); border-radius:999px; background:rgba(255,255,255,.13); font-size:9px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; backdrop-filter:blur(8px); }
.pool-feature__security span:nth-child(1) { border-color:#ffe165; }.pool-feature__security span:nth-child(2) { border-color:#80e8ff; }.pool-feature__security span:nth-child(3) { border-color:#ff9fc2; }

.nearby { background:radial-gradient(circle at 10% 15%,rgba(178,29,107,.1),transparent 22%),var(--sand); }
.nearby .section-heading h2 em { color:var(--purple); }
.nearby__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:70px; }
.nearby article { overflow:hidden; border-radius:26px; background:#fff; box-shadow:0 18px 45px rgba(21,58,70,.1); }
.nearby article:nth-child(1) { border-top:7px solid var(--coral); }.nearby article:nth-child(2) { border-top:7px solid var(--blue); }.nearby article:nth-child(3) { border-top:7px solid var(--lime); }
.nearby article img { aspect-ratio:4/3; object-fit:cover; }
.nearby article>div { position:relative; padding:32px; }
.nearby article>div>span { position:absolute; top:-21px; right:25px; display:grid; width:43px; height:43px; place-items:center; border-radius:50%; background:var(--sun); box-shadow:0 9px 22px rgba(21,58,70,.16); font-size:10px; font-weight:800; }
.nearby article:nth-child(1)>div>span { background:var(--coral); color:#fff; }.nearby article:nth-child(2)>div>span { background:var(--blue); color:#fff; }.nearby article:nth-child(3)>div>span { background:var(--lime); }
.nearby h3 { margin:0; font-family:var(--font-heading); font-size:30px; font-weight:400; }
.nearby article p { margin:13px 0 0; color:#6b8084; font-size:13px; line-height:1.65; }
.distances { display:grid; grid-template-columns:repeat(4,1fr); margin-top:30px; border:1px solid #cfd9d7; }
.distances span { padding:26px; border-right:1px solid #cfd9d7; color:#61777c; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.distances span:nth-child(1) { background:#fff0e7; }.distances span:nth-child(2) { background:#e8f8ff; }.distances span:nth-child(3) { background:#f1f9de; }.distances span:nth-child(4) { background:#f4eafb; }
.distances span:last-child { border:0; }
.distances b { display:block; margin-bottom:7px; color:var(--ink); font-family:var(--font-heading); font-size:22px; font-weight:400; letter-spacing:0; text-transform:none; }

.gallery-section { padding:clamp(90px,10vw,150px) clamp(14px,3vw,50px); background:linear-gradient(145deg,var(--ink-deep),#24336f 58%,#6b205f); color:#fff; }
.gallery-section__head { display:grid; grid-template-columns:1fr .4fr; align-items:end; gap:50px; max-width:1300px; margin:0 auto 70px; }
.gallery-section h2 em { color:#ffe165; }
.gallery-section__head>p { margin:0 0 10px; color:#9bb2b7; font-size:15px; line-height:1.7; }
.gallery-grid { display:grid; grid-auto-flow:dense; grid-auto-rows:250px; grid-template-columns:repeat(4,1fr); gap:10px; }
.gallery-grid figure { position:relative; margin:0; overflow:hidden; border-radius:14px; background:#173a43; }
.gallery-grid figure.wide { grid-column:span 2; }
.gallery-grid figure.tall { grid-row:span 2; }
.gallery-grid figure>button { position:relative; display:block; width:100%; height:100%; padding:0; border:0; background:transparent; color:inherit; cursor:zoom-in; }
.gallery-grid img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.16,.72,.22,1),filter .5s ease; }
.gallery-grid figure:hover img,.gallery-grid figure:focus-within img { transform:scale(1.11); filter:saturate(1.1) contrast(1.03); }
.gallery-grid__caption { position:absolute; inset:0; display:flex; justify-content:space-between; padding:16px; color:#fff; font-size:9px; font-weight:800; opacity:0; background:linear-gradient(180deg,rgba(5,33,40,.25),transparent 45%,rgba(5,33,40,.35)); transition:opacity .3s ease; }
.gallery-grid figure:hover .gallery-grid__caption,.gallery-grid figure:focus-within .gallery-grid__caption { opacity:1; }
.gallery-grid__caption i { display:grid; width:32px; height:32px; place-items:center; border:1px solid rgba(255,255,255,.7); border-radius:50%; font-style:normal; font-size:15px; }
.gallery-lightbox { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; padding:34px 90px; background:rgba(4,18,25,.94); color:#fff; backdrop-filter:blur(18px); animation:lightboxIn .22s ease both; }
.gallery-lightbox__stage { display:flex; max-width:min(1400px,86vw); height:min(86vh,980px); flex-direction:column; align-items:center; justify-content:center; }
.gallery-lightbox__stage>img { width:auto; max-width:100%; height:auto; max-height:calc(100% - 72px); border-radius:18px; object-fit:contain; box-shadow:0 32px 90px rgba(0,0,0,.5); user-select:none; }
.gallery-lightbox__caption { display:flex; width:100%; max-width:1050px; align-items:center; justify-content:space-between; gap:25px; margin-top:17px; }
.gallery-lightbox__caption span { color:#84dbe5; font-size:9px; font-weight:900; letter-spacing:.15em; }
.gallery-lightbox__caption p { margin:0; color:rgba(255,255,255,.84); font-family:var(--font-heading); font-size:15px; text-align:right; }
.gallery-lightbox__close,.gallery-lightbox__nav { position:absolute; display:grid; place-items:center; border:1px solid rgba(255,255,255,.38); border-radius:50%; background:rgba(255,255,255,.08); color:#fff; cursor:pointer; backdrop-filter:blur(10px); transition:background .2s ease,transform .2s ease; }
.gallery-lightbox__close:hover,.gallery-lightbox__nav:hover { background:#fff; color:var(--ink-deep); transform:scale(1.05); }
.gallery-lightbox__close { top:24px; right:24px; width:52px; height:52px; font-size:31px; line-height:1; }
.gallery-lightbox__nav { top:50%; width:54px; height:54px; font-size:21px; transform:translateY(-50%); }
.gallery-lightbox__nav:hover { transform:translateY(-50%) scale(1.05); }
.gallery-lightbox__nav--prev { left:22px; }
.gallery-lightbox__nav--next { right:22px; }

.reviews { display:grid; grid-template-columns:.36fr 1fr; gap:clamp(50px,8vw,130px); background:radial-gradient(circle at 88% 18%,rgba(24,168,223,.15),transparent 25%),radial-gradient(circle at 5% 90%,rgba(255,181,46,.18),transparent 23%),var(--paper); }
.reviews h2 em { color:var(--coral); }
.reviews__score { align-self:start; padding:38px; border:0; border-radius:30px; background:linear-gradient(145deg,var(--sun),var(--orange)); box-shadow:0 22px 50px rgba(255,141,24,.22); text-align:center; }
.reviews__score>span { font-size:9px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.reviews__score strong { display:block; margin:25px 0 5px; font-family:var(--font-heading); font-size:82px; font-weight:400; line-height:1; color:var(--ink-deep); }
.reviews__score strong small { font-size:25px; }
.reviews__score p { margin:0; color:#718487; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.reviews__score>a { display:inline-block; margin-top:25px; border-bottom:1px solid currentColor; padding-bottom:4px; color:var(--ink-deep); font-size:9px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.reviews__score>small { display:block; margin-top:10px; color:#8b9b9d; font-size:8px; letter-spacing:.06em; text-transform:uppercase; }
.review-carousel { margin-top:60px; }
.review-carousel__track { display:flex; gap:12px; overflow:hidden; scroll-behavior:smooth; scroll-snap-type:x mandatory; scrollbar-width:none; }
.review-carousel__track::-webkit-scrollbar { display:none; }
.review-carousel blockquote { display:flex; min-width:calc((100% - 24px) / 3); min-height:330px; flex:0 0 calc((100% - 24px) / 3); flex-direction:column; justify-content:space-between; margin:0; padding:28px; border:1px solid rgba(21,58,70,.08); border-radius:24px; background:#fff; scroll-snap-align:start; }
.review-carousel blockquote:nth-child(3n+1) { background:#fff0e7; }.review-carousel blockquote:nth-child(3n+2) { background:#e8f8ff; }.review-carousel blockquote:nth-child(3n) { background:#f4eafb; }
.review-carousel blockquote>div { color:var(--sun); font-size:11px; letter-spacing:.2em; }
.review-carousel blockquote>p { margin:30px 0; font-family:var(--font-heading); font-size:18px; line-height:1.55; }
.review-carousel footer { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.review-carousel footer span { display:block; margin-top:6px; color:#859497; font-size:8px; line-height:1.45; }
.review-carousel__controls { display:flex; align-items:center; justify-content:flex-end; gap:15px; margin-top:18px; }
.review-carousel__controls button { display:grid; width:42px; height:42px; place-items:center; border:1px solid #bfcfcd; border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; transition:.2s ease; }
.review-carousel__controls button:hover { border-color:var(--sea); background:var(--sea); color:#fff; }
.review-carousel__controls span { min-width:58px; color:#8b9b9d; font-size:9px; letter-spacing:.12em; text-align:center; }
.review-carousel__controls b { color:var(--ink); font-weight:800; }

.booking { display:grid; grid-template-columns:1.08fr .92fr; background:var(--sea); }
.booking__visual { position:relative; min-height:780px; }
.booking__visual>img { width:100%; height:100%; object-fit:cover; }
.booking__visual::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 42%,rgba(5,33,40,.76)); }
.booking__visual>div { position:absolute; z-index:1; right:9%; bottom:9%; left:9%; color:#fff; }
.booking__visual>div>span { font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
.booking h2 { margin-top:18px; font-size:clamp(54px,6.2vw,94px); }
.booking h2 em { color:#bff0eb; }
.booking__panel { display:flex; flex-direction:column; justify-content:center; padding:70px clamp(30px,7vw,110px); background:linear-gradient(145deg,var(--royal),var(--purple) 58%,var(--pink)); color:#fff; }
.booking__panel h3 { margin:0; font-family:var(--font-heading); font-size:40px; font-weight:400; }
.booking__panel>p:not(.section-kicker) { max-width:510px; margin:15px 0 35px; color:#9db1b6; font-size:14px; line-height:1.7; }
.booking__panel>p a { color:#fff; border-bottom:1px solid rgba(255,255,255,.4); }
.booking-form { display:grid; grid-template-columns:1fr 1fr; gap:17px 15px; }
.booking-form label { display:flex; flex-direction:column; gap:8px; }
.booking-form label>span { color:#a7bbbf; font-size:9px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.booking-form label small { font-size:7px; opacity:.6; }
.booking-form input,.booking-form select,.booking-form textarea { width:100%; min-height:50px; border:2px solid transparent; border-radius:14px; outline:0; background:rgba(255,255,255,.94); color:var(--ink-deep); padding:14px 15px; font-size:14px; transition:border .2s,background .2s,box-shadow .2s; color-scheme:light; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-color:#ffe165; background:#fff; box-shadow:0 0 0 4px rgba(255,225,101,.18); }
.booking-form textarea { resize:vertical; }
.booking-form__message { grid-column:1/-1; }
.booking-form__submit { grid-column:1/-1; justify-self:start; margin-top:6px; }
.booking-form__submit:disabled { cursor:wait; opacity:.72; transform:none; }
.booking-form__note { grid-column:1/-1; margin:0; color:#6f8b91; font-size:9px; line-height:1.5; }
.booking-form__website { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.booking-form__error { grid-column:1/-1; margin:0; padding:13px 15px; border:1px solid rgba(255,255,255,.4); border-radius:14px; background:rgba(124,11,45,.3); color:#fff; font-size:12px; line-height:1.55; }
.booking-form__error a { font-weight:800; text-decoration:underline; }
.booking-form__success { display:flex; min-height:390px; flex-direction:column; align-items:flex-start; justify-content:center; padding:38px; border:1px solid rgba(255,255,255,.28); border-radius:28px; background:rgba(255,255,255,.12); box-shadow:0 24px 60px rgba(24,11,70,.2); color:#fff; backdrop-filter:blur(14px); }
.booking-form__success>span { display:grid; width:68px; height:68px; place-items:center; border-radius:22px; background:linear-gradient(145deg,#d9f26a,var(--lime)); box-shadow:0 15px 35px rgba(68,119,26,.28); color:var(--ink-deep); font-size:34px; font-weight:800; transform:rotate(-4deg); }
.booking-form__success h4 { max-width:480px; margin:30px 0 10px; font-family:var(--font-heading); font-size:clamp(34px,4vw,50px); font-weight:400; line-height:1.08; }
.booking-form__success p { margin:0; color:rgba(255,255,255,.82); font-size:17px; line-height:1.6; }
.booking-form__success button { margin-top:30px; padding:12px 0 6px; border:0; border-bottom:1px solid rgba(255,255,255,.6); background:transparent; color:#fff; font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; cursor:pointer; }

.location { display:grid; grid-template-columns:.82fr 1.18fr; min-height:700px; background:linear-gradient(145deg,#fff2d3,#f3eafc 55%,#e7f8ff); }
.location__card { display:flex; flex-direction:column; justify-content:center; padding:80px clamp(24px,8vw,130px); }
.location h2 { font-size:clamp(48px,5.4vw,82px); }
.location address { margin-top:38px; color:#60767a; font-family:var(--font-heading); font-size:22px; font-style:normal; line-height:1.5; }
.location__links { display:flex; flex-direction:column; align-items:flex-start; gap:11px; margin-top:30px; }
.location__links a { border-bottom:1px solid #aebfbd; padding-bottom:4px; font-size:11px; font-weight:800; letter-spacing:.07em; }
.location__image img { width:100%; height:100%; object-fit:cover; }

.footer { padding:65px clamp(24px,6vw,100px) 25px; border-top:9px solid transparent; border-image:linear-gradient(90deg,var(--red),var(--orange),var(--lime),var(--blue),var(--purple),var(--pink)) 1; background:linear-gradient(145deg,#071f26,#132c55 64%,#4f1f55); color:#fff; }
.mobile-booking-cta { display:none; }
.footer__brand { display:flex; align-items:center; gap:18px; }
.footer__brand img { width:156px; height:108px; object-fit:contain; object-position:center; }
.footer__brand>div { display:flex; flex-direction:column; }
.footer__brand strong { font-family:var(--font-heading); font-size:18px; font-weight:400; }
.footer__brand span { margin-top:5px; color:#79949a; font-size:9px; text-transform:uppercase; letter-spacing:.12em; }
.footer__nav { display:grid; grid-template-columns:1fr 1fr; width:46%; margin:65px 0 65px auto; }
.footer__nav>div { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.footer__nav span,.footer__cta>span { margin-bottom:7px; color:#6e8b91; font-size:9px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; }
.footer__nav a { font-size:12px; }
.footer__cta { display:flex; align-items:center; justify-content:space-between; padding:28px 0; border-top:1px solid rgba(255,255,255,.16); }
.footer__cta a { display:flex; align-items:center; gap:50px; font-family:var(--font-heading); font-size:clamp(35px,4.5vw,68px); }
.footer__cta b { display:grid; width:58px; height:58px; place-items:center; border:1px solid rgba(255,255,255,.3); border-radius:50%; font-family:var(--font-body); font-size:20px; font-weight:400; }
.footer__bottom { display:flex; justify-content:space-between; padding-top:24px; border-top:1px solid rgba(255,255,255,.16); color:#6f8a90; font-size:8px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; }

@keyframes heroFilm { 0%{opacity:0;transform:scale(1.075) translate3d(0,0,0)} 4%{opacity:1} 32%{opacity:1} 38%{opacity:0;transform:scale(1.015) translate3d(-.7%,.35%,0)} 100%{opacity:0;transform:scale(1.015) translate3d(-.7%,.35%,0)} }
@keyframes lightboxIn { from{opacity:0} to{opacity:1} }
@media(max-width:1000px){
  .site-header{grid-template-columns:1fr auto}.site-nav{display:none}.header-cta{margin-right:60px}.mobile-menu{position:absolute;right:24px;display:block}.mobile-menu summary{display:flex;width:40px;height:40px;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(255,255,255,.55);border-radius:50%;cursor:pointer;list-style:none}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary span{width:15px;height:1px;background:#fff}.mobile-menu nav{position:absolute;top:52px;right:0;display:flex;min-width:220px;flex-direction:column;padding:18px;background:var(--ink-deep);box-shadow:0 20px 50px rgba(0,0,0,.25)}.mobile-menu nav a{padding:12px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.hero__content{padding-top:120px}.booking-strip{grid-template-columns:1fr auto}.booking-strip__benefits{display:none}.story__grid{grid-template-columns:.75fr 1.25fr}.story__side-photo{display:none}.experience{grid-template-columns:1fr}.experience__image{min-height:580px}.never-ending__intro{grid-template-columns:1fr}.never-ending__intro .section-kicker{grid-column:auto}.never-ending__intro>p:last-child{max-width:650px}.never-ending__media{grid-template-columns:1.2fr .8fr}.never-ending__media figure{height:520px}.never-ending__photo--wide{grid-column:1/-1}.standard__top{grid-template-columns:1fr}.standard__top>p{max-width:550px}.standard__visuals{grid-template-columns:1.4fr 1fr}.standard__visuals figure:last-of-type{display:none}.amenities{grid-template-columns:repeat(2,1fr)}.pricing__intro{grid-template-columns:1fr}.pricing__intro>div:last-child{max-width:600px}.pricing__grid{grid-template-columns:1fr 1fr}.pricing-card:last-child{grid-column:1/-1;min-height:440px}.pricing__terms{grid-template-columns:repeat(2,1fr)}.nearby__grid{grid-template-columns:1fr 1fr}.nearby article:last-child{grid-column:1/-1}.distances{grid-template-columns:repeat(2,1fr)}.distances span:nth-child(2){border-right:0}.distances span:nth-child(-n+2){border-bottom:1px solid #cfd9d7}.gallery-grid{grid-template-columns:repeat(3,1fr)}.reviews{grid-template-columns:1fr}.reviews__score{max-width:300px}.review-carousel blockquote{min-width:50%;flex-basis:50%}.booking{grid-template-columns:1fr}.booking__visual{min-height:650px}.location{grid-template-columns:1fr}.location__image{height:650px}.footer__nav{width:70%}
}
@media(max-width:680px){
  .site-header{padding:10px 20px}.wordmark__logo{width:92px;height:64px}.wordmark__place{display:none}.header-cta{display:none}.hero__veil{background:linear-gradient(90deg,rgba(8,39,47,.82),rgba(8,39,47,.28)),linear-gradient(180deg,rgba(5,33,40,.46),transparent 50%,rgba(5,33,40,.77))}.hero__content{margin-left:24px;padding-top:105px;padding-bottom:220px}.hero h1{font-size:clamp(52px,17vw,77px)}.hero__lead{max-width:92%;font-size:15px}.hero__actions{align-items:flex-start;flex-direction:column}.hero__meta{right:20px;bottom:22px;left:20px;justify-content:space-between}.hero__meta div{min-width:0;padding-right:8px}.hero__meta strong{font-size:23px}.hero__meta span{max-width:95px;font-size:7px}.scroll-cue{display:none}.booking-strip{grid-template-columns:1fr;gap:18px;width:calc(100% - 30px);padding:22px}.booking-strip>a{justify-content:space-between}.section{padding:90px 22px}.section-heading h2,.standard h2,.nearby h2,.gallery-section h2,.reviews h2,.booking h2,.location h2{font-size:clamp(46px,14vw,68px)}.story__grid{grid-template-columns:1fr;margin-top:45px}.story__copy{padding:0}.story__main-photo{margin-top:20px!important}.experience__image{min-height:440px}.experience__content{padding:70px 23px}.experience__stats{gap:24px;flex-direction:column}.never-ending{padding:80px 20px}.never-ending__intro{gap:20px;margin-bottom:42px}.never-ending__intro h2{font-size:clamp(46px,13.5vw,66px)}.never-ending__intro>p:last-child{font-size:15px}.never-ending__media{grid-template-columns:1fr}.never-ending__media figure{height:auto;min-height:0;aspect-ratio:4/5;border-radius:22px}.never-ending__photo--wide{grid-column:auto;aspect-ratio:16/10}.never-ending__video{aspect-ratio:9/14!important}.never-ending__highlights{grid-template-columns:1fr}.never-ending__highlights article{min-height:0;padding:23px}.never-ending__highlights i{width:54px;height:54px;flex-basis:54px}.never-ending__highlights strong{font-size:22px}.standard__visuals{grid-template-columns:1fr 1fr;margin-top:48px}.standard__visuals img{height:350px}.standard__large{grid-column:1/-1}.standard__badge{top:335px;left:calc(50% - 47px)}.amenities{grid-template-columns:1fr}.standard__extra{grid-template-columns:1fr}.pricing__grid{grid-template-columns:1fr;margin-top:55px}.pricing-card,.pricing-card:last-child{grid-column:auto;min-height:490px}.pricing-card--featured{transform:none}.pricing__terms{grid-template-columns:1fr}.pool-feature{min-height:660px}.pool-feature::after{background:linear-gradient(90deg,rgba(5,33,40,.75),rgba(5,33,40,.18))}.pool-feature__card{left:23px;right:23px}.pool-feature h2{font-size:50px}.nearby__grid{grid-template-columns:1fr}.nearby article:last-child{grid-column:auto}.distances{grid-template-columns:1fr}.distances span{border-right:0;border-bottom:1px solid #cfd9d7!important}.distances span:last-child{border-bottom:0!important}.gallery-section{padding:80px 10px}.gallery-section__head{grid-template-columns:1fr;padding:0 13px;margin-bottom:50px}.gallery-grid{grid-auto-rows:210px;grid-template-columns:1fr 1fr}.gallery-grid figure.wide{grid-column:span 2}.gallery-grid figure.tall{grid-row:span 2}.gallery-lightbox{padding:72px 12px 96px}.gallery-lightbox__stage{max-width:100%;height:calc(100svh - 170px)}.gallery-lightbox__stage>img{max-height:calc(100% - 65px);border-radius:12px}.gallery-lightbox__close{top:14px;right:14px;width:48px;height:48px}.gallery-lightbox__nav{top:auto;bottom:24px;width:52px;height:52px;transform:none}.gallery-lightbox__nav:hover{transform:scale(1.04)}.gallery-lightbox__nav--prev{left:calc(50% - 62px)}.gallery-lightbox__nav--next{right:calc(50% - 62px)}.gallery-lightbox__caption{gap:12px}.gallery-lightbox__caption p{font-size:12px}.reviews{padding:90px 22px}.reviews__score{width:100%;max-width:none}.review-carousel blockquote{min-width:100%;flex-basis:100%}.booking__visual{min-height:560px}.booking__panel{padding:70px 22px}.booking-form{grid-template-columns:1fr}.booking-form__message,.booking-form__submit,.booking-form__note{grid-column:auto}.location__card{padding:80px 22px}.location__image{height:470px}.footer{padding:55px 22px 22px}.footer__nav{grid-template-columns:1fr;gap:35px;width:100%;margin:50px 0}.footer__cta{align-items:flex-start;flex-direction:column;gap:18px}.footer__cta a{gap:20px;font-size:37px}.footer__cta b{width:45px;height:45px}.footer__bottom{align-items:flex-start;flex-direction:column;gap:11px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero__shot{animation:none;opacity:0}.hero__shot--one{opacity:1;transform:none}*{transition-duration:.01ms!important}}

/* Responsive navigation and touch-first refinements */
.hero__content,.booking-strip>*,.story__grid>*,.standard__top>*,.pricing__intro>*,.reviews>*,.booking>*,.location>* { min-width:0; }

@media(max-width:1000px){
  .mobile-menu { z-index:25; }
  .mobile-menu__toggle { position:relative; z-index:32; display:flex; width:46px; height:46px; flex-direction:column; align-items:center; justify-content:center; gap:7px; border:1px solid rgba(255,255,255,.64); border-radius:50%; background:rgba(7,31,38,.24); color:#fff; cursor:pointer; backdrop-filter:blur(10px); }
  .mobile-menu__toggle span { width:17px; height:2px; border-radius:2px; background:#fff; transition:transform .25s ease; }
  .mobile-menu--open .mobile-menu__toggle span:first-child { transform:translateY(4.5px) rotate(45deg); }
  .mobile-menu--open .mobile-menu__toggle span:last-child { transform:translateY(-4.5px) rotate(-45deg); }
  .mobile-menu__backdrop { position:fixed; z-index:29; inset:0; border:0; background:rgba(5,22,32,.58); opacity:0; pointer-events:none; transition:opacity .25s ease; backdrop-filter:blur(4px); }
  .mobile-menu--open .mobile-menu__backdrop { opacity:1; pointer-events:auto; }
  .mobile-menu nav { position:fixed; z-index:30; top:0; right:0; bottom:0; display:flex; width:min(390px,100vw); min-width:0; flex-direction:column; padding:32px 26px calc(28px + env(safe-area-inset-bottom)); border-radius:30px 0 0 30px; background:linear-gradient(155deg,#15365d,var(--purple) 55%,var(--pink)); box-shadow:-25px 0 70px rgba(5,22,32,.35); overflow-y:auto; transform:translateX(105%); visibility:hidden; transition:transform .32s cubic-bezier(.2,.75,.2,1),visibility .32s; }
  .mobile-menu--open nav { transform:translateX(0); visibility:visible; }
  .mobile-menu nav>div { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; padding-bottom:18px; border-bottom:1px solid rgba(255,255,255,.25); }
  .mobile-menu nav>div>span { color:#ffe165; font-size:10px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; }
  .mobile-menu nav>div>button { display:grid; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.45); border-radius:50%; background:transparent; color:#fff; font-size:27px; line-height:1; cursor:pointer; }
  .mobile-menu nav a { display:grid; min-height:54px; grid-template-columns:32px 1fr auto; align-items:center; padding:8px 4px; border-bottom:1px solid rgba(255,255,255,.14); color:#fff; font-family:var(--font-heading); font-size:17px; font-weight:600; letter-spacing:0; text-transform:none; }
  .mobile-menu nav a i { color:#ffd66b; font-family:var(--font-body); font-size:8px; font-style:normal; letter-spacing:.12em; }
  .mobile-menu nav a b { font-size:16px; font-weight:400; }
  .mobile-menu nav .mobile-menu__reserve { display:flex; min-height:54px; align-items:center; justify-content:center; margin-top:24px; border:0; border-radius:999px; background:linear-gradient(115deg,var(--sun),var(--orange)); color:var(--ink-deep); font-family:var(--font-body); font-size:10px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
}

@media(max-width:680px){
  body { padding-bottom:calc(78px + env(safe-area-inset-bottom)); overflow-x:hidden; }
  .site-header { padding:8px 18px; }
  .wordmark__logo { width:96px; height:66px; }
  .mobile-menu { right:18px; }
  .mobile-menu nav { width:100vw; border-radius:0; }
  .hero { min-height:780px; }
  .hero__shot--one { object-position:58% center; }
  .hero__content { width:auto; margin-right:20px; margin-left:20px; padding-top:70px; padding-bottom:245px; }
  .eyebrow { max-width:310px; margin-bottom:20px; font-size:9px; line-height:1.5; }
  .hero h1 { max-width:520px; font-size:clamp(48px,16vw,72px); line-height:.94; }
  .hero__lead { max-width:520px; margin-top:24px; font-size:15px; line-height:1.55; }
  .hero__actions { width:100%; max-width:340px; }
  .hero__actions .button { width:100%; min-height:54px; }
  .hero__meta { gap:6px; }
  .hero__meta div { flex:1; padding-right:5px; }
  .hero__meta span { line-height:1.35; }
  .color-ribbon { height:8px; }
  .booking-strip { gap:20px; width:calc(100% - 22px); margin:-18px auto 0; padding:24px 18px; border-radius:22px; }
  .booking-strip strong { font-size:25px; line-height:1.15; }
  .booking-strip__benefits { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .booking-strip__benefits>div { min-width:0; gap:9px; padding:7px 0; }
  .booking-strip__benefits i { width:38px; height:38px; flex-basis:38px; }
  .booking-strip__benefits span { font-size:7px; }
  .booking-strip>a { min-height:52px; justify-content:space-between; }
  .section { padding:76px 20px; }
  .section-heading h2,.standard h2,.nearby h2,.gallery-section h2,.reviews h2,.booking h2,.location h2 { font-size:clamp(43px,13.5vw,64px); line-height:1; }
  .story__main-photo img { border-radius:24px 24px 70px 24px; }
  .story__copy .lead { font-size:23px; }
  .experience__image { min-height:380px; }
  .experience__content { padding:62px 20px; }
  .experience h2 { font-size:clamp(42px,13vw,61px); }
  .experience__content>p:not(.section-kicker) { margin-top:25px; font-size:15px; }
  .standard__visuals { gap:10px; }
  .standard__visuals figure:last-of-type { display:block; }
  .standard__visuals figure { border-radius:18px; }
  .standard__extra { padding:22px; }
  .amenity { min-height:145px; padding:24px; }
  .pricing-card,.pricing-card:last-child { min-height:0; padding:27px 24px; border-radius:22px; }
  .pricing-card h3 { flex-wrap:wrap; margin-top:40px; font-size:clamp(31px,10vw,43px); }
  .pricing-card__rows>div { align-items:flex-start; }
  .pricing-card__rows strong { font-size:28px; }
  .pricing__terms>div { min-height:100px; }
  .pool-feature { min-height:630px; }
  .pool-feature__card { top:auto; bottom:54px; transform:none; }
  .pool-feature h2 { font-size:clamp(42px,12.5vw,56px); }
  .pool-feature p { font-size:15px; }
  .nearby__grid { gap:16px; margin-top:48px; }
  .nearby article { border-radius:22px; }
  .distances span { min-height:104px; }
  .gallery-section { padding-top:74px; padding-bottom:74px; }
  .gallery-section__head { gap:24px; }
  .gallery-grid { gap:8px; }
  .gallery-grid figure { border-radius:12px; }
  .gallery-grid__caption { opacity:1; background:linear-gradient(180deg,rgba(5,33,40,.18),transparent 58%,rgba(5,33,40,.45)); }
  .reviews { padding:76px 20px; }
  .reviews__score { padding:32px; border-radius:24px; }
  .review-carousel { margin-top:42px; }
  .review-carousel blockquote { min-width:100%; min-height:310px; flex-basis:100%; padding:25px; }
  .review-carousel__controls button { width:48px; height:48px; }
  .booking__visual { min-height:480px; }
  .booking__panel { padding:64px 20px; }
  .booking__panel h3 { font-size:34px; }
  .booking-form { gap:16px; }
  .booking-form input,.booking-form select,.booking-form textarea { min-height:52px; font-size:16px; }
  .booking-form__submit { width:100%; min-height:54px; }
  .booking-form__success { min-height:350px; padding:28px 24px; border-radius:22px; }
  .booking-form__success h4 { font-size:35px; }
  .booking-form__success p { font-size:15px; }
  .location__card { padding:70px 20px; }
  .location__image { height:390px; }
  .footer { padding:50px 20px calc(24px + env(safe-area-inset-bottom)); }
  .footer__brand { align-items:flex-start; flex-direction:column; }
  .footer__brand img { width:140px; height:auto; }
  .footer__cta a { width:100%; justify-content:space-between; font-size:clamp(30px,9.5vw,40px); }
  .mobile-booking-cta { position:fixed; z-index:45; right:12px; bottom:calc(10px + env(safe-area-inset-bottom)); left:12px; display:flex; min-height:58px; align-items:center; justify-content:space-between; padding:0 21px; border:1px solid rgba(255,255,255,.65); border-radius:999px; background:linear-gradient(105deg,var(--coral),var(--orange) 48%,var(--sun)); box-shadow:0 15px 42px rgba(20,35,55,.3); color:var(--ink-deep); font-size:11px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; }
  .mobile-booking-cta b { display:grid; width:36px; height:36px; place-items:center; border-radius:50%; background:#fff; font-size:18px; }
}

@media(max-width:480px){
  .gallery-grid { grid-auto-rows:255px; grid-template-columns:1fr; }
  .gallery-grid figure.wide { grid-column:span 1; }
  .gallery-grid figure.tall { grid-row:span 1; }
}

@media(max-width:380px){
  .site-header { padding-right:14px; padding-left:14px; }
  .wordmark__logo { width:86px; }
  .mobile-menu { right:14px; }
  .hero__content { margin-right:16px; margin-left:16px; }
  .hero h1 { font-size:46px; }
  .hero__meta { right:14px; left:14px; }
  .hero__meta strong { font-size:21px; }
  .booking-strip { width:calc(100% - 16px); }
  .booking-strip__benefits { grid-template-columns:1fr; }
  .section { padding-right:17px; padding-left:17px; }
  .pricing-card__rows>div { gap:12px; }
  .pricing-card__rows strong { font-size:25px; }
}

@media(hover:none){
  .gallery-grid__caption { opacity:1; }
  .amenity:hover,.button:hover { transform:none; }
}
