:root{--ink:#1f2723;--muted:#5b6660;--bg:#faf8f4;--card:#fff;--accent:#2f5d50;--wa:#1fa855;--line:#e6e1d8}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg);padding-bottom:72px}
a{color:var(--accent)}img{max-width:100%;height:auto;display:block}
.draft{background:#fff3cd;color:#664d03;font-size:13px;text-align:center;padding:4px 8px}
.top{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;justify-content:space-between;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:700;text-decoration:none;color:var(--ink);font-size:18px;display:inline-flex;align-items:center;gap:8px;letter-spacing:.2px}.brand .mark{flex:none}
.top nav{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:14px}.top nav a{text-decoration:none;color:var(--muted)}.top nav a[aria-current]{color:var(--ink);font-weight:600}
main{max-width:960px;margin:0 auto;padding:0 20px}
section,article{margin:28px 0}h1{font-size:clamp(28px,4.5vw,40px);line-height:1.2;margin:.3em 0}h2{font-size:24px;margin-top:1.6em}
.lede{font-size:18px;color:var(--muted)}.small{font-size:13px;color:var(--muted)}
.btn{display:inline-block;padding:12px 18px;border-radius:10px;text-decoration:none;font-weight:600}
.btn.primary{background:var(--accent);color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit}
.card img{aspect-ratio:16/10;object-fit:cover;width:100%;background:#f3dcdc}.card div{padding:12px 16px}.card h3{margin:.2em 0}
.proj .logo{max-width:320px;margin:10px 0}.proj .logo.sq{max-width:180px;border-radius:12px}
.price{font-size:20px}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
.gallery figure{margin:0;position:relative}.gallery img{border-radius:12px;width:100%;aspect-ratio:16/10;object-fit:cover}
figcaption.ai{position:absolute;right:8px;bottom:6px;font-size:11px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7);opacity:.9}
table.facts{border-collapse:collapse;width:100%;background:#fff;border-radius:12px;overflow:hidden}
.facts th,.facts td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.facts th{width:32%;color:var(--muted);font-weight:600}
.towns li{margin:6px 0}
.answer{background:#eef4f1;border-left:4px solid var(--accent);padding:6px 18px;border-radius:8px}
.callout{background:#fff;border:1px solid var(--line);padding:14px 18px;border-radius:12px;margin:24px 0}
details{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:8px 0}summary{font-weight:600;cursor:pointer}
.sources li{font-size:14px;margin:4px 0}
.formwrap{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;max-width:560px}
form.lead label{display:block;margin:10px 0;font-size:14px;font-weight:600}
form.lead input,form.lead select{display:block;width:100%;margin-top:4px;padding:11px 12px;font:inherit;border:1px solid #cfc8bb;border-radius:10px;background:#fff}
form.lead button{margin-top:12px;width:100%;padding:13px;border:0;border-radius:10px;background:var(--accent);color:#fff;font:600 16px system-ui;cursor:pointer}
.hp{position:absolute;left:-9999px}.formmsg{font-weight:600}
footer{max-width:960px;margin:40px auto 0;padding:20px;border-top:1px solid var(--line)}
.cta-bar{position:fixed;left:0;right:0;bottom:0;display:flex;gap:8px;padding:10px;background:rgba(255,255,255,.96);border-top:1px solid var(--line);z-index:10}
.cta-bar .btn{flex:1;text-align:center;color:#fff}.cta-bar .call{background:var(--ink)}.cta-bar .wa{background:var(--wa)}.cta-bar .enq{background:var(--accent,var(--ink));font-weight:600}
@media(max-width:520px){.cta-bar .num{display:none}.top nav{font-size:13px}}
.disclaimer{border-left:4px solid #b7791f;background:#fffaf0}
.mapph{display:flex;align-items:center;justify-content:center;text-align:center;min-height:160px;border-radius:14px;border:1px dashed #cfc8bb;background:repeating-linear-gradient(45deg,#f1ede5,#f1ede5 12px,#ece7dd 12px,#ece7dd 24px)}
.tablewrap{overflow-x:auto}table.cmp{min-width:720px;font-size:14px}table.cmp th{width:auto}table.cmp thead th{background:#f3f0ea;color:var(--ink)}
table.cmp tr.ours td{background:#eef4f1}ol.plain{list-style:none;padding-left:0}

.lead-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:start}
.lead-hero .promise{font-size:21px;font-weight:700;color:var(--accent);margin:6px 0 10px}
.hero-form{background:#fff;border:2px solid var(--accent);border-radius:16px;padding:16px 18px;box-shadow:0 8px 28px rgba(31,39,35,.12)}
.hero-form h3{margin-top:4px;font-size:19px}
.ticks{list-style:none;padding:0}.ticks li{padding-left:24px;position:relative;margin:6px 0}.ticks li:before{content:"✓";position:absolute;left:0;color:var(--accent);font-weight:700}
form.lead textarea{display:block;width:100%;margin-top:4px;padding:11px 12px;font:inherit;border:1px solid #cfc8bb;border-radius:10px;background:#fff;resize:vertical}
form.lead .row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}form.lead .opt{font-weight:400;color:var(--muted)}
.cta-band{display:flex;gap:16px;align-items:center;justify-content:space-between;background:#eef3f0;border:1px solid #d5e2db;border-radius:14px;padding:14px 18px;margin:24px 0}
.cta-band p{margin:0}.cta-band span{color:var(--muted);font-size:14px}.cta-band .btn{white-space:nowrap}
@media(max-width:820px){.lead-hero{grid-template-columns:1fr}.hero-form{order:-1}.cta-band{flex-direction:column;align-items:stretch;text-align:center}}
@media(max-width:420px){form.lead .row2{grid-template-columns:1fr}}
.pcard .thumb{position:relative;aspect-ratio:16/10;overflow:hidden;background:#e9e4da}.pcard .thumb img{width:100%;height:100%;object-fit:cover}
.pcard .thumb.ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#dfe8e3,#efe7d8);color:#2f5d50;font-weight:600;text-align:center;padding:12px}
.pcard .ai-tag{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:11px;padding:2px 6px;border-radius:6px}
.pcard p{margin:.25em 0}.pcard .loc{color:#6b6b6b}.price-line{color:#2f5d50}
h2 .count{font-size:.6em;color:#888;font-weight:400;vertical-align:middle}.listing-note{margin-top:10px}
.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.gallery figure:only-child{grid-column:1/-1}.gallery figcaption a{color:inherit}
.calc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:6px 18px 14px;margin:24px 0}
.calc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:10px 0}
.calc label{font-size:14px;font-weight:600}.calc input,.calc select{display:block;width:100%;margin-top:4px;padding:10px 12px;font:inherit;border:1px solid #cfc8bb;border-radius:10px;background:#fff}
.crumbs{margin:14px 0 0}.crumbs a{color:var(--muted)}.updated{margin:18px 0}.explore a{white-space:nowrap}
