/* Readable type scale for the chosen green homepage. Header and original ratings retain their own scale. */
body{font-family:"Segoe UI",Arial,sans-serif;font-size:18px;line-height:1.65}
main{--copy:18px;--small:16px;--micro:14px}
main h2,main .price-layout h2,main .seo-copy h2{font-size:clamp(30px,2.6vw,38px);line-height:1.2;letter-spacing:-.025em}
main h3{line-height:1.3}
.section{padding:48px 0}
.section-head{margin-bottom:28px;gap:28px}
.eyebrow,.hero .eyebrow,.form-card .eyebrow,.seasonal-inner .eyebrow{font-size:13px;line-height:1.5;letter-spacing:.1em}
.intro,.section-head>.intro{font-size:var(--copy);line-height:1.65}
.section-head>.intro{max-width:370px}
.text-link,.btn,.input{font-size:var(--small,16px);line-height:1.45}
.btn{min-height:50px;padding:14px 20px;white-space:normal}
.input{min-height:50px;padding:13px 14px;max-width:100%}
.btn .icon{width:21px;height:21px;flex:none}
.hero-copy .lead,#hero-utp .utp-item>span,#under-form p{font-size:var(--copy);line-height:1.65}
.form-card h2{font-size:30px}
.form-card>p{font-size:var(--small);line-height:1.6}
.form-card label.field-label{font-size:var(--small);margin-top:18px}
.form-card .consent,.final-form .consent{font-size:var(--micro);line-height:1.55}
.consent input{width:18px;height:18px;margin-top:3px}
.form-note,.form-card .form-note{font-size:var(--micro);line-height:1.5;white-space:normal;align-items:flex-start;text-align:center}
.form-note .icon{width:17px;height:17px;flex:none;margin-top:2px}
.form-card .btn{font-size:17px;min-height:52px}
.expert-caption .pill{font-size:12px}
.expert-caption strong{font-size:25px}
.expert-caption p{font-size:14px;line-height:1.5}
.expert-caption a{font-size:14px;line-height:1.4}
.compact-expert strong{font-size:17px}.compact-expert small,.compact-expert .text-link{font-size:14px}
#advantages .advantage p{font-size:var(--small);line-height:1.65}
#advantages .advantage{padding:23px 20px}
.problem-card{min-height:155px;padding:24px 15px}
.problem-card strong{font-size:18px;line-height:1.4;max-width:none}
.quiet-help,.quiet-help button{font-size:var(--small)}
.quiet-help{gap:10px;flex-wrap:wrap}

/* Distinct but restrained service-card colours. */
.service-grid{align-items:stretch;gap:18px}
.service-card,.service-card:last-child{display:flex;flex-direction:column;padding:27px 24px;border-color:transparent}
.service-card:nth-child(1){background:#e6f0fb}
.service-card:nth-child(2){background:#e6f3e9}
.service-card:nth-child(3){background:#fcf0dd}
.service-card:nth-child(4){background:#eee9f7}
.service-card:nth-child(1)>.icon{color:#32639a}
.service-card:nth-child(2)>.icon{color:#34794d}
.service-card:nth-child(3)>.icon{color:#97642e}
.service-card:nth-child(4)>.icon{color:#765299}
.service-card>.icon{width:34px;height:34px;margin-bottom:21px}
.service-card h3{font-size:24px;line-height:1.3;letter-spacing:-.025em}
.service-card ul{font-size:var(--copy);line-height:1.7;color:#415451;margin:17px 0 24px}
.service-card .text-link{font-size:var(--small);margin-top:auto;align-self:flex-start}
.repair-link strong{font-size:20px;line-height:1.4}
.repair-link p{font-size:var(--small);line-height:1.6;margin-top:7px}
.repair-link{padding:24px;align-items:center}
.repair-link:first-child{background:#e5f1f0}.repair-link:last-child{background:#f1eada}
.repair-link div{min-width:0}

/* Price list and a high-contrast enquiry panel below it. */
#prices .price-layout .intro{font-size:var(--copy);line-height:1.7;max-width:1100px}
#prices .tabs{gap:8px;margin:27px 0 12px}
#prices .tab{font-size:var(--small);line-height:1.4;min-height:48px;padding:12px}
#prices .price-row{font-size:var(--copy);line-height:1.6;padding:22px 0;gap:24px}
#prices .price-row button{font-size:var(--small);padding:10px 0;line-height:1.5}
#prices .price-foot{font-size:var(--small);line-height:1.7;max-width:1150px;margin-top:22px}
#prices .estimate-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:24px;align-items:end;padding:32px;background:#d5ed8a;color:#173937;border:1px solid #c2dc73;border-radius:14px}
#prices .estimate-intro{grid-column:1/-1}
#prices .estimate-card h3{font-size:30px;line-height:1.3;color:#173937}
#prices .estimate-card p{font-size:var(--copy);line-height:1.6;max-width:none;color:#304a2f;margin-top:10px}
#prices .estimate-card label{font-size:var(--small);line-height:1.5;color:#263f29;margin:0 0 10px}
#prices .estimate-card .input{font-size:18px;background:#fffef6;border-color:#b4ca79;min-height:54px}
#prices .estimate-card .btn{grid-column:auto;justify-self:stretch;font-size:17px;line-height:1.4;min-height:54px;width:auto;margin:0;padding:15px 24px;background:#173937;color:white}
#prices .estimate-card .btn:hover{background:#075d57}
#prices .estimate-card :is(button,select):focus-visible{outline:3px solid #173937;outline-offset:3px}

.steps-section{padding:40px 0}
.steps{gap:28px;margin-top:32px}
.step{grid-template-columns:40px minmax(0,1fr);column-gap:14px}
.step-number{font-size:16px;width:36px;height:36px}
.step h3{font-size:21px;line-height:1.35}
.step p{font-size:var(--small);line-height:1.7;margin-top:9px}
.case-body h3{font-size:26px;line-height:1.3}
.case-body p{font-size:var(--copy);line-height:1.7}
.case-body .text-link{font-size:var(--small)}
.case-visual .pill{font-size:14px;padding:7px 11px}
.team-card{grid-template-columns:38% minmax(0,1fr);gap:18px;padding:16px}
.team-info h3{font-size:26px;line-height:1.3}
.team-info p{font-size:var(--small);line-height:1.6}
.team-info .pill,.mini-label{font-size:12px;line-height:1.4}
.profile-link,.video-link{font-size:14px;line-height:1.5;white-space:normal}
.profile-link{padding:10px}
.caption-note{font-size:14px;line-height:1.6}
.seasonal-inner{padding:36px;gap:28px}
.seasonal-inner h3{font-size:30px;line-height:1.25}
.seasonal-inner p{font-size:var(--copy);line-height:1.65}
.seasonal-inner .btn{font-size:var(--small);min-height:50px}
#faq .faq-expert-column>.intro{font-size:var(--copy);line-height:1.65}
.faq-item summary{font-size:21px;line-height:1.5;padding:23px 36px 23px 0}
.faq-item p{font-size:var(--copy);line-height:1.75}
.faq-expert figcaption>span{font-size:14px}
.faq-expert figcaption>p{font-size:16px}
.faq-expert .btn{font-size:15px;line-height:1.5;min-height:48px}
#about-help .seo-body p{font-size:var(--copy);line-height:1.8}
#about-help .seo-body h3{font-size:25px;line-height:1.4}
.seo-toggle{font-size:var(--small);min-height:48px}
.contact-details strong{font-size:20px;line-height:1.45}
.contact-details small{font-size:var(--small);line-height:1.6}
.contact-details .phone{font-size:28px}
.contact-details a[href^="mailto"]{overflow-wrap:anywhere}
.contact-details .text-link[style]{font-size:16px!important}
.map-caption strong{font-size:16px}.map-caption small{font-size:13px}
.districts span{font-size:14px;padding:6px 10px}
.final-form h3{font-size:30px;line-height:1.3}
.final-form p{font-size:var(--copy);line-height:1.6}
.final-form textarea{font-size:var(--small)}
.final-form .btn{font-size:17px}
.footer p,.footer a.footer-link{font-size:16px;line-height:1.65}
.footer h3{font-size:18px;line-height:1.4}
.footer .phone{font-size:23px;white-space:nowrap}
.footer .logo strong{font-size:22px}.footer .logo small{font-size:13px}
.footer-bottom,.footer-bottom button{font-size:13px;line-height:1.6}
.footer button[data-callback]{font-size:16px!important}
.dialog h2{font-size:30px;line-height:1.25}
.dialog p{font-size:18px;line-height:1.7}
.dialog .btn{font-size:17px}

@media(max-width:1150px){
 .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .team-grid{grid-template-columns:1fr}
 .team-card{grid-template-columns:180px minmax(0,1fr)}
 .footer-grid{grid-template-columns:1fr 1fr;gap:35px}
 .steps{grid-template-columns:1fr 1fr;gap:30px}
}
@media(max-width:1000px){
 #prices .estimate-card{grid-template-columns:1fr 1fr}
 #prices .estimate-card .btn{grid-column:1/-1;justify-self:start}
 .seasonal-inner{flex-wrap:wrap}
 .seasonal-inner>div{flex:1;min-width:200px}
 .seasonal-inner .btn{margin-left:0}
}
@media(max-width:760px){
 main{--copy:17px;--small:16px;--micro:14px}
 .section{padding:34px 0}
 main h2,main .price-layout h2,main .seo-copy h2{font-size:29px;line-height:1.25}
 .section-head{gap:18px;flex-wrap:wrap;margin-bottom:23px}
 .section-head .text-link{font-size:16px}
 .eyebrow,.hero .eyebrow,.form-card .eyebrow,.seasonal-inner .eyebrow{font-size:12px}
 .hero h1{font-size:36px}
 .hero-grid{padding:27px 20px}
 .hero .expert-portrait,.hero-photo{height:280px}
 .expert-caption{width:205px;padding:14px}
 .expert-caption strong{font-size:24px}
 .expert-caption p,.expert-caption a{font-size:14px}
 .expert-caption .pill{font-size:11px}
 .form-card{padding:24px 20px}
 .form-card h2{font-size:28px}
 #advantages{grid-template-columns:1fr 1fr}
 #advantages .advantage{padding:19px 15px}
 #advantages .advantage p{font-size:16px}
 .problem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .problem-card{padding:21px 12px;min-height:145px}
 .problem-card strong{font-size:17px}
 .quiet-help{line-height:1.7}
 .service-card,.service-card:last-child,.service-card:first-child{padding:25px 22px}
 .service-card h3{font-size:24px}
 .service-card ul{font-size:17px}
 .service-card .text-link{font-size:16px;gap:8px}
 .service-card .text-link .icon{width:19px}
 .repair-link{padding:22px 18px;gap:13px}
 .repair-link strong{font-size:20px}
 #prices .price-layout>div{padding:24px 20px}
 #prices .tabs{grid-template-columns:1fr 1fr;gap:8px}
 #prices .price-row{gap:15px;padding:18px 0;align-items:flex-start}
 #prices .price-row button{font-size:15px;white-space:normal;flex:0 0 100px;text-align:right;padding:0}
 #prices .estimate-card{display:block;padding:26px 22px}
 #prices .estimate-card h3{font-size:27px}
 #prices .estimate-field{margin-top:23px}
 #prices .estimate-card .btn{width:100%;margin-top:24px}
 .step h3{font-size:21px}
 .step p{font-size:16px}
 .case-body h3{font-size:25px}
 .case-body p{font-size:17px}
 .team-card{grid-template-columns:38% minmax(0,1fr);padding:12px;gap:16px}
 .team-info h3{font-size:25px}
 .team-info p{font-size:16px}
 .team-info .pill{font-size:11px}
 .profile-link,.video-link{font-size:14px}
 .caption-note{max-width:none;text-align:left;padding-top:0}
 .seasonal-inner{padding:26px}
 .seasonal-inner h3{font-size:27px}
 .seasonal-inner p{font-size:17px}
 .faq-item summary{font-size:20px;padding:21px 30px 21px 0}
 .faq-item p{font-size:17px;padding-right:10px}
 .faq-expert{display:block}
 .faq-expert img{height:240px;min-height:0;object-position:50% 25%}
 .faq-expert figcaption{padding:22px}
 .faq-expert .btn{font-size:16px}
 #about-help .seo-body p{font-size:17px}
 #about-help .seo-body h3{font-size:23px}
 .contact-details strong{font-size:18px}
 .contact-details small{font-size:16px}
 .map-caption{right:10px}
 .map-caption strong{font-size:15px;line-height:1.4}
 .map-caption small{font-size:12px}
 .final-form h3{font-size:28px}
 .final-form p{font-size:17px}
 .mobile-cta .btn{font-size:16px;min-height:48px}
 .mobile-cta .btn-outline{flex-basis:48px}
 .footer-grid{gap:30px 20px}
 .footer .phone{font-size:22px}
 .dialog{padding:28px 22px}
}
@media(max-width:600px){
 .service-grid{grid-template-columns:1fr}
 .footer-grid{grid-template-columns:1fr}
 .footer-brand{grid-column:auto}
 #advantages{grid-template-columns:1fr}
}
@media(max-width:370px){
 .hero h1{font-size:33px}
 .team-card{grid-template-columns:1fr}
 .team-photo{height:230px;min-height:0}
 .team-info{padding:10px}
 .steps{grid-template-columns:1fr}
}
