
:root{
  --navy:#102638;
  --navy2:#0b1c2a;
  --gold:#c6a36a;
  --cream:#f7f4ee;
  --ink:#1e2931;
  --muted:#6d7479;
  --line:#ded9cf;
  --white:#fff;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",Arial,sans-serif;color:var(--ink);background:#fff}
img{display:block;width:100%;object-fit:cover}
a{text-decoration:none;color:inherit}
.site-header{height:82px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;position:absolute;top:0;left:0;right:0;z-index:10;color:#fff;border-bottom:1px solid rgba(255,255,255,.18)}
.brand{display:flex;flex-direction:column;line-height:1}
.brand-main{font-family:"Playfair Display",serif;font-size:29px;letter-spacing:.15em}
.brand-sub{font-family:"Playfair Display",serif;font-style:italic;color:#e6cfaa;margin:5px 0 0 20px}
.nav{display:flex;align-items:center;gap:25px;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.nav a{opacity:.94}.nav a:hover{opacity:1}
.nav-cta{background:var(--gold);padding:15px 18px}
.menu-toggle{display:none;background:none;border:0;color:white;font-size:25px}
.hero{height:min(780px,88vh);min-height:620px;position:relative;color:#fff}
.hero img{position:absolute;inset:0;height:100%}
.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,17,27,.68),rgba(4,17,27,.18) 58%,rgba(4,17,27,.08))}
.hero-copy{position:absolute;left:6vw;bottom:12%;max-width:750px}
.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:600}
.hero h1{font-family:"Playfair Display",serif;font-weight:500;font-size:clamp(62px,8vw,112px);line-height:.88;margin:18px 0}
.hero h1 em{display:block;font-weight:500;font-size:.47em;color:#e1c28d;margin-left:18px}
.hero-lead{font-family:"Playfair Display",serif;font-size:24px;max-width:580px}
.hero-actions{display:flex;gap:12px;margin-top:32px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:16px 25px;text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:600;border:none;cursor:pointer}
.btn-light{background:#fff;color:var(--navy)}.btn-gold{background:var(--gold);color:#fff}.btn-dark{background:var(--navy);color:#fff}
.stats{display:grid;grid-template-columns:repeat(6,1fr);max-width:1250px;margin:auto;padding:24px 28px;background:#fff;position:relative;margin-top:-1px}
.stats div{text-align:center;border-right:1px solid var(--line)}.stats div:last-child{border:0}
.stats strong{font-family:"Playfair Display";font-size:22px;display:block}.stats span{font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.section{max-width:1240px;margin:auto;padding:90px 5vw}
.intro{display:grid;grid-template-columns:.8fr 1.4fr;gap:70px;align-items:center}
.script{font-family:"Playfair Display";font-style:italic;color:var(--gold);font-size:27px;margin:0 0 6px}
h2{font-family:"Playfair Display";font-size:clamp(38px,4vw,58px);font-weight:500;line-height:1.05;margin:8px 0 25px}
.intro-copy p{line-height:1.8;color:#535d64}.text-link{display:inline-block;margin-top:15px;text-transform:uppercase;font-size:12px;letter-spacing:.12em;font-weight:600}
.photo-grid{display:grid;grid-template-columns:1.3fr .9fr;grid-template-rows:1fr 1fr;gap:10px;height:570px}
.photo-grid img{height:100%}.photo-large{grid-row:1/3}
.amenities{background:var(--cream);max-width:none;padding-left:max(5vw,calc((100vw - 1240px)/2 + 5vw));padding-right:max(5vw,calc((100vw - 1240px)/2 + 5vw))}
.amenities>h2,.amenities>.section-kicker{max-width:1240px;margin-left:auto;margin-right:auto}
.amenity-grid{max-width:1240px;margin:40px auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line)}
.amenity-grid article{background:var(--cream);padding:35px}.amenity-grid span{font-size:30px;color:var(--gold)}
.amenity-grid h3{font-family:"Playfair Display";font-size:22px;margin:14px 0 8px}.amenity-grid p{color:var(--muted);line-height:1.6}
.availability-head{display:flex;gap:40px;justify-content:space-between;align-items:end}.availability-note{max-width:470px;color:var(--muted);line-height:1.6}
.availability-layout{display:grid;grid-template-columns:1.2fr .8fr;box-shadow:0 16px 45px rgba(17,35,47,.1);margin-top:35px}
.calendar-card{padding:35px;background:#fff}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center}
.calendar-toolbar h3{font-family:"Playfair Display";font-size:28px;margin:0}.calendar-toolbar button{border:0;background:none;font-size:24px;cursor:pointer}
.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,1fr)}
.weekdays span{text-align:center;padding:20px 4px 10px;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}
.day{aspect-ratio:1.15;display:flex;align-items:center;justify-content:center;border:1px solid #eee;border-right:0;border-bottom:0;font-size:13px}
.day:nth-child(7n){border-right:1px solid #eee}.day.empty{border-color:transparent}
.day.blocked{background:#e8e8e6;color:#999;text-decoration:line-through}.day.today{outline:2px solid var(--gold);outline-offset:-3px}
.legend{display:flex;gap:22px;font-size:12px;margin-top:20px}.legend i{display:inline-block;width:15px;height:15px;margin-right:7px;vertical-align:-3px;border:1px solid #ddd}.blocked-dot{background:#e8e8e6}
.request-panel{background:var(--navy);color:#fff;padding:55px;display:flex;flex-direction:column;justify-content:center}.request-panel h3{font-family:"Playfair Display";font-size:35px;margin:5px 0 15px}.request-panel p{line-height:1.7;color:#d7dce0}.request-panel .script{color:#e3bf83}.request-panel .btn{align-self:flex-start;margin-top:15px}
.area{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}.area p{line-height:1.8;color:var(--muted)}.area img{height:430px}
.request{max-width:none;background:var(--cream);display:grid;grid-template-columns:.7fr 1.3fr;gap:70px;padding-left:max(5vw,calc((100vw - 1240px)/2 + 5vw));padding-right:max(5vw,calc((100vw - 1240px)/2 + 5vw))}
.request-copy{max-width:430px}.request-copy p{line-height:1.8;color:var(--muted)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label{font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:600}
.form-grid input,.form-grid textarea{display:block;width:100%;margin-top:7px;border:1px solid #d5d0c7;background:white;padding:14px;font:inherit;text-transform:none;letter-spacing:normal}
.full{grid-column:1/-1}.consent{display:flex;gap:9px;font-size:12px;align-items:flex-start;margin:18px 0}.form-message{font-size:13px;color:var(--muted)}
.faq details{border-top:1px solid var(--line);padding:22px 0}.faq details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-family:"Playfair Display";font-size:22px}.faq details p{color:var(--muted);line-height:1.7}
footer{background:var(--navy2);color:#dce3e7;display:flex;justify-content:space-between;gap:25px;align-items:center;padding:45px 5vw;font-size:12px}
.footer-brand{display:flex;flex-direction:column}.footer-brand span{font-family:"Playfair Display";letter-spacing:.14em;font-size:24px}.footer-brand em{font-family:"Playfair Display";color:var(--gold)}
@media(max-width:900px){
 .site-header{position:absolute}.menu-toggle{display:block}.nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--navy2);padding:25px;flex-direction:column}.nav.open{display:flex}
 .hero{min-height:650px}.hero-copy{left:7vw;right:7vw}.hero h1{font-size:58px}
 .stats{grid-template-columns:repeat(3,1fr);gap:22px}.stats div:nth-child(3){border-right:0}
 .intro,.area,.request,.availability-layout{grid-template-columns:1fr}.photo-grid{height:480px}.availability-head{display:block}.amenity-grid{grid-template-columns:1fr 1fr}.request-panel{padding:40px}
 footer{flex-direction:column;text-align:center}
}
@media(max-width:600px){
 .section{padding-top:65px;padding-bottom:65px}.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(odd){border-right:1px solid var(--line)}.stats div:nth-child(even){border-right:0}
 .photo-grid{grid-template-columns:1fr;height:auto}.photo-grid img{height:250px}.photo-large{grid-row:auto}
 .amenity-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}
 .calendar-card{padding:18px}.request-panel{padding:30px}.day{aspect-ratio:1}.area img{height:300px}
}
