/* C&D Areas We Cover. Scoped to .area-site; load AFTER services.css. */
.area-site{--area-dark:#102c28;--area-deep:#09231f;--area-lime:#c5d35c;--area-teal:#00b6a5;--area-line:#dce8e3;--area-muted:#657b73;color:#243d36;overflow:hidden;background:#fff}
.area-site *{box-sizing:border-box}
.area-site :where(h1,h2,h3,h4){font-family:Manrope,'DM Sans',sans-serif;letter-spacing:-.04em}
.area-site :where(section[id],div[id]){scroll-margin-top:20px}
.area-site a:focus-visible,.area-site button:focus-visible,.area-site input:focus-visible,.area-site summary:focus-visible{outline:3px solid #00b6a5;outline-offset:4px}
.area-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 78% 42%,#255a52 0%,transparent 47%),linear-gradient(125deg,#0f2623,#183b35 67%,#102925);color:#fff}
.area-hero:after{content:"";position:absolute;inset:auto 0 0;height:4px;background:linear-gradient(90deg,var(--area-teal),var(--area-lime),var(--area-teal))}
.area-hero__inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:clamp(30px,5vw,90px);padding-top:43px;padding-bottom:75px;align-items:center;min-height:650px}
.area-hero__copy{position:relative;z-index:1}.area-hero .svc-crumbs{margin:0 0 64px}.area-hero h1{font-size:clamp(42px,5.6vw,78px);font-weight:850;line-height:1.08;margin:0 0 26px;max-width:730px;color:#fff}.area-hero h1 span{color:var(--area-lime)}
.area-hero__lead{max-width:610px;color:#dceee6;font-size:16px;line-height:1.85;margin:0 0 30px}
.area-hero__buttons{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:38px}
.area-hero__based{display:flex;align-items:center;gap:13px;color:#d2e8df;font-size:12px;border-top:1px solid rgba(255,255,255,.16);max-width:535px;padding-top:24px}
.area-hero__based strong,.area-hero__based small{display:block}.area-hero__based strong{color:#fff;font-size:13px;margin-bottom:3px}.area-hero__based small{color:#c8dfd6;font-size:12px}.area-hero__pin{display:grid;place-items:center;height:43px;width:43px;border-radius:10px;border:1px solid rgba(0,182,165,.65);font-size:26px;color:#51e6d2}
.area-hero__visual{position:relative;padding:30px 15px;text-align:center;min-width:0}.area-hero__visual>p{color:#c7ded4;font-size:10.5px;line-height:1.65;max-width:330px;margin:18px auto 0}
.area-radius-graphic{display:grid;place-items:center;max-width:430px;aspect-ratio:1/1;margin:auto}.area-radius-graphic__outer{position:relative;aspect-ratio:1;width:100%;border-radius:50%;border:1px solid rgba(197,211,92,.42);background:radial-gradient(circle at 50% 48%,rgba(0,182,165,.18) 0%,transparent 50%),rgba(255,255,255,.027);display:grid;place-items:center;box-shadow:0 0 0 15px rgba(255,255,255,.017),0 0 0 32px rgba(255,255,255,.013)}
.area-radius-graphic__outer:after{content:"";position:absolute;inset:13%;border:1px dashed rgba(197,211,92,.23);border-radius:50%;pointer-events:none}
.area-radius-graphic__inner{position:relative;z-index:1;display:grid;place-items:center;width:57%;aspect-ratio:1;border:1px solid rgba(0,220,197,.7);border-radius:50%;background:rgba(0,182,165,.08);box-shadow:0 0 0 9px rgba(0,182,165,.05)}
.area-radius-graphic__outer-label,.area-radius-graphic__inner-label{font-family:Manrope,sans-serif;font-weight:800;letter-spacing:.045em;color:#e6f49a;text-align:center;position:absolute;line-height:1.2;white-space:nowrap;font-size:17px}.area-radius-graphic__outer-label small,.area-radius-graphic__inner-label small{font-size:8px;letter-spacing:.1em;color:#c6ded6}.area-radius-graphic__outer-label{top:12%}.area-radius-graphic__inner-label{bottom:11%;font-size:16px;color:#74f1dd}.area-radius-graphic__centre{font-weight:900;font-size:clamp(40px,5.3vw,73px);letter-spacing:-.09em;color:var(--area-lime);line-height:1}.area-radius-graphic__centre span{color:var(--area-teal)}.area-radius-graphic__centre small{display:block;font-size:9px;letter-spacing:.18em;color:#d2ebdd;text-align:center;margin-top:12px}
.area-section-intro{max-width:790px;margin-bottom:38px}.area-section-intro h2{font-size:clamp(31px,3.2vw,45px);line-height:1.17;margin:17px 0 18px;font-weight:800}.area-section-intro h2 em{font-style:normal;color:#009788}.area-section-intro p{font-size:14px;color:var(--area-muted);line-height:1.85;margin:0;max-width:710px}.area-section-intro--split{max-width:none;display:flex;justify-content:space-between;align-items:end;gap:40px}.area-section-intro--split>div{max-width:670px}.area-section-intro--split>p{max-width:340px;font-size:13px}
.area-explain{background:#fff;padding:98px 0 84px}.area-cover-cards{display:grid;grid-template-columns:1fr 1fr;gap:23px}.area-cover-card{border:1px solid var(--area-line);border-radius:18px;padding:35px 38px;background:#f7fbf8;position:relative;overflow:hidden}.area-cover-card:before{content:"";position:absolute;width:195px;height:195px;border:1px solid #d7eee5;border-radius:50%;right:-75px;top:-88px}.area-cover-card--commercial{background:#eaf7f2}.area-cover-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.area-cover-card__icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#e2f2bd;color:#326d53;font-size:25px}.area-cover-card__tag{font-size:10px;font-weight:800;letter-spacing:.12em;color:#108475}.area-cover-card__value{font-family:Manrope,sans-serif;font-weight:900;font-size:clamp(56px,6vw,88px);letter-spacing:-.08em;line-height:1.15;margin:21px 0 8px;color:#133c35}.area-cover-card__value span{font-size:23px;letter-spacing:-.04em}.area-cover-card h3{font-size:24px;margin:0 0 12px}.area-cover-card>p:not(.area-cover-card__value){font-size:13px;line-height:1.8;max-width:420px;color:#526b61;margin:0 0 22px}.area-cover-card>a{color:#057c6f;font-size:12.5px;font-weight:800;display:inline-flex;gap:13px}.area-cover-card>a:hover{text-decoration:underline}.area-explain__note{margin:20px 0 0;padding:14px 18px;border-left:3px solid var(--area-teal);color:#60766e;background:#f6faf8;font-size:12px;line-height:1.75}
.area-locations{padding:88px 0 100px;background:#f4f9f6}.area-finder{border:1px solid #d5e4dc;border-radius:20px;box-shadow:0 15px 45px rgba(20,64,48,.05);background:#fff;overflow:hidden}.area-finder__toolbar{padding:28px 32px;border-bottom:1px solid #e1ece6;background:#fff}.area-finder__toolbar>label{display:block;font-size:12px;font-weight:800;color:#294a3f;margin-bottom:10px}.area-finder__inputwrap{display:flex;align-items:center;gap:11px;border:1px solid #cbded5;border-radius:10px;min-height:54px;padding:0 14px;color:#089d8d}.area-finder__inputwrap:focus-within{border-color:#00b6a5;box-shadow:0 0 0 3px rgba(0,182,165,.1)}.area-finder__inputwrap input{font:inherit;width:100%;border:0;min-width:0;outline:none!important;background:transparent;color:#203b32;font-size:14px}.area-finder__inputwrap input::placeholder{color:#92a69e}.area-finder__inputwrap button{border:0;background:#e7f6ef;color:#086f64;border-radius:5px;font-weight:800;font-size:11px;padding:7px 10px;cursor:pointer}.area-finder__filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.area-finder__filters button{appearance:none;border:1px solid #d6e6dc;border-radius:999px;padding:10px 15px;background:#f5faf6;color:#435b51;font-size:12px;font-weight:800;cursor:pointer;transition:background .2s,border-color .2s}.area-finder__filters button:hover{border-color:#00b6a5}.area-finder__filters button[aria-pressed=true]{background:#173c36;color:#fff;border-color:#173c36}
.area-finder__groups{display:grid;grid-template-columns:1fr 1fr;gap:0}.area-finder__group{padding:30px 31px 33px;min-width:0}.area-finder__group+ .area-finder__group{border-left:1px solid #e1ece6}.area-finder__heading{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:26px}.area-finder__heading h3{font-size:22px;line-height:1.25;margin:11px 0 6px}.area-finder__heading p{font-size:11px;color:#768b80;margin:0;line-height:1.6}.area-finder__heading>a{color:#078c7e;font-size:11px;font-weight:800;white-space:nowrap;margin-top:6px}.area-finder__heading>a:hover{text-decoration:underline}.area-finder__type{display:inline-flex;align-items:center;border-radius:4px;background:#e6f1c2;color:#46642c;font-size:10px;font-weight:900;letter-spacing:.09em;padding:7px 9px}.area-finder__type--commercial{background:#d9f6ef;color:#087767}.area-finder__region{margin:21px 0}.area-finder__region h4{font-size:12px;font-weight:800;letter-spacing:.005em;color:#35584a;margin:0 0 12px}.area-finder__towns{padding:0;margin:0;list-style:none;display:flex;gap:8px;flex-wrap:wrap}.area-finder__towns li{border:1px solid #dae9e1;border-radius:7px;font-size:11.5px;font-weight:700;color:#38584e;background:#f7fbf8;padding:8px 10px}.area-finder__towns li[hidden],.area-finder__region[hidden],.area-finder__group[hidden],.area-finder__none[hidden]{display:none!important}.area-finder__none{text-align:center;background:#fff5ec;border-top:1px solid #f3d6b1;color:#765027;padding:20px;font-size:12px}.area-finder__support{margin:0;padding:17px 31px;border-top:1px solid #e1ece6;font-size:11px;color:#75897e;background:#fdfefc}
.area-locations__help{border:1px solid #d9e8d7;border-radius:16px;margin-top:25px;padding:23px 28px;background:#e9f5d9;display:flex;gap:20px;align-items:center}.area-locations__help>span{flex-shrink:0;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#c7db9f;color:#285b42;font-size:25px;font-weight:800}.area-locations__help>div{flex:1}.area-locations__help h3{font-size:18px;margin:0 0 5px}.area-locations__help p{font-size:12px;color:#516b55;margin:0;line-height:1.65}.area-locations__help>a{font-size:12px;font-weight:800;color:#086f62;white-space:nowrap}.area-locations__help>a:hover{text-decoration:underline}
.area-services{padding:94px 0 90px;background:#fff}.area-services__set{margin:55px 0}.area-services__set>h3{font-size:22px;margin:0 0 23px;color:#254a3e}.area-services .svc-cards{gap:20px}.area-services .svc-card__media{height:158px}.area-services .svc-card__content{padding:20px 20px 23px}.area-services__all{display:table;margin:12px auto 0;border-bottom:1px solid currentColor;font-weight:800;font-size:13px;color:#00796c;padding:0 0 7px}.area-services__all:hover{color:#0f433a}
.area-next{padding:75px 0;background:linear-gradient(110deg,#0f2a26,#1d5046);color:#fff;border-top:4px solid var(--area-teal)}.area-next__inner{display:flex;justify-content:space-between;align-items:center;gap:30px}.area-next h2{font-size:clamp(31px,4vw,48px);line-height:1.12;margin:16px 0}.area-next p{color:#cde3d8;max-width:680px;font-size:13px;margin:0}.area-next .svc-section-label{color:#d4e983}.area-next__actions{display:flex;flex-direction:column;gap:12px;min-width:225px}
.area-faq{background:#f7faf7;padding:92px 0 100px}.area-faq__inner{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,1.3fr);gap:clamp(40px,7vw,110px);align-items:start}.area-faq h2{font-size:clamp(33px,3.7vw,48px);line-height:1.2;margin:16px 0}.area-faq__inner>div>p{font-size:13px;color:#688076}.area-faq__link{display:inline-block;margin-top:13px;color:#008e7b;font-weight:800;font-size:12px;border-bottom:1px solid currentColor;padding-bottom:5px}.area-faq__questions details{border-bottom:1px solid #dae7df}.area-faq__questions details:first-child{border-top:1px solid #dae7df}.area-faq__questions summary{display:flex;justify-content:space-between;gap:15px;align-items:center;cursor:pointer;list-style:none;color:#2e4d40;font-weight:800;font-size:14px;padding:22px 0}.area-faq__questions summary::-webkit-details-marker{display:none}.area-faq__questions summary span{flex-shrink:0;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#e3f3e8;color:#078e7e;font-size:20px}.area-faq__questions details[open] summary span{transform:rotate(45deg)}.area-faq__questions details p{color:#61776b;font-size:13px;line-height:1.8;margin:0 0 23px}
@media(max-width:1130px){.area-finder__groups{grid-template-columns:1fr}.area-finder__group+.area-finder__group{border-left:0;border-top:1px solid #e1ece6}.area-services .svc-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.area-hero__inner{grid-template-columns:1.05fr .95fr;gap:20px}}
@media(max-width:840px){.area-hero__inner{grid-template-columns:1fr;gap:15px;padding-top:30px;padding-bottom:50px}.area-hero .svc-crumbs{margin-bottom:38px}.area-hero__visual{padding:5px 0 20px}.area-radius-graphic{max-width:330px}.area-section-intro--split{display:block}.area-section-intro--split>p{max-width:650px}.area-cover-cards{grid-template-columns:1fr}.area-faq__inner{grid-template-columns:1fr}.area-next__inner{flex-direction:column;align-items:stretch}.area-next__actions{flex-direction:row}.area-services .svc-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){.area-hero h1{font-size:clamp(39px,9vw,54px)}.area-hero__lead{font-size:14px}.area-hero__buttons .svc-btn{width:100%}.area-explain,.area-locations,.area-services,.area-faq{padding:65px 0}.area-cover-card{padding:26px 23px}.area-cover-card__value{font-size:62px}.area-finder__toolbar,.area-finder__group{padding:22px 18px}.area-finder__heading{flex-direction:column;gap:6px}.area-finder__support{padding:15px 18px}.area-locations__help{flex-direction:column;text-align:center;padding:24px}.area-locations__help>a{white-space:normal}.area-services .svc-cards{grid-template-columns:1fr}.area-services__set{margin:40px 0}.area-services .svc-card__media{height:185px}.area-next__actions{flex-direction:column}.area-next__actions .svc-btn{width:100%}.area-faq{padding-bottom:75px}}
@media(prefers-reduced-motion:reduce){.area-site *{scroll-behavior:auto!important;transition:none!important}}

/* ---------------------------------------------------------
   Postcode coverage checker — /areas-we-cover/ only
   --------------------------------------------------------- */
.area-site{scroll-behavior:smooth}
.area-postcode{position:relative;isolation:isolate;padding:95px 0;background:#eaf4ee;overflow:hidden}
.area-postcode::before{content:"";position:absolute;width:480px;height:480px;top:-260px;left:-160px;border:1px solid rgba(0,150,130,.12);border-radius:50%;box-shadow:0 0 0 70px rgba(255,255,255,.10);z-index:-1}
.area-postcode__layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(32px,6vw,95px);align-items:start}
.area-postcode__intro{padding-top:42px;min-width:0}
.area-postcode__intro h2{font-size:clamp(37px,4.1vw,59px);font-weight:850;line-height:1.12;margin:19px 0 24px;color:#183d34}
.area-postcode__intro h2 em{font-style:normal;color:#009989}
.area-postcode__intro>p{color:#567367;font-size:14px;line-height:1.9;max-width:540px}
.area-postcode__intro>p strong{color:#294c41}
.area-postcode__distances{display:grid;gap:12px;margin:31px 0 22px;max-width:440px}
.area-postcode__distances span{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:750;color:#315d4b}
.area-postcode__distances b{display:inline-flex;justify-content:center;align-items:center;min-width:76px;padding:8px 10px;border-radius:9px;background:#d0e9bf;color:#163b2e;font:800 16px Manrope,'DM Sans',sans-serif}
.area-postcode__distances span+span b{background:#d4f3eb;color:#037668}
.area-postcode__intro>.area-postcode__disclaimer{font-size:12px;color:#6c8276;line-height:1.8}
.area-postcode__card{background:#fff;border:1px solid #cfe3d6;border-radius:24px;padding:clamp(23px,3vw,37px);box-shadow:0 24px 65px rgba(24,75,49,.10);min-width:0}
.area-postcode__card-top{display:flex;align-items:center;gap:15px;margin-bottom:28px}
.area-postcode__pin{display:grid;place-items:center;flex-shrink:0;width:54px;height:54px;background:#e6f4ce;border-radius:15px;font-size:32px;line-height:1;color:#216446}
.area-postcode__card-top strong{display:block;font-size:19px;letter-spacing:-.035em;color:#214439}
.area-postcode__card-top small{display:block;color:#798c82;font-size:12px;margin-top:4px}
.area-postcode__form label{display:block;font-size:12px;font-weight:800;color:#28463a;margin:0 0 10px}
.area-postcode__form label span{color:#007968}
.area-postcode__input-row{display:flex;gap:8px;align-items:stretch}
.area-postcode__input-row input{flex:1;min-width:0;width:100%;border:1px solid #c6dad1;border-radius:11px;background:#fbfdfc;color:#193e31;font:750 17px Manrope,'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.06em;padding:0 17px;height:56px}
.area-postcode__input-row input::placeholder{font-weight:500;letter-spacing:0;text-transform:none;color:#99a99e}
.area-postcode__input-row input:focus{border-color:#009f8c;outline:3px solid rgba(0,182,165,.18);outline-offset:0}
.area-postcode__input-row button{cursor:pointer;white-space:nowrap;border:0;border-radius:11px;background:#c5d35c;color:#203b2c;font-size:12px;font-weight:900;padding:0 19px;transition:background .18s ease,transform .18s ease}
.area-postcode__input-row button:hover{background:#d5e472;transform:translateY(-1px)}
.area-postcode__input-row button:disabled{opacity:.7;cursor:wait;transform:none}
.area-postcode__input-row button span{font-size:17px;padding-left:7px}
.area-postcode__hint{font-size:11px;color:#74867c;line-height:1.75;margin:12px 0 0}
.area-postcode__hint a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;color:#027f71}
.area-postcode__message{font-size:12px;line-height:1.6;border-radius:9px;padding:13px 14px;margin:15px 0 0;background:#fff4e9;color:#8b4917;border:1px solid #f0cba4}
.area-postcode__results{margin-top:23px;border-top:1px solid #e0eee5;padding-top:22px}
.area-postcode__results[hidden],.area-postcode__message[hidden],.area-postcode__boundary[hidden]{display:none!important}
.area-postcode__result-head{margin-bottom:19px}
.area-postcode__checked{display:inline-flex;color:#06766a;background:#e1f5ec;font-size:10px;letter-spacing:.07em;font-weight:850;border-radius:20px;padding:7px 11px;text-transform:uppercase;margin-bottom:13px}
.area-postcode__result-head strong{display:block;color:#173f32;font-size:18px;font-weight:850;line-height:1.4}
.area-postcode__result-head p{font-size:12px;line-height:1.65;color:#5d776b;margin:7px 0 0}
.area-postcode__result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.area-postcode__result{padding:18px;border:1px solid #d3e8d7;border-radius:13px;background:#effaf0}
.area-postcode__result[data-outcome=outside]{background:#fff7ed;border-color:#f0d7b2}
.area-postcode__result-type{display:block;font-size:10px;line-height:1.5;letter-spacing:.04em;font-weight:850;color:#547665;margin-bottom:9px}
.area-postcode__result-status{display:block;font-size:17px;line-height:1.2;font-weight:850;color:#16805a}
.area-postcode__result[data-outcome=outside] .area-postcode__result-status{color:#935820}
.area-postcode__result p{font-size:11px;line-height:1.65;color:#587166;margin:8px 0 0}
.area-postcode__result[data-outcome=outside] p{color:#835d37}
.area-postcode__boundary{margin:15px 0 0;padding:11px 13px;background:#eef6fa;border:1px solid #d6e5ee;border-radius:10px;color:#476474;font-size:11px;line-height:1.65}
.area-postcode__actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:19px}
.area-postcode__contact{display:inline-flex;align-items:center;gap:10px;padding:13px 16px;border-radius:9px;background:#143c34;color:#fff!important;font-size:11px;font-weight:800;text-decoration:none}
.area-postcode__contact:hover{background:#006a5b}
.area-postcode__report{color:#007b6d!important;font-weight:800;font-size:11px;text-underline-offset:3px}
.area-postcode__card-foot{margin-top:25px;padding-top:15px;border-top:1px solid #edf2ee;font-size:10.5px;line-height:1.6;color:#829388}
.area-postcode__card-foot>span{color:#00a991;font-size:9px;margin-right:6px}
@media(max-width:980px){.area-postcode__layout{grid-template-columns:1fr;gap:28px}.area-postcode__intro{padding-top:0}.area-postcode__intro>p{max-width:800px}}
@media(max-width:600px){.area-postcode{padding:65px 0}.area-postcode__card{padding:21px 18px}.area-postcode__input-row{flex-direction:column}.area-postcode__input-row button{min-height:52px}.area-postcode__result-grid{grid-template-columns:1fr}.area-postcode__intro h2{font-size:38px}.area-postcode__actions{flex-direction:column;align-items:stretch}.area-postcode__contact{justify-content:center}.area-postcode__report{text-align:center;padding:8px 0}}

/* Smooth anchor navigation on this page; respect reduced-motion preferences. */
html:has(.area-site){scroll-behavior:smooth;scroll-padding-top:90px}
@media(prefers-reduced-motion:reduce){html:has(.area-site){scroll-behavior:auto}}
