
:root{--ink:#112A3D;--ink2:#19364A;--paper:#F7F9FB;--cream:#EFF4F8;--white:#FFF;--brand-blue:#0975CF;--brand-blue-dark:#096AB9;--brand-blue-hover:#075FA6;--brand-on-dark:#B7DDFB;--gold:#096AB9;--gold-light:#B7DDFB;--muted:#536777;--line:#DCE5EC;--shadow:0 14px 45px rgba(17,42,61,.09)}
a:focus-visible,button:focus-visible{outline:3px solid #0975CF;outline-offset:3px}
.nav a{color:#344C5F;font-size:12px;letter-spacing:.055em}.nav a:hover,.nav a.active{color:#096AB9}.nav a.active{box-shadow:inset 0 -2px 0 #0975CF}
.eyebrow{letter-spacing:.13em;font-size:11.5px}.gold,.eyebrow-rule{color:#096AB9}.eyebrow-rule:before{background:#0975CF;height:2px}
.btn{min-height:52px;font-size:12px;letter-spacing:.07em;border-radius:4px}.btn-gold{background:#096AB9;border-color:#096AB9;color:#FFF}.btn-gold:hover{background:#075FA6;border-color:#075FA6;color:#FFF}.btn-dark{background:#112A3D;border-color:#112A3D;color:#FFF}.btn-dark:hover{background:#25485B;border-color:#25485B;color:#FFF}.btn-outline:hover{background:#E9F3FC}
.header{border-bottom:1px solid #DFE7EC}.header-cta{border-color:#096AB9;color:#096AB9;border-radius:4px;font-size:11.5px}.header-cta:hover{background:#E9F3FC}.utility a svg{color:#B7DDFB}
.hero,.page-hero{background:#F7F9FB}.hero h1 em,.page-hero h1 em{color:#345C7C}.hero-description{color:#41596B}.hero-proof span{color:#526B7C;font-size:12px}.hero-visual-cap .tiny-number{color:#D7EBFC}.hero-visual-cap b{color:#B7DDFB}
.signature-strip{background:#EAF1F6;border-top-color:#D9E5EF}.signature-inner span{color:#425A6F}.signature-inner i{background:#0975CF}
.service-card{background:#F5F8FB;border-color:#DDE7F0;border-radius:5px}.service-card:hover{background:#EBF4FC;border-color:#ABCFEA}.service-card p{font-size:14px;color:#445B6C}.service-icon{color:#096AB9;border-color:#C7DCEB}.inline-link{color:#075FA6;font-size:12px}.inline-link svg{color:#096AB9}
.section-top p,.wide-lead,.side-section p,.specialty-grid p{color:#465E70}.geo-section,.filtration-teaser,.filtration-branded{background:#F1F5F8}.town-block{border-left-color:#0975CF}.town-note{color:#4E6372}.quote-mark{color:#096AB9}.quote-text blockquote{color:#283E50}.quote-text p{color:#465D70}
.last-cta{background:#EAF2F9}.last-cta p{color:#455D6D}.page-hero:after{border-color:#D9E7F1;box-shadow:0 0 0 80px #F3F7FA,0 0 0 82px #E3EDF4}
.simple-check{color:#096AB9}.simple-item p,.area-columns p,.footer-links a,.gallery-intro p,.gallery-card figcaption small{color:#4A6273;font-size:14px}.area-columns>div{background:#F5F8FB;border-top-color:#0975CF}.contact-method span,.contact-method a:hover{color:#096AB9}.fineprint{color:#536A7C!important}
.footer-pill span{background:#0975CF}.footer-links a:hover,.footer-contact a:hover{color:#075FA6}.footer-about p,.footer-contact p,.footer-bottom{color:#4E6574}
.feature-section,.work-page-hero{background:#112A3D}.feature-copy .gold,.work-page-hero .eyebrow{color:#B7DDFB}.feature-copy h2 em,.work-page-hero h1 em{color:#B7DDFB}.feature-copy>p{color:#D1E0EB}.feature-list svg{color:#B7DDFB}.feature-list small{color:#C4D4E0;font-size:13px}.feature-inset .eyebrow{color:#075FA6}.form-card .gold,.form-steps span{color:#B7DDFB}.feature-copy .btn-outline:hover{background:#25485B}
.real-work-section{background:#F3F7FA}.work-preview-card small{color:#D5EDFF}.gallery-outro{background:#EAF2F9}.gallery-card figcaption span{color:#096AB9}.gallery-card figcaption strong{color:#112A3D}
.partners-section{background:#FFF;border-top-color:#E1E8ED;border-bottom-color:#E1E8ED}.partner-logo{background:#F7FAFC;border-color:#DFE9F1;border-radius:5px}.partner-logo span{color:#39576D;font-size:11px;letter-spacing:.09em}.partners-head p,.filtration-teaser-copy p,.filtration-branded-copy p{color:#425A6D;font-size:15px}.partners-head h2 em,.filtration-teaser h2 em,.filtration-branded h2 em{color:#345C7C}.partner-note,.filtration-caveat,.filtration-brandmark span{color:#4D6575!important}.filtration-brandmark{border-color:#D9E5ED}
@media(max-width:1170px){.nav a{font-size:11px}}
@media(max-width:980px){.nav a.active{box-shadow:none;border-left:3px solid #0975CF}}
@media(max-width:720px){.btn{font-size:12px;letter-spacing:.045em;min-height:50px}.utility-inner>span{font-size:9px}.utility a{font-size:11px}.eyebrow{font-size:11px}.service-card p,.simple-item p{font-size:14px}.mobile-bar a{font-size:13px}.mobile-bar a:last-child{background:#096AB9;color:#FFF}.mobile-bar a:last-child:hover{background:#075FA6}.gallery-card figcaption small{font-size:14px}}
@media(max-width:410px){.utility-inner>span{display:none}.utility-inner{justify-content:center}}

/* Customer project uploads */
.gallery-card.boyle-new-photo img { display:block; width:100%; height:auto; aspect-ratio:3/4; object-fit:cover; object-position:center; }
.boyle-before-after { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; margin-top:32px; }
.boyle-project-feature h2,.boyle-plumbing-projects h2 { margin:12px 0 18px; }
.boyle-project-link { margin-top:24px; }
.boyle-project-link a { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:640px) { .boyle-before-after { grid-template-columns:1fr; gap:24px; } }

.boyle-video-section h2{margin:12px 0 18px}.boyle-video-card{max-width:420px;margin:32px auto 0}.boyle-video-card video{display:block;width:100%;height:auto;aspect-ratio:512/910;background:#112a3d;border-radius:8px}.boyle-video-card figcaption{padding:14px 0;color:#526471;font-size:14px}

.boyle-rough-video h2,.boyle-upload-feature h2{margin:12px 0 18px}

.boyle-local-service h2,.boyle-home-local h2{margin:12px 0 18px}.boyle-local-service a{text-decoration:underline;text-underline-offset:4px}.boyle-home-local p{max-width:760px;margin-bottom:24px}
.hero h1{font-size:clamp(38px,4.2vw,66px)}

/* Original full Boyle logo: no separate typeset business name. */
.header .brand{position:relative;display:block;width:250px;height:74px;max-width:none;overflow:hidden;flex:0 0 250px}
.header .brand img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:290px!important;height:290px!important;max-width:none;object-fit:contain;flex:none}
.footer-brand{position:relative;display:block;width:270px;height:78px;overflow:hidden}
.footer-brand img{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:310px!important;height:310px!important;max-width:none;object-fit:contain}
@media(max-width:1170px){.header .brand{width:224px;flex-basis:224px;height:70px}.header .brand img{width:260px!important;height:260px!important}}
@media(max-width:720px){.header .brand{width:230px;flex-basis:230px;height:70px}.header .brand img{width:268px!important;height:268px!important}}
@media(max-width:360px){.header .brand{width:205px;flex-basis:205px}.header .brand img{width:238px!important;height:238px!important}}

.boyle-credentials{background:#fff;border-top:1px solid #dce5ec;border-bottom:1px solid #dce5ec;padding:27px 0}.boyle-credentials-inner{display:grid;grid-template-columns:1.2fr 1.3fr .7fr;gap:28px;align-items:center}.boyle-credentials-inner>div{display:flex;flex-direction:column;gap:6px}.boyle-credentials-inner strong{color:#096ab9;font-size:19px}.boyle-credentials-inner span,.boyle-credentials-inner p{font-size:13px;color:#465e70;margin:0;line-height:1.5}.boyle-footer-credentials{display:flex;flex-direction:column;gap:6px;margin:20px 0;font-size:12px;line-height:1.6;color:#465e70}.boyle-footer-credentials strong{font-size:14px;color:#096ab9}@media(max-width:720px){.boyle-credentials-inner{grid-template-columns:1fr;gap:18px}.boyle-credentials{padding:24px 0}}
