:root{--navy:#142133;--ink:#101c2d;--red:#ee263d;--pale:#eef2f5;--muted:#52606e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--ink);font-family:Inter,Arial,Helvetica,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #3278b4;outline-offset:4px}img{max-width:100%;display:block;object-fit:cover}.wrap{width:min(1240px,90%);margin:auto}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.13;letter-spacing:-.035em}h2{font-size:clamp(28px,2.7vw,38px);margin-bottom:20px;font-weight:800}h3{letter-spacing:-.02em}p{margin-bottom:19px}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;border:1px solid var(--red);background:var(--red);color:white;font-weight:700;font-size:14px;line-height:1.4;padding:15px 24px;border-radius:3px;transition:background .2s,transform .2s}.button:hover{background:#d5142e;border-color:#d5142e;transform:translateY(-2px)}.button span{font-size:20px}.eyebrow{display:flex;align-items:center;gap:15px;color:#d91b33;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:11px;line-height:1.5;margin-bottom:17px}.eyebrow i{width:43px;height:1px;background:currentColor}.section{padding:65px 0}.split{display:grid;grid-template-columns:1fr 1fr;gap:65px;align-items:center}.skip{position:fixed;top:-60px;left:15px;background:white;z-index:50;padding:10px}.skip:focus{top:10px}header{position:sticky;top:0;z-index:20;background:white;box-shadow:0 1px 0 #e1e6eb}.header-inner{min-height:90px;display:flex;align-items:center;gap:40px}.brand{font-size:26px;font-weight:850;letter-spacing:-1.2px;line-height:1.1;white-space:nowrap;display:block}.brand span{color:var(--red)}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:.03em;margin-top:4px}nav{display:flex;align-items:center;gap:30px;margin-left:auto;font-size:13px;font-weight:600}nav a:hover,nav button:hover{color:#d91b33}.dropdown{position:relative}.dropdown>button{padding:20px 0;border:0;background:none;color:inherit;font-size:inherit;font-weight:inherit}.dropdown-panel{position:absolute;top:100%;left:-15px;width:255px;background:white;box-shadow:0 15px 40px #14213324;padding:10px;border-top:3px solid var(--red)}.dropdown-panel a{display:block;padding:10px}.header-quote{font-size:12px;padding:13px 18px}.menu-toggle{display:none}.hero{position:relative;background:#101d2e;overflow:hidden}.hero-image{position:absolute;inset:0 27% 0 0;background-image:linear-gradient(90deg,#0d1b2bd9,#0d1b2b66 60%,#0d1b2b05),url('assets/hero-1600.webp');background-position:center;background-size:cover}.hero-layout{display:grid;grid-template-columns:1fr 300px;gap:80px;position:relative}.hero-copy{padding:75px 0 70px;color:white}.hero-copy .eyebrow{color:#ff6c7c}h1{font-size:clamp(36px,3.8vw,56px);font-weight:850;margin-bottom:22px;line-height:1.08;letter-spacing:-.045em}h1 em{font-style:normal;color:#ff4056}.hero-description{max-width:590px;font-size:17px;line-height:1.55;text-shadow:0 1px 4px #0008;margin-bottom:28px}.call-panel{background:white;padding:38px 28px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.call-panel .eyebrow{font-size:10px}.call-panel h2{font-size:25px;margin-bottom:15px}.local-call{display:flex;gap:16px;align-items:center;padding:20px 0;border-bottom:1px solid #e4e8ed}.local-call small{display:block;font-size:12px}.local-call strong{font-size:23px;letter-spacing:-.05em;white-space:nowrap;line-height:1.3}.phone-icon{color:var(--red);font-size:30px;font-weight:bold}.call-panel>.button{margin-top:24px;gap:12px;padding:13px 12px}.fine{font-size:11px;color:var(--muted);line-height:1.65;margin:16px 0 0}.benefits{background:linear-gradient(90deg,#edf2f5,#fafcfd)}.benefit-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:29px 0}.benefit-grid>div{display:flex;gap:22px;align-items:center;padding:0 24px;border-right:1px solid #bdc9d4}.benefit-grid>div:first-child{padding-left:0}.benefit-grid>div:last-child{border:0}.benefit-grid strong{font-size:13px;line-height:1.45}.line-icon{width:39px;height:39px;display:block;flex-shrink:0;color:var(--red)}.line-icon svg{width:100%;height:100%}.about-layout{gap:55px;min-height:420px}.section-copy{padding:55px 0}.section-copy p:not(.eyebrow){font-size:15px;color:#45515e;line-height:1.6}.about-layout>img{height:100%;min-height:420px;width:100%;object-position:25%}.services{background:var(--pale)}.services h2{margin-bottom:30px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-grid article{background:white;box-shadow:0 3px 16px #14213304;transition:box-shadow .2s,transform .2s;border-left:3px solid transparent}.service-grid article:hover{border-left-color:var(--red);box-shadow:0 12px 25px #14213317;transform:translateY(-3px)}.service-grid img{height:150px;width:100%;padding:10px 10px 0}.service-grid article>div{padding:17px 20px 20px}.service-grid h3{font-size:18px;margin-bottom:10px}.service-grid p{color:#45515e;font-size:14px;line-height:1.55;margin-bottom:13px;min-height:44px}.text-link{background:none;border:0;color:#d5142e;padding:0;font-size:13px;font-weight:750;display:flex;gap:22px;align-items:center}.text-link span{font-size:19px}.process{background:linear-gradient(110deg,#0f1d2e,#1d2b3b);color:white}.process .eyebrow,.contact .eyebrow{color:#ff6c7c}.process-grid{display:grid;grid-template-columns:1fr 1fr;gap:55px}.process-grid .why{border-right:1px solid #687482;padding-right:48px}.process h2{font-size:31px}.process p:not(.eyebrow){color:#e0e6ec;font-size:14px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;list-style:none;padding:0;margin:28px 0 0}.steps li>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--red);font-weight:800;font-size:21px;margin-bottom:15px}.steps h3{font-size:14px;letter-spacing:0;margin-bottom:10px}.steps li p{font-size:12px!important;line-height:1.6;margin:0}.coverage p:not(.eyebrow){color:#45515e;font-size:15px}.town-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.town-grid>a{padding:20px 15px 16px;background:linear-gradient(135deg,#e5ecf2,#f5f7fa);border-bottom:3px solid #d8e0e8;position:relative;transition:border-color .2s}.town-grid>a:hover{border-color:var(--red)}.town-grid>a>span{display:block;font-size:34px;font-weight:800;color:#a9bac9;line-height:1;margin-bottom:17px}.town-grid strong{display:block;font-size:15px}.town-grid small{font-size:10px;color:#52606e;white-space:nowrap}.more-areas{margin-top:35px;border-top:1px solid #ddd;padding-top:25px}.more-areas h3{font-size:20px}.contact{background:#f3f5f7}.contact-layout{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:1378px}.contact-copy{color:white;background:linear-gradient(90deg,#0b172bec,#0b172ba8),url('assets/repair-1600.webp') center/cover;padding:50px max(35px,calc((100vw - 1240px)/2));padding-right:35px}.contact-copy h2{font-size:38px}.contact-copy p:not(.eyebrow){font-size:14px;color:#e2e8ee}.contact-copy>a{display:block;font-size:12px;margin-top:12px;color:#c6d0dc}.contact-copy strong{color:white;font-size:18px;margin-left:12px}.form-panel{background:white;padding:45px 50px}.form-panel h2{font-size:25px;margin-bottom:5px}.form-panel>p{font-size:13px;color:#52606e}.red{color:var(--red)}.fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;margin-bottom:22px}label{font-size:12px;font-weight:700}input{display:block;width:100%;padding:12px 11px;border:1px solid #cdd6df;border-radius:2px;font-size:13px;margin-top:5px;background:#fcfdfe}input::placeholder{color:#6c7783}.form-panel .button{width:100%;padding:13px}.form-note{font-size:11px;color:#647180;margin:15px 0 0;line-height:1.5}footer{background:linear-gradient(120deg,#142133,#0f1a29);color:white;padding-top:45px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:45px;padding-bottom:35px}.footer-grid .brand{font-size:23px}.footer-grid .brand small{font-size:9px}.footer-grid p{font-size:12px;color:#c1cad4;margin-top:20px}.footer-grid h3{font-size:14px;letter-spacing:0;margin-bottom:13px}.footer-grid>div>a:not(.brand){font-size:12px;display:block;line-height:1.9;color:#dce2e8}.footer-grid a:hover{color:#ff6c7c}.domain{font-weight:700}.footer-phone{margin-bottom:16px}.footer-phone small{display:block;color:#c1cad4}.footer-phone strong{font-size:18px;line-height:1.2}.footer-bottom{border-top:1px solid #ffffff20;display:flex;justify-content:space-between;align-items:center;padding:20px 0;font-size:10px;color:#c4cbd4;gap:20px}.footer-bottom>div{display:flex;gap:20px}.mobile-calls{display:none}dialog{border:0;max-width:530px;width:90%;padding:45px;border-radius:5px;color:var(--ink);box-shadow:0 25px 100px #0006}dialog::backdrop{background:#091523b0}dialog h2{font-size:29px}dialog p:not(.eyebrow){font-size:15px;color:#52606e}.dialog-close{position:absolute;top:7px;right:13px;font-size:30px;background:none;border:0;color:var(--ink)}dialog .button{margin-top:10px}.secondary{background:white;color:#c61a31}.secondary:hover{color:white}[hidden]{display:none!important}@media(min-width:1500px){.hero-image{right:calc((100vw - 1240px)/2 + 285px)}}@media(max-width:1100px){.header-inner{gap:25px}.brand{font-size:23px}nav{gap:18px}.header-quote{padding:11px}.hero-layout{gap:30px;grid-template-columns:1fr 280px}.hero-copy{padding:60px 0}h1{font-size:43px}.benefit-grid>div{padding:0 13px;gap:13px}.split{gap:35px}.process-grid{gap:30px}.process-grid .why{padding-right:25px}.form-panel{padding:40px 30px}.footer-grid{gap:25px}.town-grid{gap:10px}.town-grid>a{padding:15px 10px}.town-grid small{font-size:9px}}@media(max-width:800px){html{scroll-padding-top:80px}.wrap{width:90%}.header-inner{min-height:76px;gap:15px}.brand{font-size:23px}.header-quote{margin-left:auto;font-size:11px}.header-quote span{display:none}.menu-toggle{display:block;order:3;border:0;background:none;font-size:12px;color:var(--ink);font-weight:700}.menu-toggle span{font-size:19px;margin-left:5px}nav{display:none;position:absolute;top:76px;left:0;right:0;background:white;padding:15px 5%;box-shadow:0 15px 20px #0001;align-items:stretch;gap:0;flex-direction:column}nav.is-open{display:flex}nav>a,.dropdown>button{padding:13px 0;display:block;width:100%;text-align:left}.dropdown-panel{position:static;width:100%;box-shadow:none;border:0;background:#f0f3f6}.hero-layout{grid-template-columns:1fr 245px;gap:25px}.hero-copy{padding:45px 0}h1{font-size:34px}.hero-description{font-size:14px}.call-panel{padding:25px 18px}.local-call strong{font-size:19px}.local-call{gap:10px}.call-panel h2{font-size:23px}.benefit-grid{grid-template-columns:1fr 1fr;gap:25px;padding:25px 0}.benefit-grid>div{padding:0;border:none;gap:17px}.benefit-grid strong{font-size:12px}.line-icon{width:32px;height:32px}.split,.process-grid{gap:30px}h2{font-size:28px}.section{padding:45px 0}.about-layout{min-height:400px}.section-copy{padding:40px 0}.about-layout>img{min-height:440px}.service-grid{gap:15px}.service-grid img{height:120px}.service-grid article>div{padding:13px}.service-grid h3{font-size:16px}.service-grid p{font-size:12px;min-height:75px}.process-grid{grid-template-columns:1fr}.process-grid .why{border-right:0;border-bottom:1px solid #687482;padding:0 0 30px}.process h2{font-size:29px}.steps{gap:25px}.coverage .split{grid-template-columns:1fr}.town-grid{gap:15px}.town-grid>a{padding:20px}.town-grid small{font-size:11px}.contact-layout{grid-template-columns:1fr;width:100%}.contact-copy{padding:40px 5%}.form-panel{padding:40px 5%}.footer-grid{grid-template-columns:1.3fr 1fr;gap:35px}.footer-bottom{align-items:flex-start}.footer-bottom>div{flex-wrap:wrap;gap:10px}}@media(max-width:560px){.brand{font-size:21px}.brand small{font-size:8px}.header-quote{display:none}.menu-toggle{margin-left:auto}.hero-image{right:0;bottom:auto;height:470px;background-position:62% center}.hero-layout{display:block}.hero-copy{padding:45px 0 40px;min-height:430px}.hero-copy h1{font-size:37px}.hero-description{font-size:15px;max-width:95%}.hero-copy .eyebrow{font-size:9px}.call-panel{padding:25px;margin-bottom:25px;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-radius:3px}.call-panel>.eyebrow,.call-panel>h2{grid-column:1/-1}.call-panel h2{font-size:24px}.call-panel h2 br{display:none}.local-call{gap:0;padding:15px 0}.phone-icon{display:none}.local-call strong{font-size:19px}.local-call small{font-size:10px}.call-panel>.button,.fine{grid-column:1/-1}.call-panel>.button{margin-top:15px}.fine{margin-top:12px}.benefit-grid{gap:22px 12px}.benefit-grid>div{gap:12px}.benefit-grid strong{font-size:11px}.line-icon{width:29px;height:29px}.about-layout{display:flex;flex-direction:column;gap:0;width:100%}.section-copy{padding:40px 5% 35px}.section-copy h2{font-size:30px}.about-layout>img{height:250px;min-height:0;object-position:center 43%}.services h2{font-size:29px}.service-grid{grid-template-columns:1fr 1fr;gap:14px}.service-grid img{height:110px;padding:6px 6px 0}.service-grid article>div{padding:12px 10px 15px}.service-grid h3{font-size:15px;line-height:1.2;min-height:36px}.service-grid p{min-height:76px;font-size:12px}.text-link{font-size:11px;gap:10px}.steps{gap:17px}.steps h3{font-size:13px;min-height:30px}.steps li p{font-size:11px!important}.town-grid{grid-template-columns:1fr 1fr;gap:12px}.town-grid>a{padding:15px}.coverage h2{font-size:29px}.contact-copy h2{font-size:33px}.fields{gap:16px;grid-template-columns:1fr}.form-panel{padding:32px 5% 40px}.form-panel h2{font-size:25px}.contact-copy strong{display:block;margin:0}.footer-grid{gap:30px 20px}.footer-grid .brand{font-size:21px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid>div:last-child{grid-column:1/-1;display:flex;gap:25px;flex-wrap:wrap}.footer-grid>div:last-child h3{width:100%;margin:0}.footer-grid .footer-phone{margin:0}.footer-bottom{display:block;padding-bottom:85px}.footer-bottom>div{margin-top:15px}.mobile-calls{position:fixed;bottom:0;left:0;right:0;z-index:15;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 -3px 15px #0002}.mobile-calls a{text-align:center;padding:15px 5px;background:var(--red);font-weight:700;color:white;font-size:13px}.mobile-calls a:last-child{background:var(--navy)}dialog{padding:35px 25px}dialog .button{font-size:12px;display:flex;padding:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* Approved trust, company and contact additions */
.accreditations{background:#f5f7fa;padding:43px 0}.strip-heading{text-align:center;margin-bottom:28px}.strip-heading .eyebrow{justify-content:center;color:#64717e;font-size:11px;margin-bottom:15px;letter-spacing:.14em}.strip-heading>span{display:block;width:34px;height:2px;background:var(--red);margin:auto}.accreditation-grid,.client-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.accreditation-grid li{background:white;border:1px solid #e1e6ec;border-radius:5px;display:flex;align-items:center;justify-content:center;gap:12px;min-height:128px;padding:20px 14px;box-shadow:0 3px 0 #dae1e880}.accreditation-grid strong{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#52606e;max-width:105px}.accreditation-logo{display:block;width:100px;height:85px;flex-shrink:0;background-image:url('assets/accreditation-reference.png');background-repeat:no-repeat;background-size:1536px 352.5px}.constructionline{background-position:-826.75px -160px}.altius{background-position:-1063.75px -160px}.iso{background-position:-349.75px -160px}.safe-contractor{background-position:-587.5px -160px}.clients{background:white;border-top:1px solid #e4e9ee;border-bottom:1px solid #e4e9ee;padding:38px 0}.client-grid li{display:flex;flex-direction:column;align-items:center;justify-content:center;border-right:1px solid #e1e6ec;padding:10px 20px;min-height:92px}.client-grid li:last-child{border:0}.client-grid strong{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#66717e;margin-top:8px}.client-logo{display:block;width:140px;height:50px;background-image:url('assets/client-reference.png');background-repeat:no-repeat;background-size:1494px 399px}.client-logo.dreams{background-position:-1008px -182px}.client-logo.balfour{background-position:-386px -182px}.client-logo.amazon{background-position:-177px -182px}.client-logo.romec{background-position:-801px -182px}.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:25px 0}.about-stats>div{background:#f4f6f9;padding:20px 23px;border-top:3px solid var(--red);border-radius:3px}.about-stats strong{display:block;font-size:44px;letter-spacing:-.055em;line-height:1.1;font-weight:850;margin-bottom:10px}.about-stats span{display:block;color:#667585;font-size:13px;line-height:1.5}.review-heading{display:flex;align-items:flex-end;gap:50px;justify-content:space-between;margin-bottom:25px}.review-heading h2{max-width:600px;margin-bottom:0}.review-heading>p{max-width:350px;font-size:12px;color:#667585;line-height:1.6;margin-bottom:0}.reviews{background:#f2f5f8}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.review-grid figure{background:white;margin:0;padding:26px 25px 25px;border-radius:4px;border-left:3px solid var(--red);box-shadow:5px 6px 0 #e0e7ee}.sample-label{font-size:10px;background:#eef2f6;color:#52606e;padding:5px 7px;display:inline-block;border-radius:2px}.quote-mark{display:block;font-family:Georgia,serif;font-size:64px;height:55px;line-height:1.3;color:var(--red);margin-top:10px}.review-grid blockquote{margin:5px 0 25px;line-height:1.75;font-size:14px;color:#42505f}.review-grid figcaption{border-top:1px solid #e7ecf0;padding-top:17px}.review-grid figcaption strong{display:block;font-size:13px}.review-grid figcaption span{font-size:11px;color:#697582}.email-link{overflow-wrap:anywhere}.contact-copy>a span{display:block}.contact-copy>a strong{display:block;margin:0}.contact-copy>.email-link{color:white;font-size:13px;border-top:1px solid #ffffff30;padding-top:15px;margin-top:19px}.footer-grid>div>a.email-link{color:#f3f5f7;font-size:11px;line-height:1.5;margin-top:20px;max-width:100%}.surrounding{display:block!important;margin-top:3px}.local-call small{font-size:10px}.mobile-calls small{display:block;font-size:9px;line-height:1.3;font-weight:400}.about-page-hero{background:linear-gradient(100deg,#0c1a2be8,#0c1a2ba6),url('assets/repair-1600.webp') center 45%/cover;color:white;padding:35px 0 65px}.breadcrumbs{display:flex;gap:12px;font-size:11px;color:#ccd6e0;margin-bottom:45px}.breadcrumbs a{text-decoration:underline;text-underline-offset:4px}.about-page-hero .eyebrow{color:#ff6c7c}.about-page-hero h1{font-size:clamp(37px,4.2vw,60px);max-width:900px}.about-page-hero>.wrap>p:not(.eyebrow):not(.breadcrumbs){max-width:650px;font-size:17px;color:#e4e9ee}.about-hero-actions{display:flex;gap:30px;align-items:center;margin-top:30px}.about-hero-actions>span{font-size:12px;color:#e3e9ef}.about-story img{height:500px;width:100%}.about-story p,.about-local p{color:#45515e;font-size:15px}.about-approach{background:var(--pale)}.approach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:35px}.approach-grid article{border-top:1px solid #cdd7e1;padding-top:20px}.approach-grid article>span{display:block;color:#bbcad7;font-size:40px;font-weight:800;margin-bottom:18px;line-height:1}.approach-grid h3{font-size:21px}.approach-grid p{font-size:14px;color:#52606e}.about-local-cards>a:not(.email-link){display:block;background:#f1f4f7;border-left:3px solid var(--red);padding:22px 25px;margin-bottom:15px}.about-local-cards span{display:block;font-size:12px;color:#52606e}.about-local-cards strong{font-size:25px;letter-spacing:-.04em}.about-local-cards .email-link{font-size:14px;color:#d5142e;font-weight:700}.about-story .about-stats{margin-bottom:0}
@media(max-width:1100px){.accreditation-grid li{flex-direction:column;gap:10px;padding:15px}.accreditation-grid strong{max-width:none;text-align:center}.review-heading{gap:25px}.review-grid{gap:18px}.review-grid figure{padding:20px}.footer-grid{grid-template-columns:1.25fr 1fr 1fr 1.3fr}.footer-grid .email-link{font-size:10px!important}}
@media(max-width:800px){.accreditations,.clients{padding:32px 0}.accreditation-grid{gap:12px}.accreditation-grid li{min-height:145px}.client-grid li{padding:10px 5px}.client-logo{transform:scale(.85);margin:0 -10px}.review-heading{display:block}.review-heading>p{margin-top:15px;max-width:none}.review-grid{grid-template-columns:1fr}.review-grid blockquote{margin-bottom:15px}.footer-grid{grid-template-columns:1.3fr 1fr}.about-page-hero{padding-bottom:45px}.about-story .split,.about-local .split{grid-template-columns:1fr}.about-story img{height:350px}.approach-grid{gap:20px}.approach-grid h3{font-size:18px}}
@media(max-width:560px){.accreditation-grid{grid-template-columns:1fr 1fr;gap:12px}.accreditation-grid li{min-height:139px;padding:15px 5px;gap:6px}.accreditation-grid strong{font-size:10px}.accreditation-logo{height:80px}.client-grid{grid-template-columns:1fr 1fr;gap:12px 0}.client-grid li:nth-child(2){border:0}.client-grid li{padding:5px 10px}.client-logo{transform:none;margin:0}.strip-heading .eyebrow{font-size:10px}.about-stats{gap:12px}.about-stats>div{padding:17px}.about-stats strong{font-size:38px}.about-stats span{font-size:12px}.local-call small{font-size:9px}.contact-copy>.email-link{font-size:13px}.footer-grid>div:last-child .email-link{width:100%;font-size:12px!important;margin:0}.footer-grid>div:last-child{column-gap:20px}.footer-grid>div:last-child .footer-phone small{font-size:10px}.footer-grid>div:last-child .footer-phone strong{font-size:17px}.footer-bottom{padding-bottom:100px}.mobile-calls a{padding:10px 5px}.about-page-hero h1{font-size:37px}.about-hero-actions{align-items:flex-start;gap:20px;flex-direction:column}.breadcrumbs{margin-bottom:30px}.about-page-hero>.wrap>p:not(.eyebrow):not(.breadcrumbs){font-size:15px}.approach-grid{grid-template-columns:1fr;gap:15px}.approach-grid article>span{font-size:35px}.about-story img{height:260px}.review-grid figure{padding:24px}.footer-grid>div>a.email-link{max-width:100%}.call-panel .fine{font-size:10px}}

/* Natural-width modern heading typography */
@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url('assets/manrope-500.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url('assets/manrope-600.ttf') format('truetype')}
@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url('assets/manrope-700.ttf') format('truetype')}
h1,h2,h3,.eyebrow{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-stretch:normal;transform:none}
h1,h2{font-weight:800;letter-spacing:0;line-height:1.2}
h3{font-weight:700;letter-spacing:0;line-height:1.3}
.eyebrow{font-weight:700;text-transform:none;letter-spacing:.025em;font-size:13px;line-height:1.6}
.strip-heading .eyebrow{font-size:13px;letter-spacing:.035em;font-weight:700}
.hero-copy .eyebrow,.call-panel .eyebrow{letter-spacing:.025em;font-size:12px}
.process h2,.form-panel h2,.about-page-hero h1,.about-story h2,.about-local h2{letter-spacing:0;line-height:1.2}
.service-grid h3,.steps h3,.footer-grid h3,.approach-grid h3{font-weight:700;letter-spacing:0}
@media(max-width:1100px){.hero-copy h1{font-size:41px}}
@media(max-width:800px){.hero-copy h1{font-size:33px}.strip-heading .eyebrow{font-size:12px}}
@media(max-width:560px){.hero-copy h1{font-size:34px}.hero-copy .eyebrow,.call-panel .eyebrow{font-size:10px}.eyebrow{font-size:12px}.strip-heading .eyebrow{font-size:11px}.about-page-hero h1{font-size:34px}}

@font-face{font-family:Manrope;font-style:normal;font-weight:800;font-display:swap;src:url('assets/manrope-800.ttf') format('truetype')}
/* Clear call and quotation journeys */
.header-inner{gap:24px}.header-phone{flex-shrink:0;font-size:12px;line-height:1.3}.header-phone>a:first-child{display:block}.header-phone strong{display:block;font-size:17px;letter-spacing:-.025em}.header-phone small{display:block;font-size:9px;color:#647180;margin-top:3px}.header-other-line{display:block;margin-top:7px;font-size:10px;font-weight:600}.header-phone a:hover{color:#d5142e}nav{gap:22px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.hero-actions .button{font-size:12px;padding:15px 16px;gap:12px}.quote-outline{background:transparent;border-color:#ffffff90;color:white}.quote-outline:hover{background:#ffffff12;border-color:white}.hero-local-line{font-size:11px;margin:16px 0 0;color:#edf2f8}.hero-local-line a{text-decoration:underline;text-underline-offset:3px}.service-actions{display:flex;align-items:flex-start;flex-direction:column;gap:13px;margin-top:18px}.service-actions .button{font-size:12px;gap:8px;padding:12px 14px;min-height:43px;text-align:left;line-height:1.45}.service-actions .text-link{font-size:12px}.service-grid article>div{padding-bottom:22px}.service-grid h3{min-height:0}.coverage p a{color:#c91e35;text-decoration:underline;text-underline-offset:3px}.coverage-help{font-size:12px!important;border-left:2px solid var(--red);padding-left:12px}.faq-section{background:#f7f9fb;border-top:1px solid #e3e9ef}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;align-items:start}.faq-layout>div>p:not(.eyebrow){font-size:14px;color:#52606e}.faq-list details{border-bottom:1px solid #d5dfe8;padding:0 0 16px;margin-bottom:18px}.faq-list summary{cursor:pointer;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:16px;font-weight:700;line-height:1.5;padding:5px 30px 5px 0;position:relative;list-style:none}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'+';position:absolute;right:2px;top:0;color:var(--red);font-size:24px;font-weight:500}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:14px;color:#52606e;margin:14px 0 0}.faq-list details a{color:#c71e33;text-decoration:underline;text-underline-offset:3px}.faq-list summary:focus-visible{outline:3px solid #3278b4;outline-offset:4px}.form-panel h2{font-size:25px}.fields .field-wide{grid-column:1/-1}.optional{font-weight:400;color:#697582}select,textarea{font:inherit;display:block;width:100%;padding:12px 11px;border:1px solid #cdd6df;border-radius:2px;font-size:13px;margin-top:5px;background:#fcfdfe;color:var(--ink);box-sizing:border-box}textarea{resize:vertical;min-height:90px}select{min-height:44px}select:focus-visible,textarea:focus-visible{outline:3px solid #3278b4;outline-offset:3px}.footer-quote{font-weight:700!important;color:#ff6c7c!important;display:inline-block!important;margin-bottom:18px}.footer-grid a.footer-quote{font-size:12px!important}.mobile-calls a:first-child{background:var(--navy)}.mobile-calls a:last-child{background:var(--red)}
@media(max-width:1200px){.header-phone{display:none}.header-inner{gap:25px}}
@media(max-width:800px){.hero-actions{gap:10px;align-items:stretch;flex-direction:column}.hero-actions .button{font-size:12px;width:100%}.hero-local-line{font-size:10px;line-height:1.6}.service-actions .button{font-size:11px;padding:10px}.faq-layout{grid-template-columns:1fr;gap:25px}.faq-list summary{font-size:15px}.header-inner{gap:15px}}
@media(max-width:560px){.hero-copy{min-height:0;padding-bottom:35px}.hero-image{height:650px}.hero-actions .button{width:100%;padding:15px 12px}.hero-local-line{max-width:100%}.service-actions{gap:12px}.service-actions .button{font-size:11px;width:100%;justify-content:center}.service-actions .text-link{font-size:11px;line-height:1.5}.service-grid article>div{padding:12px 10px 17px}.service-grid h3{min-height:40px}.form-panel h2{font-size:23px}.faq-layout{gap:25px}.mobile-calls a{font-size:12px}.mobile-calls small{font-size:8px;line-height:1.4}.faq-list details p{font-size:13px}}
/* Premium surface refinements: retained layout, type scale and content */
:root{--accent-soft:rgba(238,38,61,.09);--accent-line:rgba(238,38,61,.22);--shadow-soft:0 2px 5px rgba(16,28,45,.035),0 12px 28px rgba(16,28,45,.075)}
/* Editorial prefixes and centred badges use decorative space only. */
.eyebrow{position:relative;isolation:isolate}
.eyebrow i{display:none}
.eyebrow:before{content:'';display:block;width:31px;height:1px;flex:0 0 31px;background:currentColor;opacity:.7}
.strip-heading .eyebrow{display:inline-flex;position:relative;max-width:100%;isolation:isolate}
.strip-heading .eyebrow:before{content:'';position:absolute;inset:-7px -16px;z-index:-1;width:auto;height:auto;flex:none;background:rgba(238,38,61,.035);border:1px solid rgba(238,38,61,.13);border-radius:100px;opacity:1;pointer-events:none}
.strip-heading>span{visibility:hidden}
.about-stats strong{font-family:inherit;font-weight:900;transform:scale(1.28);transform-origin:left center;text-shadow:0 2px 0 rgba(255,255,255,.6)}
.about-stats>div{border-top-color:transparent;border-left:0;position:relative;background:linear-gradient(135deg,#f4f6f9,#fff);box-shadow:0 2px 4px rgba(20,33,51,.035),0 12px 24px rgba(20,33,51,.07)}
.about-stats>div:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--red),rgba(238,38,61,.15));border-radius:3px}
/* Quiet lifted cards, a descending left accent and pale display numbers. */
.service-grid article,.approach-grid article,.accreditation-grid li,.client-grid li{position:relative;isolation:isolate}
.service-grid article{border-left-color:transparent;background:linear-gradient(145deg,#fff,#fcfdfe);box-shadow:var(--shadow-soft);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.service-grid article:before{content:'';position:absolute;inset:0 auto 0 -3px;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--red),rgba(238,38,61,.12));transform:scaleY(0);transform-origin:top;transition:transform .32s ease;pointer-events:none}
.service-grid article:hover,.service-grid article:focus-within{border-left-color:transparent;transform:translateY(-4px);box-shadow:0 5px 10px rgba(16,28,45,.045),0 18px 35px rgba(16,28,45,.12)}
.service-grid article:hover:before,.service-grid article:focus-within:before{transform:scaleY(1)}
.service-grid article:after{content:attr(data-card-number);position:absolute;top:157px;right:13px;z-index:-1;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:68px;line-height:1;font-weight:800;letter-spacing:-.06em;color:rgba(20,33,51,.045);pointer-events:none}
.service-grid article>div{position:relative;z-index:0}
.approach-grid article{border-top-color:transparent;box-shadow:0 2px 0 rgba(238,38,61,.04);transition:box-shadow .25s ease}
.approach-grid article:after{content:attr(data-card-number);position:absolute;top:12px;right:0;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:86px;line-height:1;font-weight:800;color:rgba(20,33,51,.045);z-index:-1;pointer-events:none}
.approach-grid article>span{transform:scale(1.2);transform-origin:left center;font-weight:800}
.approach-grid article:hover,.approach-grid article:focus-within{box-shadow:-3px 0 0 rgba(238,38,61,.5),0 15px 22px rgba(16,28,45,.045)}
.accreditation-grid li{border-color:rgba(20,33,51,.06);box-shadow:0 3px 7px rgba(16,28,45,.025),0 12px 24px rgba(16,28,45,.05);background:linear-gradient(140deg,#fff,#fafcfd);transition:border-color .25s ease,box-shadow .25s ease}
.accreditation-grid li:after,.client-grid li:after{content:attr(data-card-number);position:absolute;right:10px;top:8px;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:38px;line-height:1;font-weight:800;color:rgba(20,33,51,.035);pointer-events:none;z-index:-1}
.accreditation-grid li:hover{border-color:var(--accent-line);box-shadow:0 5px 9px rgba(16,28,45,.035),0 16px 30px rgba(16,28,45,.08)}
.town-grid>a{border-bottom-color:transparent;background:linear-gradient(140deg,#f0f4f7,#fbfcfd);box-shadow:0 2px 3px rgba(20,33,51,.03),0 9px 17px rgba(20,33,51,.045);transition:box-shadow .25s ease,transform .25s ease}
.town-grid>a:before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--red);transform:scaleY(0);transform-origin:top;transition:transform .3s ease;opacity:.65}
.town-grid>a:hover{border-bottom-color:transparent;box-shadow:0 4px 8px rgba(20,33,51,.04),0 14px 23px rgba(20,33,51,.09);transform:translateY(-3px)}
.town-grid>a:hover:before,.town-grid>a:focus-visible:before{transform:scaleY(1)}
.town-grid>a>span{transform:scale(1.2);transform-origin:left center;font-weight:800;color:#b7c6d2}
.line-icon{border:1px solid rgba(238,38,61,.28);border-radius:50%;background:rgba(238,38,61,.025);box-shadow:0 3px 8px rgba(238,38,61,.035);padding:6px}
/* Hero light card and geometry remain behind the copy. */
.hero{background:linear-gradient(125deg,#0f1a29 0%,#1d2b3b 55%,#142133 100%);isolation:isolate}
.hero:before,.about-page-hero:before{content:'';position:absolute;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(238,38,61,.12),rgba(238,38,61,.035) 43%,transparent 71%);left:-150px;top:-160px;pointer-events:none;z-index:0}
.hero:after,.about-page-hero:after{content:'';position:absolute;right:8%;top:40px;width:325px;height:325px;border:1px solid rgba(255,255,255,.055);border-radius:50%;pointer-events:none;z-index:0}
.hero-layout{z-index:1}
.call-panel{position:relative;background:linear-gradient(145deg,#fff 0%,#f8fafc 64%,#f1f4f7 100%);box-shadow:-12px 18px 46px rgba(3,11,24,.19),0 4px 12px rgba(3,11,24,.08);isolation:isolate}
.call-panel:before{content:'';position:absolute;left:0;top:28px;bottom:28px;width:3px;background:linear-gradient(180deg,var(--red),rgba(238,38,61,.18));pointer-events:none}
.local-call{transition:color .2s ease,border-color .2s ease}.local-call:hover{border-bottom-color:rgba(238,38,61,.35)}
.about-page-hero{position:relative;isolation:isolate;background-image:linear-gradient(125deg,rgba(12,26,43,.95),rgba(20,33,51,.83) 52%,rgba(29,43,59,.72)),url('assets/repair-1600.webp')}
.about-page-hero>.wrap{position:relative;z-index:1}
/* Directional dark surfaces with subdued glow and rings. */
.process{position:relative;isolation:isolate;background:linear-gradient(122deg,#0d1929 0%,#1d2b3b 53%,#142133 100%)}
.process:before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 82% 15%,rgba(238,38,61,.075),transparent 55%);pointer-events:none}
.process:after{content:'';position:absolute;width:230px;height:230px;right:10%;top:30px;border:1px solid rgba(255,255,255,.04);border-radius:50%;pointer-events:none;z-index:-1}
.process-grid{position:relative;z-index:0}.steps li>span{background:linear-gradient(145deg,#ee263d,#d5142e);box-shadow:0 4px 13px rgba(238,38,61,.22);outline:1px solid rgba(255,255,255,.13);outline-offset:4px;font-weight:800}
.contact-copy{position:relative;isolation:isolate;background-image:linear-gradient(120deg,rgba(11,23,43,.97),rgba(20,33,51,.88) 53%,rgba(29,43,59,.74)),url('assets/repair-1600.webp')}
.contact-copy:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 90% 10%,rgba(238,38,61,.1),transparent 57%);pointer-events:none;z-index:-1}
.contact-copy:after{content:'';position:absolute;right:20px;bottom:40px;width:180px;height:180px;border:1px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none;z-index:-1}
/* Pill CTAs with a single hover shimmer, never autoplay. */
.button{border-radius:100px;position:relative;isolation:isolate;overflow:hidden;box-shadow:0 4px 10px rgba(238,38,61,.13);transition:background .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease}
.button:before{content:'';position:absolute;inset:-50% auto -50% -65%;width:42%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.24),transparent);transform:skewX(-17deg);pointer-events:none;z-index:-1}
.button:hover{box-shadow:0 5px 12px rgba(238,38,61,.16),0 12px 24px rgba(20,33,51,.1)}
.button:hover:before,.button:focus-visible:before{animation:cta-shimmer .68s ease-out 1}
.quote-outline{box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 4px 12px rgba(3,11,24,.08)}
@keyframes cta-shimmer{from{left:-65%}to{left:130%}}
/* Editorial image depth without changing panel bounds. */
.about-layout>img,.about-story img{box-shadow:20px 20px 0 rgba(238,38,61,.09),0 8px 24px rgba(20,33,51,.07);position:relative;z-index:1}
.sample-label{border-radius:100px;background:rgba(20,33,51,.04)}
/* Layered testimonial cards and a pale quotation behind the text. */
.review-grid figure{position:relative;border-left-color:transparent;background:linear-gradient(145deg,#fff,#fdfefe);box-shadow:0 3px 6px rgba(20,33,51,.035),0 15px 28px rgba(20,33,51,.085),6px 7px 0 rgba(238,38,61,.035);isolation:isolate}
.review-grid figure:before{content:'';position:absolute;left:25px;top:0;width:90px;height:3px;background:linear-gradient(90deg,var(--red),rgba(238,38,61,.05));border-radius:100px;pointer-events:none}
.review-grid .quote-mark{color:transparent;position:relative}
.review-grid .quote-mark:before{content:'“';position:absolute;top:0;left:-5px;font-family:Georgia,serif;font-size:145px;line-height:1;color:rgba(238,38,61,.075);pointer-events:none}
.review-grid blockquote{position:relative;z-index:1}.review-grid figcaption{border-top-color:transparent}
/* Shadowed enquiry containers, with fixed accent lines. */
.form-panel{position:relative;isolation:isolate;box-shadow:0 3px 6px rgba(20,33,51,.04),0 18px 42px rgba(20,33,51,.12),6px 7px 0 rgba(238,38,61,.035);background:linear-gradient(145deg,#fff,#fcfdfe)}
.form-panel:before{content:'';position:absolute;top:0;left:0;width:38%;height:3px;background:linear-gradient(90deg,var(--red),rgba(238,38,61,0));pointer-events:none}
.about-local-cards>a:not(.email-link){border-left-color:transparent;position:relative;background:linear-gradient(130deg,#f2f5f8,#fff);box-shadow:var(--shadow-soft);transition:box-shadow .22s ease}
.about-local-cards>a:not(.email-link):before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(var(--red),rgba(238,38,61,.05));pointer-events:none}
.about-local-cards>a:not(.email-link):hover{box-shadow:0 4px 9px rgba(20,33,51,.04),0 15px 28px rgba(20,33,51,.1)}
.faq-list details{border-bottom-color:rgba(20,33,51,.1)}
footer{position:relative;isolation:isolate;background:linear-gradient(180deg,#182638 0%,#142133 45%,#0f1a29 100%);box-shadow:inset 0 1px 0 rgba(238,38,61,.22)}
footer:before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 6% 0,rgba(238,38,61,.035),transparent 53%);pointer-events:none;z-index:-1}
@media(max-width:800px){.service-grid article:after{top:125px;font-size:56px}.about-layout>img,.about-story img{box-shadow:12px 12px 0 rgba(238,38,61,.09),0 6px 18px rgba(20,33,51,.06)}.call-panel:before{top:22px;bottom:22px}}
@media(max-width:560px){.service-grid article:after{top:117px;right:7px;font-size:48px}.about-stats strong{transform:scale(1.17)}.line-icon{padding:4px}.hero:after{right:-110px;top:95px;width:260px;height:260px}.process:after{right:-90px;width:190px;height:190px}.about-layout>img{box-shadow:inset 0 -10px 0 rgba(238,38,61,.09),0 12px 0 rgba(238,38,61,.09)}.strip-heading .eyebrow:before{inset:-7px -10px}}
@media(prefers-reduced-motion:reduce){.button:hover:before,.button:focus-visible:before{animation:none}.service-grid article:hover,.service-grid article:focus-within,.town-grid>a:hover{transform:none}.service-grid article:before,.town-grid>a:before{transition:none}}
.hero-image{z-index:-1}.process{overflow:hidden}
.about-stats strong,.approach-grid article>span,.town-grid>a>span{width:max-content;max-width:100%}
.strip-heading{line-height:0}.strip-heading .eyebrow{vertical-align:top}
/* Editorial finish: surface and interaction changes only. */
header{box-shadow:0 1px 0 rgba(20,33,51,.07),0 8px 24px rgba(20,33,51,.025)}
header:after{content:'';position:absolute;bottom:0;left:5%;right:5%;height:1px;background:linear-gradient(90deg,rgba(238,38,61,.42),rgba(20,33,51,.09) 24%,rgba(20,33,51,.025) 75%,transparent);pointer-events:none}
nav>a,.dropdown>button{position:relative}
nav>a:after,.dropdown>button:after{content:'';position:absolute;bottom:4px;left:0;right:0;height:1px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .24s ease;opacity:.7;pointer-events:none}
nav>a:hover:after,nav>a:focus-visible:after,.dropdown>button[aria-expanded=true]:after{transform:scaleX(1)}
.dropdown-panel{border-top-color:transparent;background:linear-gradient(135deg,#fff,#f6f8fa);box-shadow:-2px 0 0 rgba(238,38,61,.55),0 6px 12px rgba(20,33,51,.045),0 20px 42px rgba(20,33,51,.13)}
.dropdown-panel a{transition:background .2s ease,box-shadow .2s ease}.dropdown-panel a:hover,.dropdown-panel a:focus-visible{background:rgba(238,38,61,.035);box-shadow:inset 2px 0 0 rgba(238,38,61,.65)}
.hero-image{background-image:linear-gradient(117deg,rgba(13,27,43,.94),rgba(13,27,43,.45) 47%,rgba(13,27,43,.12) 78%),url('assets/hero-1600.webp')}
.hero:before{background:radial-gradient(circle,rgba(238,38,61,.17),rgba(238,38,61,.04) 45%,transparent 72%)}
.hero:after{border-color:rgba(255,255,255,.075);box-shadow:0 0 0 28px rgba(255,255,255,.016),0 0 0 29px rgba(255,255,255,.025)}
.call-panel{background:linear-gradient(145deg,#fff 5%,#f8fafc 55%,#edf2f5 100%);box-shadow:-1px 0 0 rgba(255,255,255,.6),-16px 22px 50px rgba(3,11,24,.24),0 5px 14px rgba(3,11,24,.1)}
.call-panel:after{content:'';position:absolute;right:14px;top:14px;width:24px;height:24px;border-right:1px solid rgba(238,38,61,.23);border-top:1px solid rgba(238,38,61,.23);pointer-events:none}
.local-call:hover,.local-call:focus-visible{box-shadow:inset 0 -1px 0 rgba(238,38,61,.18)}
.benefits{background:linear-gradient(110deg,#eef2f5 0%,#fafcfd 55%,#f3f6f9 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(20,33,51,.035)}
.line-icon{background:linear-gradient(145deg,rgba(255,255,255,.85),rgba(238,38,61,.035));box-shadow:0 0 0 4px rgba(238,38,61,.025),0 4px 10px rgba(20,33,51,.045)}
.eyebrow:before{background:linear-gradient(90deg,currentColor,rgba(238,38,61,.1));opacity:.8}
.strip-heading .eyebrow:before{background:linear-gradient(125deg,rgba(238,38,61,.055),rgba(255,255,255,.65));box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 2px 5px rgba(20,33,51,.025)}
.accreditations{background:linear-gradient(140deg,#f6f8fa,#eef2f5)}
.accreditation-grid li{background:linear-gradient(135deg,#fff 15%,#f9fbfc);box-shadow:0 1px 2px rgba(20,33,51,.025),0 8px 18px rgba(20,33,51,.045),0 22px 38px rgba(20,33,51,.025)}
.clients{border-top-color:rgba(20,33,51,.055);border-bottom-color:rgba(20,33,51,.055);background:linear-gradient(105deg,#fff,#fafcfd 50%,#fff)}
.client-grid li:after,.accreditation-grid li:after{color:rgba(20,33,51,.045)}
.client-logo{transition:opacity .22s ease,transform .22s ease}.client-grid li:hover .client-logo{opacity:.8}
.services{background:linear-gradient(130deg,#eef2f5,#f6f8fa 52%,#edf2f5)}
.service-grid article{box-shadow:0 1px 2px rgba(20,33,51,.035),0 8px 16px rgba(20,33,51,.055),0 22px 35px rgba(20,33,51,.025)}
.service-grid article>img{outline:1px solid rgba(20,33,51,.045);outline-offset:-11px}
.service-grid article:after{color:rgba(20,33,51,.055);text-shadow:1px 1px 0 rgba(255,255,255,.8)}
.service-grid article:hover,.service-grid article:focus-within{box-shadow:0 2px 4px rgba(20,33,51,.04),0 13px 22px rgba(20,33,51,.09),0 30px 45px rgba(20,33,51,.065)}
.text-link span,.button span{transition:transform .22s ease}.text-link:hover span,.text-link:focus-visible span{transform:translateX(4px)}
.button{background-image:linear-gradient(115deg,rgba(255,255,255,.06),transparent 46%,rgba(20,33,51,.065));box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 3px 5px rgba(238,38,61,.11),0 10px 20px rgba(20,33,51,.055)}
.button:hover{background-image:linear-gradient(115deg,rgba(255,255,255,.08),transparent 45%,rgba(20,33,51,.1));box-shadow:inset 0 1px 0 rgba(255,255,255,.17),0 5px 8px rgba(238,38,61,.13),0 16px 28px rgba(20,33,51,.095)}
.button:active{transform:translateY(0);box-shadow:inset 0 1px 4px rgba(20,33,51,.15),0 2px 5px rgba(20,33,51,.06)}
.button:hover span,.button:focus-visible span{transform:translateX(2px)}
.quote-outline,.secondary{background-image:none}
.process{background:linear-gradient(123deg,#0d1929 0%,#142133 33%,#1d2b3b 62%,#0f1a29 100%)}
.process:before{background:radial-gradient(ellipse at 83% 10%,rgba(238,38,61,.13),transparent 52%),repeating-linear-gradient(0deg,transparent 0px,transparent 47px,rgba(255,255,255,.014) 47px,rgba(255,255,255,.014) 48px)}
.process:after{box-shadow:0 0 0 30px rgba(255,255,255,.012),0 0 0 31px rgba(255,255,255,.025)}
.steps li>span{box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 5px 14px rgba(238,38,61,.22)}
.about-stats>div{box-shadow:0 1px 2px rgba(20,33,51,.03),0 9px 18px rgba(20,33,51,.06),5px 5px 0 rgba(238,38,61,.035)}
.about-layout>img,.about-story img{outline:1px solid rgba(20,33,51,.05);outline-offset:-1px;box-shadow:20px 20px 0 rgba(238,38,61,.09),0 2px 5px rgba(20,33,51,.04),0 16px 30px rgba(20,33,51,.1)}
.about-page-hero{background-image:linear-gradient(123deg,rgba(12,26,43,.97),rgba(20,33,51,.82) 48%,rgba(29,43,59,.72)),url('assets/repair-1600.webp')}
.about-local-cards>a:not(.email-link){box-shadow:0 2px 3px rgba(20,33,51,.025),0 11px 24px rgba(20,33,51,.065)}
.about-local-cards>a:not(.email-link):focus-visible{box-shadow:0 3px 6px rgba(20,33,51,.04),0 16px 28px rgba(20,33,51,.095)}
.town-grid>a{box-shadow:0 1px 2px rgba(20,33,51,.025),0 8px 16px rgba(20,33,51,.045)}
.town-grid>a>span{color:rgba(20,33,51,.2);text-shadow:1px 1px 0 rgba(255,255,255,.85)}
.reviews{background:linear-gradient(140deg,#f2f5f8 0%,#f8fafc 58%,#eef2f5 100%)}
.review-grid figure{background:linear-gradient(142deg,#fff,#fdfefe);box-shadow:0 2px 4px rgba(20,33,51,.035),0 12px 22px rgba(20,33,51,.075),0 28px 40px rgba(20,33,51,.045),5px 6px 0 rgba(238,38,61,.04);transition:box-shadow .25s ease}
.review-grid figure:before{box-shadow:0 2px 5px rgba(238,38,61,.055)}
.review-grid .quote-mark:before{color:rgba(238,38,61,.065);text-shadow:1px 1px 0 rgba(238,38,61,.025)}
.review-grid figure:hover{box-shadow:0 3px 5px rgba(20,33,51,.04),0 16px 28px rgba(20,33,51,.1),0 30px 45px rgba(20,33,51,.055),5px 6px 0 rgba(238,38,61,.055)}
.review-grid figcaption{position:relative}.review-grid figcaption:before{content:'';position:absolute;left:0;top:0;width:34px;height:1px;background:linear-gradient(90deg,rgba(238,38,61,.35),transparent)}
.faq-list details{position:relative;border-bottom-color:rgba(20,33,51,.08)}
.faq-list details:before{content:'';position:absolute;left:-12px;top:5px;bottom:18px;width:2px;background:linear-gradient(180deg,rgba(238,38,61,.6),transparent);opacity:0;transition:opacity .2s ease;pointer-events:none}
.faq-list details[open]:before{opacity:1}.faq-list summary{transition:color .2s ease}.faq-list summary:hover{color:#d5142e}
.contact-copy{background-image:linear-gradient(126deg,rgba(11,23,43,.98),rgba(20,33,51,.92) 45%,rgba(29,43,59,.78)),url('assets/repair-1600.webp')}
.contact-copy:before{background:radial-gradient(ellipse at 92% 7%,rgba(238,38,61,.15),transparent 58%)}
.form-panel{box-shadow:0 2px 4px rgba(20,33,51,.035),0 14px 25px rgba(20,33,51,.09),0 30px 55px rgba(20,33,51,.065),5px 6px 0 rgba(238,38,61,.035)}
.form-panel:after{content:'';position:absolute;top:16px;right:16px;width:20px;height:20px;border-top:1px solid rgba(238,38,61,.2);border-right:1px solid rgba(238,38,61,.2);pointer-events:none}
input,select,textarea{transition:box-shadow .2s ease,border-color .2s ease,background .2s ease;box-shadow:inset 0 1px 2px rgba(20,33,51,.025)}
input:hover,select:hover,textarea:hover{border-color:#aebdca}input:focus,select:focus,textarea:focus{border-color:rgba(238,38,61,.5);box-shadow:0 0 0 3px rgba(238,38,61,.055);background:#fff}
footer{background:linear-gradient(165deg,#1d2b3b 0%,#142133 38%,#0f1a29 100%);box-shadow:inset 0 1px 0 rgba(238,38,61,.25),inset 0 2px 0 rgba(255,255,255,.025)}
.footer-bottom{border-top-color:rgba(255,255,255,.09)}
.footer-grid a:not(.brand),.footer-bottom a{transition:color .2s ease,text-decoration-color .2s ease}
.footer-grid a:not(.brand):hover,.footer-bottom a:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;text-decoration-color:rgba(238,38,61,.45)}
.mobile-calls{box-shadow:0 -1px 0 rgba(255,255,255,.12),0 -8px 24px rgba(20,33,51,.14)}
.mobile-calls a{background-image:linear-gradient(120deg,rgba(255,255,255,.055),transparent 45%,rgba(20,33,51,.08));transition:box-shadow .2s ease}.mobile-calls a:active{box-shadow:inset 0 2px 6px rgba(20,33,51,.2)}
@media(max-width:800px){.about-layout>img,.about-story img{box-shadow:12px 12px 0 rgba(238,38,61,.09),0 2px 4px rgba(20,33,51,.035),0 10px 22px rgba(20,33,51,.075)}.service-grid article>img{outline-offset:-7px}}
@media(max-width:560px){.about-layout>img{box-shadow:0 12px 0 rgba(238,38,61,.09)}.form-panel:after{right:12px;top:12px}}
@media(prefers-reduced-motion:reduce){nav>a:after,.dropdown>button:after,.faq-list details:before,.text-link span,.button span{transition:none}.text-link:hover span,.text-link:focus-visible span,.button:hover span,.button:focus-visible span{transform:none}}

/* Professional QA: readable controls, accessible contrast and consistent card rhythm. */
.button{background-color:#d5142e;border-color:#d5142e;min-height:44px}
.button:hover{background-color:#c61a31;border-color:#c61a31}
.quote-outline{background-color:transparent;border-color:#ffffff90}.secondary{background-color:white;color:#c61a31}
.menu-toggle,.dialog-close{min-width:44px;min-height:44px}
.brand{min-height:44px;display:flex;flex-direction:column;justify-content:center;position:relative}
.brand{display:block;padding-top:2px;padding-bottom:2px}
nav>a{min-height:44px;display:flex;align-items:center}
.text-link,.faq-list summary{min-height:44px}
.faq-list summary{display:flex;align-items:center}.faq-list summary:after{top:50%;transform:translateY(-50%)}
.service-grid article{display:flex;flex-direction:column}.service-grid article>img{flex-shrink:0}
.service-grid article>div{flex:1;display:flex;flex-direction:column}.service-grid p{min-height:0;font-size:14px;line-height:1.65}
.service-actions{margin-top:auto;padding-top:18px;gap:8px}.service-actions .button{min-height:44px;font-size:12px}
.service-actions .text-link{font-size:13px}
.steps li p{font-size:14px!important;line-height:1.65}.steps h3{font-size:15px;line-height:1.4}
input,select,textarea{font-size:16px;line-height:1.5;min-height:48px}
.form-note{font-size:14px;color:#45515e;background:#eef2f5;border-left:3px solid #d5142e;padding:12px 15px;margin:18px 0}
.fine,.local-call small{font-size:12px}.hero-local-line{font-size:13px;line-height:1.6}
.hero-local-line a{display:inline-flex;align-items:center;min-height:44px}
.sample-label{font-size:12px}.review-heading>p{font-size:14px}.review-grid figcaption span{font-size:13px}
.contact-copy>.email-link,.about-local-cards>.email-link{display:flex;align-items:center;min-height:44px}
.footer-grid>div>a:not(.brand){min-height:44px;display:flex;flex-direction:column;justify-content:center;font-size:13px;line-height:1.5}
.footer-grid a.footer-quote{display:flex!important;font-size:13px!important}
.footer-grid>div>a.email-link{font-size:13px}.footer-bottom{font-size:12px}.footer-bottom a{display:flex;align-items:center;min-height:44px;min-width:44px}
.breadcrumbs a{display:flex;align-items:center;min-height:44px;min-width:44px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #3278b4;outline-offset:4px}
:where(.process,.hero,.contact-copy,.about-page-hero,footer,.mobile-calls) :where(a,button):focus-visible{outline-color:#fff}
.hero-image{background-image:linear-gradient(117deg,rgba(13,27,43,.96),rgba(13,27,43,.70) 60%,rgba(13,27,43,.18)),url('assets/hero-1600.webp')}
.service-grid article:after,.approach-grid article:after,.accreditation-grid li:after,.client-grid li:after{content:attr(data-card-number) / ''}
.approach-grid article>span{position:relative;z-index:1}
#service-dialog,#callback-dialog{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
@media(max-width:800px){
 .footer-grid>div>a:not(.brand){font-size:13px}.header-quote{min-height:44px}
 .service-grid article>div{padding:16px 13px 20px}
 .fine,.local-call small{font-size:12px}.hero-local-line{font-size:13px}
 .service-actions .button{font-size:12px;padding:12px 10px}
}
@media(max-width:560px){
 .brand{padding-top:2px}.hero-local-line{font-size:13px}
 .service-grid h3{font-size:16px;line-height:1.35;min-height:0;margin-bottom:12px}
 .service-grid p{font-size:14px;line-height:1.65;min-height:0}
 .service-actions .button{font-size:12px;padding:12px 9px}.service-actions .text-link{font-size:13px;line-height:1.5}
 .steps h3{font-size:14px;min-height:0}.steps li p{font-size:13px!important}
 .local-call small{font-size:11px}.local-call strong{font-size:18px}
 .mobile-calls a{padding-bottom:max(12px,env(safe-area-inset-bottom));background-color:#142133;min-height:64px}
 .mobile-calls a:last-child{background-color:#d5142e}.mobile-calls small{font-size:10px}
 .footer-bottom{padding-bottom:100px}html{scroll-padding-bottom:85px}
 .footer-grid>div:last-child{gap:18px 24px}
}

input,select,textarea{font-weight:400}
@media(min-width:1201px){.header-phone small{font-size:11px}.header-other-line{font-size:12px}.header-inner{gap:28px}}

/* Reference-matched centred copyright and agency signature. */
.footer-bottom{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:30px 0 36px}
.footer-bottom p{margin:0}.copyright{font-size:14px;font-weight:400;color:#c4cbd4;line-height:1.6}
.agency-credit{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:5px 12px;color:#f3f5f7;font-size:13px;font-weight:600;line-height:1.6}
.credit-services,.credit-powered{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px}
.credit-services>span:not(.credit-divider){white-space:nowrap}.credit-divider{color:#697887;font-weight:400}
.footer-bottom .credit-brand{display:inline-flex;align-items:center;position:relative;min-height:44px;font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:1.1em;font-weight:800;font-stretch:normal;font-style:normal;line-height:inherit;letter-spacing:.015em;transform:none;color:#fff;padding:0;text-decoration:none;transition:color .2s}.footer-bottom .credit-brand::after{content:"";position:absolute;left:0;right:0;bottom:9px;height:1px;background:var(--red);opacity:.7;transition:opacity .2s}.footer-bottom .credit-brand:hover::after{opacity:1}
.credit-brand sup{font-size:.48em;line-height:0;position:relative;top:-.6em;margin-left:2px}.footer-bottom .credit-brand:hover{color:#ff6c7c;border-bottom-color:#ff6c7c}
@media(max-width:800px){.agency-credit{font-size:12px;gap:6px 10px}.credit-services{gap:8px 12px}}
@media(max-width:560px){.footer-bottom{padding:27px 0 calc(96px + env(safe-area-inset-bottom));gap:6px}.copyright{font-size:13px}.agency-credit{font-size:12px;gap:6px}.credit-services{gap:6px 10px}.credit-services>span:last-child{flex-basis:100%}.credit-services>.credit-divider:nth-child(4){display:none}.credit-powered{gap:6px;flex-wrap:nowrap}}

/* Wider, confident sans-serif wordmark and a refined supporting signature. */
.brand,.footer-grid .brand{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:26px;font-weight:800;letter-spacing:0;font-stretch:normal;line-height:1.15;transform:none;flex-shrink:0}
.brand small,.footer-grid .brand small{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:10px;font-weight:700;line-height:1.5;letter-spacing:.12em;text-transform:uppercase;margin-top:7px}
.footer-grid .brand{font-size:25px}
@media(min-width:1201px){.header-inner{gap:18px}}
@media(max-width:1100px){header .brand{font-size:24px}}
@media(max-width:800px){header .brand{font-size:23px}}
@media(max-width:560px){header .brand{font-size:21px}.brand small,.footer-grid .brand small{font-size:9px;letter-spacing:.1em;margin-top:6px}.footer-grid .brand{font-size:25px}}

/* Continue the hero panel to the viewport edge, avoiding an exposed navy rail. */
@media(min-width:561px){
 .hero{background:linear-gradient(145deg,#fff 5%,#f8fafc 55%,#edf2f5 100%)}
 .hero:after{display:none}
}
/* Enquiry panels also fill the viewport at wide desktop sizes. */
.contact-layout{max-width:none}
@media(min-width:801px){.form-panel{padding-right:max(50px,calc((100vw - 1240px)/2))}}

/* Larger brand marks and a restrained accreditation signature in the footer. */
.client-grid li{padding:22px 0;min-height:136px}.client-logo{transform:scale(1.5);margin:13px 0}
.client-grid strong{margin-top:18px;font-size:11px}
.footer-accreditations{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:24px 0 30px;border-top:1px solid #ffffff16}
.footer-accreditations>p{font-family:Manrope,'Segoe UI',Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;color:#c4cbd4;margin:0}
.footer-accreditations ul{display:grid;grid-template-columns:repeat(4,120px);gap:14px;list-style:none;padding:0;margin:0}
.footer-accreditations li{display:flex;align-items:center;justify-content:center;min-height:92px;background:linear-gradient(145deg,#fff,#eef2f5);border-radius:5px;box-shadow:0 4px 12px #0002,inset 0 1px 0 #fff}
.footer-accreditations .accreditation-logo{transform:scale(.9);height:85px}
@media(max-width:800px){.client-grid{grid-template-columns:1fr 1fr;gap:14px 0}.client-grid li:nth-child(2){border-right:0}.client-logo{transform:scale(1.35)}.footer-accreditations{flex-direction:column;align-items:stretch;gap:18px}.footer-accreditations ul{grid-template-columns:repeat(4,1fr)}}
@media(max-width:560px){.client-logo{transform:scale(1.1);margin:5px 0}.client-grid li{min-height:112px;padding:16px 0}.client-grid strong{margin-top:14px}.footer-accreditations ul{grid-template-columns:repeat(2,1fr);gap:12px}.footer-accreditations>p{text-align:center}}
/* Crop each supplied mark tightly so their visible sizes are balanced. */
.client-logo.dreams{background-size:4581.6px 1223.6px;background-position:-3255.8px -609.8px}
.client-logo.balfour{background-size:3984px 1064px;background-position:-1146px -529px}
.client-logo.amazon{background-size:2191.2px 585.2px;background-position:-293px -279.7px}
.client-logo.romec{background-size:1992px 532px;background-position:-1096px -252px}

/* True edge-to-edge hero: the photo meets the actual contact panel. */
@media(min-width:561px){
 .hero{--hero-panel-width:clamp(300px,28vw,480px)}
 .hero-layout{width:100%;max-width:none;padding-left:max(5%,calc((100% - 1240px)/2));grid-template-columns:minmax(0,1fr) var(--hero-panel-width);gap:clamp(30px,5vw,80px)}
 .hero-image{right:var(--hero-panel-width)}
 .call-panel{box-shadow:-12px 18px 46px rgba(3,11,24,.12)}
}
@media(min-width:561px) and (max-width:1100px){.hero{--hero-panel-width:280px}.hero-layout{gap:30px}}
@media(min-width:561px) and (max-width:800px){.hero{--hero-panel-width:245px}.hero-layout{gap:25px}}

/* Keep the footer contact column and quote link on one shared centre line. */
.footer-grid>div:last-child{text-align:center;justify-content:center}
.footer-grid>div:last-child>a{align-items:center;text-align:center}
.footer-grid a.footer-quote{width:100%;flex-direction:row;align-items:center;justify-content:center;gap:8px;margin:0 0 12px;min-height:44px}

/* Extend each homepage service title link across its whole card. */
#services .service-grid article>div{position:static;z-index:auto}
#services .service-card-link{position:static}
#services .service-card-link::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;cursor:pointer}
#services .service-card-link:focus-visible{outline:none}
#services .service-card-link:focus-visible::after{outline:3px solid var(--red);outline-offset:4px}

/* Hosted quotation form owns its fields and submission behaviour. */
.form-panel.jotform-panel{min-width:0;padding:20px 16px}
.jotform-panel iframe{display:block;width:100%;max-width:100%;border:0}
.jotform-panel .jotform-fallback{margin:16px 8px 0;font-size:13px;line-height:1.6}
.jotform-fallback a{color:#d5142e;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.form-panel.jotform-panel{padding:16px 4px}}

/* Compact analytics controls, shown only by the production-only loader. */
.analytics-choice{position:fixed;z-index:100;bottom:16px;left:16px;right:16px;max-width:760px;margin:auto;padding:22px 24px;background:#fff;color:#101c2d;border-radius:12px;box-shadow:0 4px 12px #14213320,0 18px 55px #14213330;border-top:3px solid #ee263d}
.analytics-choice[hidden]{display:none}
.analytics-choice strong{font-family:Manrope,Arial,sans-serif;font-size:17px;font-weight:800}
.analytics-choice p{font-size:14px;line-height:1.6;margin:6px 0 14px}
.analytics-choice-actions{display:flex;gap:12px;flex-wrap:wrap}
.analytics-choice-actions button{min-height:44px;padding:10px 18px;background:#142133;color:#fff;border:1px solid #142133;border-radius:100px;font-weight:700;font-size:14px}
.analytics-choice-actions button:hover{background:#26384e}
.analytics-preferences{border:0;background:none;color:#c4cbd4;font-size:12px;min-height:44px;padding:8px 12px;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.analytics-choice{bottom:calc(82px + env(safe-area-inset-bottom));left:10px;right:10px;padding:18px}.analytics-choice-actions button{flex:1}}

/* Policy content uses the approved reading width and brand styling. */
.policy-copy{max-width:860px}.policy-copy h2{font-size:clamp(24px,2.2vw,30px);margin-top:36px}.policy-copy h2:first-child{margin-top:0}.policy-copy a,.form-privacy a{color:#d5142e;text-decoration:underline;text-underline-offset:3px}.policy-copy p{line-height:1.75}.jotform-panel .form-privacy{margin:16px 8px 0;font-size:13px;line-height:1.6}

.policy-hero .breadcrumbs{align-items:center}
