:root{--green:#075237;--dark:#063522;--gold:#ffd15a;--ink:#102b20;--muted:#293e32;--line:#bdcfc1;--paper:#edf5ee}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-size:16px;line-height:1.65}a{color:inherit}img{max-width:100%;display:block}h1,h2,h3,p,figure{margin:0}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.05;letter-spacing:-.04em}h1{font-size:clamp(3.4rem,5.4vw,5.5rem)}h2{font-size:clamp(2.5rem,4vw,4rem)}h3{font-size:1.35rem;line-height:1.3;font-weight:600;letter-spacing:-.02em}p{color:var(--muted)}a:focus-visible,summary:focus-visible{outline:3px solid #a17b27;outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;z-index:10;background:white;padding:10px}.skip:focus{top:10px}.wrap{max-width:1240px;padding-left:44px;padding-right:44px;margin:auto}.topbar{background:var(--green);color:white;padding:9px 4%;display:flex;justify-content:space-between;font-size:.875rem}.topbar a{text-decoration:none}.header{padding:22px 4%;display:flex;align-items:center;justify-content:space-between;background:#fff;gap:20px}.brand img{width:230px;height:auto}.header nav{display:flex;gap:32px;align-items:center}.header nav>a{text-decoration:none;font-size:.9rem}.header nav>a:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--green);color:white;padding:16px 24px;text-decoration:none;font-weight:600;border:1px solid transparent;line-height:1.4;min-height:48px;transition:background .2s}.button:hover{background:#285840}.button.small{padding:13px 21px}.button.gold{background:var(--gold);color:var(--dark)}.button.gold:hover{background:#efd396}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:630px;background:var(--green);color:#fff}.hero-copy{padding:64px 7.5% 40px 8%}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.16em;line-height:1.5;color:var(--green);margin-bottom:22px}.hero .eyebrow,.contact .eyebrow{color:var(--gold)}h1 em,h2 em{font-weight:400;color:var(--gold)}.hero-intro{font-size:1.05rem;max-width:460px;color:#fff;line-height:1.8;margin-top:26px}.actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:30px}.text-link{font-size:.9rem;text-underline-offset:6px}.hero-trust{display:flex;gap:20px;font-size:.8rem;color:#fff;margin-top:42px;flex-wrap:wrap}.hero-trust span::before{content:'✓';color:var(--gold);padding-right:7px}.hero-photo{position:relative;min-width:0}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:37% center;position:absolute}.hero-photo:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#081c15aa)}.photo-label{position:absolute;bottom:35px;left:35px;right:24px;z-index:1;border-left:2px solid var(--gold);padding-left:20px}.photo-label span{font-size:.7rem;letter-spacing:.12em}.photo-label p{font-family:Georgia,serif;font-size:1.8rem;color:white;margin-top:8px;line-height:1.2}.service-strip{display:flex;justify-content:space-around;gap:20px;padding:24px 5%;border-bottom:1px solid var(--line);font-size:.875rem;letter-spacing:.03em}.section{padding-top:96px;padding-bottom:96px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:42px}.section-heading>p{max-width:370px}.services{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.services article{padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.services article:hover{background:var(--paper)}.number{font-family:Georgia,serif;font-size:1.2rem;color:#6f785f;display:block;margin-bottom:28px}.services p{margin-top:16px;min-height:104px}.services a{display:inline-block;margin-top:22px;color:var(--green);font-size:.9rem;text-underline-offset:5px}.work-section{background:var(--paper);padding:90px 0}.projects{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 24px}.project img{height:310px;width:100%;object-fit:cover}.project.wide img{object-position:30%}.project figcaption{padding-top:22px}.project figcaption>span{font-size:.72rem;letter-spacing:.13em;color:var(--muted)}.project h3{font-family:Georgia,serif;font-weight:400;font-size:1.6rem;margin-top:9px}.project p{font-size:.9rem;margin-top:10px}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-copy p+p{margin-top:20px}.lead{font-size:1.25rem;color:var(--ink)}.assurances{display:flex;gap:35px;border-top:1px solid var(--line);margin-top:30px;padding-top:25px}.assurances strong,.assurances span{display:block}.assurances span{font-size:.875rem;color:var(--muted)}.process{padding-bottom:90px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;border-top:1px solid var(--line);padding-top:30px}.steps article>span{font-size:.75rem;letter-spacing:.08em;color:var(--green)}.steps h3{font-size:1.2rem;margin:18px 0 13px}.steps p{font-size:.95rem}.coverage{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line)}.coverage p:not(.eyebrow){margin-top:22px;max-width:410px}.towns{display:flex;flex-wrap:wrap;gap:12px;align-content:center}.towns span{padding:10px 20px;border:1px solid var(--line);border-radius:50px;font-size:.9rem}.faq{padding-top:20px;padding-bottom:100px;display:grid;grid-template-columns:1fr 1fr;gap:70px}.faq h2{font-size:2.7rem}.faq details{border-bottom:1px solid var(--line);padding:20px 0}.faq summary{cursor:pointer;font-weight:600;padding-right:18px}.faq details p{margin-top:15px}.contact{background:var(--dark);color:white;padding:86px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact h2{font-size:clamp(3.5rem,5vw,5rem)}.contact p:not(.eyebrow){color:#fff;max-width:420px;margin-top:25px}.contact .contact-note{font-size:1rem}.contact-options{display:flex;flex-direction:column;justify-content:center;gap:16px}.contact-card{border:1px solid #a8bdae;padding:24px;text-decoration:none;display:block;transition:background .2s}.contact-card:hover{background:#244c39}.contact-card span{display:block;color:var(--gold);font-size:.75rem;letter-spacing:.12em}.contact-card strong{display:block;font-size:2rem;font-weight:600;color:#fff;margin:7px 0;line-height:1.4}.contact-card strong.email{font-size:clamp(1rem,1.65vw,1.35rem);overflow-wrap:anywhere}.contact-card small{color:#fff;font-size:.95rem}.text-message{color:var(--gold);font-weight:600;font-size:1rem;text-underline-offset:5px;margin-top:6px}footer{display:flex;justify-content:space-between;gap:25px;padding-top:32px;padding-bottom:32px;font-size:.875rem}footer p{margin-top:4px}footer a{white-space:nowrap}.mobile-contact{display:none}@media(min-width:1600px){.hero-copy{padding-left:max(8%,calc((100vw - 1400px)/2))}}@media(max-width:1000px){.header nav{gap:18px}.header nav>a{font-size:.85rem}.brand img{width:200px}.hero-copy{padding:50px 30px}.hero{min-height:620px}.services article{padding:25px}.services p{min-height:130px}.projects{grid-template-columns:1fr 1fr}.projects .wide{grid-column:1/-1}.projects .wide img{height:420px;object-position:center 40%}.about,.coverage,.faq,.contact-grid{gap:40px}.contact-card{padding:20px}}@media(max-width:700px){html{scroll-padding-top:20px}.wrap{padding-left:24px;padding-right:24px}.topbar{justify-content:center;padding:8px 16px;font-size:.75rem}.topbar>a{display:none}.header{padding:17px 22px;flex-wrap:wrap;gap:14px}.brand img{width:195px}.header nav{width:100%;justify-content:space-between;gap:10px}.header nav>a{font-size:.8rem}.header nav .button.small{padding:8px 10px;min-height:40px}.hero{grid-template-columns:1fr}.hero-copy{padding:44px 24px 34px}h1{font-size:3.65rem;line-height:1.04}.hero-intro{font-size:1rem;margin-top:23px}.actions{gap:20px;margin-top:26px}.actions .button{font-size:.9rem;padding:15px 19px}.hero-trust{gap:15px;font-size:.75rem;margin-top:32px}.hero-photo{height:350px}.hero-photo>img{object-position:35% 42%}.photo-label{left:24px;bottom:25px}.photo-label p{font-size:1.5rem}.service-strip{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:.8rem;padding:22px 24px;text-align:center}.section{padding-top:60px;padding-bottom:60px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:24px}.services{grid-template-columns:1fr 1fr}.services article{padding:22px 18px}.services h3{font-size:1.12rem}.services p{font-size:.9rem;min-height:0}.services a{font-size:.85rem;margin-top:16px}.number{margin-bottom:22px}.work-section{padding:60px 0}.projects{grid-template-columns:1fr;gap:36px}.projects .wide{grid-column:auto}.project img,.projects .wide img{height:300px}.project:not(.wide) img{object-position:center 38%}.about,.coverage,.faq,.contact-grid{grid-template-columns:1fr;gap:30px}.lead{font-size:1.12rem}.assurances{gap:24px}.assurances strong{font-size:.9rem}.assurances span{font-size:.8rem}.process{padding-bottom:60px}.steps{grid-template-columns:1fr;gap:28px}.steps h3{margin-top:10px}.coverage{padding-top:55px}.towns{gap:8px}.towns span{padding:8px 14px;font-size:.85rem}.faq{padding-top:10px;padding-bottom:60px}.faq h2{font-size:2.4rem}.contact{padding:60px 0}.contact h2{font-size:3.6rem}.contact-card strong.email{font-size:1.05rem}.contact-options{margin-top:10px}footer{display:block;padding-bottom:100px}footer a{display:inline-block;margin-top:18px}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:5;background:white;border-top:1px solid var(--line);padding:10px 16px max(10px,env(safe-area-inset-bottom));gap:10px}.mobile-contact a{flex:1;text-align:center;text-decoration:none;padding:11px;background:var(--green);color:white;font-weight:600;font-size:.9rem}.mobile-contact a+a{background:var(--gold);color:var(--dark)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Stronger colour and text hierarchy across the site. */
h2{color:var(--green);font-weight:700}h3{color:var(--green)}
.header nav>a{font-weight:700}.header nav>.button{color:#fff}
.eyebrow{color:var(--green);font-weight:800}
.hero h1{font-weight:700}.hero-intro,.hero-trust{font-weight:500}
.button{font-weight:800}.button:hover{background:#086a45}.button.gold:hover{background:#ffe18c}
.service-strip{background:var(--gold);color:var(--dark);font-weight:800;border-bottom:0}
.services article{border-top:4px solid var(--green);background:#fff}
.services article:hover{background:#e5f2e8}
.number{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;background:var(--gold);color:var(--dark);font-weight:700;border-radius:50%}
.services a{font-weight:700;text-decoration-thickness:2px}
.project{background:#fff;border-bottom:4px solid var(--green)}
.project figcaption{padding:22px 20px 24px}.project figcaption>span{color:var(--green);font-weight:800}.project h3{font-weight:700}
.steps article{border-top:4px solid var(--gold);padding-top:18px}.steps article>span{font-weight:800}
.assurances strong{color:var(--green)}.assurances span{color:var(--ink)}
.towns span{background:var(--green);color:#fff;border-color:var(--green);font-weight:700}
.faq summary{color:var(--green);font-weight:700}.faq details[open]{border-bottom-color:var(--green)}
.contact h2{color:#fff}.contact-card{border:2px solid var(--gold);background:#0a432e}.contact-card:hover{background:#075237}
.contact-card span{font-weight:800}.contact-card strong{color:#fff}.contact p:not(.eyebrow){font-weight:500}
footer strong{color:var(--green);font-weight:800}footer p{color:var(--ink)}footer a{color:var(--green);font-weight:700}
a:focus-visible,summary:focus-visible{outline-color:#b77900}

.photo-hero{position:relative;display:block;min-height:720px;isolation:isolate;overflow:hidden}
.hero-backdrops{position:absolute;inset:0;z-index:-2}.hero-backdrops img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 52%;opacity:0;transition:opacity 1.4s ease}.hero-backdrops img.active{opacity:1}
.photo-hero:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(3,28,17,.91),rgba(3,28,17,.55) 55%,rgba(3,28,17,.16))}
.photo-hero .hero-copy{max-width:850px;padding:85px 7% 100px}.photo-hero h1{color:white}.photo-hero .hero-intro{max-width:500px;font-weight:600}.hero-pause{position:absolute;bottom:24px;right:5%}
.slide-control{font:700 .9rem Arial,sans-serif;background:var(--green);color:white;border:2px solid var(--gold);padding:12px 16px;cursor:pointer;min-height:46px}.slide-control:hover{background:var(--dark)}.slide-control:focus-visible,.project-photo:focus-visible,.close-photo:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.showcase-controls{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:12px}.showcase-controls p{max-width:450px}.showcase-controls>div{display:flex;gap:8px;flex-shrink:0}
.projects{display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:var(--green) var(--line);padding:24px 10px 30px;scroll-padding-left:10px}
.projects .project{flex:0 0 calc((100% - 48px)/3);min-width:260px;scroll-snap-align:start;transition:transform .35s,box-shadow .35s}.project-photo{position:relative;display:block;width:100%;padding:0;border:0;background:var(--dark);cursor:zoom-in;overflow:hidden}.project-photo img{transition:transform .55s;width:100%;height:330px;object-fit:cover}.enlarge-hint{position:absolute;bottom:15px;right:15px;padding:7px 12px;background:var(--gold);color:var(--dark);font-weight:700;font-size:.8rem}
@media(hover:hover){.projects .project:hover{transform:translateY(-10px) scale(1.025);box-shadow:0 16px 30px #06352226}.project-photo:hover img{transform:scale(1.09)}}
#photo-dialog{padding:12px;background:var(--dark);color:white;border:1px solid var(--gold);max-width:94vw;max-height:92dvh;width:fit-content}#photo-dialog::backdrop{background:#00150de8}#photo-dialog>img{max-height:76dvh;max-width:88vw;object-fit:contain;margin:auto}#photo-dialog p{color:white;padding:14px 45px 6px 8px}.close-photo{position:absolute;right:18px;top:18px;background:var(--gold);color:var(--dark);border:0;width:44px;height:44px;font-size:22px;cursor:pointer}
@media(max-width:1000px){.projects .project{flex-basis:calc((100% - 24px)/2)}.showcase-controls{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.photo-hero{min-height:690px}.photo-hero .hero-copy{padding:55px 24px 100px}.photo-hero:before{background:linear-gradient(90deg,#031c11db,#031c118c)}.photo-hero h1{font-size:3.35rem}.hero-backdrops img{object-position:55% center}.projects .project{flex-basis:88%;min-width:0}.showcase-controls>div{flex-wrap:wrap}.project-photo img{height:320px}.showcase-controls p{font-size:.9rem}}
@media(prefers-reduced-motion:reduce){.hero-backdrops img,.projects .project,.project-photo img{transition:none}.projects .project:hover,.project-photo:hover img{transform:none}}
/* Explicit section colours keep text readable in the mobile viewer. */
html,body{background:#fff;color:var(--ink)}
#services{background:var(--green);max-width:none;padding-left:max(24px,calc((100% - 1152px)/2));padding-right:max(24px,calc((100% - 1152px)/2))}
#services .section-heading h2{color:#fff}
#services .section-heading .eyebrow{color:var(--gold)}
#services .section-heading>p{color:#fff;font-weight:600;font-size:1.08rem}
#services .services h3{text-transform:uppercase;font-weight:800;letter-spacing:.025em;color:var(--dark);font-size:1.18rem;overflow-wrap:normal}
#services .services p{color:#213b2d}
#services .services a{text-transform:uppercase;font-weight:800;font-size:.85rem;letter-spacing:.025em}
@media(max-width:700px){#services .services h3{font-size:1rem;line-height:1.4}#services .section-heading>p{font-size:1rem}#services .services a{font-size:.78rem}}

.enquiry-form{background:#fff;color:var(--ink);padding:28px;border-top:6px solid var(--gold);scroll-margin-top:24px}.enquiry-form h3{color:var(--green);font-size:1.5rem}.contact .enquiry-form p{color:#293e32;max-width:none;margin-top:14px}.enquiry-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0 18px}.enquiry-fields label{display:block;font-weight:700;font-size:.9rem;line-height:1.5}.enquiry-fields label>span{font-weight:400}.enquiry-fields input,.enquiry-fields select,.enquiry-fields textarea{display:block;width:100%;min-width:0;margin-top:7px;border:1px solid #71877a;border-radius:3px;background:#fff;color:#102b20;padding:12px;font:400 16px/1.4 Arial,sans-serif}.enquiry-fields textarea{resize:vertical}.enquiry-fields :is(input,select,textarea):focus{outline:3px solid var(--gold);outline-offset:2px}.full-field{grid-column:1/-1}.contact .enquiry-form .form-help{font-size:.85rem;font-weight:400;line-height:1.6;margin-bottom:20px}.enquiry-form .button{cursor:pointer;width:100%;font-size:1rem}.contact .enquiry-form #enquiry-status{font-size:.9rem;font-weight:600}.contact-grid{gap:50px;grid-template-columns:.85fr 1.15fr}@media(max-width:700px){.contact-grid{grid-template-columns:1fr;gap:30px}.enquiry-form{padding:22px 18px}.enquiry-fields{grid-template-columns:1fr}.enquiry-form h3{font-size:1.35rem}}

#analytics-choice[hidden]{display:none}#analytics-choice{position:fixed;bottom:90px;left:20px;right:20px;z-index:20;max-width:680px;margin:auto;padding:22px;background:#fff;color:var(--ink);border:3px solid var(--green);box-shadow:0 8px 40px #0005}#analytics-choice p{color:var(--ink);font-size:.9rem}#analytics-choice>div{display:flex;gap:12px;margin-top:15px;flex-wrap:wrap}#analytics-choice button{padding:12px 16px;border:2px solid var(--green);background:var(--green);color:#fff;font-weight:700;cursor:pointer}#analytics-choice #reject-analytics{background:#fff;color:var(--green)}#analytics-settings{display:block;margin-top:12px;background:none;border:0;padding:0;text-decoration:underline;color:var(--green);font:inherit;cursor:pointer}@media(max-width:700px){#analytics-choice{left:12px;right:12px;bottom:85px;padding:16px}}

.enquiry-trap{display:none!important}.enquiry-form button:disabled{cursor:wait;opacity:.7}.contact .enquiry-form #enquiry-status[data-state="success"]{color:#075237;border-left:4px solid #075237;padding-left:12px}.contact .enquiry-form #enquiry-status[data-state="error"]{color:#9b1c20;border-left:4px solid #9b1c20;padding-left:12px}

/* Front boundary project fills the opening section. */
.hero-backdrops.hero-single img{opacity:1;transition:none;object-position:center 36%}
.photo-hero:before{background:linear-gradient(90deg,rgba(3,28,17,.86),rgba(3,28,17,.57) 48%,rgba(3,28,17,.16) 75%)}
@media(max-width:700px){.hero-backdrops.hero-single img{object-position:65% 35%}.photo-hero:before{background:linear-gradient(90deg,rgba(3,28,17,.82),rgba(3,28,17,.56))}}
