:root{--navy:#14284b;--navy2:#1d3a6b;--orange:#f47b20;--orange2:#c85a0a;--bg:#f7f9fc;--ink:#1c2740;--mut:#4d5a73;--line:#d9e1ee;--band:#e9eff8;--green:#3d7a4f;--shadow:0 10px 30px rgba(20,40,75,.10);--shadow-sm:0 2px 10px rgba(20,40,75,.06)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--navy2)}
h1,h2,h3,h4{color:var(--navy);line-height:1.15;letter-spacing:-.02em}
p{color:var(--mut)}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:8px;background:var(--navy);color:#fff;padding:10px 14px;border-radius:8px;z-index:100}
.skip:focus{left:8px}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}

/* header */
header.site{background:#fff;position:sticky;top:0;z-index:50;box-shadow:0 2px 14px rgba(20,40,75,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:16px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:1.65rem;color:var(--navy);letter-spacing:-.03em;white-space:nowrap}
.logo img{width:44px;height:44px}
.logo span{color:var(--orange)}
nav.main{display:flex;align-items:center;gap:6px}
nav.main a{color:var(--navy);text-decoration:none;font-weight:600;font-size:.97rem;padding:9px 12px;border-radius:8px;transition:.15s}
nav.main a:hover,nav.main a[aria-current="page"]{color:var(--orange2);background:#fff3ea}
nav.main a.cta{background:var(--orange);color:#fff;margin-left:8px;padding:11px 20px;font-weight:800;box-shadow:0 4px 12px rgba(244,123,32,.35)}
nav.main a.cta:hover{background:var(--orange2);color:#fff}
.burger{display:none;background:none;border:0;width:46px;height:46px;border-radius:10px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger span{display:block;width:24px;height:3px;background:var(--navy);border-radius:2px;transition:.2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* buttons */
.btn{display:inline-block;background:var(--orange);color:#fff;font-weight:800;font-size:1.05rem;padding:15px 28px;border:0;border-radius:10px;cursor:pointer;text-decoration:none;text-align:center;transition:.15s;box-shadow:0 6px 16px rgba(244,123,32,.30);font-family:inherit}
.btn:hover{background:var(--orange2);transform:translateY(-1px)}
.btn.full{display:block;width:100%}
.btn.ghost{background:#fff;color:var(--navy);box-shadow:inset 0 0 0 2px var(--navy)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.link{color:var(--orange2);font-weight:800;text-decoration:none}
.link:hover{text-decoration:underline}

/* hero */
.hero{padding:48px 0 34px;background:linear-gradient(180deg,#fff 0,var(--bg) 100%)}
.hero-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start}
.hero h1{font-size:clamp(2.5rem,5.6vw,4.3rem);letter-spacing:-.045em;margin:26px 0 18px;font-weight:900}
.hero .lead{font-size:clamp(1.15rem,2.2vw,1.55rem);color:var(--mut);max-width:580px;line-height:1.4}
.points{display:flex;flex-wrap:wrap;gap:18px 30px;margin-top:30px}
.points div{display:flex;align-items:center;gap:12px;color:var(--mut);font-size:.98rem;line-height:1.25}
.points img{width:44px;height:46px;flex:none}
.scene{margin-top:8px}
.scene img{width:100%;max-width:640px;height:auto}

/* forms */
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;box-shadow:var(--shadow)}
.card h2,.card h3.t{font-size:1.65rem;line-height:1.2}
.card .sub{font-size:.96rem;margin:4px 0 6px}
.quote{scroll-margin-top:96px}
label{display:block;font-weight:700;font-size:.9rem;margin:14px 0 6px;color:var(--navy)}
label small{font-weight:500;color:var(--mut)}
input,select,textarea{width:100%;padding:13px 14px;border:1.5px solid #b8c4d9;border-radius:9px;font:inherit;font-size:1rem;background:#fff;color:var(--ink);transition:.15s}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(244,123,32,.25)}
input.bad,select.bad,textarea.bad{border-color:#c0392b;background:#fff7f6}
.err{display:none;color:#a52a1d;font-size:.86rem;font-weight:600;margin-top:5px}
.bad+.err{display:block}
form .btn{margin-top:22px}
.thanks{display:none;margin-top:16px;background:#e7f6ec;border:1px solid #8fcfa6;color:#14532d;padding:14px 16px;border-radius:10px;font-weight:600}
.thanks.show{display:block}
.note{font-size:.82rem;color:var(--mut);margin-top:12px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}

/* sections */
section.sec{padding:64px 0}
section.sec.alt{background:#fff}
section.sec.band{background:var(--band)}
.eyebrow{display:inline-block;color:var(--orange2);font-weight:800;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.sec-head{max-width:720px;margin-bottom:34px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}
.sec-head p{font-size:1.08rem;margin-top:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.svc{display:flex;gap:20px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:var(--shadow-sm);transition:.2s;text-decoration:none;color:inherit}
.svc:hover{box-shadow:var(--shadow);transform:translateY(-3px);border-color:#f2c9a5}
.svc img{flex:none;width:96px;height:96px}
.svc h3{font-size:1.4rem}
.svc p{font-size:.96rem;margin:4px 0 8px}
.svc .link{font-size:.98rem}
.steps .step{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px;box-shadow:var(--shadow-sm);position:relative}
.num{width:46px;height:46px;border-radius:50%;background:var(--orange);color:#fff;font-weight:900;font-size:1.25rem;display:flex;align-items:center;justify-content:center;margin-bottom:14px;box-shadow:0 4px 10px rgba(244,123,32,.35)}
.step h3,.why h3{font-size:1.2rem;margin-bottom:6px}
.why{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px}
.why .ck{flex:none;width:52px;height:52px;border-radius:50%;background:var(--band);display:flex;align-items:center;justify-content:center}
.why .ck img{width:26px;height:26px}
.why p{font-size:.96rem}

/* service areas band */
.areas{background:var(--band);padding:34px 0}
.areas-grid{display:grid;grid-template-columns:1fr 1.7fr;gap:24px;align-items:center}
.areas h2{font-size:2rem}
.areas p{margin-top:4px}
.towns{display:flex;justify-content:space-around;flex-wrap:wrap;gap:16px}
.town{display:flex;align-items:center;gap:12px;font-weight:800;font-size:1.4rem;color:var(--navy);text-decoration:none;padding:6px 14px;border-radius:10px;transition:.15s}
.town:hover{background:#fff}
.town img{width:26px;height:34px}
.town+.town{border-left:1px solid #c9d5e8;border-radius:0 10px 10px 0;padding-left:26px}

/* trust row */
.trust{padding:30px 0;background:#fff}
.trust-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.t{display:flex;align-items:center;gap:16px;justify-content:center}
.t .ck{flex:none;width:56px;height:56px;border-radius:50%;background:var(--band);display:flex;align-items:center;justify-content:center}
.t .ck img{width:26px;height:26px}
.t b{display:block;color:var(--navy);font-size:1.08rem}
.t span{color:var(--mut);font-size:.92rem}

/* page banner */
.pagehead{background:linear-gradient(180deg,#fff,#eef3fa);padding:44px 0 0;overflow:hidden}
.pagehead .grid{display:grid;grid-template-columns:1.05fr 1fr;gap:30px;align-items:end}
.pagehead h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:900;letter-spacing:-.04em;margin:8px 0 14px}
.pagehead p.lead{font-size:1.2rem;max-width:560px}
.pagehead .acts{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 40px}
.pagehead img.ban{width:100%;height:auto;border-radius:16px 16px 0 0}
.pagehead.plain{padding:46px 0 40px}
.pagehead.plain .grid{display:block}
.pagehead.plain p.lead{max-width:720px}
.crumbs{font-size:.88rem;color:var(--mut);margin-bottom:6px}
.crumbs a{color:var(--mut)}

/* lists */
.jobs{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin-top:6px}
.jobs li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:12px;color:var(--ink);font-weight:600}
.jobs li::before{content:"";flex:none;width:22px;height:22px;margin-top:2px;border-radius:50%;background:var(--orange) url("check-white.svg") center/14px no-repeat}
.jobs li span{display:block;font-weight:400;color:var(--mut);font-size:.92rem}
.split{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start}
.prose h2{font-size:1.7rem;margin:34px 0 10px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:1.2rem;margin:22px 0 6px}
.prose p{margin-bottom:12px}
.prose ul{margin:0 0 14px 22px;color:var(--mut)}
.prose li{margin-bottom:6px}
.callout{background:#fff3ea;border:1px solid #f6cfae;border-radius:12px;padding:16px 18px;color:#7a3a05;margin:18px 0}
.callout p{color:#7a3a05;margin:0}
.side{position:sticky;top:96px}
.areabox{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:var(--shadow-sm);margin-bottom:24px;display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:start}
.areabox>img{width:34px;height:44px;margin-top:4px}
.areabox h2{font-size:1.9rem;margin-bottom:8px}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.chips span{background:var(--band);color:var(--navy);font-weight:700;font-size:.88rem;padding:6px 12px;border-radius:999px}

/* faq */
.faq{max-width:860px;margin:0 auto}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:12px;box-shadow:var(--shadow-sm);overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:18px 54px 18px 20px;font-weight:700;color:var(--navy);font-size:1.05rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:20px;top:50%;transform:translateY(-50%);font-size:1.7rem;color:var(--orange);font-weight:700;line-height:1;transition:.2s}
.faq details[open] summary::after{content:"\2212"}
.faq summary:hover{background:#fbfcfe}
.faq .ans{padding:0 20px 18px}
.faq .ans p{margin-bottom:8px}

/* cta band */
.ctaband{background:var(--navy);padding:54px 0;color:#fff;position:relative;overflow:hidden}
.ctaband .in{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ctaband h2{color:#fff;font-size:clamp(1.7rem,3.4vw,2.4rem)}
.ctaband p{color:#c9d5ea;margin-top:6px;font-size:1.08rem}
.ctaband .btn{white-space:nowrap}

/* footer */
footer.site{background:#0f1f3b;color:#b9c7e0;padding:50px 0 24px}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px}
footer.site h4{color:#fff;font-size:1rem;margin-bottom:12px;letter-spacing:0}
footer.site p{color:#b9c7e0;font-size:.94rem}
footer.site a{color:#b9c7e0;text-decoration:none;display:block;padding:4px 0;font-size:.95rem}
footer.site a:hover{color:#fff;text-decoration:underline}
footer .flogo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.4rem;color:#fff;margin-bottom:10px}
footer .flogo img{width:38px;height:38px}
footer .flogo span{color:var(--orange)}
.fbottom{border-top:1px solid #243a63;margin-top:34px;padding-top:18px;font-size:.84rem;color:#93a5c6}
.fbottom p{color:#93a5c6;font-size:.84rem}

@media(max-width:980px){
 .hero-grid,.pagehead .grid,.split,.grid2,.areas-grid{grid-template-columns:1fr}
 .grid3,.trust-grid{grid-template-columns:1fr}
 .trust-grid{gap:18px}.t{justify-content:flex-start}
 .hero h1{margin-top:8px}
 .side{position:static}
 .fgrid{grid-template-columns:1fr 1fr}
 .pagehead .acts{margin-bottom:26px}
 .towns{justify-content:flex-start}
}
@media(max-width:1080px){
 .burger{display:flex}
 nav.main{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;padding:12px 16px 20px;gap:2px;box-shadow:0 14px 24px rgba(20,40,75,.14);border-top:1px solid var(--line);max-height:calc(100vh - 76px);overflow-y:auto}
 nav.main.open{display:flex}
 nav.main a{padding:14px 12px;font-size:1.05rem}
 nav.main a.cta{margin:10px 0 0;text-align:center}
}
@media(max-width:640px){
 .wrap{padding:0 16px}
 .nav{height:66px}
 nav.main{top:66px}
 .logo{font-size:1.25rem;gap:7px}.logo img{width:36px;height:36px}
 section.sec{padding:46px 0}
 .jobs,.two,.fgrid{grid-template-columns:1fr}
 .card{padding:20px}
 .svc{padding:18px;gap:14px}.svc img{width:72px;height:72px}
 .towns{flex-direction:column;align-items:flex-start;gap:6px}
 .town+.town{border-left:0;padding-left:14px}
 .areabox{grid-template-columns:1fr;padding:22px}
 .points{gap:14px}.points div{flex:1 1 100%}
 .ctaband .btn{width:100%}
 .pagehead .acts .btn{flex:1 1 100%}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
