:root{--ink:#123431;--ink-2:#0b2825;--sand:#f4efe5;--paper:#fbfaf6;--accent:#d79b52;--water:#9bc2c2;--line:rgba(18,52,49,.17);--serif:"Georgia",serif;--sans:"DM Sans",sans-serif;--display:"Manrope",sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.6}
img{display:block;width:100%}
a{color:inherit;text-decoration:none}
.nav{height:86px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:rgba(251,250,246,.95);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:12px;font:600 .84rem/1.1 var(--display);text-transform:uppercase;letter-spacing:.08em}
.brand-mark{width:40px;height:40px;display:grid;place-items:center;background:var(--ink);color:#fff;border-radius:50%;font-size:.7rem}
.nav nav{display:flex;gap:32px;font-size:.92rem}
.nav nav a{position:relative}
.nav nav a:after{content:"";position:absolute;left:0;bottom:-5px;width:0;height:1px;background:var(--ink);transition:.25s}
.nav nav a:hover:after{width:100%}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:52px;padding:0 25px;border-radius:100px;border:1px solid transparent;font-weight:600;letter-spacing:.01em;cursor:pointer;transition:.25s}
.button-small{min-height:44px;padding:0 20px;background:var(--ink);color:#fff}
.button-light{background:#fff;color:var(--ink)}
.button-light:hover{background:var(--accent);color:#fff}
.button-dark{background:var(--ink);color:#fff}
.button-dark:hover{background:var(--accent)}
.hero{height:calc(100svh - 86px);min-height:650px;position:relative;display:flex;align-items:flex-end;overflow:hidden;color:#fff}
.hero-image{position:absolute;inset:0;height:100%;object-fit:cover;animation:heroZoom 18s ease-in-out infinite alternate}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,28,26,.7) 0%,rgba(5,28,26,.25) 52%,rgba(5,28,26,.05)),linear-gradient(0deg,rgba(5,28,26,.42),transparent 45%)}
@keyframes heroZoom{to{transform:scale(1.055)}
}
.hero-content{position:relative;z-index:2;padding:0 7vw 9vh;max-width:850px}
.eyebrow{text-transform:uppercase;letter-spacing:.19em;font-size:.74rem;font-weight:600;margin:0 0 18px}
.light{color:#fff}
.hero h1,.section h2,.gallery-title h2,.booking h2{font:600 clamp(3.5rem,7.4vw,7.4rem)/.91 var(--display);letter-spacing:-.06em;margin:0}
.hero h1 em,.section h2 em,.gallery-title h2 em,.booking h2 em{font-family:var(--serif);font-weight:400}
.hero-copy{font-size:1.14rem;max-width:580px;margin:27px 0 32px}
.hero-actions{display:flex;gap:28px;align-items:center}
.text-link{font-weight:600}
.text-link span{padding-left:8px}
.hero-proof{position:absolute;right:5vw;bottom:5vh;z-index:2;display:flex;align-items:center;gap:16px;padding:18px 22px;border:1px solid rgba(255,255,255,.4);border-radius:8px;background:rgba(6,37,34,.32);backdrop-filter:blur(10px)}
.hero-proof strong{font:600 2rem var(--display)}
.hero-proof span{font-size:.78rem;line-height:1.4}
.scroll-cue{position:absolute;z-index:2;right:3vw;top:45%;width:46px;height:46px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:grid;place-items:center}
.section{padding:120px 7vw}
.intro{display:grid;grid-template-columns:1.2fr .8fr;gap:8vw;align-items:end}
.intro h2{font-size:clamp(2.8rem,5vw,5rem)}
.intro-copy>p{font-size:1.19rem;margin:0 0 36px}
.mini-facts{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:24px;font-size:.85rem}
.mini-facts span{display:flex;flex-direction:column}
.mini-facts b{font-size:1.15rem}
.properties{padding-top:30px}
.property{display:grid;grid-template-columns:1.18fr .82fr;min-height:720px;background:var(--sand);margin-bottom:70px}
.property-reverse{grid-template-columns:.82fr 1.18fr}
.property-reverse .property-image{order:2}
.property-image{position:relative;overflow:hidden}
.property-image img{height:100%;object-fit:cover;transition:.8s}
.property:hover .property-image img{transform:scale(1.025)}
.property-index{position:absolute;top:24px;left:24px;background:#fff;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-weight:600}
.property-content{padding:68px 7%;align-self:center}
.property-content h3{font:600 clamp(2.6rem,4.5vw,5.2rem)/.95 var(--display);letter-spacing:-.055em;margin:0 0 28px}
.property-content>p{font-size:1.08rem;max-width:560px}
.property-content ul{display:grid;grid-template-columns:1fr 1fr;list-style:none;padding:24px 0;margin:25px 0;border-block:1px solid var(--line);gap:12px}
.property-content li:before{content:"·";color:var(--accent);font-weight:bold;margin-right:8px}
.rating{font-size:.88rem;margin:0 0 27px}
.rating span{letter-spacing:.12em;color:var(--accent)}
.gallery-band{background:var(--ink-2);color:#fff;padding:120px 7vw}
.gallery-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:60px}
.gallery-title h2{font-size:clamp(3rem,6vw,6rem)}
.gallery-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:360px 360px;gap:18px}
.gallery-grid figure{margin:0;position:relative;overflow:hidden}
.gallery-grid .tall{grid-row:1/3}
.gallery-grid img{height:100%;object-fit:cover;transition:.6s}
.gallery-grid figure:hover img{transform:scale(1.03)}
figcaption{position:absolute;left:20px;bottom:18px;background:rgba(5,28,26,.66);backdrop-filter:blur(8px);padding:9px 13px;font-size:.82rem}
.season{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;background:var(--sand)}
.season-statement{position:sticky;top:120px;align-self:start}
.giant{font:600 12rem/.65 var(--display);color:var(--accent)}
.season-statement h2{font-size:3rem;margin-top:35px}
.season-list>div{display:grid;grid-template-columns:50px 1fr;column-gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.season-list span{font-size:.76rem;color:var(--accent)}
.season-list h4{margin:0;font:600 1.65rem var(--display)}
.season-list p{grid-column:2;margin:6px 0 0;max-width:520px}
.reviews{padding:120px 7vw;background:var(--ink);color:#fff;overflow:hidden}
.review-track{display:grid;grid-template-columns:repeat(3,minmax(360px,1fr));gap:24px}
.review-track blockquote{margin:0;padding:42px;border:1px solid rgba(255,255,255,.2);font:400 1.55rem/1.45 var(--serif);min-height:290px;display:flex;flex-direction:column;justify-content:space-between}
.review-track cite{font:500 .78rem var(--sans);letter-spacing:.04em;margin-top:28px;color:#cddbd8}
.booking{display:grid;grid-template-columns:.72fr 1.28fr;gap:6vw;align-items:start}
.booking-heading{position:sticky;top:120px}
.booking-heading h2{font-size:clamp(3rem,5vw,5.8rem)}
.booking-heading>p:not(.eyebrow){font-size:1.08rem;max-width:500px}
.booking-benefits{display:grid;gap:12px;margin-top:30px;font-size:.9rem}
.booking-card{border:1px solid var(--line);background:#fff;box-shadow:0 28px 90px rgba(18,52,49,.09)}
.booking-card-head{display:flex;justify-content:space-between;padding:28px 32px;border-bottom:1px solid var(--line);align-items:center}
.booking-card-head h3{font:600 1.3rem var(--display);margin:3px 0}
.booking-card-head small{text-transform:uppercase;letter-spacing:.13em;font-size:.66rem;color:#5d7471}
.booking-card-head>span{background:var(--sand);padding:7px 12px;border-radius:30px;font-size:.78rem}
.calendar-nav{height:62px;display:flex;align-items:center;justify-content:space-between;padding:0 24px}
.calendar-nav button{width:36px;height:36px;border:0;border-radius:50%;background:var(--sand);font-size:1.5rem;cursor:pointer}
.calendars{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:0 28px 30px}
.month h4{text-align:center;text-transform:capitalize;margin:0 0 12px}
.weekdays,.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.weekdays span{text-align:center;font-size:.68rem;color:#70827f;padding:6px 0}
.day,.empty{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border:0;background:transparent;font:500 .77rem var(--sans);border-radius:50%;cursor:pointer}
.day small{font-size:.53rem;color:#70827f}
.day:hover:not(:disabled),.day.endpoint{background:var(--ink);color:#fff}
.day.endpoint small{color:#d8e5e2}
.day.in-range{background:#e4efed;border-radius:0}
.day:disabled{opacity:.25;cursor:not-allowed}
.date-display{display:grid;grid-template-columns:1fr 1fr .7fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:5px}
.date-display>div,.date-display>label{padding:18px 24px;border-right:1px solid var(--line);display:flex;flex-direction:column}
.date-display small{font-size:.65rem;text-transform:uppercase;letter-spacing:.13em}
.date-display strong{font-size:.88rem}
.date-display input{border:0;background:transparent;font:600 .9rem var(--sans);padding:0;width:100%}
.full{width:calc(100% - 56px);margin:24px 28px}
.quote-result{margin:0 28px 28px;padding:18px;background:var(--sand);font-size:.88rem}
.quote-result .line{display:flex;justify-content:space-between}
.quote-result .total{font-size:1.15rem;border-top:1px solid var(--line);margin-top:9px;padding-top:9px}
.request-form{display:none;padding:0 28px 30px}
.request-form.visible{display:block}
.request-form h4{font:600 1.5rem var(--display);margin-bottom:0}
.request-form>p{margin-top:3px;font-size:.86rem}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form-grid label{display:flex;flex-direction:column;font-size:.75rem;font-weight:600}
.form-grid input,.form-grid textarea{border:1px solid var(--line);padding:12px;background:var(--paper);font:400 .9rem var(--sans);margin-top:5px}
.consent{display:block;font-size:.75rem;margin:16px 0}
.honeypot{position:absolute;left:-9999px}
footer{background:#071f1d;color:#fff;padding:70px 7vw;display:grid;grid-template-columns:1fr 1.5fr .8fr .8fr;gap:50px;font-size:.82rem}
footer>div{display:flex;flex-direction:column;gap:7px}
.footer-brand{font:600 2.3rem/.95 var(--display)}
footer p{margin:0;color:#b9c7c5}
footer a:hover{color:var(--accent)}
@media(max-width:900px){.nav nav{display:none}
.hero{min-height:690px}
.hero-content{padding:0 6vw 14vh}
.hero h1{font-size:clamp(3.5rem,14vw,5.5rem)}
.hero-proof{left:6vw;right:auto;bottom:4vh}
.scroll-cue{display:none}
.intro,.booking{grid-template-columns:1fr}
.intro{gap:50px}
.property,.property-reverse{grid-template-columns:1fr}
.property-image{height:520px;order:0!important}
.gallery-title{display:block}
.season{grid-template-columns:1fr}
.season-statement{position:static}
.booking-heading{position:static}
.review-track{overflow-x:auto}
.review-track blockquote{min-width:78vw}
footer{grid-template-columns:1fr 1fr}
.section,.gallery-band,.reviews{padding:85px 6vw}
}
@media(max-width:620px){.nav{height:72px}
.nav .button-small{padding:0 14px;font-size:.78rem}
.brand span:last-child{display:none}
.hero{height:calc(100svh - 72px)}
.hero-copy{font-size:1rem}
.hero-actions{align-items:flex-start;flex-direction:column;gap:17px}
.hero-proof{padding:12px 16px}
.intro h2{font-size:2.8rem}
.mini-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.property-image{height:360px}
.property-content{padding:44px 24px}
.property-content ul{grid-template-columns:1fr}
.gallery-grid{display:flex;overflow-x:auto}
.gallery-grid figure,.gallery-grid .tall{min-width:82vw;height:480px}
.calendars{grid-template-columns:1fr}
.month:nth-child(2){display:none}
.date-display{grid-template-columns:1fr 1fr}
.date-display>label{grid-column:1/3;border-top:1px solid var(--line)}
.booking-card-head{align-items:flex-start}
.form-grid{grid-template-columns:1fr}
footer{grid-template-columns:1fr}
.giant{font-size:9rem}
}
.contact{background:var(--ink);color:#fff;display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw}
.contact h2{font-size:clamp(3rem,5vw,5.8rem)}
.contact-copy>p:not(.eyebrow){max-width:540px;color:#c7d5d2}
.contact-email{display:inline-flex;gap:18px;align-items:center;margin-top:24px;font:600 1.1rem var(--display);border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:8px}
.contact-email span{color:var(--accent)}
.contact-form{padding:42px;background:#fff;color:var(--ink)}
.contact-form>label{display:flex;flex-direction:column;font-size:.75rem;font-weight:600;margin-top:14px}
.contact-form select,.contact-form input,.contact-form textarea{border:1px solid var(--line);padding:12px;background:var(--paper);font:400 .9rem var(--sans);margin-top:5px;width:100%}
.contact-form .button{margin:22px 0 8px;width:100%;background:var(--ink);color:#fff}
.form-note{font-size:.73rem;color:#637774;margin:0}
@media(max-width:900px){.contact{grid-template-columns:1fr}}
@media(max-width:620px){.contact-form{padding:28px 20px}}
