@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/inter-latin.woff2) format("woff2")}
:root{
  --ink:#0f172b; --slate:#314158; --muted:#62748e; --hint:#90a1b9;
  --line:#e2e8f0; --surface:#f1f5f9; --white:#fff;
  --brand:#0c2764; --brand-hover:#16367f; --accent:#2563eb; --new:#15803d; --new-bg:#ecfdf3; --warn-bg:#fff7ed;
  --radius:12px; --shadow:0 1px 2px rgba(15,23,43,.04),0 6px 16px -8px rgba(15,23,43,.12);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--surface);color:var(--ink);font:16px/1.55 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-.011em}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
.narrow{max-width:720px}
h1{font-size:clamp(30px,6vw,52px);line-height:1.08;letter-spacing:-.035em;margin:0 0 14px;font-weight:800}
h2{font-size:clamp(22px,4vw,30px);line-height:1.2;letter-spacing:-.03em;margin:0 0 12px;font-weight:800}
h3{font-size:18px;margin:0 0 6px;letter-spacing:-.02em}
p{margin:0 0 12px}
.lead{font-size:18px;color:var(--slate);max-width:640px}
.muted{color:var(--muted)}
.small{font-size:14px}

/* header */
.top{background:var(--white);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-in{display:flex;align-items:center;justify-content:space-between;min-height:62px;gap:12px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;text-decoration:none;letter-spacing:-.02em;white-space:nowrap}
.mark{width:28px;height:28px;border-radius:8px;background:var(--brand);display:grid;place-items:center}
.mark svg{width:16px;height:16px}
.nav{display:flex;align-items:center;gap:4px;font-size:15px;font-weight:500}
.nav a{text-decoration:none;padding:8px 10px;border-radius:8px;color:var(--slate)}
.nav a:hover{background:var(--surface)}
.nav a:first-child{display:none}
@media(min-width:640px){.nav a:first-child{display:inline}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border-radius:999px;background:var(--brand);
  color:#fff!important;font-weight:700;font-size:16px;text-decoration:none;border:0;cursor:pointer;font-family:inherit}
.btn:hover{background:var(--brand-hover)}
.btn.sm{min-height:38px;padding:0 16px;font-size:14px}
.btn.ghost{background:var(--white);color:var(--ink)!important;border:1px solid var(--line)}
.btn.ghost:hover{border-color:var(--hint)}
.btn.block{width:100%}
.btn:disabled{opacity:.6;cursor:wait}

/* sections */
.hero{background:var(--white);border-bottom:1px solid var(--line);padding:44px 0 36px}
.hero .cta{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 10px}
.hero .fine{font-size:14px;color:var(--muted)}
.section{padding:44px 0}
.section.white{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.kicker{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 10px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:620px;margin-top:22px}
.stat{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;background:var(--white)}
.stat b{display:block;font-size:24px;font-weight:800;letter-spacing:-.03em;line-height:1.2}
.stat span{font-size:13px;color:var(--muted)}
.grid3{display:grid;gap:12px}
@media(min-width:760px){.grid3{grid-template-columns:repeat(3,1fr)}}
.grid2{display:grid;gap:12px}
@media(min-width:760px){.grid2{grid-template-columns:1fr 1fr}}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}
.card p:last-child{margin-bottom:0}
.num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--surface);font-weight:800;font-size:14px;margin-bottom:10px}
.compare{width:100%;border-collapse:collapse;font-size:15px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.compare th,.compare td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.compare thead th{background:var(--surface);font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.yes{color:var(--new);font-weight:700}
.no{color:var(--muted)}
.table-wrap{overflow-x:auto}
.price-card{max-width:420px}
.price-card .amount{font-size:44px;font-weight:800;letter-spacing:-.04em}
.price-card ul{padding-left:20px;margin:12px 0 18px}
.price-card li{margin-bottom:6px}
.faq details{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:4px 16px;margin-bottom:8px}
.faq summary{cursor:pointer;font-weight:600;min-height:48px;display:flex;align-items:center}
.faq details p{color:var(--slate)}

/* listings */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:16px 0 8px}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--white);
  font-size:14px;font-weight:500;color:var(--slate);text-decoration:none;white-space:nowrap}
.chip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.lgrid{display:grid;gap:12px;padding:8px 0 40px}
@media(min-width:720px){.lgrid{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.lgrid{grid-template-columns:1fr 1fr 1fr}}
.lcard{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow)}
.row1{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.price{font-size:22px;font-weight:800;letter-spacing:-.03em}
.price small{font-size:14px;font-weight:500;color:var(--muted);letter-spacing:0}
.tag{font-size:12px;font-weight:700;color:var(--new);background:var(--new-bg);border-radius:999px;padding:3px 9px;white-space:nowrap}
.tag.phase{color:var(--brand);background:#eef2ff}
.addr{font-weight:600;line-height:1.35}
.facts{display:flex;flex-wrap:wrap;gap:6px}
.fact{font-size:13px;color:var(--slate);background:var(--surface);border-radius:6px;padding:3px 8px}
.lfoot{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;margin-top:auto}
.go{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:999px;background:var(--brand);color:#fff;font-weight:600;font-size:15px;text-decoration:none}
.go:hover{background:var(--brand-hover)}
.locked{position:relative}
.locked .lcard{filter:blur(5px);user-select:none;pointer-events:none}
.lock-cta{position:absolute;inset:0;display:grid;place-items:center;padding:16px}
.lock-cta .card{text-align:center;max-width:420px}

/* projects + map */
#map{height:420px;border-radius:var(--radius);border:1px solid var(--line);background:#dfe7ef}
.plist{display:grid;gap:8px}
.prow{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;text-decoration:none}
.prow:hover{border-color:var(--hint)}
.prow .big{font-size:20px;font-weight:800;letter-spacing:-.03em;white-space:nowrap}

/* forms */
.form{display:grid;gap:14px}
label{font-weight:600;font-size:15px;display:block}
.hint{font-weight:400;color:var(--muted);font-size:13px}
input[type=email],input[type=number],select{width:100%;font:inherit;font-size:16px;padding:12px;margin-top:6px;border:1px solid #c9d1d9;border-radius:10px;min-height:48px;background:#fff}
input:focus,select:focus{outline:3px solid rgba(37,99,235,.25);border-color:var(--accent)}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;color:var(--slate)}
.check input{width:20px;height:20px;margin-top:1px;flex:none;accent-color:var(--brand)}
.alert{border-radius:var(--radius);padding:12px 14px;font-size:15px}
.alert.err{background:#fef2f2;color:#991b1b}
.alert.ok{background:var(--new-bg);color:#14532d}
.alert.info{background:var(--warn-bg);color:#7c2d12}

/* footer */
.footer{background:var(--ink);color:#cbd5e1;padding:36px 0 24px;margin-top:20px}
.footer-in{display:grid;gap:20px}
@media(min-width:760px){.footer-in{grid-template-columns:2fr 1fr}}
.footer strong{color:#fff}
.footer p{font-size:14px;max-width:520px}
.footer nav{display:grid;gap:6px;font-size:14px}
.footer a{color:#e2e8f0;text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer .legal{font-size:12px;color:#94a3b8;border-top:1px solid #1e293b;padding-top:14px;margin-top:20px}
.prose h2{font-size:20px;margin-top:26px}
.prose p,.prose li{color:var(--slate)}

/* subscriber-only content */
.blurwrap{position:relative}
.blurred{filter:blur(4px);pointer-events:none;user-select:none}
.blurred-text{filter:blur(5px);user-select:none}
.blurwrap .lock-cta{position:absolute;inset:0;display:grid;place-items:center;padding:16px;z-index:500}
.blurwrap .lock-cta .card{text-align:center;max-width:380px}

pre.code{background:var(--ink);color:#e2e8f0;border-radius:10px;padding:14px 16px;overflow-x:auto;font-size:13px;line-height:1.5}

.lphoto{width:calc(100% + 32px);margin:-16px -16px 0;aspect-ratio:3/2;object-fit:cover;border-radius:12px 12px 0 0;background:var(--surface)}
