:root{--bg:#0c1415;--surface:#142021;--line:#304142;--muted:#bbc9c7;--ink:#10201e;--paper:#f4f6ef;--green:#b9ef27;--green-dark:#3e5b08;--white:#fff;--radius:20px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--white);font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration-thickness:2px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #69bdd9;outline-offset:4px}img{display:block;max-width:100%;height:auto}figure{margin:0}button{cursor:pointer}.wrap{width:min(1160px,92%);margin-inline:auto}.skip{position:fixed;top:-100px;left:15px;z-index:200;background:#fff;color:#000;padding:12px}.skip:focus{top:12px}h1,h2,h3{line-height:1.12;letter-spacing:-.04em;margin:0 0 20px}h1{font-size:clamp(2.5rem,4.3vw,3.65rem);max-width:660px}h2{font-size:clamp(1.9rem,3.5vw,2.8rem)}h3{font-size:1.3rem}p{margin:0 0 20px;color:var(--muted)}.eyebrow{font-size:.74rem;letter-spacing:.15em;text-transform:uppercase;font-weight:800;color:var(--green);margin:0 0 18px}.topline{background:#070c0c;border-bottom:1px solid #233031;font-size:.76rem;color:var(--muted)}.topline .wrap{display:flex;justify-content:space-between;padding-block:8px;gap:20px}.topline a{text-decoration:none}.header{position:sticky;top:0;z-index:50;background:#0c1415f5;border-bottom:1px solid var(--line);backdrop-filter:blur(14px)}.nav{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;flex-shrink:0}.brand-icon{width:48px;height:48px;overflow:hidden;position:relative;background:#000;border-radius:10px}.brand-icon img{position:absolute;max-width:none;width:128px;left:-40px;top:-32px}.brand-word{font-size:1.5rem;font-weight:850;letter-spacing:.07em;line-height:1.15}.brand-word small{display:block;font-size:.58rem;font-weight:550;letter-spacing:.16em;margin-top:5px;color:#d0ddd5}.navlinks{display:flex;align-items:center;gap:26px;font-size:.86rem}.navlinks a{text-decoration:none;color:#c7d4ce;line-height:1.3}.navlinks a[aria-current=page]{color:var(--green)}.navlinks a:hover{color:#fff}.navlinks .nav-contact{padding:12px 20px;border:1px solid #586b42;border-radius:30px;color:#fff}.menu-toggle{display:none;background:transparent;color:#fff;border:1px solid #4c615c;border-radius:9px;min-height:44px;padding:8px 13px}.hero{padding:46px 0 52px;background:radial-gradient(ellipse at 0% 15%,#24402945,transparent 65%)}.crumb{font-size:.8rem;color:#a9bdb6;margin:0 0 28px}.hero-grid{display:grid;grid-template-columns:1.18fr .82fr;column-gap:46px;row-gap:24px;align-items:start}.hero-copy{grid-column:1;grid-row:1}.hero-copy .lead{font-size:1.12rem;max-width:590px;margin:0 0 22px}.hero-copy h1 em{font-style:normal;color:var(--green)}.proof-link{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;font-weight:800;display:inline-flex;align-items:center;gap:9px;color:var(--green);margin-bottom:20px}.proof-link::before{content:'✓';display:grid;place-items:center;width:21px;height:21px;border-radius:50%;border:1px solid #7c9c54;letter-spacing:0}.checks{list-style:none;display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 22px;padding:0;font-size:.87rem}.checks li:before{content:'✓';color:var(--green);margin-right:8px}.phone-line{font-size:1.05rem;color:#fff;font-weight:650;margin-bottom:21px}.phone-line a{white-space:nowrap}.actions{display:flex;gap:12px;flex-wrap:wrap}.btn{display:inline-flex;min-height:49px;justify-content:center;align-items:center;text-decoration:none;border:1px solid transparent;border-radius:999px;padding:12px 21px;font-size:.93rem;font-weight:760;line-height:1.4;transition:background .15s,transform .15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:#132006}.btn-primary:hover{background:#cdff46}.btn-secondary{background:#ffffff05;border-color:#415652;color:#fff}.btn-secondary:hover{background:#ffffff0d}.hero-photo{grid-column:1;grid-row:2;overflow:hidden;border-radius:var(--radius);background:#1b2928}.hero-photo img{width:100%;height:240px;object-fit:cover;object-position:50% 47%}.hero-photo figcaption{padding:9px 16px;font-size:.76rem;color:#d1ddd6}.form-panel{grid-column:2;grid-row:1 / span 2;background:var(--paper);color:var(--ink);border-radius:22px;padding:28px;box-shadow:0 15px 60px #0002;scroll-margin-top:110px}.form-panel h2{font-size:1.55rem;margin-bottom:12px}.form-panel p{color:#4e6058;font-size:.94rem;margin-bottom:21px}.form-panel .eyebrow{color:#526e28;font-size:.68rem;margin-bottom:12px}.field{display:block;font-size:.85rem;font-weight:650;margin-bottom:14px}.field span{font-weight:450}.field input,.field select,.field textarea{display:block;width:100%;margin-top:5px;background:white;border:1px solid #a9b8ad;border-radius:7px;padding:11px 12px;min-height:48px;color:var(--ink);font-size:16px}.name-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field textarea{resize:vertical;min-height:96px}.optional-message summary{font-size:.85rem;color:#3f5547;padding:3px 0 11px;cursor:pointer;min-height:40px}.optional-message .field{margin-top:8px}.consent{display:flex;align-items:flex-start;gap:10px;font-size:.75rem;line-height:1.55;margin:13px 0 17px}.consent input{width:19px;height:19px;margin:2px 0;flex:none;accent-color:#3b5917}.form-panel .submit{width:100%;border-radius:8px;font-size:.93rem}.submit:disabled{opacity:.65;cursor:wait;transform:none}.form-panel .footnote{font-size:.72rem;margin:12px 0 0;line-height:1.5}.form-status:empty{display:none}.form-panel .form-status{font-weight:650;font-size:.86rem;margin:18px 0 0;padding:13px;background:#e4ecdb;border-left:3px solid #527b27}.form-status[data-state=error]{background:#fff0e8;border-color:#a4471b}.form-success{padding:20px 0}.form-success h3{font-size:1.4rem}.proof-strip{background:#172221;border-block:1px solid var(--line)}.proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding-block:25px}.proof-item{display:flex;align-items:center;gap:17px}.proof-item+div{border-left:1px solid #3d5149;padding-left:32px}.proof-icon{font-size:1.5rem;color:var(--green)}.proof-item strong{font-size:1.08rem;display:block}.proof-item span{font-size:.8rem;color:var(--muted);display:block}.section{padding:76px 0}.section-intro{display:flex;align-items:end;justify-content:space-between;gap:45px;margin-bottom:34px}.section-intro h2{max-width:650px;margin:0}.section-intro p{max-width:350px;margin:0}.section-intro .eyebrow{margin-bottom:14px}.services{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service-card{padding:32px;border:1px solid #3a5149;background:linear-gradient(135deg,#1b2d27,#152021);border-radius:18px;display:flex;flex-direction:column;align-items:start}.service-card .number{font-size:.8rem;color:var(--green);border:1px solid #597147;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;margin-bottom:28px}.service-card h3{font-size:1.65rem;max-width:340px}.service-card p{font-size:.98rem}.text-link{font-size:.92rem;font-weight:700;display:inline-block;padding:5px 0;color:var(--green)}.service-card .text-link{margin-top:auto}.text-link .arrow{display:inline-block;padding-left:12px}.paper{background:var(--paper);color:var(--ink)}.paper p{color:#4a5f55}.paper .eyebrow,.paper .text-link{color:#496721}.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}.split.start{align-items:start}.quote-feature{border-left:3px solid #84ae21;padding:18px 0 18px 30px}.quote-feature blockquote{margin:0 0 22px;font-size:clamp(1.6rem,2.5vw,2.05rem);font-weight:650;line-height:1.38;letter-spacing:-.035em}.quote-feature figcaption{font-size:.88rem}.quote-feature figcaption span{display:block;color:#566b5e;font-size:.78rem}.quote-feature a{font-size:.8rem;display:inline-block;margin-top:14px}.quote-feature .quote-mark{font-size:4rem;color:#6a8d2e;line-height:1}.registration{border:1px solid #cbd7be;background:#e7eddc;border-radius:20px;padding:34px}.registration .registration-name{font-size:2.35rem;line-height:1.15;letter-spacing:-.04em;margin-bottom:14px;font-weight:750}.registration dl{margin:0 0 18px}.registration dl div{display:flex;justify-content:space-between;gap:20px;padding:9px 0;border-bottom:1px solid #c8d4ba;font-size:.85rem}.registration dd{margin:0;text-align:right;font-weight:650}.registration a{font-size:.9rem;font-weight:650}.feature-photo{border-radius:20px;overflow:hidden;max-width:450px;width:100%;justify-self:center}.feature-photo img{width:100%;aspect-ratio:1;object-fit:cover}.feature-photo figcaption{font-size:.75rem;padding:12px 0;color:var(--muted)}.rows{list-style:none;counter-reset:row;margin:0;padding:0}.rows li{position:relative;border-top:1px solid #374b42;padding:22px 0 22px 44px;counter-increment:row}.rows li:before{content:'0' counter(row);position:absolute;left:0;top:25px;color:var(--green);font-weight:750;font-size:.78rem}.rows h3{font-size:1.15rem;margin:0 0 8px}.rows p{margin:0;font-size:.95rem}.paper .rows li{border-color:#c5d0c3}.paper .rows li:before{color:#577527}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;list-style:none;margin:35px 0 0;padding:0;counter-reset:steps}.steps li{counter-increment:steps;border-top:1px solid #c3cfbb;padding:22px 0 0}.steps li:before{content:'0' counter(steps);color:#547521;font-size:.82rem;font-weight:700}.steps h3{margin:14px 0 12px;font-size:1.18rem}.steps p{font-size:.96rem;margin:0}.coverage{background:#192c23;border:1px solid #3e5847;border-radius:22px;padding:36px}.coverage .area{font-size:2rem;line-height:1.15;color:#fff;letter-spacing:-.04em;font-weight:730;margin-bottom:20px}.coverage p:last-child{margin:0}.jumps{display:flex;flex-wrap:wrap;gap:25px;padding-block:17px;border-bottom:1px solid var(--line);font-size:.84rem}.jumps a{color:#c4d5cd}.note{border-left:3px solid var(--green);padding:6px 0 6px 20px;margin-top:25px}.note p{margin:0}.faq{max-width:850px}.faq details{border-bottom:1px solid #3b5047;padding:19px 0}.faq summary{font-size:1.04rem;font-weight:650;cursor:pointer;padding-right:12px;min-height:35px}.faq details p{font-size:.97rem;margin:16px 0 0;max-width:760px}.final{background:#213529;padding:62px 0;text-align:center;border-top:1px solid #3c5541}.final h2{max-width:700px;margin-inline:auto}.final p{max-width:620px;margin:0 auto 26px}.final .actions{justify-content:center}.footer{padding:48px 0 24px;background:#080e0f}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:45px}.footer .brand{margin-bottom:20px}.footer p,.footer a{font-size:.82rem}.footer p{max-width:310px}.footer h2{font-size:.85rem;letter-spacing:0;margin-bottom:15px}.footer ul{list-style:none;margin:0;padding:0}.footer li{margin-bottom:8px}.footer li a{text-decoration:none;color:#bdcbc2;padding:4px 0;display:inline-block}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #273b30;margin-top:30px;padding-top:20px;color:#90a598;font-size:.7rem}.footer-bottom a{font-size:inherit}.sticky-actions{display:none}.contact-methods{margin-top:32px;display:grid;gap:23px}.contact-methods small{display:block;text-transform:uppercase;letter-spacing:.12em;color:#94ab98;font-size:.68rem;margin-bottom:4px}.contact-methods a{font-size:clamp(1rem,2.2vw,1.45rem);font-weight:650;overflow-wrap:anywhere}.contact-hero .hero-copy h1{max-width:560px}.privacy{max-width:820px}.privacy h3{font-size:1.1rem;margin-top:27px}.privacy p,.privacy li{font-size:.92rem}.privacy ul{color:#4a5f55}.source-note{font-size:.78rem;margin-top:25px}.source-note a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}body.menu-open .header{background:#0c1415}
@media(max-width:1050px){.navlinks{gap:17px;font-size:.8rem}.brand-word{font-size:1.3rem}.hero-grid{gap:28px;grid-template-columns:1fr .9fr}.form-panel{padding:24px}.split{gap:32px}}
@media(max-width:800px){html{scroll-padding-top:95px}.topline{display:none}.nav{min-height:78px}.menu-toggle{display:block}.navlinks{display:none;position:absolute;left:0;right:0;top:100%;background:#0c1415;border-bottom:1px solid #4a5e4e;padding:20px 4%;font-size:1rem;flex-direction:column;align-items:stretch;gap:5px}.navlinks.open{display:flex}.navlinks a{padding:12px}.navlinks .nav-contact{border:0;padding:12px}.hero{padding:27px 0 42px}.hero-grid,.split,.services,.footer-grid{grid-template-columns:1fr}.hero-copy,.form-panel,.hero-photo{grid-column:auto;grid-row:auto}.hero-grid{gap:27px}.hero-copy h1{font-size:2.5rem;max-width:570px}.hero-copy .lead{font-size:1.04rem}.proof-link{font-size:.66rem;margin-bottom:16px}.checks{font-size:.8rem;gap:7px 14px;margin-bottom:18px}.phone-line{font-size:.96rem;margin-bottom:19px}.hero-copy .btn{font-size:.85rem;padding:12px 17px}.hero-photo img{height:240px}.form-panel{scroll-margin-top:95px;padding:25px}.proof-grid{gap:18px}.proof-item{display:block}.proof-item+div{padding-left:18px}.proof-icon{display:none}.proof-item strong{font-size:1rem}.proof-item span{font-size:.75rem}.section{padding:52px 0}.section-intro{display:block;margin-bottom:26px}.section-intro p{margin-top:18px;max-width:600px}.split{gap:30px}.service-card{padding:26px}.service-card .number{margin-bottom:22px}.service-card h3{font-size:1.5rem}.steps{grid-template-columns:1fr;gap:24px;margin-top:26px}.steps h3{margin-top:8px}.quote-feature{padding-left:24px}.quote-feature blockquote{font-size:1.65rem}.coverage{padding:27px}.feature-photo{max-width:460px}.footer-grid{gap:28px}.footer-bottom{display:block}.footer-bottom a{display:inline-block;margin-top:10px}.jumps{gap:12px 22px;font-size:.8rem}.service-page{padding-bottom:82px}.sticky-actions{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:70;gap:10px;padding:10px 4% calc(10px + env(safe-area-inset-bottom));border-top:1px solid #435b49;background:#0b1415f7}.sticky-actions .btn{flex:1;font-size:.88rem;padding:11px 13px}.service-page:has(input:focus) .sticky-actions,.service-page:has(textarea:focus) .sticky-actions,.service-page:has(select:focus) .sticky-actions,.keyboard-open .sticky-actions{display:none}.contact-methods{margin:24px 0 0}.crumb{font-size:.75rem;margin-bottom:20px}.final{padding:48px 0}.form-panel .eyebrow{font-size:.65rem}.registration{padding:26px}.registration .registration-name{font-size:2rem}}
@media(max-width:380px){.brand-word{font-size:1.18rem}.brand-word small{font-size:.5rem}.brand{gap:8px}.brand-icon{width:41px;height:43px}.brand-icon img{left:-43px;top:-34px}.menu-toggle{font-size:.8rem;padding:8px 10px}.hero-copy h1{font-size:2.3rem}.name-row{grid-template-columns:1fr;gap:0}.form-panel{padding:20px}.hero-copy .actions{gap:9px}.hero-copy .btn{padding-inline:13px;font-size:.8rem}.proof-item strong{font-size:.9rem}.registration dl div{display:block}.registration dd{text-align:left}.service-card{padding:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Frame the supplied mark without the small wordmark beneath it. */
.brand-icon img{clip-path:inset(0 0 42% 0)}

/* The supplied van is the homepage backdrop; keep copy and enquiry controls clear. */
.hero-home{position:relative;isolation:isolate;overflow:hidden;padding-block:54px}
.hero-backdrop{position:absolute;inset:0;z-index:-2;background:#0c1415}
.hero-backdrop img{width:100%;height:100%;object-fit:cover;object-position:center 58%}
.hero-home:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,16,16,.92) 0%,rgba(7,16,16,.79) 37%,rgba(7,16,16,.3) 75%),linear-gradient(0deg,rgba(7,16,16,.65),transparent 55%)}
.hero-home .hero-grid{align-items:start}
.hero-home .hero-copy{padding-top:12px}
.hero-home .form-panel{grid-row:1}
.hero-home .lead,.hero-home .phone-line,.hero-home .checks{color:#f0f4ef}
.emergency-callout{border-left:3px solid var(--green);padding:17px 20px;background:#0c1415bd;border-radius:0 12px 12px 0;margin-top:32px;max-width:510px}
.emergency-callout .eyebrow{display:block;margin-bottom:8px}
.emergency-callout p{color:#eef3ed;font-size:.94rem;margin:0}
.emergency-callout a{font-weight:750}
.home-reviews{padding-block:58px}
.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.review-card{display:flex;flex-direction:column;background:#fff;border:1px solid #d6dfcf;border-radius:18px;padding:27px}
.review-rating{display:flex;flex-wrap:wrap;align-items:center;gap:8px 13px;margin-bottom:18px}
.review-rating span:first-child{color:#536d04;letter-spacing:3px;font-size:1.15rem}
.review-rating span:last-child{font-size:.72rem;font-weight:750;color:#40552a}
.review-card blockquote{margin:0 0 22px;font-size:.97rem;line-height:1.7;color:var(--ink)}
.review-card figcaption{margin-top:auto;font-weight:750;font-size:.86rem;color:var(--ink)}
.facebook-review{display:grid;grid-template-columns:1fr auto;align-items:center;gap:30px;margin-top:22px;padding:26px 30px;background:#e6ecd9;border-radius:18px}
.facebook-review .eyebrow{margin-bottom:10px}
.facebook-review blockquote{margin:0;font-size:1.06rem;line-height:1.6}
.facebook-review figcaption{font-size:.8rem;display:grid;gap:3px}
.facebook-review figcaption a{margin-top:6px}
@media(max-width:800px){.hero-home{padding-block:30px 40px}.hero-home .hero-copy{padding-top:0}.hero-home .form-panel{grid-row:auto}.hero-backdrop{height:740px}.hero-backdrop img{object-position:48% center}.hero-home:after{background:linear-gradient(90deg,#071010cc,#0710107a),linear-gradient(0deg,#0c1415 0%,#0c1415 36%,transparent 70%)}.emergency-callout{margin-top:24px;padding:15px 17px}.home-reviews{padding-block:44px}.reviews-grid{grid-template-columns:1fr;gap:15px}.review-card{padding:24px}.facebook-review{grid-template-columns:1fr;padding:24px;gap:19px}}

/* Service-page customer feedback keeps the source review context intact. */
.hero-review-link{display:block;color:var(--green);font-size:.82rem;margin:-5px 0 22px;text-underline-offset:4px}
.hero-review-link span{letter-spacing:2px;margin-right:8px}
.service-reviews .actions{margin-top:26px}
.service-reviews{scroll-margin-top:110px}

/* Service quote calculators: accessible native controls and a live total. */
.quote-engine{display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:start}
.quote-engine [hidden],.enquiry-estimate[hidden]{display:none!important}
.quote-questions{display:grid;gap:25px}
.quote-questions fieldset{border:0;padding:0;margin:0;min-width:0}
.quote-questions legend{font-size:1.12rem;font-weight:700;line-height:1.45;margin-bottom:16px;padding:0}
.quote-questions legend>span{color:var(--green);font-size:.8rem;margin-right:9px}
.quote-questions .field{max-width:220px;color:#fff}
.quote-questions input[type=number]{background:#fff;color:var(--ink);width:100%;border:1px solid #98aa9c;border-radius:9px;padding:13px}
.quote-choices{display:flex;flex-wrap:wrap;gap:10px}
.quote-choices label{position:relative;cursor:pointer;flex:1;min-width:100px}
.quote-choices input{position:absolute;opacity:0;width:1px;height:1px}
.quote-choices span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:56px;height:100%;padding:12px;border:1px solid #617565;border-radius:12px;color:#f4f6ef;background:#192624;font-size:.94rem;font-weight:650}
.quote-choices input:checked+span{color:var(--ink);background:var(--green);border-color:var(--green)}
.quote-choices input:focus-visible+span{outline:3px solid #69bdd9;outline-offset:4px}
.quote-hint{font-size:.8rem;margin:12px 0 0}
.quote-result{background:var(--paper);color:var(--ink);border-radius:22px;padding:30px}
.quote-result p{color:#40564b}.quote-result .eyebrow{color:#456119}
.quote-price{font-size:3.2rem;font-weight:800;line-height:1.15;letter-spacing:-.05em;margin:0 0 4px}
.quote-vat{font-size:.85rem;margin-bottom:22px}
.quote-empty{font-size:1.25rem;line-height:1.4}
.quote-note{font-size:.83rem}.quote-result .btn{width:100%;font-size:.88rem}
.enquiry-estimate{padding:14px;border:1px solid #b9cc9d;border-radius:10px;background:#e6efd9;color:var(--ink);font-size:.83rem;margin:20px 0;overflow-wrap:anywhere}
@media(max-width:800px){.quote-engine{grid-template-columns:1fr;gap:28px}.quote-result{padding:25px}.quote-questions legend{font-size:1.04rem}.quote-price{font-size:2.8rem}.quote-choices label{min-width:85px}.quote-choices span{font-size:.85rem}}

.hero-credentials{display:flex;flex-wrap:wrap;gap:10px 20px;margin-bottom:20px}.hero-credentials .proof-link{margin-bottom:0}
