:root{--navy:#092b43;--blue:#057ea6;--cyan:#35bee8;--ink:#153345;--muted:#596b75;--pale:#f2f6f7;--line:#dce5e9;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);background:#fff;font-family:Arial,Helvetica,sans-serif;line-height:1.6}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%;display:block}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:2px}.wrap{width:min(1280px,90%);margin:auto}.topbar{background:var(--navy);color:#d7e4ec;font-size:11px;letter-spacing:1.2px}.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:36px}.topbar a{letter-spacing:0;font-size:12px}.topbar strong{color:white;margin-left:12px}.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.98);box-shadow:0 1px 0 #092b4310}.header-inner{display:flex;align-items:center;gap:32px;min-height:103px}.brand{width:220px;flex-shrink:0}.brand img{width:100%;height:74px;object-fit:contain}nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:13px;font-weight:600}nav>a:not(.button):hover{color:var(--blue)}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;background:var(--blue);color:white;padding:16px 23px;border:0;border-radius:3px;font-weight:600;font-size:14px;transition:background .2s,transform .2s}.button:hover{background:#056788;transform:translateY(-2px)}.button span{font-size:20px;line-height:1}.button.small{padding:12px 18px}.credentials{display:flex;align-items:center;gap:20px}.credentials a{display:flex;flex-direction:column;align-items:center;gap:4px}.credentials img{width:86px;max-height:35px;object-fit:contain}.credentials span{font-size:9px;white-space:nowrap}.header-credentials{border-left:1px solid var(--line);padding-left:24px}.fgas{display:flex;flex-direction:column;align-items:center}.fgas strong{font-size:20px;letter-spacing:2px;color:#247844}.menu-toggle{display:none}.hero{min-height:660px;position:relative;background:var(--navy);color:white;overflow:hidden}.hero-images,.hero-shade{position:absolute;inset:0}.slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;opacity:0;transition:opacity 1.3s ease}.slide.active{opacity:1}.hero-shade{background:linear-gradient(90deg,rgba(4,24,37,.9),rgba(4,24,37,.61) 43%,rgba(4,24,37,.06) 80%),linear-gradient(0deg,rgba(4,24,37,.8),transparent 35%)}.hero-content{position:relative;padding-top:90px;padding-bottom:135px}.eyebrow{font-size:11px;letter-spacing:2.3px;font-weight:700;color:var(--blue);margin:0 0 23px}.eyebrow.light{color:#c4e7f4}.status-dot{display:inline-block;width:7px;height:7px;background:var(--cyan);border-radius:50%;margin-right:9px}h1{font-size:clamp(42px,4.7vw,70px);font-weight:500;line-height:1.08;letter-spacing:-2.8px;margin:0 0 25px}h1 em{font-style:normal;color:#5bd2f0}.hero-intro{font-size:16px;line-height:1.8;color:#e0e7eb;margin-bottom:30px}.hero-actions{display:flex;gap:30px;align-items:center}.text-link{font-size:13px;font-weight:600;display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid #ffffff60;padding:10px 0}.hero-bottom{position:absolute;bottom:40px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center}.photo-caption{display:flex;align-items:center;gap:21px}.photo-caption>span{font-size:12px;letter-spacing:2px;color:#98d8ee;border-right:1px solid #ffffff40;padding-right:22px}.photo-caption strong{display:block;font-weight:500;font-size:15px}.photo-caption small{display:block;font-size:12px;color:#d2dde4;margin-top:3px}.carousel-controls{display:flex;align-items:center;gap:12px}.carousel-controls>button{color:white;background:transparent;border:1px solid #ffffff50;width:36px;height:36px;border-radius:50%;font-size:19px}.dots{display:flex;gap:4px}.dots button{border:0;background:transparent;width:23px;height:32px;padding:9px}.dots button:after{content:'';display:block;width:6px;height:6px;border-radius:50%;background:#ffffff60}.dots button.selected:after{background:var(--cyan)}.local-strip{background:var(--pale);border-bottom:1px solid var(--line);font-size:12px}.local-strip .wrap{display:flex;gap:23px;align-items:center;min-height:74px}.local-strip strong{margin-right:auto}.local-strip i{font-style:normal;color:#92a6b0}.local-strip a{color:var(--blue)}.location-symbol{font-size:26px;color:var(--blue)}.section{padding-top:100px;padding-bottom:100px}h2{font-size:clamp(32px,3.3vw,47px);font-weight:500;line-height:1.14;letter-spacing:-1.8px;margin:0 0 24px}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:43px}.section-heading>p{max-width:410px;font-size:14px;line-height:1.8;color:var(--muted);margin-bottom:25px}.section-heading small{font-size:12px}.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.service{position:relative;padding:34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .2s}.service:hover{background:#edf7fb}.service-number{position:absolute;right:27px;top:31px;font-size:12px;color:#90a0aa}.service-icon{display:block;font-size:38px;line-height:1;height:61px;color:var(--blue)}h3{font-size:20px;line-height:1.3;letter-spacing:-.4px;margin:10px 0 15px}.service p{font-size:14px;color:var(--muted);min-height:88px;margin-bottom:20px}.service-link{display:flex;justify-content:space-between;font-size:12px;font-weight:600}.service-link b{font-size:20px;color:var(--blue)}.service.featured{background:var(--navy);color:white}.service.featured p{color:#bfd0da}.service.featured .service-icon,.service.featured b{color:var(--cyan)}.gallery-section{background:var(--pale)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px}.gallery-item{height:340px;position:relative;overflow:hidden;border:0;padding:0;background:var(--navy);text-align:left;color:white;border-radius:3px}.gallery-item.wide{grid-column:span 2}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-item:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 40%,#051f35c9)}.gallery-item:hover img{transform:scale(1.035)}.gallery-item>span{position:absolute;bottom:26px;left:28px;right:50px;z-index:1}.gallery-item small{display:block;font-size:9px;letter-spacing:1.5px;color:#bbdfed;margin-bottom:8px}.gallery-item strong{display:block;font-size:21px;font-weight:500;line-height:1.3}.gallery-item>b{position:absolute;right:25px;bottom:28px;z-index:1;font-size:22px;font-weight:400}.about{display:grid;grid-template-columns:1fr 1fr;gap:110px}.about p:not(.eyebrow){color:var(--muted);font-size:15px}.about .large-copy{font-size:21px!important;color:var(--ink)!important}.dark{color:var(--blue);border-color:#b5c7cf}.process{background:var(--pale);padding:42px}.process>div{display:flex;gap:25px;border-top:1px solid var(--line);padding:23px 0 10px}.process>div>span{font-size:12px;color:var(--blue);padding-top:12px}.process h3{font-size:19px}.process p{font-size:13px!important}.coverage{background:var(--navy);color:white;padding:80px 0;position:relative;overflow:hidden}.coverage .wrap{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:center}.coverage p:not(.eyebrow){font-size:14px;color:#bfd2dc;max-width:440px;margin-bottom:30px}.towns>span{display:flex;align-items:center;gap:25px;border-bottom:1px solid #ffffff24;padding:23px 0;color:#74c3dd;font-size:12px}.towns strong{font-size:25px;color:white;font-weight:400;flex:1;letter-spacing:-.5px}.towns small{display:block;margin-top:24px;color:#b4cbd7}.faq{display:grid;grid-template-columns:1fr 1.25fr;gap:80px}.faq h2{font-size:37px}.faq p{font-size:14px;color:var(--muted)}details{border-bottom:1px solid var(--line);padding:20px 0}details:first-child{border-top:1px solid var(--line)}summary{list-style:none;cursor:pointer;font-size:15px;display:flex;justify-content:space-between;gap:20px;font-weight:600}summary::-webkit-details-marker{display:none}summary:after{content:'+';color:var(--blue);font-size:20px;line-height:1}details[open] summary:after{content:'−'}details p{padding-right:35px}.contact-section{background:#eaf3f6}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px}.contact-grid>div>p:not(.eyebrow){max-width:370px;font-size:15px;color:var(--muted)}.contact-phone{display:block;font-size:35px;letter-spacing:-1px;margin-top:40px}.contact-phone span{color:var(--blue);margin-left:25px}.contact-email{display:block;font-size:16px;margin:10px 0 30px;color:var(--blue)}.contact-note{font-size:12px!important;border-top:1px solid #ccdce3;padding-top:24px}form{background:white;padding:34px;border-radius:4px;box-shadow:0 12px 35px #092b4307}form h3{margin-top:0;margin-bottom:25px}label{display:block;font-size:12px;font-weight:600;margin-bottom:17px}label span{color:var(--muted);font-weight:400}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}input,select,textarea{display:block;width:100%;border:1px solid #d6e0e4;border-radius:2px;background:#fcfdfd;padding:12px;margin-top:7px;color:var(--ink);font-size:13px}textarea{resize:vertical}.form-note{font-size:11px;color:var(--muted);line-height:1.6}form .button{width:100%;margin-top:9px}#form-status{font-size:12px;color:var(--blue);margin-bottom:0}footer{background:#071f31;color:#c3d0d9;padding:58px 0 0;font-size:12px}.footer-main{display:grid;grid-template-columns:1.3fr 1fr .8fr 1fr;gap:45px;padding-bottom:40px}.footer-brand{display:block;background:#fff;width:210px;border-radius:3px}.footer-brand img{width:210px;height:94px;object-fit:contain}.footer-main h3{font-size:13px;color:white;letter-spacing:0;margin:0 0 19px}.footer-main>div>a:not(.footer-brand){display:block;margin:9px 0}.footer-credentials{flex-direction:column;align-items:flex-start;gap:16px}.footer-credentials>a,.footer-credentials .fgas{background:white;border-radius:3px;color:var(--ink);padding:10px 17px;width:160px;text-align:center}.footer-credentials img{margin:auto}.footer-credentials span{display:block}.footer-bottom{display:flex;align-items:center;gap:25px;min-height:64px;border-top:1px solid #ffffff20;font-size:10px}.footer-bottom button{background:none;border:0;color:inherit;font-size:inherit;margin-left:auto}.mobile-contact{display:none}.skip-link{position:fixed;left:20px;top:-100px;z-index:100;background:white;padding:15px}.skip-link:focus{top:10px}dialog{border:0;border-radius:5px;padding:24px;max-width:min(1000px,92vw);max-height:90vh;color:var(--ink);box-shadow:0 20px 70px #0004}dialog::backdrop{background:#041723d9}dialog>img{max-height:67vh;width:100%;object-fit:contain}dialog p{margin:16px 0 8px}dialog small{font-size:11px;color:var(--muted)}.dialog-close{display:block;margin:0 0 12px auto;border:0;background:var(--pale);width:35px;height:35px;font-size:25px;color:var(--navy)}#privacy-dialog{max-width:650px;padding:32px}#privacy-dialog h2{font-size:30px}#privacy-dialog p{font-size:14px}.mobile-contact a{flex:1;text-align:center;padding:15px}
@media(min-width:1423px){.hero-bottom{left:calc((100% - 1280px)/2);right:auto}}
@media(max-width:1150px){.header-inner{gap:20px}.brand{width:180px}nav{gap:18px}.header-credentials{padding-left:16px;gap:14px}.credentials img{width:68px}.fgas strong{font-size:17px}.credentials span{font-size:8px}.about,.contact-grid,.coverage .wrap{gap:55px}.service{padding:27px}.local-strip .wrap{gap:15px}}
@media(max-width:900px){.header-inner{flex-wrap:wrap;gap:8px;padding:10px 0}.header-credentials{margin-left:auto;border:0}.brand{width:190px}nav{order:3;width:100%;justify-content:center;padding:6px 0}.hero{min-height:650px}.hero-content{padding-top:70px}.local-strip .wrap{flex-wrap:wrap;justify-content:center;padding:16px 0;gap:10px 18px}.local-strip strong{margin-right:0}.services-grid{grid-template-columns:1fr 1fr}.section{padding-top:70px;padding-bottom:70px}.section-heading{gap:35px}.section-heading>p{max-width:330px}.about,.faq,.contact-grid{gap:40px}.process{padding:27px}.coverage .wrap{gap:40px}.towns strong{font-size:20px}.footer-main{grid-template-columns:1fr 1fr}.gallery-item{height:280px}.gallery-item strong{font-size:18px}.contact-phone{font-size:28px}.form-row{grid-template-columns:1fr;gap:0}}
@media(max-width:600px){html{scroll-padding-top:150px}.wrap{width:89%}.topbar .wrap{justify-content:center}.topbar .wrap>span{display:none}.topbar a{font-size:10px}.header-inner{min-height:80px}.brand{width:175px}.brand img{height:63px}.menu-toggle{display:flex;align-items:center;gap:15px;margin-left:auto;border:0;background:none;color:var(--navy);font-size:12px;padding:12px 0 12px 12px}.header-credentials{order:2;width:100%;justify-content:center;padding:4px 0 8px;gap:30px}.header-credentials a{flex-direction:row;gap:8px}.header-credentials img{width:60px;height:23px}.header-credentials .fgas{flex-direction:row;gap:7px}.header-credentials span{font-size:8px}.header-credentials .fgas strong{font-size:13px}nav{display:none;align-items:stretch;padding:8px 0 15px;gap:2px}nav.open{display:flex;flex-direction:column}nav>a{padding:12px}.hero{min-height:710px}.hero-content{padding-top:60px;padding-bottom:170px}.hero .eyebrow{font-size:8px;letter-spacing:1.5px}h1{font-size:44px;letter-spacing:-1.9px}.hero-intro{font-size:14px;max-width:310px}.hero-intro br{display:none}.hero-shade{background:linear-gradient(90deg,#041825dc,#04182555),linear-gradient(0deg,#041825e6,transparent 65%)}.hero-actions{flex-direction:column;align-items:flex-start;gap:10px}.hero-bottom{left:5.5%;right:5.5%;bottom:30px;flex-direction:column;align-items:flex-start;gap:22px}.photo-caption small{font-size:10px}.photo-caption strong{font-size:13px}.local-strip .wrap{font-size:10px;gap:7px 12px}.local-strip strong{width:80%;font-size:12px}.local-strip .location-symbol{font-size:20px}.local-strip a{width:100%;text-align:center}.section{padding-top:58px;padding-bottom:58px}.section-heading{display:block;margin-bottom:25px}h2{font-size:35px;letter-spacing:-1.2px}.section-heading>p{max-width:none}.services-grid{grid-template-columns:1fr}.service{padding:26px}.service p{min-height:0;max-width:350px}.service-icon{height:50px;font-size:30px}.gallery-grid{grid-template-columns:1fr;gap:18px}.gallery-item.wide{grid-column:span 1}.gallery-item{height:275px}.about,.faq,.contact-grid,.coverage .wrap{grid-template-columns:1fr;gap:35px}.coverage{padding:58px 0}.towns strong{font-size:23px}.towns>span{padding:18px 0}.faq h2{font-size:33px}.contact-phone{font-size:33px;margin-top:25px}form{padding:25px}.form-row{grid-template-columns:1fr}.footer-main{gap:32px 20px}.footer-main>div:first-child{grid-column:span 2}.footer-credentials{grid-column:span 2;flex-direction:row}.footer-bottom{flex-wrap:wrap;padding:20px 0;gap:13px}.footer-bottom>span{width:100%}.footer-bottom button{margin-left:0;padding:0}.footer-bottom>a{margin-left:auto}footer{padding-bottom:54px}.mobile-contact{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:25;background:var(--navy);color:white;box-shadow:0 -3px 20px #0002;font-size:12px}.mobile-contact a:last-child{background:var(--blue)}dialog{padding:16px}dialog p{font-size:13px}}
.brand img,.footer-brand img{object-fit:cover}.footer-brand img{height:74px}
/* Keep the installation itself visible when a wide card crops a photograph. */
.gallery-item[data-image*="electrician"] img,.slide[src*="electrician"]{object-position:center top}
.gallery-item[data-image*="electrician"]:hover img{transform:none}
.gallery-item[data-image*="living-room"] img{object-position:center top}
.gallery-item[data-image*="outdoor-ac"] img{object-position:20% center}
.gallery-item[data-image*="consumer-unit"]{background:#e5dfd4}
.gallery-item[data-image*="consumer-unit"] img{object-fit:contain;object-position:center 25%}
.gallery-item[data-image*="consumer-unit"]:hover img{transform:none}
.carousel-controls>button{min-width:44px;min-height:44px}
.dots button{width:28px;min-height:44px;padding:11px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

