:root{--navy:#16243a;--navy2:#1f3252;--gold:#c9a227;--gold2:#a8871f;--cream:#faf7f0;--ink:#232a35;--mut:#5d6675;--line:#e7e0d2}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.65;font-size:16.5px}
h1,h2,h3,.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;color:var(--navy);line-height:1.15}
img{display:block;max-width:100%}
a{color:var(--navy);text-decoration:none}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
/* header */
header{position:sticky;top:0;z-index:50;background:rgba(22,36,58,.96);backdrop-filter:blur(6px)}
.nav{display:flex;align-items:center;justify-content:space-between;height:64px}
.logo{display:inline-flex;align-items:center;color:#f3eee3;line-height:0}
.logo .mark{display:block;width:148px;height:46px;color:inherit}
.nav ul{display:flex;gap:26px;list-style:none;align-items:center}
.nav a{color:#e8e4da;font-size:.86rem;letter-spacing:.06em;text-transform:uppercase}
.nav a:hover{color:var(--gold)}
.nav a.btn{padding:9px 18px}
/* buttons */
.btn{display:inline-block;background:var(--gold);color:var(--navy);font-weight:600;padding:13px 28px;border:none;border-radius:3px;font-size:.9rem;letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--gold2);color:#fff}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.7);color:#fff}
.btn.ghost:hover{background:#fff;color:var(--navy)}
/* hero */
.hero{position:relative;min-height:78vh;display:flex;align-items:center;color:#fff}
.hero .bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(22,36,58,.55),rgba(22,36,58,.75))}
.hero .wrap{position:relative;z-index:2;padding-top:60px;padding-bottom:60px}
.kicker{color:var(--gold);text-transform:uppercase;letter-spacing:.22em;font-size:.8rem;font-weight:600;margin-bottom:14px}
.hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);max-width:16ch;margin-bottom:18px}
.hero p{max-width:52ch;color:#e9e5db;font-size:1.08rem;margin-bottom:30px}
.hero .btn{margin-right:12px;margin-bottom:12px}
/* stat strip */
.stats{background:var(--navy);color:#fff;padding:26px 0}
.stats .wrap{display:flex;flex-wrap:wrap;gap:18px 48px;justify-content:center;text-align:center}
.stats b{display:block;font-family:'Fraunces',serif;font-size:1.5rem;color:var(--gold)}
.stats span{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;color:#c9c4b8}
/* sections */
section{padding:78px 0}
.sec-head{max-width:640px;margin-bottom:44px}
.sec-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);margin:8px 0 14px}
.sec-head p{color:var(--mut)}
/* property cards */
.homes{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:32px}
.card{background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.card img{height:290px;width:100%;object-fit:cover}
.card .pad{padding:28px;display:flex;flex-direction:column;flex:1}
.card .loc{color:var(--gold2);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.card h3{font-size:1.5rem;margin:8px 0 4px}
.card .specs{color:var(--mut);font-size:.92rem;margin-bottom:14px}
.card p{color:var(--ink);font-size:.97rem;margin-bottom:20px}
.card .btn{align-self:flex-start;margin-top:auto}
.badge{display:inline-block;background:var(--navy);color:var(--gold);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;padding:5px 12px;border-radius:2px;margin-bottom:12px;align-self:flex-start}
/* feature list */
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:26px}
.feat div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:26px}
.feat h3{font-size:1.08rem;margin-bottom:8px;padding-top:14px;border-top:3px solid var(--gold);display:inline-block}
.feat p{font-size:.93rem;color:var(--mut)}
/* checklist */
.checks{columns:2;gap:40px;list-style:none;max-width:820px}
.checks li{break-inside:avoid;padding:9px 0 9px 26px;border-bottom:1px solid var(--line);font-size:.95rem;position:relative}
.checks li::before{content:"";position:absolute;left:0;top:16px;width:12px;height:7px;border-left:2.5px solid var(--gold2);border-bottom:2.5px solid var(--gold2);transform:rotate(-45deg)}
/* gallery */
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));grid-auto-rows:210px;gap:12px}
.gallery img{width:100%;height:100%;object-fit:cover;border-radius:4px}
.gallery a:first-child{grid-column:span 2;grid-row:span 2}
/* reviews */
.reviews{background:var(--navy);color:#e9e5db}
.reviews h2{color:#fff}
.reviews .sec-head p{color:#b9b3a6}
.rev-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:28px}
.rev{background:var(--navy2);border-radius:6px;padding:30px;font-size:.97rem}
.rev .starline{color:var(--gold);letter-spacing:.28em;font-size:.8rem;margin-bottom:14px}
.rev footer{margin-top:16px;color:var(--gold);font-size:.86rem;letter-spacing:.06em;text-transform:uppercase}
/* sleeping */
.beds{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;max-width:900px}
.beds div{background:#fff;border:1px solid var(--line);border-radius:6px;padding:22px;text-align:center}
.beds b{font-family:'Fraunces',serif;color:var(--navy);font-size:1.05rem;display:block;margin-bottom:4px}
.beds span{color:var(--mut);font-size:.9rem}
/* form */
.book{background:#fff;border-top:1px solid var(--line)}
form{max-width:720px;display:grid;grid-template-columns:1fr 1fr;gap:18px}
form label{display:block;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--navy);font-weight:600;margin-bottom:6px}
form input,form select,form textarea{width:100%;padding:12px 14px;border:1px solid #cfc8b8;border-radius:3px;background:var(--cream);font:inherit;font-size:.95rem}
form textarea{min-height:110px;resize:vertical}
.full{grid-column:1/-1}
.note{font-size:.85rem;color:var(--mut);margin-top:14px}
/* page hero (property) */
.phero{min-height:62vh}
.specbar{background:var(--navy);color:#e8e4da;padding:18px 0}
.specbar .wrap{display:flex;flex-wrap:wrap;gap:8px 34px;font-size:.92rem;letter-spacing:.04em}
.specbar b{color:var(--gold)}
.prose{max-width:70ch}
.prose p{margin-bottom:18px}
.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}
.side-img{border-radius:6px;overflow:hidden}
.side-img img{width:100%;height:100%;object-fit:cover}
/* direct strip */
.direct{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#e9e5db}
.direct h2{color:#fff}
/* footer */
footer.site{background:#101a2b;color:#a7a294;padding:44px 0;font-size:.88rem}
footer.site .wrap{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
footer.site .logo{color:#e8e4da;margin-bottom:6px}
footer.site .logo .mark{width:122px;height:38px}
footer.site .demo-note{color:#6d6a5f}
@media(max-width:760px){.nav ul{gap:16px}.nav li.hidem{display:none}.logo .mark{width:122px;height:38px}.checks{columns:1}.two-col{grid-template-columns:1fr}.gallery a:first-child{grid-column:span 1;grid-row:span 1}section{padding:56px 0}}
@media(max-width:430px){.nav li:not(:last-child){display:none}}

/* ---------- Calendar + estimate (10/12) ---------- */
.est{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;margin:8px 0 34px;align-items:start}
.est-cal{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px}
.cal-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.cal-nav button{border:1px solid var(--line);background:#fff;border-radius:8px;width:36px;height:36px;font-size:1.3rem;cursor:pointer;color:var(--navy)}
.cal-nav button:disabled{opacity:.35;cursor:default}
.cal-legend{font-size:.8rem;color:var(--mut);display:flex;align-items:center;gap:6px}
.cal-legend i{display:inline-block;width:18px;height:2px;background:#b8bec8}
.cal{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cal-h{font-weight:700;color:var(--navy);text-align:center;margin:4px 0 8px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);text-align:center;padding:4px 0}
.cal-d{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.86rem;border:0;background:transparent;border-radius:8px;cursor:pointer;color:var(--ink);font-family:inherit}
.cal-d:hover:not(:disabled){background:#f1ead8}
.cal-d:disabled{color:#c3c8d0;cursor:not-allowed;text-decoration:line-through}
.cal-d.sel{background:var(--navy);color:#fff;font-weight:700}
.cal-d.inrange{background:rgba(201,162,39,.2);border-radius:0}
.cal-d.empty{visibility:hidden}
.est-clear{margin-top:10px;background:none;border:0;color:var(--gold2);font-weight:600;cursor:pointer;padding:4px 0;font-family:inherit}
.est-side{background:var(--cream);border:1px solid var(--line);border-radius:12px;padding:20px}
.est-side h3{margin:2px 0 10px;color:var(--navy)}
.est-tag{display:inline-block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;background:var(--navy);color:var(--gold);padding:4px 9px;border-radius:20px;font-weight:700}
.est-hint{color:var(--mut);margin:0}
.est-dates{font-weight:600;color:var(--navy);margin:0 0 10px}
.est-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.est-row.tax{color:var(--mut);font-size:.88rem}
.est-row.total{border-bottom:0;font-weight:800;font-size:1.15rem;color:var(--navy);padding-top:10px}
.est-fine{font-size:.8rem;color:var(--mut);margin:10px 0 0}
.est-pet{display:flex;gap:8px;align-items:center;margin:12px 0 0;font-size:.95rem}
.est-next{font-size:.9rem;color:var(--navy);margin:14px 0 0}
@media (max-width:820px){.est{grid-template-columns:1fr}.cal{grid-template-columns:1fr}}

/* 10/19: Guides link */
@media(max-width:900px){.nav li.hidem-lg{display:none}}
footer.site a.foot-link{display:inline-block;margin-top:8px;color:#e8e4da;border-bottom:1px solid rgba(232,228,218,.4)}
footer.site a.foot-link:hover{color:var(--gold)}
.est-pet input[type=number]{width:4.2em;padding:6px 8px;font:inherit;border:1px solid #c9c2b4;border-radius:6px}
.est-pet span{color:#6b665d;font-size:.9rem}

/* video tour (10/27) */
.vtour{padding-top:0;scroll-margin-top:90px}
.vtour-frame{position:relative;display:block;width:100%;max-width:1040px;margin:0 auto;padding:0;border:0;border-radius:6px;overflow:hidden;cursor:pointer;background:var(--navy);aspect-ratio:16/9}
.vtour-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.vtour-frame:hover img{transform:scale(1.02)}
.vtour-play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:var(--gold);color:var(--navy);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 24px rgba(0,0,0,.35)}
.vtour-play svg{margin-left:4px}
.vtour-len{position:absolute;left:14px;bottom:14px;background:rgba(22,36,58,.85);color:#fff;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:6px 10px;border-radius:3px}
.vtour-video{display:block;width:100%;max-width:1040px;margin:0 auto;border-radius:6px;background:#000;aspect-ratio:16/9}
.vtour-note{text-align:center;color:var(--mut);font-size:.9rem;margin:14px 0 0}
@media (max-width:600px){.vtour-play{width:60px;height:60px;margin:-30px 0 0 -30px}}
