:root{--ink:#080a08;--paper:#f5f4ee;--green:#20ef06;--muted:#aeb1a9;--line:#353832}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:125px}body{margin:0;background:var(--ink);color:var(--paper);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:6px}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.04;letter-spacing:-.045em}h1{font-size:clamp(58px,8.6vw,128px)}h1 em{color:var(--green);font-weight:400}h2{font-size:clamp(39px,4.5vw,68px)}h3{font-size:30px}p{color:#c5c8bf}.wrap{width:min(1280px,calc(100% - 112px));margin-inline:auto}.topline{height:38px;background:var(--green);color:#080a08;padding:0 4%;display:flex;justify-content:space-between;align-items:center;font-size:10px;font-weight:700;letter-spacing:.15em}header{padding:17px 4%;height:110px;display:flex;align-items:center;justify-content:space-between;gap:35px;border-bottom:1px solid var(--line);background:var(--ink);position:sticky;top:0;z-index:30}.logo{background:white;width:125px;padding:7px;flex-shrink:0}.logo img{width:100%;height:auto}header nav{display:flex;gap:30px;font-size:12px}header nav a{padding:8px 0;position:relative}header nav a[aria-current],header nav a:hover{color:var(--green)}.header-enquire{font-size:11px;letter-spacing:.09em;border-bottom:1px solid var(--green);padding:10px 0}.menu-toggle{display:none}.eyebrow{display:block;font-size:10px;font-weight:600;letter-spacing:.2em;line-height:1.6;color:var(--green);margin-bottom:27px}.hero{padding-block:75px 55px}.hero h1{max-width:1100px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;margin-top:40px;gap:30px}.hero-bottom p{font-size:15px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;background:var(--green);color:#080a08;padding:18px 25px;border:1px solid var(--green);font-size:12px;font-weight:700;letter-spacing:.02em;line-height:1.4}.button:hover{background:#a0ff8e;border-color:#a0ff8e}.button span{font-size:20px}.hero-photo{margin:0 4%}.hero-photo img{width:100%;height:550px;object-fit:cover;object-position:50% 48%}.hero-photo figcaption{display:flex;justify-content:space-between;padding:16px 0;color:#aeb1a9;font-size:9px;letter-spacing:.15em}.intro{display:grid;grid-template-columns:1fr 1.3fr;gap:35px 80px;padding-block:105px;border-bottom:1px solid var(--line)}.intro>.eyebrow{grid-column:1/-1;margin:0}.intro>div{max-width:480px}.intro p+p{margin-top:18px}.text-link{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;font-size:12px;border-bottom:1px solid var(--green);padding-block:9px;margin-top:24px}.text-link:hover{color:var(--green)}.service-intro{padding-block:100px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:45px}.service-row{display:flex;align-items:center;gap:35px;border-top:1px solid var(--line);padding:26px 0}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row>span:first-child{font-size:11px;color:var(--green);width:25px}.service-row h3{flex:1;font-size:clamp(28px,3vw,44px)}.service-row>span:last-child{color:var(--green);font-size:24px}.service-row:hover h3{color:var(--green)}.work-feature{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:center;padding-block:20px 100px}.work-feature img{width:100%;height:430px;object-fit:cover}.work-feature p{margin-top:25px;max-width:390px}.quote{padding-block:90px;border-block:1px solid var(--line);text-align:center}.quote blockquote{font:400 clamp(30px,3.2vw,48px)/1.3 Georgia,serif;letter-spacing:-.025em;max-width:850px;margin:20px auto 30px}.quote p{font-size:12px}.final-cta{text-align:center;padding-block:110px}.final-cta p{margin:24px auto 30px;max-width:480px;font-size:14px}footer{border-top:1px solid var(--line);padding-block:45px 70px;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:25px;font-size:12px}footer .footer-name{font:32px/.95 Georgia,serif;letter-spacing:-.03em}footer .footer-name i{color:var(--green);display:block}footer small{grid-column:1/-1;color:#83897e;font-size:10px;margin-top:25px}footer a:hover{color:var(--green)}.floating{position:fixed;bottom:20px;right:24px;background:var(--green);color:#080a08;padding:12px 20px;font-size:11px;font-weight:700;z-index:35;box-shadow:0 3px 20px #0005}.page-title{padding-block:80px 70px}.page-title p{max-width:510px;margin-top:30px}.service-detail{display:grid;grid-template-columns:80px 1fr;border-top:1px solid var(--line);padding:55px 0;gap:25px}.number{color:var(--green);font-size:13px;padding-top:10px}.service-detail h2{font-size:clamp(36px,4vw,56px)}.service-detail h3{font-size:23px;letter-spacing:-.02em;margin-top:25px}.service-detail p{max-width:680px;margin-top:15px}.faq{padding-top:70px}.faq h2{margin-bottom:35px}details{border-bottom:1px solid var(--line);padding:22px 0}summary{cursor:pointer;font-size:16px}details p{max-width:700px;margin-top:20px;font-size:14px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.gallery img{width:100%;height:540px;object-fit:cover}.gallery figcaption{color:var(--muted);letter-spacing:.1em;font-size:10px;margin-top:15px}.gallery .wide{grid-column:1/-1}.gallery .wide img{height:auto;max-height:620px}.gallery-note{font-size:12px;color:var(--muted);padding-top:35px}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about-layout>img{width:100%;max-height:710px;object-fit:cover}.about-layout p{margin-top:25px;font-size:15px}.enquiry-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:100px}.enquiry-layout form{display:grid;gap:25px}.enquiry-layout label{display:grid;gap:8px;font-size:12px;letter-spacing:.03em}input,select,textarea{width:100%;background:#131710;color:var(--paper);border:1px solid #454a41;border-radius:0;padding:16px;font-size:16px}input:focus,select:focus,textarea:focus{outline:1px solid var(--green);border-color:var(--green)}textarea{resize:vertical}aside{border-top:1px solid var(--green);padding-top:30px}aside p{font-size:14px;margin-top:20px}.phone{font-size:24px;display:block;margin-top:20px;color:var(--green)}hr{border:0;border-top:1px solid var(--line);margin-top:35px}ul{padding-left:20px;font-size:13px;line-height:2;color:#c5c8bf}.form-note{font-size:12px;color:var(--muted)}.muted{color:var(--muted)}.prose{max-width:800px}.prose h2{font-size:30px;margin:35px 0 20px}.prose p{font-size:15px;margin-bottom:15px}.skip{position:fixed;top:-100px;left:20px;background:var(--green);color:black;padding:10px;z-index:100}.skip:focus{top:10px}[hidden]{display:none!important}@media(min-width:1700px){.hero-photo{max-width:1450px;margin:auto}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media(max-width:850px){.wrap{width:calc(100% - 48px)}header{height:95px;padding:14px 24px}.logo{width:108px}header nav,.header-enquire{display:none}.menu-toggle{display:flex;align-items:center;gap:15px;border:0;color:var(--paper);background:none;font-size:11px;letter-spacing:.15em}.menu-toggle span{font-size:25px}#mobile-menu{position:fixed;top:95px;left:0;right:0;z-index:29;background:var(--ink);padding:30px 24px;border-bottom:1px solid var(--green);display:grid;gap:20px}#mobile-menu a{font:28px Georgia,serif}.topline{font-size:8px;letter-spacing:.09em;height:32px;justify-content:center}.topline>span{display:none}.hero{padding-block:52px 40px}.hero h1{font-size:clamp(59px,10.5vw,88px)}.hero-bottom{align-items:start;flex-direction:column;gap:25px;margin-top:28px}.hero-photo{margin-inline:0}.hero-photo img{height:470px;object-position:50% 45%}.hero-photo figcaption{padding-inline:24px;font-size:8px}.hero-photo figcaption span{display:none}.intro{padding-block:65px;grid-template-columns:1fr;gap:25px}.intro>div{max-width:100%}.eyebrow{margin-bottom:22px}.service-intro{padding-block:65px}.section-heading{align-items:start;flex-direction:column;gap:20px}.service-row{gap:18px;padding:24px 0}.work-feature{grid-template-columns:1fr;gap:32px;padding-bottom:65px}.work-feature img{height:310px}.work-feature p{max-width:none}.quote{padding-block:60px}.quote blockquote{margin-inline:0}.final-cta{padding-block:70px}.final-cta p{font-size:13px}.final-cta .button{font-size:11px;gap:20px}footer{grid-template-columns:1fr 1fr;padding-bottom:90px}footer .footer-name{grid-column:1/-1;margin-bottom:10px}.floating{right:14px;bottom:14px;padding:12px 16px}.page-title{padding-block:55px 45px}.page-title h1{font-size:clamp(48px,9vw,80px)}.page-title p{font-size:14px}.service-detail{grid-template-columns:30px 1fr;gap:15px;padding:35px 0}.service-detail h2{font-size:36px}.service-detail h3{font-size:21px;line-height:1.15}.service-detail p{font-size:14px}.gallery{gap:30px 14px}.gallery img{height:340px}.gallery figcaption{font-size:8px;letter-spacing:.06em}.gallery .wide img{min-height:210px;object-fit:cover}.about-layout{grid-template-columns:1fr;gap:40px}.about-layout>img{height:430px}.enquiry-layout{grid-template-columns:1fr;gap:60px}.enquiry-layout .button{width:100%}.prose h2{font-size:28px}}@media(max-width:390px){.wrap{width:calc(100% - 36px)}.hero h1{font-size:53px}.hero-photo img{height:400px}.gallery img{height:280px}.button{padding:16px 19px}}
/* Light editorial sections and a white brand header. */
header{background:#fff;color:#080a08;border-bottom-color:#dedfd9}header nav a[aria-current],header nav a:hover{color:#147600}.header-enquire{border-bottom-color:#148600}.logo{padding:0;width:125px}.menu-toggle{color:#080a08}
.intro,.quote{background:#fff;color:#10150f;width:100%;max-width:none;padding-left:max(56px,calc((100% - 1280px)/2));padding-right:max(56px,calc((100% - 1280px)/2));border-color:#e4e6df}.intro p,.quote p{color:#52584d}.intro .eyebrow,.quote .eyebrow{color:#277615}.intro .text-link{border-color:#277615}.intro .text-link:hover{color:#277615}
.faq,.enquiry-layout,.prose{background:#fff;color:#10150f;width:100%;max-width:none;padding:65px max(56px,calc((100% - 1280px)/2))}.faq .eyebrow,.enquiry-layout .eyebrow{color:#277615}.faq details{border-color:#d7dacf}.faq p,.enquiry-layout p,.enquiry-layout ul,.prose p{color:#52584d}.enquiry-layout input,.enquiry-layout select,.enquiry-layout textarea{background:#f7f8f4;border-color:#b6bdad;color:#151a12}.enquiry-layout aside{border-color:#277615}.enquiry-layout .phone{color:#277615}.enquiry-layout hr{border-color:#d7dacf}.prose{padding-top:15px;padding-bottom:55px}.prose p{max-width:800px}
.floating{width:58px;height:58px;padding:14px;background:#25d366;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px #0004}.floating img{width:100%;height:100%}.floating:hover{background:#1bbb58}
@media(max-width:850px){.logo{width:108px}.intro,.quote{padding-inline:24px}.faq,.enquiry-layout,.prose{padding:50px 24px}.floating{width:54px;height:54px;padding:13px}}
@media(max-width:390px){.intro,.quote,.faq,.enquiry-layout,.prose{padding-inline:18px}}
/* Consistent geometric sans-serif typography. */
@font-face{font-family:FreshGothic;src:url('assets/gothic-regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:FreshGothic;src:url('assets/gothic-semibold.otf') format('opentype');font-weight:600 900;font-style:normal;font-display:swap}
body,input,select,textarea,button,h1,h2,h3,.quote blockquote,footer .footer-name,#mobile-menu a{font-family:FreshGothic,Arial,sans-serif}h1,h2,h3{font-weight:600;letter-spacing:-.055em;line-height:1.08}h1 em{font-weight:600;font-style:normal}footer .footer-name i{font-style:normal}.quote blockquote{font-weight:400;line-height:1.4;letter-spacing:-.035em}.hero h1{font-size:clamp(56px,7.8vw,116px)}.hero-bottom p{line-height:1.8}header nav{font-size:13px}#mobile-menu a{font-weight:600;letter-spacing:-.03em}
@media(max-width:850px){.hero h1{font-size:clamp(49px,9.3vw,78px)}.page-title h1{font-size:clamp(43px,8.5vw,70px)}.hero .eyebrow{font-size:9px;letter-spacing:.14em}.hero{padding-top:46px}}
@media(max-width:390px){.hero h1{font-size:48px}}
.booking-steps{display:flex;list-style:none;padding:0;margin:0 0 35px;gap:8px;border-bottom:1px solid #d7dacf}.booking-steps li{flex:1;padding:0 0 14px;color:#68725f;font-size:12px}.booking-steps li[aria-current]{color:#1d6810;border-bottom:3px solid #1d6810;font-weight:600}.booking-main{min-width:0}.booking-main h2{font-size:clamp(30px,3vw,43px);margin-bottom:18px}.booking-main .step-intro{margin-bottom:28px;font-size:14px}.item-picker{padding:22px;background:#f1f4ec;display:grid;gap:14px}.item-picker>label{font-size:13px}.item-picker>.button{justify-self:start}.size-guide{margin-bottom:20px}.size-guide summary{font-size:13px}.booking-item{padding:22px 0;border-bottom:1px solid #d7dacf;display:grid;gap:18px}.item-heading{display:flex;gap:20px;align-items:start;justify-content:space-between}.item-heading h3{font-size:23px;line-height:1.2;letter-spacing:-.035em}.remove-item{padding:0;background:none;border:0;border-bottom:1px solid #7c8374;color:#4e5845;font-size:12px}.item-fields{display:grid;grid-template-columns:95px 1fr;gap:16px}.empty-items{font-size:13px;padding:22px 0}.booking-main .next-step{margin-top:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px 16px}.form-grid .full{grid-column:1/-1}.step-actions{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:25px;flex-wrap:wrap}.secondary{background:none;border:0;border-bottom:1px solid #47643b;color:#23391a;padding:8px 0;font-size:13px}.booking-review{background:#f1f4ec;padding:24px;margin-block:20px}.booking-review pre{font:14px/1.8 FreshGothic,Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;margin:0;color:#23301b}.field-error{color:#a02112!important;font-size:14px;margin-top:15px}.booking-main .form-note{margin-top:24px}.booking-aside h2{font-size:46px}@media(max-width:850px){.enquiry-layout{gap:60px}.booking-steps li{font-size:11px}.item-picker{padding:18px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.booking-item{padding-block:24px}.booking-main .button{width:auto;max-width:100%}.step-actions .button{flex:1}.booking-review{padding:18px}.booking-review pre{font-size:13px}.item-fields{grid-template-columns:80px minmax(0,1fr)}.booking-aside{padding-top:25px}.booking-main h2{font-size:32px}}
.hero h1{font-size:clamp(52px,7.2vw,104px)}
@media(max-width:850px){.hero h1{font-size:clamp(39px,8.8vw,70px)}}
.hero .eyebrow{font-size:12px}
@media(max-width:850px){.hero .eyebrow{font-size:11px;letter-spacing:.12em}}
.hero h1.two-line-heading{font-size:min(7.2vw,104px);line-height:1.15}
.two-line-heading>span,.two-line-heading>em{display:block;white-space:nowrap}
.hero h1.two-line-heading{font-size:min(8.5vw,112px);letter-spacing:-.055em;line-height:1.18}
.hero-bottom .hero-description{font-size:15px;line-height:1.6;max-width:560px}
.hero-description>span{display:block;text-wrap:balance}
.hero-description>span+span{margin-top:6px}
@media(max-width:850px){.hero-bottom{margin-top:27px;gap:25px}.hero-bottom .hero-description{font-size:13px;line-height:1.65;max-width:100%}.hero .eyebrow{margin-bottom:24px}}
.intro h2{font-size:clamp(34px,4vw,60px);line-height:1.12}
.hero-bottom>.button{width:max-content;max-width:100%;padding:10px 18px;gap:18px;min-height:44px}
.hero-bottom>.button span{font-size:17px;line-height:1}
@media(max-width:850px){.intro h2{font-size:34px}}
.final-cta h2{font-size:clamp(29px,4vw,58px);line-height:1.15}
.footer-details>span{display:block}
footer{font-size:11px}
@media(max-width:850px){
.final-cta h2{font-size:29px;letter-spacing:-.045em}
footer{grid-template-columns:1fr;gap:18px;font-size:11px}
footer .footer-name,footer small{grid-column:auto}
.footer-details>span{white-space:nowrap}
footer>div a{display:inline-block;line-height:2}
.menu-toggle{font-size:10px;letter-spacing:.12em;min-height:44px}
.menu-toggle span{font-size:22px}
#mobile-menu{gap:8px;padding:18px 24px}
#mobile-menu a{font-size:20px;line-height:1.4;min-height:44px;display:flex;align-items:center}
}
.menu-toggle{font-weight:700}
@media(max-width:850px){
.home-page main h2{font-size:29px;line-height:1.15;letter-spacing:-.045em}
}
/* Shared heading scale across every page. */
:root body main .page-title h1,:root body main h2{font-size:clamp(29px,4vw,58px);line-height:1.15;letter-spacing:-.045em}
:root body main h3{font-size:clamp(22px,2.5vw,30px);line-height:1.2;letter-spacing:-.035em}
@media(max-width:850px){
:root body main .page-title h1,:root body main h2{font-size:29px}
:root body main h3{font-size:22px}
}
.quote{position:relative;isolation:isolate;overflow:hidden}
.quote::before{content:"";position:absolute;inset:0;background:url('assets/review-logo.png') center center / min(82%,660px) auto no-repeat;opacity:.1;pointer-events:none;z-index:-1}
@media(max-width:850px){.quote::before{background-size:96% auto}}
.single-line-title{white-space:nowrap}
.faq{position:relative;isolation:isolate;overflow:hidden}
.faq::before{content:"";position:absolute;inset:0;background:url('assets/review-logo.png') center center / min(82%,660px) auto no-repeat;opacity:.1;pointer-events:none;z-index:-1}
@media(max-width:850px){.faq::before{background-size:96% auto}}
@media(max-width:380px){:root body main .page-title h1.single-line-title{font-size:26px}}
/* Keep watermarks above the section background and beneath the content. */
.quote::before,.faq::before{z-index:0;opacity:.2;background-size:90% auto}
.quote>*,.faq>*{position:relative;z-index:1}
@media(min-width:851px){.quote::before,.faq::before{background-size:640px auto}}
.service-areas{padding-block:65px;border-top:1px solid var(--line)}
.service-areas ul{padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:10px 25px;margin:28px 0 20px;color:var(--paper);font-size:15px}
.service-areas li{border-bottom:1px solid #454a41;padding-bottom:4px}
.service-areas p{font-size:14px;max-width:650px}
/* A brighter, quieter first impression. */
.home-page{--paper:#172319;--ink:#172319;--green:#237a24;--muted:#667168;--line:#dce3dc;background:#fff;color:#172319}
.home-page p{color:#566058}
.home-page header{border-bottom-color:#e6ebe5}
.home-page .hero{padding-top:58px;padding-bottom:46px}
.home-page .hero .eyebrow{color:#2c7331;letter-spacing:.13em}
.home-page .hero h1{color:#172319}
.home-page .hero h1 em{color:#237a24}
.home-page .button{background:#237a24;border-color:#237a24;color:#fff;border-radius:4px}
.home-page .button:hover{background:#195e1b;border-color:#195e1b}
.home-page .hero-photo img{border-radius:6px}
.home-page .hero-photo figcaption{color:#727b72}
.home-page .service-intro,.home-page .service-areas,.home-page .final-cta{width:100%;max-width:none;padding-left:max(56px,calc((100% - 1280px)/2));padding-right:max(56px,calc((100% - 1280px)/2))}
.home-page .service-intro,.home-page .final-cta{background:#f5f8f3}
.home-page .service-areas{background:#fff}
.home-page .service-row{border-color:#d9e2d8}
.home-page .service-row h3{color:#172319}
.home-page .service-row:hover h3{color:#237a24}
.home-page .service-areas ul{color:#172319}
.home-page .service-areas li{border-color:#cbd8c9}
.home-page .quote{background:#fff;border-color:#dce3dc}
.home-page .quote blockquote{color:#172319}
.home-page .text-link{border-color:#74a570}
.home-page footer{border-color:#dce3dc}
.home-page footer small{color:#697368}
.home-page #mobile-menu{background:#fff;color:#172319;border-color:#dce3dc}
.home-page a:focus-visible,.home-page button:focus-visible{outline-color:#237a24}
@media(max-width:850px){
.home-page .hero{padding-top:36px;padding-bottom:34px}
.home-page .hero .eyebrow{margin-bottom:22px}
.home-page .hero-bottom{margin-top:23px;gap:22px}
.home-page .service-intro,.home-page .service-areas,.home-page .final-cta{padding-left:24px;padding-right:24px}
.home-page .hero-photo{margin-inline:18px}
.home-page .hero-photo img{height:380px;border-radius:5px}
.home-page .hero-photo figcaption{padding-inline:0}
}
@media(max-width:390px){.home-page .service-intro,.home-page .service-areas,.home-page .final-cta{padding-left:18px;padding-right:18px}}
.home-page-links{display:flex;flex-wrap:wrap;gap:12px 28px}
.home-page-links .text-link{margin-top:16px}
.home-page .intro{padding-block:65px}
.home-page .intro>div{min-width:0}
@media(max-width:850px){.home-page .intro{padding-block:48px;gap:20px}.home-page-links{gap:6px 24px}}
