/* V315: scoped responsive banner rules, independent of lazy stylesheet order. */
.customerHero.customerHero{display:block;position:relative;isolation:isolate;width:min(var(--customer-content-width,1152px),calc(100% - 40px));min-height:0;height:auto;padding:0;margin:24px auto;overflow:visible;background:none;gap:0;border-radius:22px}
.customerHero.customerHero::before{display:none}
.customerHero.customerHero>div:first-child{position:relative;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;width:100%;max-width:none;min-height:340px;padding:30px 42% 30px 36px;border-radius:22px;overflow:hidden;background-color:#07534e;background-image:linear-gradient(90deg,#07534e,rgba(7,83,78,.65) 22%,transparent 50%),url('/service-visuals/banners/main.webp?v=313');background-position:center,right center;background-size:100% 100%,auto 100%;background-repeat:no-repeat}
.customerHero.customerHero h1{width:100%;max-width:none;margin:8px 0 0;color:#fff;font-size:clamp(28px,3vw,40px);line-height:1.3;letter-spacing:-.035em;word-break:keep-all;overflow-wrap:break-word}
.customerHero.customerHero>div:first-child>p{margin:0;color:#e8fffa;font-size:13px;line-height:1.5}
.customerHero.customerHero>div:first-child>span{display:block;max-width:none;margin:14px 0 20px;color:#fff;font-size:15px;line-height:1.65;word-break:keep-all}
.customerHero.customerHero .customerSearchBox{box-sizing:border-box;display:flex;width:100%;max-width:560px;margin:0;padding:5px;border-radius:14px;min-width:0}
.customerHero.customerHero .customerSearchBox input{width:0;min-width:0;min-height:44px;font-size:14px;padding:0 12px}
.customerHero.customerHero .customerSearchBox button{flex:none;min-height:44px;padding:0 16px;font-size:14px;white-space:nowrap}
.customerHero.customerHero aside{position:static;box-sizing:border-box;display:block;width:100%;max-width:none;margin:14px 0 0;padding:16px 22px;background:#fff;border:1px solid #d6e7e2;border-radius:16px;box-shadow:none}
.customerHero.customerHero aside strong{font-size:14px}
.customerHero.customerHero ol{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:12px 0 0;padding:0}
.customerHero.customerHero li{font-size:14px;word-break:keep-all;white-space:normal;gap:9px}
/* One geometry for category and feature banners. */
.serviceMajorBanner.serviceMajorBanner,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero){box-sizing:border-box;position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:center;aspect-ratio:auto;min-height:280px;height:auto;width:min(var(--customer-content-width,1152px),calc(100% - 40px))!important;max-width:1152px!important;margin:24px auto!important;padding:30px 42% 30px 36px;border-radius:22px;overflow:hidden;background:#07534e;color:white}
.serviceMajorBanner.serviceMajorBanner>img,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero)>img{position:absolute;z-index:-2;inset:0;width:100%;max-width:none;height:100%;object-fit:contain;object-position:right center}
.serviceMajorBanner.serviceMajorBanner::after,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero)::after,.requestQuoteHero.hasFeatureBanner.hasFeatureBanner::before{position:absolute;z-index:-1;inset:0;background:linear-gradient(90deg,#07534e 0%,rgba(7,83,78,.8) 24%,transparent 54%);content:''}
.serviceMajorBanner.serviceMajorBanner>div,.requestQuoteHero.hasFeatureBanner.hasFeatureBanner .requestQuoteHeroCopy{box-sizing:border-box;position:relative;width:100%;max-width:none;padding:0;display:flex;flex-direction:column;gap:10px}
.serviceMajorBanner.serviceMajorBanner strong,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) h1{position:relative;max-width:none;margin:8px 0 12px;color:#fff;font-size:clamp(26px,2.6vw,36px);line-height:1.35;letter-spacing:-.035em;word-break:keep-all;overflow-wrap:break-word}
.serviceMajorBanner.serviceMajorBanner small,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) p{margin:0;color:#e5fff8;font-size:13px;line-height:1.5;letter-spacing:.02em}
.serviceMajorBanner.serviceMajorBanner span,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) span{display:block;max-width:none;color:#fff;font-size:14px;line-height:1.65;word-break:keep-all;overflow-wrap:break-word}
@media(min-width:1600px){.customerHero.customerHero>div:first-child{min-height:360px}}
@media(max-width:768px){
 .customerHero.customerHero{width:calc(100% - 32px);margin:16px auto}
 .customerHero.customerHero>div:first-child{min-height:0;padding:24px 22px 0;background:#07534e;border-radius:20px}
 .customerHero.customerHero>div:first-child::after{content:'';display:block;flex:none;align-self:stretch;aspect-ratio:3/1;margin:22px -22px 0;background:url('/service-visuals/banners/main.webp?v=313') center/contain no-repeat}
 .customerHero.customerHero h1{font-size:clamp(25px,6.5vw,32px);line-height:1.35}
 .customerHero.customerHero h1 br{display:block}
 .customerHero.customerHero>div:first-child>p{font-size:12px}
 .customerHero.customerHero>div:first-child>span{max-width:none;font-size:14px;margin:12px 0 18px}
 .customerHero.customerHero aside{display:block;padding:14px 16px;margin-top:12px}
 .customerHero.customerHero ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .customerHero.customerHero li{font-size:13px}
 .customerHero.customerHero .customerSearchBox button{padding:0 12px;font-size:13px}
 .serviceMajorBanner.serviceMajorBanner,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero){display:flex;width:calc(100% - 32px)!important;max-width:none!important;min-height:0;height:auto;aspect-ratio:auto;margin:16px auto!important;padding:22px 22px 0;border-radius:20px;background:#07534e;gap:0}
 .serviceMajorBanner.serviceMajorBanner>img,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero)>img{position:static;order:10;align-self:center;flex:none;width:calc(100% + 44px);height:auto;aspect-ratio:3/1;max-width:none;object-fit:contain;object-position:center;z-index:0;margin:20px -22px 0}
 .serviceMajorBanner.serviceMajorBanner::after,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero)::after,.requestQuoteHero.hasFeatureBanner.hasFeatureBanner::before{display:none}
 .serviceMajorBanner.serviceMajorBanner>div,.requestQuoteHero.hasFeatureBanner.hasFeatureBanner .requestQuoteHeroCopy{max-width:none;width:100%;padding:0;gap:8px}
 .serviceMajorBanner.serviceMajorBanner strong,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) h1{font-size:clamp(24px,6.2vw,30px);line-height:1.35;margin:8px 0 10px;word-break:keep-all;overflow-wrap:break-word}
 .serviceMajorBanner.serviceMajorBanner span,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) span{font-size:14px;line-height:1.6;max-width:100%}
 .serviceMajorBanner.serviceMajorBanner small,.hasFeatureBanner.hasFeatureBanner:is(.careHero,.interiorHero,.emergencyHero,.requestQuoteHero) p{font-size:12px}
}
@media(max-width:360px){.customerHero.customerHero>div:first-child{padding-left:18px;padding-right:18px}.customerHero.customerHero>div:first-child::after{margin-left:-18px;margin-right:-18px}.customerHero.customerHero .customerSearchBox input{padding:0 8px;font-size:12px}}
