*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#FAF7F2;color:#1F2433;font-family:Inter,system-ui,sans-serif;font-size:17px;line-height:1.6;-webkit-text-size-adjust:100%}
img{max-width:100%;height:auto}
a{color:#2E3F80}a:hover{color:#1d2a5c}
a:focus-visible,button:focus-visible{outline:3px solid #65B537;outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:0 32px}
/* design grid helpers (homepage) */
.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.two.top{align-items:start}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:24px}
/* top bar + header */
.topbar{background:#1F2433;color:#E9ECF5;font-size:14px}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;min-height:44px}
.topbar .dim{opacity:.75}
.topbar a{color:#E9ECF5;text-decoration:none;padding:10px 0}
.topbar a.on{color:#fff;font-weight:600;border-bottom:2px solid #65B537}
header.site{background:#fff;border-bottom:1px solid #E8E2D6;position:sticky;top:0;z-index:20}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:84px}
.brand img{height:60px;width:auto;display:block}
.navlinks{display:flex;gap:28px;align-items:center;font-size:16px;font-weight:500}
.navlinks a{color:#1F2433;text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.navlinks a[aria-current]{border-bottom-color:#65B537}
.navlinks a:hover{color:#2E3F80}
.hdr-cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.hdr-cta .phone{color:#2E3F80;font-weight:600;text-decoration:none;padding:12px 8px}
/* buttons */
.btn{display:inline-block;font-weight:600;text-decoration:none;padding:14px 24px;border-radius:999px;border:2px solid transparent;line-height:1.3;text-align:center}
.btn-navy{background:#2E3F80;color:#fff}.btn-navy:hover{background:#24336b;color:#fff}
.btn-green{background:#65B537;color:#10240A;font-weight:700}.btn-green:hover{background:#58a22f;color:#10240A}
.btn-ghost{background:#fff;color:#2E3F80;border-color:#2E3F80}.btn-ghost:hover{background:#EAF0FA}
.btns{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 8px}
/* page sections */
.pghero{padding:64px 0 48px;background:linear-gradient(180deg,#FAF7F2,#F3EEE4)}
.pghero h1{font-family:Fraunces,serif;font-weight:600;font-size:52px;line-height:1.06;letter-spacing:-.02em;color:#2E3F80;margin:10px 0 16px;max-width:18em}
.lead{font-size:20px;color:#454B5A;margin:0;max-width:36em}
.kicker{font-size:13px;font-weight:700;letter-spacing:.12em;color:#3F7F1F;text-transform:uppercase}
.band{padding:64px 0}
.band.alt{background:#fff;border-top:1px solid #E8E2D6;border-bottom:1px solid #E8E2D6}
.band h2{font-family:Fraunces,serif;font-weight:600;font-size:36px;line-height:1.12;color:#2E3F80;margin:6px 0 14px}
.h3{font-family:Fraunces,serif;font-size:24px;font-weight:600;color:#1F2433;line-height:1.25;margin:0 0 8px}
.h4{font-weight:700;color:#1F2433}
.muted{color:#545B6B}.small{font-size:15px}.maxw{max-width:44em}
.panel{background:#fff;border:1px solid #E8E2D6;border-radius:22px;padding:28px}
.band.alt .panel{background:#FAF7F2}
.panel p:first-of-type{margin-top:0}
.tile{background:#FAF7F2;border:1px solid #E8E2D6;border-radius:18px;padding:20px}
.card{text-decoration:none;color:inherit;background:#fff;border:1px solid #E8E2D6;border-radius:22px;padding:28px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .15s,transform .15s}
.card:hover{box-shadow:0 10px 30px rgba(31,36,51,.10);transform:translateY(-2px);color:inherit}
.card .ic{width:48px;height:48px;border-radius:14px;background:#EAF0FA;color:#2E3F80;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px}
.card .more{margin-top:auto;font-weight:600;color:#2E3F80}
.ticks{list-style:none;padding:0;margin:12px 0 20px}
.ticks li{padding-left:28px;position:relative;margin:6px 0}
.ticks li:before{content:"";position:absolute;left:4px;top:.55em;width:12px;height:7px;border-left:3px solid #65B537;border-bottom:3px solid #65B537;transform:rotate(-45deg)}
.steps-list{padding-left:22px;margin:16px 0}
.steps-list li{margin:8px 0}
.price{font-family:Fraunces,serif;font-size:40px;font-weight:600;color:#2E3F80}
.kitpics{display:grid;gap:16px}
.kitpics img{border-radius:22px;border:1px solid #E8E2D6;width:100%}
.callcard{background:#fff;border:1px solid #E8E2D6;border-radius:24px;padding:28px 32px;display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;justify-content:space-between}
.callcard .btns{margin:0}
.map{width:100%;min-height:420px;border:0;border-radius:24px;display:block}
.facts2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}
/* footer */
footer.site{background:#1F2433;color:#C9CEDC;padding:48px 0 32px;font-size:15px}
footer.site .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1.2fr;gap:32px}
@media (max-width:900px){footer.site .cols{grid-template-columns:1fr 1fr}}
footer.site a{color:#fff}
footer.site p{margin:8px 0 0}
.ft-name{font-family:Fraunces,serif;font-size:22px;color:#fff}
.ft-h{color:#fff;font-weight:600}
footer.site .legal{margin-top:32px;padding-top:20px;border-top:1px solid #353B4D;font-size:13px;color:#A3A9BA}
.mbar{display:none}
@media (max-width:900px){
.hero,.two{grid-template-columns:minmax(0,1fr);gap:32px}
.cards,.grid4{grid-template-columns:minmax(0,1fr)}
.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
.navlinks{display:none}
.hdr-cta .phone{display:none}
.wrap{padding:0 16px}
header.site .wrap{min-height:68px}
.brand img{height:46px}
.pghero h1{font-size:38px}
.band{padding:48px 0}
.home h1{font-size:40px!important}
.home h2{font-size:32px!important}
.mbar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));position:sticky;bottom:0;background:#fff;border-top:1px solid #E8E2D6;box-shadow:0 -6px 20px rgba(31,36,51,.08);z-index:20}
.mbar a{text-align:center;padding:14px 4px;font-size:14px;font-weight:600;text-decoration:none;color:#2E3F80}
.mbar a.hot{color:#fff;background:#2E3F80}
}
@media (max-width:520px){.facts,.facts2{grid-template-columns:minmax(0,1fr)}.facts>div{border-right:0!important;border-bottom:1px solid #EFEAE0}}
