:root{ --navy:#12284B; --navy2:#1D3E6E; --gold:#B9975B; --ink:#1A2432; --grey:#5A6572; --light:#EEF1F5; --rule:#C9D2DD; }
*{ margin:0; padding:0; box-sizing:border-box; }
body{ font-family:"Segoe UI", Arial, Helvetica, sans-serif; color:var(--ink); line-height:1.55; }
a{ color:var(--navy2); }
.wrap{ max-width:1120px; margin:0 auto; padding:0 20px; }
header{ background:#fff; border-bottom:3px solid var(--gold); position:sticky; top:0; z-index:50; }
.nav{ display:flex; align-items:center; justify-content:space-between; padding:10px 0; gap:16px; flex-wrap:wrap; }
.brand .name{ font-size:21px; font-weight:800; letter-spacing:2px; color:var(--navy); }
.brand .sub{ font-size:11px; letter-spacing:1px; color:var(--grey); text-transform:uppercase; }
nav.links a{ margin:0 9px; text-decoration:none; font-weight:600; color:var(--navy); font-size:14.5px; }
.btn{ display:inline-block; background:var(--navy); color:#fff !important; padding:11px 20px; border-radius:6px; text-decoration:none; font-weight:700; }
.btn.gold{ background:var(--gold); }
.btn.light{ background:#fff; color:var(--navy) !important; }
.hero{ background:var(--navy); color:#fff; }
.hero .wrap{ padding-top:42px; padding-bottom:42px; }
.hero h1{ font-size:37px; line-height:1.16; margin-bottom:13px; max-width:820px; }
.hero h1 .accent{ color:var(--gold); }
.hero p{ font-size:16.5px; color:#D7DEE8; margin-bottom:20px; max-width:840px; }
.hero .ctas a{ margin-right:12px; margin-bottom:10px; }
.kicker{ color:var(--gold); font-weight:800; letter-spacing:2px; font-size:12px; text-transform:uppercase; margin-bottom:6px; }
.trust{ background:var(--light); border-bottom:1px solid var(--rule); }
.trust .wrap{ display:flex; flex-wrap:wrap; gap:10px 30px; padding-top:12px; padding-bottom:12px; font-weight:700; color:var(--navy); font-size:14.5px; justify-content:center; text-align:center; }
section{ padding:48px 0; }
h2{ font-size:27px; color:var(--navy); margin-bottom:6px; }
h3{ color:var(--navy); }
.lede{ color:var(--grey); max-width:780px; margin-bottom:24px; }
.grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); gap:22px; }
.card{ border:1px solid var(--rule); border-radius:10px; background:#fff; }
.card .body{ padding:18px; display:flex; flex-direction:column; height:100%; }
.card .price{ font-size:21px; font-weight:800; color:var(--navy); }
.card .addr{ font-weight:700; margin:2px 0; }
.card .meta{ color:var(--grey); font-size:14.5px; margin-bottom:6px; }
.card .note{ font-size:14.5px; margin-bottom:14px; }
.card .call{ margin-top:auto; font-weight:700; text-decoration:none; }
.alt{ background:var(--light); }
.cols{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:26px; }
.panel{ background:#fff; border:1px solid var(--rule); border-radius:10px; padding:22px; }
.panel h3{ margin-bottom:10px; font-size:18.5px; }
.panel ul{ margin-left:18px; }
.panel li{ margin-bottom:7px; }
.panel.love{ border-top:4px solid #3E7C4F; }
.panel.warn{ border-top:4px solid #B3543F; }
.fineprint{ font-size:12.5px; color:var(--grey); }
.taglist{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px; }
.tag{ background:var(--light); border:1px solid var(--rule); border-radius:20px; padding:5px 12px; font-size:13.5px; font-weight:600; color:var(--navy); }
.cta-band{ background:var(--navy); color:#fff; text-align:center; }
.cta-band h2{ color:#fff; }
.cta-band p{ color:#D7DEE8; margin-bottom:20px; max-width:760px; margin-left:auto; margin-right:auto; }
.cta-band .btn{ margin:0 6px 8px; }
footer.main{ background:#0C1B33; color:#B9C4D2; font-size:13px; padding:32px 0 24px; }
footer.main h4{ color:#fff; margin-bottom:8px; font-size:14px; letter-spacing:1px; text-transform:uppercase; }
footer.main a{ color:#D7DEE8; }
.compliance{ border-top:1px solid #2A3E5C; margin-top:20px; padding-top:14px; font-size:12px; line-height:1.6; }
.crumb{ font-size:13.5px; color:var(--grey); margin-bottom:8px; }
.crumb a{ text-decoration:none; font-weight:600; }
@media (max-width:640px){ .hero h1{ font-size:29px; } nav.links{ display:none; } }

/* --- Villages standalone site extensions --- */
.steps{ display:grid; gap:16px; max-width:860px; }
.step{ display:flex; gap:16px; background:#fff; border:1px solid var(--rule); border-radius:10px; padding:18px 20px; }
.step .num{ flex:0 0 38px; width:38px; height:38px; border-radius:50%; background:var(--navy); color:#fff; font-weight:800; display:flex; align-items:center; justify-content:center; font-size:17px; }
.step h3{ margin-bottom:4px; font-size:17.5px; }
.step p{ font-size:15px; color:var(--ink); }
.stats{ display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:18px; margin-bottom:26px; }
.stat{ background:#fff; border:1px solid var(--rule); border-top:4px solid var(--gold); border-radius:10px; padding:20px; text-align:center; }
.stat .big{ font-size:29px; font-weight:800; color:var(--navy); line-height:1.2; }
.stat .lbl{ color:var(--grey); font-size:14px; margin-top:4px; }
.panel.fin{ border-top:4px solid var(--gold); }
.panel .btn{ margin-top:12px; margin-right:8px; }
.duo{ display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:26px; }
.duo .panel .call{ font-weight:700; text-decoration:none; }
