html{touch-action:manipulation}@media(max-width:1000px){.ham,.hamburger,button.ham,button.hamburger{min-width:44px!important;min-height:44px!important;box-sizing:border-box;padding:10px 7px;display:inline-flex!important;align-items:center;justify-content:center}}@media(min-width:1001px){.ham,.hamburger,button.ham,button.hamburger{display:none!important}}@media(min-width:1001px){#nav .nav-links>li:nth-last-child(3){margin-left:auto}}#nav.scrolled:not(.on-dark) .nav-links a[href*=instant-quote],#nav.scrolled:not(.on-dark) .nav-links li a[href*=instant-quote]{color:#b30000!important;background:transparent!important;border:1.5px solid #b30000!important;font-weight:700!important;text-decoration:none!important}#nav.scrolled:not(.on-dark) .nav-links a[href*=instant-quote]:hover,#nav.scrolled:not(.on-dark) .nav-links li a[href*=instant-quote]:hover,#nav.scrolled:not(.on-dark) .nav-links a[href*=instant-quote]:focus,#nav.scrolled:not(.on-dark) .nav-links li a[href*=instant-quote]:focus{color:#fff!important;background:#b30000!important;border-color:#b30000!important;box-shadow:0 2px 6px #0000001f,0 6px 18px #b3000059!important;transform:translateY(-1px)!important}.bc-link{display:inline-flex!important;align-items:center;min-height:44px;padding:10px 6px;line-height:1.3}.nav-phone,a.mob-link{min-height:44px;display:inline-flex;align-items:center}.hero-h1,.h-xl,h1.h-xl,.page-hero h1{line-height:1.07!important;letter-spacing:-.035em!important;text-wrap:balance}@media(max-width:768px){.hero-h1,.page-hero h1,h1.h-xl{font-size:clamp(32px,8.5vw,48px)!important;letter-spacing:-.025em!important}}@media(max-width:640px){@media (max-width:768px){#hero .hero-btns a.btn-ghost{display:none!important}}#hero .hero-btns{display:flex!important;flex-direction:column;align-items:stretch;gap:12px;max-width:340px;margin-inline:auto}#hero .hero-btns .btn-red{width:100%;padding:16px 28px!important;font-size:16px!important}}.pj-carousel{position:relative}.pj-carousel-track{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;gap:12px;padding:4px 16px 8px;scrollbar-width:none;-ms-overflow-style:none}.pj-carousel-track::-webkit-scrollbar{display:none}.pj-carousel-slide{flex:0 0 calc(100% - 32px);scroll-snap-align:center;border-radius:14px;overflow:hidden;position:relative;background:#f6f6f6}@media(min-width:768px){.pj-carousel-slide{flex:0 0 calc(50% - 8px)}}@media(min-width:1200px){.pj-carousel-slide{flex:0 0 calc(33.333% - 8px)}}.pj-carousel-slide img,.pj-carousel-slide picture{width:100%;height:auto;display:block}.pj-carousel-slide img{aspect-ratio:3/4;object-fit:cover}.pj-carousel-counter{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#0009;color:#fff;font-size:12px;font-weight:600;padding:6px 12px;border-radius:999px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);pointer-events:none;z-index:2;font-feature-settings:"tnum"}@media(max-width:640px){.pj-compare{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;scroll-behavior:smooth;scrollbar-width:none;padding:0 16px;margin:0 -16px}.pj-compare::-webkit-scrollbar{display:none}.pj-compare>*{flex:0 0 calc(100% - 48px);scroll-snap-align:center}}.slide-out-drag-handle,.quick-quote-drag-handle{opacity:0;transition:opacity .5s cubic-bezier(.32,.72,0,1);pointer-events:none}html.scrolled-mid .slide-out-drag-handle,html.scrolled-mid .quick-quote-drag-handle{opacity:1;pointer-events:auto}.btn-red,.nav-cta,.mob-cta,.tool-card{transition:transform .28s cubic-bezier(.32,.72,0,1),box-shadow .28s cubic-bezier(.32,.72,0,1),background .2s ease,border-color .2s ease!important}.btn-red:active,.nav-cta:active,.mob-cta:active,.tool-card:active{transform:scale(.97)}@media(prefers-reduced-motion:reduce){.btn-red,.nav-cta,.mob-cta,.tool-card{transition:background .2s ease,border-color .2s ease!important}.btn-red:active,.nav-cta:active,.mob-cta:active,.tool-card:active{transform:none}}.mob-section-btn .mob-arrow{font-size:18px!important;color:#0006!important;transition:transform .32s cubic-bezier(.32,.72,0,1),color .2s ease!important;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.mob-section-btn:hover .mob-arrow,.mob-section.open .mob-arrow{color:var(--red, #d5160c)!important}.mob-section.open .mob-arrow{transform:rotate(90deg)!important}.mob-section-btn{padding-left:10px!important;padding-right:10px!important}.mob-section-links a{padding-left:10px!important}.hero-overlay{background:linear-gradient(180deg,#0000007a,#00000061 40%,#0000009e)!important}.hero-body .hero-h1,.hero-body .hero-sub,.hero-body .hero-eyebrow{text-shadow:0 2px 4px rgba(0,0,0,.55),0 4px 16px rgba(0,0,0,.4)}.hero-h1{background:none!important;background-clip:border-box!important;-webkit-background-clip:border-box!important;-webkit-text-fill-color:#fff!important;color:#fff!important}.stats-track{will-change:transform;backface-visibility:hidden;-webkit-backface-visibility:hidden;animation:marquee 30s linear infinite!important;animation-play-state:running!important}.stats-track:hover{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.stats-track{animation-play-state:paused!important}}@media(min-width:1024px){.dd{max-height:min(560px,78vh);overflow-y:auto}.has-dd .dd:has(>li:nth-child(10)){min-width:420px!important;column-count:2;column-gap:4px;column-fill:balance;max-height:440px}.has-dd .dd:has(>li:nth-child(10))>li{break-inside:avoid;-webkit-column-break-inside:avoid;page-break-inside:avoid}.has-dd .dd:has(>li:nth-child(10))>li[style*=border-top]{column-span:all;-webkit-column-span:all}}.hero-btns .btn-ghost svg.icon,.cta-btns .btn-ghost svg.icon,.btn svg.icon{width:16px;height:16px;display:inline-block;vertical-align:-2px;margin-right:8px;flex-shrink:0}.hero-eyebrow,p.eyebrow,.eyebrow{letter-spacing:.09em!important;font-weight:500!important}.hero-eyebrow:before{width:5px!important;height:5px!important;box-shadow:0 0 6px var(--red, #d5160c)!important}.nav-cta{font-size:14px!important;padding:10px 22px!important;letter-spacing:-.01em!important;font-weight:600!important}@media(max-width:768px){.slide-out-drag-handle,.quick-quote-drag-handle,[class*=quick-quote-drag]{display:none!important}}.hero-eyebrow:before{display:none!important;content:none!important}.hero-eyebrow{gap:0!important;padding:7px 18px!important}#nav{transition:height .32s cubic-bezier(.32,.72,0,1),padding .32s cubic-bezier(.32,.72,0,1),background-color .2s ease,backdrop-filter .2s ease,-webkit-backdrop-filter .2s ease,box-shadow .2s ease}#nav.scrolled{background-color:#ffffffe0!important;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);box-shadow:0 1px #0000000f,0 4px 20px #0000000a;padding-top:10px;padding-bottom:10px}#nav.on-dark.scrolled{background-color:#0c0c0ec7!important;box-shadow:0 1px #ffffff0f,0 4px 20px #00000080}#nav.scrolled .nav-logo img{transform:scale(.92);transform-origin:left center;transition:transform .32s cubic-bezier(.32,.72,0,1)}*:focus-visible{outline:2px solid #0071e3!important;outline-offset:2px!important;border-radius:4px}.btn:focus-visible,.btn-red:focus-visible,.btn-ghost:focus-visible,.nav-cta:focus-visible,.mob-cta:focus-visible{outline-offset:3px!important}.card,.svc-item,.tool-card,.il-card,.pj-card{box-shadow:0 1px 2px #0000000a,0 4px 20px #0000000a,0 16px 48px #00000008;transition:box-shadow .32s cubic-bezier(.32,.72,0,1),transform .32s cubic-bezier(.32,.72,0,1)}.card:hover,.svc-item:hover,.tool-card:hover,.il-card:hover,.pj-card:hover{box-shadow:0 2px 4px #0000000d,0 8px 28px #00000012,0 24px 64px #0000000d;transform:translateY(-2px)}section[id],h1[id],h2[id],h3[id],:target{scroll-margin-top:calc(var(--nav-h,76px) + 16px)}::selection{background:#d5160c29;color:inherit}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}.btn-ghost{transition:background .2s ease,border-color .2s ease,transform .28s cubic-bezier(.32,.72,0,1)!important}.btn-ghost:hover{background:#fff3!important;border-color:#fff9!important}.btn-ghost:active{transform:scale(.97)}input:user-invalid,textarea:user-invalid,select:user-invalid{border-color:#d5160c!important;box-shadow:0 0 0 3px #d5160c1a!important}input:user-valid:not(:placeholder-shown),textarea:user-valid:not(:placeholder-shown){border-color:#27ae60!important}@supports not selector(:user-invalid){input:not(:focus):not(:placeholder-shown):invalid,textarea:not(:focus):not(:placeholder-shown):invalid{border-color:#d5160c!important;box-shadow:0 0 0 3px #d5160c1a!important}input:not(:focus):not(:placeholder-shown):valid,textarea:not(:focus):not(:placeholder-shown):valid{border-color:#27ae60!important}}input,textarea,select{transition:border-color .18s ease,box-shadow .18s ease!important}.calc-extras{border:1px solid #e0e0e0;border-radius:10px;padding:4px 16px;margin:0;background:#fff}.calc-extras legend{padding:0 8px;font-weight:600;font-size:14px;color:#444;letter-spacing:-.01em}.calc-check{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:15px;cursor:pointer;min-height:48px;border-bottom:1px solid rgba(0,0,0,.05);user-select:none;-webkit-user-select:none}.calc-check:last-of-type{border-bottom:none}.calc-check input[type=checkbox]{width:20px;height:20px;accent-color:#d5160c;flex-shrink:0;cursor:pointer}.calc-check:hover{color:#d5160c}.calc-check-note{color:#888;font-size:13px;font-weight:400}.combo-tab{min-height:44px!important;padding:11px 20px!important;letter-spacing:-.01em}#combo-tabs{gap:8px!important;margin-bottom:32px!important}.breadcrumb{font-size:14px!important;font-weight:500;letter-spacing:-.01em;color:#ffffff8c!important;gap:10px!important}.breadcrumb a{color:#ffffff8c!important;transition:color .18s ease!important}.breadcrumb a:hover{color:#fffffff2!important}.breadcrumb-sep{opacity:.35!important;font-weight:300}:is(main,body)>section:not(.page-hero) .breadcrumb,nav[aria-label=Breadcrumb]:not(.page-hero *){color:#0000008c!important}:is(main,body)>section:not(.page-hero) .breadcrumb a,nav[aria-label=Breadcrumb]:not(.page-hero *) a{color:#0000008c!important}:is(main,body)>section:not(.page-hero) .breadcrumb a:hover,nav[aria-label=Breadcrumb]:not(.page-hero *) a:hover{color:var(--red, #d5160c)!important}.footer-ul a{display:inline-flex!important;align-items:center;min-height:44px;padding:4px 0}.hero-eyebrow a{display:inline-flex;align-items:center;padding:6px 2px;margin:-6px -2px;min-height:44px}@media(max-width:768px){section.sec,main>section:not(.page-hero):not(#hero){padding-top:88px!important;padding-bottom:88px!important}section.sec>.pj-carousel,section.sec>form,section.sec>.calc-wrap{margin-block:0}}@media(max-width:768px){body.home section.sec,body.home main>section:not(.page-hero):not(#hero){padding-top:64px!important;padding-bottom:64px!important}}.h-lg,.h2{text-wrap:balance}.h-lg{letter-spacing:-.028em!important;line-height:1.08!important}.h-md,.h-sm{text-wrap:balance;letter-spacing:-.022em;line-height:1.15}#services .sec-hdr{max-width:1200px;margin-inline:auto;margin-bottom:48px;text-align:left}@media(min-width:1024px){#services .sec-hdr{margin-bottom:64px}}#services .sec-hdr .eyebrow{color:#d5160c!important;font-weight:500;letter-spacing:.09em;font-size:12px}#services .sec-hdr .h2{font-size:clamp(36px,6vw,56px)!important;letter-spacing:-.035em!important;line-height:1.06!important}#services .sec-hdr .body-lg{max-width:560px!important;color:#0000009e;font-size:17px;line-height:1.55}.hero-h1 em{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:rgba(255,255,255,.92)!important;color:#ffffffeb!important}.il-card{background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:14px!important;box-shadow:0 1px 2px #0000000a,0 4px 16px #0000000a!important;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1),border-color .2s ease!important}.il-card:hover{transform:translateY(-2px);box-shadow:0 2px 4px #0000000d,0 8px 28px #00000014,0 20px 56px #0000000a!important;border-color:#d5160c33!important}.rev-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:18px!important;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1)!important}.rev-card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #0000000a,0 12px 32px #0000000f,0 24px 64px #0000000a}.svc-item{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px!important;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1),border-color .2s ease!important}.svc-item:hover{transform:translateY(-2px);box-shadow:0 2px 4px #0000000a,0 12px 28px #0000000f;border-color:#0000001a!important}.svc-item-icon{transition:transform .32s cubic-bezier(.32,.72,0,1)}.svc-item:hover .svc-item-icon{transform:scale(1.08)}.step{transition:transform .28s cubic-bezier(.32,.72,0,1)}.sec-hdr{max-width:900px}.sec-hdr .eyebrow{margin-bottom:14px!important}.sec-hdr h2,.sec-hdr .h2,.sec-hdr .h-lg{margin-bottom:16px!important}.sec-hdr .body-lg,.sec-hdr .body-md{color:#0000009e}.sec-hdr.ctr{text-align:center;margin-inline:auto}.page-hero .eyebrow{color:#ffffffb8!important;font-weight:500!important;letter-spacing:.1em!important}@media(max-width:640px){.breadcrumb{gap:8px!important;font-size:13px!important}}.city-pill{display:inline-flex!important;align-items:center;gap:7px;padding:10px 16px!important;background:#fff;border:1px solid rgba(0,0,0,.08)!important;border-radius:999px!important;font-size:14px;font-weight:500;color:#000000c7;text-decoration:none;transition:border-color .18s ease,background .18s ease,transform .22s cubic-bezier(.32,.72,0,1)!important;min-height:44px;box-sizing:border-box}.city-pill:hover{border-color:#d5160c4d!important;color:#d5160c!important;transform:translateY(-1px)}.city-pill .city-dot,.city-pill-dot{width:6px;height:6px;background:#d5160c;border-radius:50%;opacity:.75;flex-shrink:0}.combo-link{background:#fff;border:1px solid rgba(0,0,0,.07)!important;border-radius:12px!important;border-left:3px solid transparent!important;transition:border-color .18s ease,transform .22s cubic-bezier(.32,.72,0,1),box-shadow .22s ease!important}.combo-link:hover{transform:translateY(-2px);border-left-color:#d5160c!important;box-shadow:0 2px 4px #0000000a,0 8px 24px #0000000f}.tool-card{border-radius:18px!important;border:1px solid rgba(0,0,0,.06)!important}.svc-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:640px){.svc-grid{grid-template-columns:1fr 1fr;gap:16px}}@media(min-width:1024px){.svc-grid{grid-template-columns:repeat(3,1fr);gap:20px}}.svc-card{position:relative;display:flex;flex-direction:column;padding:28px 28px 24px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:20px;min-height:240px;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1),border-color .2s ease}.svc-card:hover{transform:translateY(-3px);box-shadow:0 2px 4px #0000000a,0 14px 38px #00000014;border-color:#0000001f}.svc-card .svc-link:before{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}.svc-locations a{position:relative;z-index:2}.svc-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;min-height:32px}.svc-icon{width:32px;height:32px;color:#d5160c;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;transition:transform .32s cubic-bezier(.32,.72,0,1)}.svc-card:hover .svc-icon{transform:scale(1.08)}.svc-tag{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#0000006b}.svc-title{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:#1d1d1f;margin:0 0 10px}.svc-desc{font-size:15px;line-height:1.55;color:#0009;margin:0 0 20px;flex-grow:1}.svc-link{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:#d5160c;text-decoration:none;letter-spacing:-.005em;transition:gap .22s cubic-bezier(.32,.72,0,1)}.svc-card:hover .svc-link{gap:9px}.svc-locations{margin-top:14px;padding-top:14px;border-top:1px solid rgba(0,0,0,.06);display:flex;flex-wrap:wrap;gap:6px}.svc-locations-label{width:100%;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#0006;margin-bottom:2px}.svc-locations a{font-size:12px;font-weight:500;color:#0009;text-decoration:none;padding:4px 10px;background:#0000000a;border-radius:999px;transition:background .18s ease,color .18s ease}.svc-locations a:hover{background:#d5160c14;color:#d5160c}.area-redesign{padding:80px 24px 96px;background:#fff}@media(min-width:768px){.area-redesign{padding:120px 40px}}.area-inner{max-width:1200px;margin:0 auto}.area-hero{display:grid;grid-template-columns:1fr;gap:32px;margin-bottom:72px}@media(min-width:960px){.area-hero{grid-template-columns:1fr 1.1fr;gap:56px;align-items:start}}.area-eyebrow{font-size:12px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#d5160c;margin:0 0 14px}.area-title{font-size:clamp(36px,6vw,64px);font-weight:700;letter-spacing:-.035em;line-height:1.05;color:#1d1d1f;margin:0 0 20px;text-wrap:balance}.area-lead{font-size:17px;line-height:1.55;color:#0000009e;margin:0 0 32px;max-width:540px}.area-stats{display:flex;gap:40px;margin:0 0 36px;padding:20px 0;border-top:1px solid rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.08)}.area-stat{flex:1}.area-stat b{display:block;font-size:32px;font-weight:700;letter-spacing:-.02em;color:#1d1d1f;line-height:1;margin-bottom:4px}.area-stat span{font-size:13px;color:#0000008c;letter-spacing:.02em}.area-top-cities-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#00000073;margin:0 0 12px}.area-top-cities{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.area-city-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#f5f5f7;border:1px solid rgba(0,0,0,.06);border-radius:999px;font-size:13px;font-weight:500;color:#000000bf;text-decoration:none;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .22s cubic-bezier(.32,.72,0,1)}.area-city-pill:hover{background:#fff;border-color:#d5160c59;color:#d5160c;transform:translateY(-1px)}.area-city-pill-dot{width:6px;height:6px;background:#d5160c;border-radius:50%;opacity:.8}.area-city-pill-more{background:#d5160c0f;border-color:#d5160c33;color:#d5160c;font-weight:600}.area-cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.area-cta-primary{display:inline-flex;align-items:center;gap:6px;background:#d5160c;color:#fff;padding:12px 22px;border-radius:999px;font-size:14px;font-weight:600;text-decoration:none;transition:background .18s ease,transform .22s cubic-bezier(.32,.72,0,1)}.area-cta-primary:hover{background:#a93226}.area-cta-primary:active{transform:scale(.97)}.area-cta-secondary{font-size:13px;font-weight:500;color:#0009;text-decoration:none;border-bottom:1px solid transparent;transition:color .18s ease,border-color .18s ease}.area-cta-secondary:hover{color:#d5160c;border-color:#d5160c}.area-map-wrap{position:relative;border-radius:20px;overflow:hidden;border:1px solid rgba(0,0,0,.08);box-shadow:0 2px 4px #0000000a,0 16px 48px #0000000f;background:#f5f5f7;min-height:360px}@media(min-width:960px){.area-map-wrap{min-height:520px;position:sticky;top:100px}}.area-map-wrap #service-map{width:100%;height:360px;background:#eee}@media(min-width:960px){.area-map-wrap #service-map{height:520px}}.area-map-badge{position:absolute;bottom:16px;left:16px;background:#fffffff2;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:10px 16px;border-radius:12px;font-size:13px;font-weight:600;color:#1d1d1f;letter-spacing:-.01em;box-shadow:0 2px 12px #00000014;z-index:1000;pointer-events:none}.area-divider{height:1px;background:#00000014;margin:48px 0}.area-matrix-header{margin:0 auto 32px;text-align:center;max-width:720px}.area-matrix-eyebrow{font-size:12px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#d5160c;margin:0 0 10px}.area-matrix-title{font-size:clamp(26px,3.5vw,34px);font-weight:700;letter-spacing:-.025em;line-height:1.15;color:#1d1d1f;margin:0 0 8px}.area-matrix-sub{font-size:15px;color:#0009;margin:0}.area-tabs-scroll{position:relative;margin-bottom:32px}.area-tabs-scroll:after{content:"";position:absolute;right:0;top:0;bottom:0;width:40px;background:linear-gradient(to left,#fff,#fff0);pointer-events:none;border-radius:0 16px 16px 0;opacity:0;transition:opacity .2s ease}.area-tabs-scroll.is-scrollable:after{opacity:1}.area-tabs{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:6px;background:#f5f5f7;border-radius:14px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.area-tabs::-webkit-scrollbar{display:none}.area-tab{flex:0 0 auto;padding:10px 14px;min-height:44px;background:transparent;border:none;border-radius:10px;font-size:13px;font-weight:600;color:#0009;cursor:pointer;transition:background .18s ease,color .18s ease;font-family:inherit;letter-spacing:-.01em;white-space:nowrap;scroll-snap-align:start}.area-tab:hover{color:#1d1d1f}.area-tab.active{background:#fff;color:#1d1d1f;box-shadow:0 1px 3px #00000014,0 2px 8px #0000000a}.area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:32px}.area-grid-link{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:12px;text-decoration:none;color:#1d1d1f;font-size:14px;font-weight:500;transition:border-color .18s ease,transform .22s cubic-bezier(.32,.72,0,1),box-shadow .22s ease}.area-grid-link:before{content:"";width:6px;height:6px;background:#d5160c;border-radius:50%;opacity:.4;transition:opacity .18s ease,transform .18s ease;flex-shrink:0}.area-grid-link:hover{border-color:#d5160c59;transform:translateY(-2px);box-shadow:0 2px 4px #0000000a,0 8px 24px #0000000f}.area-grid-link:hover:before{opacity:1;transform:scale(1.3)}.area-matrix-cta{text-align:center;margin-top:8px}.area-matrix-cta a{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:#d5160c;text-decoration:none;padding:10px 0;border-bottom:1px solid rgba(192,57,43,.3);transition:border-color .18s ease,gap .22s cubic-bezier(.32,.72,0,1)}.area-matrix-cta a:hover{border-color:#d5160c;gap:8px}.area-map-wrap .city-marker{background:transparent!important;border:none!important}@media(max-width:959px){.area-hero .area-map-wrap{order:-1}}.reviews-redesign{padding:80px 24px 96px;background:#fafafa}@media(min-width:768px){.reviews-redesign{padding:120px 40px}}.reviews-inner{max-width:1200px;margin:0 auto}.reviews-header{max-width:720px;margin:0 auto 48px;text-align:center}.reviews-eyebrow{font-size:12px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#d5160c;margin:0 0 14px}.reviews-title{font-size:clamp(32px,5vw,52px);font-weight:700;letter-spacing:-.032em;line-height:1.08;color:#1d1d1f;margin:0 0 18px;text-wrap:balance}.reviews-lead{font-size:17px;line-height:1.55;color:#0000009e;margin:0 auto 36px;max-width:540px}.reviews-stats{display:flex;gap:32px;justify-content:center;padding:24px 0;border-top:1px solid rgba(0,0,0,.08);border-bottom:1px solid rgba(0,0,0,.08);flex-wrap:wrap}.reviews-stats>div{flex:0 0 auto;text-align:center;min-width:110px}.reviews-stats b{display:block;font-size:clamp(32px,4vw,44px);font-weight:700;letter-spacing:-.035em;color:#d5160c;line-height:1;font-feature-settings:"tnum"}.reviews-stats b sup{font-size:.6em;vertical-align:super;font-weight:600;margin-left:1px}.reviews-stats b .star{color:#f5a623;font-size:.85em;margin-left:4px;display:inline}.reviews-stats>div>span{display:block;font-size:12px;font-weight:500;color:#0000008c;letter-spacing:.03em;margin-top:8px;text-transform:uppercase}.reviews-grid{display:grid;grid-template-columns:1fr;gap:16px;margin:56px 0 40px}@media(min-width:640px){.reviews-grid{grid-template-columns:1fr 1fr;gap:18px}}@media(min-width:1024px){.reviews-grid{grid-template-columns:repeat(3,1fr);gap:20px}}.review-card{position:relative;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:20px;padding:32px 28px 24px;display:flex;flex-direction:column;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1),border-color .2s ease;overflow:hidden;min-height:260px}.review-card:hover{transform:translateY(-3px);box-shadow:0 2px 4px #0000000a,0 14px 38px #00000014;border-color:#d5160c2e}.review-quote-mark{position:absolute;top:4px;right:20px;font-family:Georgia,Times New Roman,serif;font-size:110px;font-weight:400;line-height:1;color:#d5160c;opacity:.08;transition:opacity .4s ease;pointer-events:none;user-select:none}.review-card:hover .review-quote-mark{opacity:.16}.review-stars{display:inline-flex;gap:2px;margin-bottom:16px;position:relative;z-index:1}.review-stars svg{width:14px;height:14px;fill:#f5a623;flex-shrink:0}.review-text{font-size:16px;line-height:1.55;color:#1d1d1f;margin:0 0 24px;letter-spacing:-.005em;flex-grow:1;position:relative;z-index:1}.review-author{display:flex;align-items:center;gap:12px;padding-top:20px;border-top:1px solid rgba(0,0,0,.06);position:relative;z-index:1}.review-avatar{width:40px;height:40px;border-radius:50%;background:#f2f2f4;color:#1d1d1f;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-.01em;transition:background .22s ease,color .22s ease}.review-card:hover .review-avatar{background:#d5160c14;color:#d5160c}.review-author-text{flex-grow:1;min-width:0}.review-name{font-size:14px;font-weight:600;color:#1d1d1f;letter-spacing:-.005em;line-height:1.2}.review-city{font-size:12px;color:#0000008c;margin-top:2px;line-height:1.3}.review-source{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#00000073;padding:4px 8px;background:#0000000a;border-radius:6px;flex-shrink:0;align-self:flex-start;margin-top:2px}.reviews-cta,.blog-cta{text-align:center;margin-top:8px}.reviews-cta a,.blog-cta a{display:inline-flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:#d5160c;text-decoration:none;padding:10px 0;border-bottom:1px solid rgba(192,57,43,.3);transition:border-color .18s ease,gap .22s cubic-bezier(.32,.72,0,1)}.reviews-cta a:hover,.blog-cta a:hover{border-color:#d5160c;gap:9px}.blog-redesign{padding:80px 24px 96px;background:#fff}@media(min-width:768px){.blog-redesign{padding:120px 40px}}.blog-inner{max-width:1200px;margin:0 auto}.blog-header{max-width:720px;margin:0 auto 56px;text-align:center}.blog-eyebrow{font-size:12px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:#d5160c;margin:0 0 14px}.blog-title{font-size:clamp(32px,5vw,52px);font-weight:700;letter-spacing:-.032em;line-height:1.08;color:#1d1d1f;margin:0 0 18px;text-wrap:balance}.blog-lead{font-size:17px;line-height:1.55;color:#0000009e;margin:0 auto;max-width:560px}.blog-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:40px}@media(min-width:640px){.blog-grid{grid-template-columns:1fr 1fr;gap:18px}}@media(min-width:1024px){.blog-grid{grid-template-columns:repeat(4,1fr);gap:18px}}.blog-card{position:relative;display:flex;flex-direction:column;padding:28px 24px 22px;background:#fff;border:1px solid rgba(0,0,0,.07);border-radius:18px;text-decoration:none;color:inherit;transition:transform .32s cubic-bezier(.32,.72,0,1),box-shadow .32s cubic-bezier(.32,.72,0,1),border-color .2s ease;min-height:200px}.blog-card:hover{transform:translateY(-3px);box-shadow:0 2px 4px #0000000a,0 14px 38px #00000014;border-color:#d5160c33}.blog-card-tag{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#00000073;margin-bottom:12px}.blog-card-title{font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.25;color:#1d1d1f;margin:0 0 8px;text-wrap:balance}.blog-card-desc{font-size:14px;line-height:1.5;color:#00000094;margin:0 0 16px;flex-grow:1}.blog-card-arrow{display:inline-flex;align-items:center;gap:3px;font-size:13px;font-weight:600;color:#d5160c;letter-spacing:-.005em;transition:gap .22s cubic-bezier(.32,.72,0,1)}.blog-card:hover .blog-card-arrow{gap:8px}.blog-guides{margin-top:40px;padding-top:32px;border-top:1px solid rgba(0,0,0,.08);max-width:1200px;margin-inline:auto}.blog-guides-label{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#00000080;margin:0 0 14px}.blog-guides-label:not(:first-child){margin-top:24px}.blog-guides-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-bottom:4px}.blog-guide-pill{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;background:#f5f5f7;border:1px solid rgba(0,0,0,.05);border-radius:12px;font-size:14px;font-weight:500;color:#000000c7;text-decoration:none;letter-spacing:-.005em;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .22s cubic-bezier(.32,.72,0,1);min-height:44px;box-sizing:border-box}.blog-guide-pill:hover{background:#fff;border-color:#d5160c59;color:#d5160c;transform:translateY(-1px)}.blog-guide-dot{width:8px;height:8px;border-radius:50%;background:#d5160c;opacity:.75;flex-shrink:0;transition:transform .22s cubic-bezier(.32,.72,0,1)}.blog-guide-pill:hover .blog-guide-dot{transform:scale(1.3);opacity:1}.trust-guarantee{max-width:960px;margin:48px auto 0;padding:24px 28px;background:#d5160c0a;border:1px solid rgba(192,57,43,.16);border-radius:16px;display:flex;align-items:center;gap:18px}@media(max-width:640px){.trust-guarantee{margin-top:36px;padding:20px 22px;gap:14px;align-items:flex-start}}.trust-guarantee-icon{width:32px;height:32px;color:#d5160c;flex-shrink:0}.trust-guarantee-text{font-size:15px;line-height:1.55;color:#000000b8;margin:0;letter-spacing:-.005em}.trust-guarantee-text strong{color:#1d1d1f;font-weight:600}#footer{background:#0a0a0c!important;color:#ffffffb3}#footer .footer-col-h{font-size:11px!important;font-weight:600!important;letter-spacing:.12em!important;text-transform:uppercase;color:#ffffff73!important;margin-bottom:18px!important}#footer a{color:#ffffffb8;text-decoration:none;font-size:14px;font-weight:400;letter-spacing:-.005em;transition:color .18s ease!important;line-height:1.45}#footer a:hover{color:#fff!important}#footer .footer-ul{display:flex;flex-direction:column;gap:8px!important;list-style:none;padding:0;margin:0}#footer .footer-ul li a{display:inline-flex;align-items:center;min-height:28px;padding:2px 0}#footer .ft-county{border-bottom:1px solid rgba(255,255,255,.06);margin:0}#footer .ft-county:last-of-type{border-bottom:none}#footer .ft-county summary{display:flex;align-items:center;justify-content:space-between;padding:10px 0;font-size:13px;font-weight:500;color:#ffffffc7;cursor:pointer;list-style:none;transition:color .18s ease}#footer .ft-county summary::-webkit-details-marker{display:none}#footer .ft-county summary:hover{color:#fff}#footer .ft-county-arrow{font-size:14px;color:#fff6;transition:transform .3s cubic-bezier(.32,.72,0,1),color .18s ease;flex-shrink:0}#footer .ft-county[open] .ft-county-arrow{transform:rotate(90deg);color:#d5160c}#footer .ft-county-list{list-style:none;padding:4px 0 12px 14px;margin:0;display:flex;flex-direction:column;gap:6px}#footer .ft-county-list a{font-size:13px;color:#ffffff8c}#footer .ft-county-list a:hover{color:#fffffff2}#footer .ft-all-cities{display:inline-block;margin-top:14px;font-size:13px;font-weight:600;color:#d5160c!important;letter-spacing:-.005em}#footer .ft-all-cities:hover{color:#e54434!important}#footer .ft-col-main{max-width:280px}#footer .footer-logo img{margin-bottom:24px;opacity:.95}#footer .ft-address,#footer .ft-hours{display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:#ffffff8c;margin-bottom:14px}#footer .ft-address svg,#footer .ft-hours svg{color:#fff6;flex-shrink:0;margin-top:3px}#footer .footer-phone,#footer .footer-email{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#ffffffe0!important;margin-bottom:10px;min-height:32px}#footer .footer-phone svg,#footer .footer-email svg{color:#ffffff8c}#footer .footer-phone:hover,#footer .footer-email:hover{color:#fff!important}#footer .ft-social{display:flex;gap:10px;margin-top:20px}#footer .ft-social a{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:#ffffff0f;border-radius:50%;color:#ffffffbf;transition:background .18s ease,color .18s ease,transform .22s cubic-bezier(.32,.72,0,1)}#footer .ft-social a:hover{background:#d5160cd9;color:#fff!important;transform:translateY(-2px)}#footer .ft-social a svg{width:16px;height:16px}#footer .footer-certs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;padding:28px 0;margin:32px 0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}#footer .f-badge{display:inline-flex;align-items:center;padding:6px 12px;font-size:11px;font-weight:500;letter-spacing:.02em;color:#ffffffa6;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:999px;white-space:nowrap;transition:background .18s ease,color .18s ease,border-color .18s ease}#footer .f-badge:hover{background:#ffffff12;color:#ffffffd9;border-color:#ffffff26}#footer .f-badge-gold{color:#f5c447;border-color:#f5c4473d;background:#f5c4470f}#footer .f-badge-gold:hover{background:#f5c4471a;color:#ffd676}#footer .footer-parent-line{text-align:center;font-size:12px;color:#ffffff73;margin-bottom:24px;letter-spacing:.01em}#footer .footer-parent-line strong{color:#ffffffc7;font-weight:600}#footer .footer-copy{display:block;font-size:12px;color:#ffffff61;line-height:1.6;text-align:center;max-width:900px;margin:0 auto}#footer .footer-legal{display:flex;justify-content:center;gap:24px;margin-top:0;padding-top:0;border-top:none;flex-wrap:wrap}#footer .footer-legal a{font-size:12px;color:#ffffff7a;padding:4px 0;min-height:28px;display:inline-flex;align-items:center}#footer .footer-legal a:hover{color:#fffffff2}#footer .footer-bottom{text-align:center;padding:24px 0 4px;border-top:1px solid rgba(255,255,255,.06);margin-top:8px;display:flex;flex-direction:column;align-items:center;gap:14px}#footer .footer-bottom .footer-copy{display:block;font-size:12px;color:#fff6;line-height:1.6;max-width:900px;margin:0 auto;text-align:center;letter-spacing:.01em}#footer .footer-parent-line{text-align:center;font-size:11px;color:#ffffff73;padding:4px 0 20px;letter-spacing:.02em;max-width:720px;margin-left:auto;margin-right:auto}#footer .footer-parent-line strong,#footer .footer-parent-line strong a{color:#ffffffd1;font-weight:500!important;font-size:inherit!important;letter-spacing:-.005em;font-family:inherit}#footer .footer-parent-line a{color:#ffffffd1!important;text-decoration:underline;text-decoration-color:#ffffff40;text-underline-offset:3px;transition:text-decoration-color .18s ease,color .18s ease}#footer .footer-parent-line a:hover{color:#fff!important;text-decoration-color:#ffffffb3}.mfg-inner{gap:clamp(4px,.6vw,10px)!important;padding-top:36px!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important}.mfg-inner picture{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:transparent!important;padding:0!important;border:0!important;box-shadow:none!important}.mfg-inner img,.mfg-inner picture img{max-height:88px!important;width:auto!important;height:auto!important;background:transparent!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;object-fit:contain!important;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55)) drop-shadow(0 4px 14px rgba(0,0,0,.45)) drop-shadow(0 0 28px rgba(0,0,0,.35))!important}@media(min-width:768px){.mfg-inner img,.mfg-inner picture img{max-height:116px!important}}@media(min-width:1061px){.mfg-inner img,.mfg-inner picture img{max-height:144px!important;max-width:none!important}}@media(max-width:600px){.mfg-inner{gap:10px 14px!important;padding-top:20px!important;row-gap:12px!important}.mfg-inner img,.mfg-inner picture img{max-height:96px!important}}.mfg-inner picture:nth-child(2) img,.mfg-inner picture:nth-child(3) img{max-height:120px!important}@media(min-width:768px){.mfg-inner picture:nth-child(2) img,.mfg-inner picture:nth-child(3) img{max-height:158px!important}}@media(min-width:1061px){.mfg-inner picture:nth-child(2) img,.mfg-inner picture:nth-child(3) img{max-height:196px!important}}@media(max-width:600px){.mfg-inner picture:nth-child(2) img,.mfg-inner picture:nth-child(3) img{max-height:132px!important}}html{background-color:#0a0a0c}body{margin:0!important;background-color:var(--bg, #ffffff)}@media(max-width:768px){body>.roofle-trigger:empty,body>[class*=roofle]:empty,body>iframe[src=""]:empty{display:none!important}#footer{margin-bottom:0!important;padding-bottom:16px!important}body{scroll-padding-bottom:100px}}#footer [style*="Seasonal Maintenance Guides"]+* a,#footer [style*="Expert Guides"]+* a,#footer div[style*="repeat(auto-fit,minmax(220px,1fr))"] a{background:#ffffff0a!important;color:#ffffffd1!important;border:1px solid rgba(255,255,255,.06);border-radius:12px!important;padding:14px 18px!important;font-size:14px!important;transition:background .18s ease,border-color .18s ease,color .18s ease!important}#footer div[style*="repeat(auto-fit,minmax(220px,1fr))"] a:hover{background:#ffffff14!important;border-color:#d5160c59;color:#fff!important}#footer p[style*="TEXT-TRANSFORM:uppercase"],#footer p[style*="text-transform:uppercase"]{color:#ffffff80!important;font-size:11px!important;letter-spacing:.12em!important;font-weight:600!important;margin-bottom:14px!important}/*MOBILE-SCROLL-POLISH-v1*/:root{--nav-offset:calc(var(--nav-h, 68px) + 12px)}html{scroll-padding-top:var(--nav-offset);-webkit-text-size-adjust:100%;text-size-adjust:100%}[id]{scroll-margin-top:var(--nav-offset)}a,button,.btn-red,.nav-cta,.mob-cta,.find-near-cta,[role=button],input[type=submit],input[type=button]{touch-action:manipulation;-webkit-tap-highlight-color:rgba(216,30,49,.12)}body{overscroll-behavior-y:contain}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{#nav,.mob-cta,.nav-cta,.find-near-you-section,form,.sticky-mobile-cta,iframe,nav,footer .footer-bottom{display:none!important}body{padding:0!important;color:#000!important;background:#fff!important}a{color:#000;text-decoration:underline}a[href^="http"]::after,a[href^="/"]::after{content:" (" attr(href) ")";font-size:.85em;color:#444}h1,h2,h3{page-break-after:avoid;break-after:avoid}p,li{orphans:3;widows:3}}/*/MOBILE-SCROLL-POLISH-v1*//*TAP-TARGETS-v1*/.breadcrumb a,nav.breadcrumb a,[class*="breadcrumb"] a{min-height:44px!important;padding:0 6px!important;display:inline-flex!important;align-items:center!important;line-height:1.2!important}.breadcrumb,nav.breadcrumb{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:0 2px!important}.back-top,button.back-top,#back-top{min-width:44px!important;min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}.zip-check button,.zip-check input[type=submit],.hero-form button,.hero-form input[type=submit],button.check,form button:not(.icon-only){min-height:44px!important}input[type=text],input[type=tel],input[type=email],input[type=number],input[type=search]{min-height:44px!important}a.btn,a.btn-red,a.cta,a[role=button]{min-height:44px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}/*/TAP-TARGETS-v1*//*GRID-OVERFLOW-v1*/.sec > *,.sec > div > *,.sec > section > *{min-width:0;max-width:100%}/*9AZ2-split*/.rv,p.rv,.h-lg,.h-md,.h-sm,.b-sm,.eyebrow,.b-sm.rv{min-width:0!important;max-width:100%!important}.b-lg,.b-md,.b-md.rv,.b-lg.rv,.il-inline,.il-inline.rv{min-width:0!important;max-width:min(100%,58ch)!important}h1,h2,h3,h4,h5,h6{min-width:0;max-width:100%;overflow-wrap:break-word}p,li,td{overflow-wrap:break-word;word-break:normal}.container,[class*="container"]{max-width:100%;box-sizing:border-box}.find-near-you-section,.find-near-you-section *{max-width:100%;box-sizing:border-box}@media (max-width:767px){#quick-quote-wrapper,#quick-quote-button,#quick-quote-callout,#quick-quote-frame,.quick-quote-wrapper,.slide-out-widget-wrapper{display:none!important;visibility:hidden!important}}/*/GRID-OVERFLOW-v1*//*FORM-WIZARD-MOBILE-v1*/@media (max-width:540px){.fw-options.fw-options-six,.form-card-v4 .fw-options.fw-options-six{grid-template-columns:1fr!important}.fw-option{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}.fw-options{min-width:0!important;max-width:100%!important}}/*/FORM-WIZARD-MOBILE-v1*//*STICKY-CTA-SCROLL-REVEAL-v1*/#mobile-sticky-cta{transform:translateY(105%);opacity:0;visibility:hidden;transition:transform .28s cubic-bezier(.32,.72,0,1),opacity .2s ease,visibility 0s linear .28s;pointer-events:none}#mobile-sticky-cta.visible{transform:translateY(0);opacity:1;visibility:visible;transition:transform .32s cubic-bezier(.32,.72,0,1),opacity .25s ease;pointer-events:auto}@media (prefers-reduced-motion:reduce){#mobile-sticky-cta,#mobile-sticky-cta.visible{transition:opacity .15s ease}}/*/STICKY-CTA-SCROLL-REVEAL-v1*//*DESIGN-SYSTEM-UPGRADE-v1*/:root{--shadow-xs:0 1px 2px rgba(15,23,42,.04),0 0 0 1px rgba(15,23,42,.04);--shadow-sm:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 4px 12px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.05);--shadow-lg:0 12px 32px rgba(15,23,42,.08),0 4px 12px rgba(15,23,42,.05);--shadow-xl:0 24px 60px rgba(15,23,42,.12),0 8px 20px rgba(15,23,42,.06);--shadow-red:0 8px 24px rgba(213,22,12,.18);--shadow-red-lg:0 12px 36px rgba(213,22,12,.24);--ease-out:cubic-bezier(.32,.72,0,1);--ease-spring:cubic-bezier(.16,1,.3,1);--ease-snap:cubic-bezier(.2,.8,.2,1);--dur-fast:.16s;--dur-base:.24s;--dur-slow:.36s;--cream:#FAF8F4;--cream-deep:#F2EFE7;--trust-blue:#0070C9;--trust-blue-tint:rgba(0,112,201,.08);--ring:0 0 0 3px rgba(213,22,12,.32),0 0 0 1px rgba(213,22,12,.85);--text-soft:#52525B;--text-muted:#71717A;}body{line-height:1.55;font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"ss01" 1}p,li,td,blockquote{line-height:1.65}h1,h2,h3,h4,h5,h6{font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"ss01" 1}::selection{background:rgba(213,22,12,.18);color:#0a0a0a}::-moz-selection{background:rgba(213,22,12,.18);color:#0a0a0a}a:focus,button:focus,input:focus,select:focus,textarea:focus,[tabindex]:focus{outline:none}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--ring);border-radius:8px;transition:box-shadow .12s ease}@media (hover:hover){.rev-card,.svc-card,.tool-card,.service-card{transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.rev-card:hover,.svc-card:hover,.tool-card:hover,.service-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}}@media (hover:hover){.btn-red,a.btn-red,button.btn-red,.cta-primary,a.cta-primary,a.btn,button.btn{transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),background-color var(--dur-fast) ease}.btn-red:hover,a.btn-red:hover,button.btn-red:hover,.cta-primary:hover,a.cta-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-red-lg)!important}}.btn-red:active,a.btn-red:active,button.btn-red:active,.cta-primary:active{transform:scale(.97)}@media (hover:hover){.nav-cta,.btn-secondary,a.btn-outline,a.phone-cta,a.phone-pill{transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast) ease,border-color var(--dur-fast) ease}.nav-cta:hover,.btn-secondary:hover,a.btn-outline:hover,a.phone-cta:hover{transform:translateY(-1px)}}@media (hover:hover) and (pointer:fine){*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border-radius:980px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.32);background-clip:padding-box;border:2px solid transparent}*::-webkit-scrollbar-track{background:transparent}}img{background:rgba(0,0,0,.04);color:transparent;font-size:0}img[alt]{font-size:initial}.sf-trust-pill,.hero-trust-pill,.ftb-pill,.trust-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px!important;border-radius:980px!important;font-size:13px!important;font-weight:600;letter-spacing:-.005em;border:1px solid rgba(255,255,255,.18)!important;background:rgba(255,255,255,.07)!important;color:rgba(255,255,255,.92)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background-color var(--dur-fast) ease,border-color var(--dur-fast) ease}.sec-tonal,section.tonal{background:var(--cream)}.sec-tonal-dark,section.tonal-dark{background:var(--cream-deep)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3{text-wrap:balance;letter-spacing:-.022em}p,li{text-wrap:pretty}@media (prefers-reduced-motion:reduce){.rev-card,.svc-card,.tool-card,.service-card,.btn-red,a.btn-red,button.btn-red,.nav-cta{transition:none!important;transform:none!important}}/*/DESIGN-SYSTEM-UPGRADE-v1*//*DESIGN-POLISH-2-v1*/.hero-body p,.page-hero-content p,.hero p{color:rgba(255,255,255,.94)!important;text-shadow:0 1px 2px rgba(0,0,0,.35)}@media (max-width:540px){.hero-body p,.page-hero-content p{max-width:38ch;margin-inline:auto}}.home-hero-pill[class*="rating"],.home-hero-pill:first-child{background:rgba(251,191,36,.14)!important;color:rgb(255,209,89)!important}.home-hero-pill--latino{background:rgba(255,151,109,.12)!important;color:rgb(255,179,140)!important;border-color:rgba(255,179,140,.28)!important}.home-hero-pills,.hero-pills,.trust-pills{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:18px}@media (hover:hover){h2[id]:hover{cursor:pointer}}.home-toc,.toc-strip{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.home-toc > *,.toc-strip > *{scroll-snap-align:start}.sec + .sec{padding-top:0}@media (hover:hover){.home-hero-pill{transition:background-color var(--dur-fast,.16s) ease,transform var(--dur-fast,.16s) ease}.home-hero-pill:hover{background:rgba(255,255,255,.14)!important;transform:translateY(-1px)}}p a,li a,td a{text-decoration:underline;text-decoration-color:rgba(213,22,12,.28);text-decoration-thickness:1.5px;text-underline-offset:3px;transition:text-decoration-color .15s ease}p a:hover,li a:hover,td a:hover{text-decoration-color:var(--red,#d5160c)}/*/DESIGN-POLISH-2-v1*//*PHASE-4-MOBILE-UX-v1*/@media(max-width:980px){body:has(.home-mobile-sticky) .mobile-call, body:has(#mobile-sticky-cta) .mobile-call, body:has(.home-mobile-sticky) .back-top, body:has(#mobile-sticky-cta) .back-top{display:none!important}body:has(.home-mobile-sticky), body:has(#mobile-sticky-cta){padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}}@media(max-width:768px){.home-toc{display:none!important}}/*/PHASE-4-MOBILE-UX-v1*//*9AZ-corrected*/main article{max-width:760px;margin-left:auto;margin-right:auto}/*9AZ-patch*/main p,main li,main dd,main .b-lg,main .b-md{max-width:72ch}main aside p,main aside .b-md,main aside .b-lg{max-width:58ch}article table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}.nav-phone-btn{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:14px;color:var(--red,#d5160c);text-decoration:none;padding:7px 14px;border:1.6px solid rgba(213,22,12,.38);border-radius:999px;white-space:nowrap;transition:background .15s,border-color .15s}.nav-phone-btn:hover{background:rgba(213,22,12,.09);border-color:rgba(213,22,12,.6)}.nav-phone-btn svg{width:15px;height:15px;flex-shrink:0}.nav-phone-num{font-variant-numeric:tabular-nums}@media (max-width:980px){.home-mobile-sticky,#mobile-sticky-cta{padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}}/*9AY-b2*/@media (max-width:768px){#nav,nav#nav{backdrop-filter:blur(6px)!important;-webkit-backdrop-filter:blur(6px)!important}}
/* ===== HEAVY DUTY tokens (Phase 3 WP-1) — appended last; wins cascade on every archetype. Palette: #d5160c/#9c9c9c/#000/#fff only. ===== */
:root{
--ink:#000;--ink-1:#000;--navy:#000;
--ink-2:#424245;--ink-3:#595959;--grey-text:#6e6e73;
--grey-light:rgba(0,0,0,.03);--bg-2:rgba(0,0,0,.03);--bg-3:rgba(0,0,0,.06);--grey-mid:rgba(0,0,0,.14);
--line:rgba(0,0,0,.14);
--r:2px;--r-sm:2px;--r-card:2px;--r-pill:2px;
--sh:3px 3px 0 rgba(0,0,0,.18);--sh-card:3px 3px 0 rgba(0,0,0,.18);--sh-lift:5px 5px 0 rgba(0,0,0,.25);--sh-up:5px 5px 0 rgba(0,0,0,.25);
--on-dark:rgba(255,255,255,.88);--on-dark-strong:#fff;--on-dark-muted:rgba(255,255,255,.72);
}
/* ===== HEAVY DUTY type (Phase 3 WP-2) — Barlow self-hosted ===== */
@font-face{font-family:"Barlow";src:url(/assets/fonts/barlow-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Barlow";src:url(/assets/fonts/barlow-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Barlow";src:url(/assets/fonts/barlow-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Barlow Semi Condensed";src:url(/assets/fonts/barlowsc-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Barlow Semi Condensed";src:url(/assets/fonts/barlowsc-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Barlow Semi Condensed";src:url(/assets/fonts/barlowsc-800.woff2) format("woff2");font-weight:800;font-display:swap}
:root{
--font:"Barlow",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
--ff:"Barlow",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
--ff-display:"Barlow Semi Condensed","Barlow",Arial,sans-serif;
--fs-label:12px;
}
body{font-family:var(--font);line-height:1.6}
h1,h2,h3,h4,h5,.h-xl,.h-lg,.h-md,.h-sm,.hero-h1,.page-hero h1,.pt-title{font-family:var(--ff-display)}
.btn,.btn-red,.btn-glass,.btn-ghost,a.btn,.hero-eyebrow,.eyebrow,.svc-tag,.sf-col-title,.area-label{font-family:var(--ff-display);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
/* ===== HEAVY DUTY composition (Phase 3 WP-3) — aggressive Milwaukee ===== */
.h-lg,.h-md{font-family:var(--ff-display)!important;text-transform:uppercase;letter-spacing:.01em;font-weight:800}
.h-lg{position:relative;padding-bottom:18px}
.h-lg::after{content:"";position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:72px;height:5px;background:var(--red)}
.svc-card,.review-card,.blog-card,.sf-family-card,.card-white{border:2px solid #000!important;border-radius:2px!important;box-shadow:5px 5px 0 #000!important}
.svc-card:hover,.blog-card:hover,.review-card:hover{transform:translate(-3px,-3px)!important;box-shadow:8px 8px 0 var(--red)!important}
.btn-red,a.btn-red,.area-cta-primary{border-radius:2px!important;border:2px solid #000!important;box-shadow:4px 4px 0 #000!important;font-family:var(--ff-display);text-transform:uppercase;font-weight:800;letter-spacing:.05em}
.btn-red:hover,.area-cta-primary:hover{transform:translate(-2px,-2px)!important;box-shadow:6px 6px 0 #000!important}
.hero-eyebrow{background:var(--red)!important;color:#fff!important;border:none!important;border-radius:0!important;font-family:var(--ff-display);text-transform:uppercase;font-weight:800;letter-spacing:.1em}
.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.72) 100%)!important}
.eyebrow,.sec-eyebrow,.area-label,.home-eyebrow{color:var(--red)!important;font-family:var(--ff-display);text-transform:uppercase;font-weight:800;letter-spacing:.12em}
.site-footer,#footer{background:#000!important;border-top:7px solid var(--red)}
.site-footer *,#footer *{color:var(--on-dark)}
.site-footer h2,.site-footer h3,.site-footer h4,.site-footer .sf-col-title,#footer h2,#footer h3{color:#fff!important;font-family:var(--ff-display);text-transform:uppercase}
.hd-hazard-bar{height:8px;background:repeating-linear-gradient(45deg,var(--red) 0 16px,#000 16px 32px)}
/* ===== HEAVY DUTY black jobsite bands (WP-3b) ===== */
.home-section--soft,.topical-final{background:#000!important;color:var(--on-dark)!important;position:relative}
.home-section--soft::before,.topical-final::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:repeating-linear-gradient(45deg,var(--red) 0 14px,#000 14px 28px);z-index:2}
.home-section--soft :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b),.topical-final :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b){color:#fff!important}
.home-section--soft :is(p,li,span,div,.b-lg,.b-md,td,th,dd,dt,.muted),.topical-final :is(p,li,span,div,.b-lg,.b-md,td,th,dd,dt,.muted){color:var(--on-dark)!important}
.home-section--soft a:not(.btn):not(.btn-red),.topical-final a:not(.btn):not(.btn-red){color:#fff!important;text-decoration:underline}
.home-section--soft .h-lg::after,.topical-final .h-lg::after{background:var(--red)!important}
.home-section--soft .eyebrow,.topical-final .eyebrow,.home-section--soft .home-eyebrow,.topical-final .home-eyebrow{color:var(--red)!important}
.home-section--soft .svc-card,.topical-final .card-white,.home-section--soft .card-white{background:#fff!important;border-color:#fff!important}
.home-section--soft .svc-card :is(h1,h2,h3,p,span,div),.topical-final .card-white :is(h1,h2,h3,p,span,div){color:#000!important}
/* WP-3b fix: catch blockquote + other large-text elements missed on dark bands */
.home-section--soft :is(blockquote,.home-mario-quote,figure,figcaption,em,h6,label,small),.topical-final :is(blockquote,.home-mario-quote,figure,figcaption,em,h6,label,small){color:var(--on-dark)!important}
.home-section--soft .home-mario-quote,.topical-final .home-mario-quote{color:#fff!important;border-left:4px solid var(--red)!important}
/* WP-3b fix2: neutralize inline white-bg boxes on dark bands (byline box etc.) so light text reads */
.home-section--soft [style*="background:#fff"],.topical-final [style*="background:#fff"],.home-section--soft [style*="background:var(--white)"],.topical-final [style*="background:var(--white)"],.home-section--soft [style*="background:#ffffff"],.topical-final [style*="background:#ffffff"]{background:transparent!important;border:1px solid rgba(255,255,255,.2)!important}
/* ===== HEAVY DUTY refinement (WP-3c): dramatic hero, more red, cleaner white, bolder ===== */
/* cleaner white base (more white sections) */
.sec{background:#fff!important}
/* dramatic hero: darker overlay + hazard-stripe bottom edge + headline punch */
.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.42) 0%,rgba(0,0,0,.84) 100%)!important}
#hero,.hero,.page-hero,.area-hero{position:relative}
#hero::after,.hero::after,.page-hero::after,.area-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:repeating-linear-gradient(45deg,var(--red) 0 16px,#000 16px 32px);z-index:4}
.hero-h1,.h-xl{text-shadow:0 2px 28px rgba(0,0,0,.55)}
/* MORE RED in sections: red-block eyebrows, bolder red header bars, red top rules */
.eyebrow,.home-eyebrow,.sec-eyebrow,.area-label{background:var(--red)!important;color:#fff!important;display:inline-block;padding:6px 16px;border-radius:0!important;font-family:var(--ff-display);text-transform:uppercase;font-weight:800;letter-spacing:.1em}
.h-lg::after{width:90px!important;height:6px!important}
.reviews-redesign,.area-redesign,.faq-homepage,.blog-redesign{border-top:5px solid var(--red)}
/* solid-RED stats band (white numbers) — the punchy short-text band after hero */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]{background:var(--red)!important;border-color:rgba(0,0,0,.2)!important}
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"] *{color:#fff!important}
/* bolder buttons + cards */
.btn-red,a.btn-red{box-shadow:6px 6px 0 #000!important;padding:15px 30px!important}
.btn-red:hover,a.btn-red:hover{transform:translate(-3px,-3px)!important;box-shadow:9px 9px 0 #000!important}
.svc-card,.review-card,.blog-card,.sf-family-card{box-shadow:6px 6px 0 #000!important}
.svc-card:hover,.blog-card:hover,.review-card:hover{box-shadow:10px 10px 0 var(--red)!important}
/* ===== HEAVY DUTY refinement WP-3d: hero accent bar + visible ghost CTA ===== */
.hero-h1::after,h1.h-xl::after{content:"";display:block;width:120px;height:6px;background:var(--red);margin:26px auto 0}
.btn-glass,.btn-ghost,a.btn-glass,a.btn-ghost{background:transparent!important;border:2px solid #fff!important;color:#fff!important;border-radius:2px!important;font-family:var(--ff-display);text-transform:uppercase;font-weight:800;letter-spacing:.05em;box-shadow:4px 4px 0 rgba(0,0,0,.5)!important}
.btn-glass:hover,.btn-ghost:hover,a.btn-glass:hover,a.btn-ghost:hover{background:#fff!important;color:#000!important;transform:translate(-2px,-2px)!important}
.hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.88) 100%)!important}
/* ===== HEAVY DUTY: more RED sections (WP-3e) ===== */
.home-section--light,.area-redesign{background:var(--red)!important;color:#fff!important;position:relative}
.home-section--light::before,.area-redesign::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:repeating-linear-gradient(45deg,#000 0 14px,var(--red) 14px 28px);z-index:2}
.home-section--light :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b,p,li,span,div,.b-lg,.b-md,blockquote,td,th,dd,dt,figcaption,small),.area-redesign :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b,p,li,span,div,.b-lg,.b-md,blockquote,td,th,dd,dt,figcaption,small){color:#fff!important}
.home-section--light .eyebrow,.area-redesign .eyebrow,.home-section--light .home-eyebrow,.area-redesign .home-eyebrow,.home-section--light .area-label,.area-redesign .area-label{background:#000!important;color:#fff!important}
.home-section--light .h-lg::after,.area-redesign .h-lg::after{background:#000!important}
.home-section--light :is(.svc-card,.card-white,.review-card,.area-city-pill,[class*=card]),.area-redesign :is(.svc-card,.card-white,.review-card,.area-city-pill,[class*=card]){background:#fff!important;border-color:#000!important}
.home-section--light :is(.svc-card,.card-white,[class*=card]) :is(h1,h2,h3,h4,p,span,div,strong),.area-redesign :is(.svc-card,.card-white,[class*=card]) :is(h1,h2,h3,h4,p,span,div,strong){color:#000!important}
.home-section--light [style*="background:#fff"],.area-redesign [style*="background:#fff"],.home-section--light [style*="background:var(--white)"],.area-redesign [style*="background:var(--white)"],.home-section--light [style*="background:#ffffff"],.area-redesign [style*="background:#ffffff"]{background:transparent!important;border:1px solid rgba(255,255,255,.3)!important}
.home-section--light .btn-red,.area-redesign .btn-red{background:#000!important;border-color:#000!important}
/* WP-3e fix: step-number badges readable on red bands (black circle, white number) */
.home-section--light .home-step__num,.area-redesign .home-step__num,.home-section--light [class*=step__num],.area-redesign [class*=step__num]{background:#000!important;color:#fff!important;border:2px solid #000!important}
/* ===== HEAVY DUTY: even MORE red sections — reviews/blog/faq (WP-3g) ===== */
.reviews-redesign,.blog-redesign,.faq-homepage{background:var(--red)!important;color:#fff!important;position:relative}
.reviews-redesign::before,.blog-redesign::before,.faq-homepage::before{content:"";position:absolute;top:0;left:0;right:0;height:7px;background:repeating-linear-gradient(45deg,#000 0 14px,var(--red) 14px 28px);z-index:2}
.reviews-redesign :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b,p,li,.b-lg,.b-md,small),.blog-redesign :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b,p,li,.b-lg,.b-md,small),.faq-homepage :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,strong,b,p,li,.b-lg,.b-md,small,summary){color:#fff!important}
.reviews-redesign .eyebrow,.blog-redesign .eyebrow,.faq-homepage .eyebrow,.reviews-redesign .home-eyebrow,.blog-redesign .home-eyebrow,.faq-homepage .home-eyebrow{background:#000!important;color:#fff!important}
.reviews-redesign .h-lg::after,.blog-redesign .h-lg::after,.faq-homepage .h-lg::after{background:#000!important}
.reviews-redesign :is(.review-card,.blog-card,.card-white),.blog-redesign :is(.review-card,.blog-card,.card-white){background:#fff!important;border:2px solid #000!important}
.reviews-redesign :is(.review-card,.blog-card) :is(h1,h2,h3,h4,p,span,div,strong,li),.blog-redesign :is(.review-card,.blog-card) :is(h1,h2,h3,h4,p,span,div,strong,li){color:#000!important}
.reviews-redesign :is(.review-card,.blog-card) a,.blog-redesign :is(.review-card,.blog-card) a,.blog-card-tag{color:var(--red)!important}
.reviews-redesign [style*="background:#fff"]:not([class*=card]),.blog-redesign [style*="background:#fff"]:not([class*=card]),.faq-homepage [style*="background:#fff"]:not([class*=card]){background:transparent!important;border:1px solid rgba(255,255,255,.3)!important}
.faq-homepage .faq-arrow,.faq-homepage [class*=arrow]{color:#fff!important}
.faq-homepage details,.faq-homepage .faq-item{border-color:rgba(255,255,255,.3)!important}
.reviews-redesign .btn-red,.blog-redesign .btn-red,.faq-homepage .btn-red{background:#000!important;border-color:#000!important}
/* WP-3g fix: FAQ accordion = white tool-crate panels w/ black text on the red band */
.faq-homepage .faq-item{background:#fff!important;border:2px solid #000!important;border-radius:2px!important;box-shadow:4px 4px 0 #000!important}
.faq-homepage .faq-summary,.faq-homepage .faq-item :is(summary,p,span,div,h3,h4,li,strong,b){color:#000!important}
.faq-homepage .faq-arrow,.faq-homepage .faq-item [class*=arrow]{color:#000!important}
/* WP-3 FIX: .topical-final also has .sec, and .sec{background:#fff} (added later) overrode its black. Re-assert black with higher specificity so order no longer matters. */
.sec.topical-final,.topical-final.sec,.topical-final{background:#000!important}
/* WP-3 FIX: dark-band eyebrows were red-text on a red block (invisible). Force white text on the red block. */
.home-section--soft .eyebrow,.topical-final .eyebrow,.home-section--soft .home-eyebrow,.topical-final .home-eyebrow,.home-section--soft .sec-eyebrow,.topical-final .sec-eyebrow{background:var(--red)!important;color:#fff!important}

/* ========== 20-AGENT MILWAUKEE REDESIGN (assembled, appended last) ========== */
/* ============================================================================
   HEAVY-DUTY MILWAUKEE REDESIGN — ASSEMBLED STYLESHEET
   econo-roofing.com homepage · Econo palette ONLY: #d5160c #9c9c9c #000 #fff
   Assembled 2026-05-29 by the synthesizer/integrator from 14 section files.

   LOAD ORDER (load-bearing): components FIRST (global no-!important baselines),
   then every section file scoped to its own selector:
     components → nav → hero → stats → services → content-sections → soft41 →
     process → reviews → areas → blog → faq → closing → footer
   This file appends LAST in apple-refinements; sections use !important to win.

   QA FIXES BAKED IN (see tasks/redesign/raw/_qa-readability.md + _qa-palette-conflict.md):
   READABILITY (11): process blanket :is() sweep + plain-link rule; reviews
     +td,th,summary + inline-white-box guard; areas +summary + white-box guard;
     blog white-box guard; faq white-box guard; footer +summary,blockquote,td,th
     in backstop + white-box guard.
   PALETTE (7): #3a3a3a→rgba(0,0,0,.6) ×5 (services+content, body text on white);
     #e0e0e0→rgba(255,255,255,.85) (soft41 lead); #1d1d1f→#000 (nav dropdown);
     #a01009→#a81009 (faq hover). Gold #fbbf24 (stars) + #a81009 (hover) kept.
   CONFLICT: --red-deep:#a81009 defined in token block (hero var now resolves to
     the real token, not a name-mismatch fallback); black .h-lg::after guard added
     to every RED band (reviews/areas/blog/process) and red .h-lg::after guard to
     every BLACK band (soft41/closing/footer) so the global components red bar
     never bleeds invisibly; .area-cta-primary owned by areas within its scope.
   No global section-background rules. Every section rule stays scoped.
   ========================================================================== */


/* ████████████████████████████████████████████████████████████████████████████
   1. COMPONENTS  (GLOBAL baseline — loaded FIRST, no !important by design)
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 0. Local fallbacks (only if a token is missing; never introduce new hues) ─ */
:root{
  --hd-red:        var(--red, #d5160c);
  --hd-red-deep:   #a81009;                 /* darkened #d5160c for button hover */
  --red-deep:      #a81009;                 /* CONFLICT FIX: canonical token name so hero's var(--red-deep) resolves to the real hover-red, not a literal fallback */
  --hd-black:      var(--black, #000);
  --hd-white:      var(--white, #fff);
  --hd-grey:       var(--grey, #9c9c9c);
  --hd-display:    var(--ff-display, "Barlow Semi Condensed", "Barlow", Arial, sans-serif);
  /* hard offset shadows — the Milwaukee "brick" drop */
  --hd-shadow:     4px 4px 0 var(--hd-black);
  --hd-shadow-lg:  6px 6px 0 var(--hd-black);
}

/* ---- 1. BUTTONS — sharp, uppercase, hard offset shadow ---- */

/* 1a. Shared button TYPE + SHAPE (applies to every variant). */
a.btn,        button.btn,        .btn,
a.btn-red,    button.btn-red,    .btn-red,
a.btn-glass,  button.btn-glass,  .btn-glass,
a.btn-ghost,  button.btn-ghost,  .btn-ghost,
a.area-cta-primary, .area-cta-primary{
  font-family:var(--hd-display);
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.04em;
  border-radius:2px;                          /* sharp corners */
  border:2px solid var(--hd-black);
  text-decoration:none;
  transition:transform .18s cubic-bezier(.32,.72,0,1),
             box-shadow .18s cubic-bezier(.32,.72,0,1),
             background .15s ease, border-color .15s ease;
}

/* 1b. RED BRICK — primary. Solid red, black outline, hard black offset shadow. */
a.btn-red, button.btn-red, .btn-red{
  background:var(--hd-red);
  color:var(--hd-white);
  border:2px solid var(--hd-black);
  box-shadow:var(--hd-shadow);
}
a.btn-red:hover, button.btn-red:hover, .btn-red:hover,
a.btn-red:focus-visible, button.btn-red:focus-visible, .btn-red:focus-visible{
  background:var(--hd-red-deep);
  color:var(--hd-white);
  border-color:var(--hd-black);
  transform:translate(-2px,-2px);
  box-shadow:var(--hd-shadow-lg);
}
a.btn-red:active, button.btn-red:active, .btn-red:active{
  transform:translate(0,0);
  box-shadow:2px 2px 0 var(--hd-black);
}
a.btn-red::before, button.btn-red::before, .btn-red::before{
  display:none;
  content:none;
}

/* 1c. BLACK / OUTLINE — secondary. */
a.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost),
button.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost),
.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost){
  background:var(--hd-black);
  color:var(--hd-white);
  border:2px solid var(--hd-black);
  box-shadow:var(--hd-shadow);
}
a.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost):hover,
button.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost):hover,
.btn:not(.btn-red):not(.btn-glass):not(.btn-ghost):hover{
  background:var(--hd-white);
  color:var(--hd-black);
  border-color:var(--hd-black);
  transform:translate(-2px,-2px);
  box-shadow:var(--hd-shadow-lg);
}

/* outline / "glass" + "ghost" → transparent, thin WHITE border. */
a.btn-glass, button.btn-glass, .btn-glass,
a.btn-ghost, button.btn-ghost, .btn-ghost{
  background:transparent;
  color:var(--hd-white);
  border:2px solid var(--hd-white);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  box-shadow:4px 4px 0 rgba(0,0,0,.5);
}
a.btn-glass:hover, button.btn-glass:hover, .btn-glass:hover,
a.btn-ghost:hover, button.btn-ghost:hover, .btn-ghost:hover,
a.btn-glass:focus-visible, .btn-glass:focus-visible,
a.btn-ghost:focus-visible, .btn-ghost:focus-visible{
  background:var(--hd-white);
  color:var(--hd-black);
  border-color:var(--hd-white);
  transform:translate(-2px,-2px);
  box-shadow:6px 6px 0 rgba(0,0,0,.5);
}

/* 1d. .area-cta-primary — base BLACK brick (areas.css flips within its scope). */
a.area-cta-primary, .area-cta-primary{
  background:var(--hd-black);
  color:var(--hd-white);
  border:2px solid var(--hd-black);
  box-shadow:var(--hd-shadow);
}
a.area-cta-primary:hover, .area-cta-primary:hover{
  background:var(--hd-white);
  color:var(--hd-black);
  border-color:var(--hd-black);
  transform:translate(-2px,-2px);
  box-shadow:var(--hd-shadow-lg);
}

/* 1e. Accessible focus ring across all buttons. */
a.btn:focus-visible, button.btn:focus-visible, .btn:focus-visible,
a.btn-red:focus-visible, button.btn-red:focus-visible, .btn-red:focus-visible,
a.btn-glass:focus-visible, .btn-glass:focus-visible,
a.btn-ghost:focus-visible, .btn-ghost:focus-visible,
a.area-cta-primary:focus-visible, .area-cta-primary:focus-visible{
  outline:3px solid var(--hd-red);
  outline-offset:3px;
}

/* 1f. Reduced-motion: keep the offset shadow but drop the slide. */
@media (prefers-reduced-motion:reduce){
  a.btn,a.btn-red,a.btn-glass,a.btn-ghost,a.area-cta-primary,
  button.btn,button.btn-red,
  .btn,.btn-red,.btn-glass,.btn-ghost,.area-cta-primary{
    transition:background .15s ease,border-color .15s ease,box-shadow .15s ease;
  }
  a.btn:hover,a.btn-red:hover,a.btn-glass:hover,a.btn-ghost:hover,a.area-cta-primary:hover,
  button.btn:hover,button.btn-red:hover,
  .btn:hover,.btn-red:hover,.btn-glass:hover,.btn-ghost:hover,.area-cta-primary:hover{
    transform:none;
  }
}

/* ---- 2. TYPE — heading-scale accents + UPPERCASE condensed defaults ---- */

/* 2a. .h-lg::after — the RED accent bar under section headings (default = RED).
   Section files on red/black bands flip this to #000 / red via their own rules. */
.h-lg::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:84px;
  height:5px;
  background:var(--hd-red);
  border-radius:0;                            /* sharp, never pill */
}
.h-lg{position:relative;}                      /* anchor for ::after */

/* 2b. Optional Milwaukee headline treatment. */
.hd-condensed{
  font-family:var(--hd-display);
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:-.005em;
  line-height:1.02;
}

/* ---- 3. EYEBROWS / SMALL LABELS — UPPERCASE Barlow, tracked ---- */
.eyebrow, .svc-tag, .area-label, .kicker{
  font-family:var(--hd-display);
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:.1em;
  color:var(--hd-red);
}
.eyebrow::before{ content:none; }

/* 3b. EYEBROW CHIP variant. */
.hd-eyebrow-chip{
  display:inline-block;
  font-family:var(--hd-display);
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.12em;
  font-size:12px;
  line-height:1;
  padding:7px 14px;
  background:var(--hd-red);
  color:var(--hd-white);
  border-radius:2px;                          /* sharp */
}

/* ---- 4. LOGO BLOCK — bold UPPERCASE wordmark chip ---- */
.hd-logoblock{
  display:inline-block;
  font-family:var(--hd-display);
  text-transform:uppercase;
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.05;
  padding:6px 12px;
  background:var(--hd-red);
  color:var(--hd-white);
  border-radius:2px;                          /* sharp rectangle */
}
.hd-logoblock--invert{
  background:var(--hd-white);
  color:var(--hd-red);
}
.hd-logoblock--black{
  background:var(--hd-black);
  color:var(--hd-white);
}

/* ---- 5. ACCENT BARS — reusable red/black rules ---- */
.hd-accent-bar{
  display:block;
  width:84px;
  height:5px;
  background:var(--hd-red);
  border-radius:0;
}
.hd-accent-bar--black{ background:var(--hd-black); }
.hd-accent-bar--center{ margin-left:auto; margin-right:auto; }
.hd-accent-bar--wide{ width:120px; height:6px; }

/* ---- 6. HAZARD-STRIPE UTILITY — red/black 45° warning stripes ---- */
.hd-hazard{
  height:8px;
  width:100%;
  background:repeating-linear-gradient(45deg,
    var(--hd-red) 0 16px,
    var(--hd-black) 16px 32px);
}
.hd-hazard--tall{ height:14px; }
.hd-hazard--reverse{
  background:repeating-linear-gradient(45deg,
    var(--hd-black) 0 16px,
    var(--hd-red) 16px 32px);
}
.hd-hazard-bar{
  height:8px;
  background:repeating-linear-gradient(45deg,
    var(--hd-red) 0 16px,
    var(--hd-black) 16px 32px);
}
.hd-hazard-top{ position:relative; }
.hd-hazard-top::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:7px;
  background:repeating-linear-gradient(45deg,
    var(--hd-red) 0 14px,
    var(--hd-black) 14px 28px);
  z-index:2;
}
.hd-hazard-bottom{ position:relative; }
.hd-hazard-bottom::after{
  content:"";
  position:absolute;
  bottom:0; left:0; right:0;
  height:7px;
  background:repeating-linear-gradient(45deg,
    var(--hd-red) 0 14px,
    var(--hd-black) 14px 28px);
  z-index:2;
}


/* ████████████████████████████████████████████████████████████████████████████
   2. NAV / HEADER  — SOLID RED bar + BLACK utility sub-bar  (scope: #nav, .hd-subbar)
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The bar: solid red, all states ─────────────────────────────────── */
nav#nav,
nav#nav.scrolled,
nav#nav.dark,
nav#nav.on-dark,
body.hero-visible nav#nav,
body.hero-visible nav#nav.scrolled,
body.hero-visible nav#nav.on-dark{
  background:#d5160c !important;
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
  border-bottom:3px solid #000 !important;   /* hazard-line base under the red */
  box-shadow:0 2px 0 rgba(0,0,0,.25) !important;
}

/* ── 2. Logo: keep legible on red ──────────────────────────────────────── */
nav#nav .nav-logo img{
  filter:brightness(0) invert(1) !important;
}

/* ── 3. Links: white, UPPERCASE, bold, Barlow Semi Condensed ───────────── */
nav#nav .nav-links a,
nav#nav.scrolled .nav-links a,
nav#nav.dark .nav-links a,
nav#nav.on-dark .nav-links a{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
  font-size:14px !important;
}
nav#nav.on-dark .nav-links a:hover,
nav#nav.dark .nav-links a:hover,
nav#nav.on-dark .nav-links a.nav-es,
nav#nav.on-dark .nav-links a.nav-es:hover{color:#fff !important;}
nav#nav .nav-links .has-dd>a{color:#fff !important;}

nav#nav .nav-links a::after,
nav#nav.scrolled .nav-links a::after{
  background:#fff !important;
  height:3px !important;
  bottom:-6px !important;
  border-radius:0 !important;            /* sharp, not pill */
}
nav#nav .nav-links a:hover,
nav#nav.scrolled .nav-links a:hover,
nav#nav .nav-links a.active,
nav#nav.scrolled .nav-links a.active{
  color:#fff !important;
}
nav#nav .nav-links a:hover::after,
nav#nav .nav-links a.active::after{
  transform:scaleX(1) !important;
  background:#fff !important;
}
nav#nav .has-dd>a .dd-arrow{
  border-right-color:#fff !important;
  border-bottom-color:#fff !important;
}

nav#nav .nav-links a.nav-es{color:#fff !important;}

/* ── 4. Hamburger (mobile) bars → white on red ─────────────────────────── */
nav#nav .ham span,
nav#nav .hamburger span{background:#fff !important;}
nav#nav .ham:hover,
nav#nav .hamburger:hover{background:rgba(255,255,255,.14) !important;}

/* ── 5. CTAs: sharp rectangles, contrast on red ────────────────────────── */
nav#nav .nav-phone-btn,
nav#nav .nav-links a[href*="instant-quote"],
nav#nav.scrolled .nav-phone-btn,
nav#nav.scrolled .nav-links a[href*="instant-quote"],
nav#nav.on-dark .nav-phone-btn,
nav#nav.on-dark .nav-links a[href*="instant-quote"],
body.hero-visible nav#nav.scrolled .nav-phone-btn,
body.hero-visible nav#nav.scrolled .nav-links a[href*="instant-quote"],
body.hero-visible nav#nav.on-dark .nav-phone-btn,
body.hero-visible nav#nav.on-dark .nav-links a[href*="instant-quote"]{
  background:transparent !important;
  color:#fff !important;
  border:2px solid #fff !important;
  border-radius:2px !important;          /* sharp corners */
  text-transform:uppercase !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
  box-shadow:none !important;
}
nav#nav .nav-phone-btn:hover,
nav#nav .nav-links a[href*="instant-quote"]:hover,
nav#nav.scrolled .nav-phone-btn:hover,
nav#nav.scrolled .nav-links a[href*="instant-quote"]:hover,
nav#nav.on-dark .nav-phone-btn:hover,
nav#nav.on-dark .nav-links a[href*="instant-quote"]:hover,
body.hero-visible nav#nav.scrolled .nav-phone-btn:hover,
body.hero-visible nav#nav.scrolled .nav-links a[href*="instant-quote"]:hover,
body.hero-visible nav#nav.on-dark .nav-phone-btn:hover,
body.hero-visible nav#nav.on-dark .nav-links a[href*="instant-quote"]:hover{
  background:#fff !important;
  color:#d5160c !important;              /* invert: white fill, red text */
  border-color:#fff !important;
}
nav#nav .nav-phone-btn:hover svg{fill:#d5160c !important;}

/* Free Estimate = solid BLACK rectangle (loud against red, Milwaukee dual-CTA) */
nav#nav .nav-cta,
nav#nav.scrolled .nav-cta,
nav#nav.on-dark .nav-cta,
body.hero-visible nav#nav.scrolled .nav-cta,
body.hero-visible nav#nav.on-dark .nav-cta{
  background:#000 !important;
  color:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  text-transform:uppercase !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
  box-shadow:none !important;
}
nav#nav .nav-cta:hover,
nav#nav.scrolled .nav-cta:hover,
nav#nav.on-dark .nav-cta:hover,
body.hero-visible nav#nav.scrolled .nav-cta:hover,
body.hero-visible nav#nav.on-dark .nav-cta:hover{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
}

/* ── 6. BLACK utility sub-bar ──────────────────────────────────────────── */
.hd-subbar{
  position:fixed;
  top:var(--nav-h,76px);
  left:0;right:0;
  z-index:899;                            /* just under #nav (z 900) */
  background:#000 !important;
  border-bottom:2px solid #d5160c !important;  /* red hairline = hazard accent */
  text-align:center;
  padding:7px 16px;
  line-height:1.2;
}
.hd-subbar .hd-subbar-inner{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  justify-content:center;
  gap:.4em;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.08em !important;
  font-size:12.5px;
}
.hd-subbar .hd-subbar-inner > * + *::before{
  content:'·';
  margin-right:.5em;
  color:#d5160c;                          /* red dots on black */
  font-weight:700;
}
.hd-subbar a{
  color:#fff !important;
  text-decoration:none;
  font-weight:700 !important;
}
.hd-subbar a:hover{color:#d5160c !important;}

.hd-subbar ~ main{margin-top:34px;}

@media(max-width:600px){
  .hd-subbar{padding:6px 12px;}
  .hd-subbar .hd-subbar-inner{font-size:11px;letter-spacing:.05em;}
}

/* ── 7. Dropdown panels: stay readable opening off a red bar ────────────── */
nav#nav .dd,
nav#nav.on-dark .dd,
nav#nav.dark .dd{
  background:#fff !important;
  border:1px solid rgba(0,0,0,.10) !important;
  border-top:3px solid #d5160c !important;
  border-radius:2px !important;
}
/* PALETTE FIX: dropdown link ink #1d1d1f → #000 (pure black, on-palette) */
nav#nav .dd li a,
nav#nav.on-dark .dd li a,
nav#nav.on-dark .dd-group a{color:#000 !important;}
nav#nav .dd li a:hover,
nav#nav.on-dark .dd li a:hover,
nav#nav.on-dark .dd-group a:hover{background:rgba(213,22,12,.08) !important;color:#d5160c !important;}


/* ████████████████████████████████████████████████████████████████████████████
   3. HERO  — full-bleed gritty dark jobsite band  (scope: #hero)
   CONFLICT FIX: var(--red-deep,#a81009) now resolves to the real --red-deep token
   defined in the components :root above (was a name-mismatch with --hd-red-deep).
   ████████████████████████████████████████████████████████████████████████████ */

#hero{
  background:#000 !important;
}
#hero .hero-overlay{
  background:
    linear-gradient(180deg,
      rgba(0,0,0,.82) 0%,
      rgba(0,0,0,.62) 42%,
      rgba(0,0,0,.78) 78%,
      rgba(0,0,0,.94) 100%) !important;
}
#hero .hero-overlay::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  box-shadow:inset 0 0 240px 60px rgba(0,0,0,.9);
  background:radial-gradient(ellipse 90% 80% at 50% 45%,
    transparent 40%, rgba(0,0,0,.55) 100%);
}
#hero .hero-glow{
  background:radial-gradient(ellipse,rgba(213,22,12,.26) 0%,transparent 60%) !important;
}

/* ---- Eyebrow = RED BLOCK, white uppercase, sharp ---- */
#hero .hero-eyebrow{
  background:var(--red,#d5160c) !important;
  color:#fff !important;
  border:none !important;
  border-radius:0 !important;
  padding:7px 14px !important;
  font-family:var(--ff-display,"Barlow Semi Condensed","Barlow",Arial,sans-serif) !important;
  font-weight:800 !important;
  letter-spacing:.12em !important;
  text-transform:uppercase !important;
  box-shadow:4px 4px 0 rgba(0,0,0,.55) !important;
}
#hero .hero-eyebrow::before{
  display:none !important;
}

/* ---- H1 = WHITE UPPERCASE condensed + red accent bar ---- */
#hero .hero-h1{
  -webkit-text-fill-color:#fff !important;
  background:none !important;
  -webkit-background-clip:border-box !important;
  background-clip:border-box !important;
  color:#fff !important;
  font-family:var(--ff-display,"Barlow Semi Condensed","Barlow",Arial,sans-serif) !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:-.01em !important;
  line-height:.92 !important;
  text-shadow:0 2px 24px rgba(0,0,0,.6) !important;
  position:relative;
  padding-top:26px;
}
#hero .hero-h1::before{
  content:'';
  display:block;
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:84px;
  height:6px;
  background:var(--red,#d5160c);
  box-shadow:0 0 16px rgba(213,22,12,.55);
}
#hero .hero-h1 em{
  -webkit-text-fill-color:var(--red,#d5160c) !important;
  background:none !important;
  background-clip:border-box !important;
  -webkit-background-clip:border-box !important;
  color:var(--red,#d5160c) !important;
  font-style:normal !important;
}

/* ---- Sub stays readable on the darker bg ---- */
#hero .hero-sub{
  color:rgba(255,255,255,.82) !important;
}
#hero .hero-sub a{
  color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:2px !important;
}

/* ---- Dual SHARP CTAs ---- */
#hero .hero-btns .btn{
  border-radius:0 !important;
  font-family:var(--ff-display,"Barlow Semi Condensed","Barlow",Arial,sans-serif) !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
}
#hero .hero-btns .btn-red{
  background:var(--red,#d5160c) !important;
  color:#fff !important;
  border:2px solid var(--red,#d5160c) !important;
  box-shadow:5px 5px 0 #000 !important;
}
#hero .hero-btns .btn-red:hover{
  background:var(--red-deep,#a81009) !important;
  border-color:var(--red-deep,#a81009) !important;
  box-shadow:7px 7px 0 #000 !important;
}
#hero .hero-btns .btn-red::before{
  display:none !important; /* drop the glassy sheen, keep it flat/industrial */
}
#hero .hero-btns .btn-ghost{
  background:transparent !important;
  color:#fff !important;
  border:2px solid #fff !important;
  backdrop-filter:none !important;
  box-shadow:5px 5px 0 rgba(0,0,0,.45) !important;
}
#hero .hero-btns .btn-ghost:hover{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
  box-shadow:7px 7px 0 rgba(0,0,0,.45) !important;
}

/* ---- HAZARD-STRIPE bottom edge on the hero ---- */
#hero{
  padding-bottom:96px !important;
}
#hero::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:3;
  height:16px;
  pointer-events:none;
  background-image:repeating-linear-gradient(
    -45deg,
    var(--red,#d5160c) 0,
    var(--red,#d5160c) 22px,
    #000 22px,
    #000 44px
  );
  box-shadow:0 -2px 12px rgba(0,0,0,.5);
}

#hero .mfg-inner{
  margin-bottom:8px;
}


/* ████████████████████████████████████████████████████████████████████████████
   4. STATS BAND  — white→SOLID RED  (scope: section[style*="border-bottom:1px solid rgba(0,0,0,.04)"])
   QA: clean. Uses `* {color:#fff!important}` (stronger than mandated :is()). No fix.
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The band: white → solid red, hazard-stripe dividers ─────────────── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]{
  background:#d5160c !important;
  border-top:3px solid #000 !important;
  border-bottom:3px solid #000 !important;
  position:relative;
  isolation:isolate;
}
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]::before,
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:6px;
  z-index:1;
  pointer-events:none;
  background-image:repeating-linear-gradient(
    -45deg,
    #000 0, #000 10px,
    #d5160c 10px, #d5160c 20px
  );
  opacity:.9;
}
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]::before{ top:0; }
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]::after{ bottom:0; }

/* ── 2. Force the whole subtree WHITE (kills inline #0a0a0a + #d5160c) ──── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"] *{
  color:#fff !important;
}

/* ── 3. The numbers: big, heavy, UPPERCASE Barlow Semi Condensed ───────── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]
  .home-section__inner > div > div > div:first-child{
  font-family:"Barlow Semi Condensed","Barlow Condensed",
    system-ui,-apple-system,"Segoe UI",sans-serif !important;
  font-size:clamp(44px,7vw,64px) !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  text-transform:uppercase !important;
  line-height:.95 !important;
  text-shadow:0 2px 0 rgba(0,0,0,.18);
}
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]
  .home-section__inner > div > div > div:first-child span{
  font-size:.55em !important;
  font-weight:700 !important;
  vertical-align:top !important;
  margin-left:2px;
}

/* ── 4. The labels: bright white, bold, uppercase ───────────────────────── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]
  .home-section__inner > div > div > div:last-child{
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:.1em !important;
  text-transform:uppercase !important;
  color:#fff !important;
  opacity:.95;
  margin-top:14px !important;
}

/* ── 5. Grid breathing room ─────────────────────────────────────────────── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]
  .home-section__inner > div{
  gap:24px !important;
  align-items:start !important;
}
@media (max-width:640px){
  section[style*="border-bottom:1px solid rgba(0,0,0,.04)"]
    .home-section__inner > div{
    grid-template-columns:repeat(2,1fr) !important;
    row-gap:32px !important;
  }
}

/* ── 6. OPTIONAL gold star (no-ops until markup wraps the glyph) ────────── */
section[style*="border-bottom:1px solid rgba(0,0,0,.04)"] .stat-star{
  color:#fbbf24 !important;   /* gold, per brief — red-on-red would vanish */
}


/* ████████████████████████████████████████████████████████████████████████████
   5. SERVICES  — "Everything your roof needs."  (scope: #services)
   PALETTE FIX: .body-md grey #3a3a3a → rgba(0,0,0,.6) (black-opacity tint on white).
   ████████████████████████████████████████████████████████████████████████████ */

/* ---- Section frame: subtle red top hairline ---- */
#services{
  position:relative;
  border-top:3px solid var(--red)!important;
}

/* Eyebrow → solid RED block, white UPPERCASE bold. */
#services .sec-hdr .eyebrow{
  display:inline-block;
  background:var(--red)!important;
  color:#fff!important;
  font-family:var(--ff-display);
  font-weight:700!important;
  text-transform:uppercase;
  letter-spacing:.12em!important;
  font-size:12px!important;
  line-height:1;
  padding:6px 12px 5px;
  border-radius:2px;
  margin:0 0 18px;
}

/* Heading → heavy UPPERCASE Barlow Semi Condensed, with red bar. */
#services .sec-hdr .h2{
  position:relative;
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
  line-height:.98!important;
  color:#000!important;
  padding-bottom:22px;
  margin-bottom:0;
}
#services .sec-hdr .h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:88px;
  height:6px;
  background:var(--red);
  border-radius:1px;
}

/* Intro copy stays black/grey on white. */
#services .sec-hdr .body-lg{color:#000!important}
#services .sec-hdr .body-md{color:rgba(0,0,0,.6)!important}  /* PALETTE FIX: was #3a3a3a */

/* ---- TOOL-CRATE CARDS ---- */
#services .svc-card{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:6px 6px 0 #000!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s cubic-bezier(.2,.7,.3,1)!important;
}
#services .svc-card:hover{
  transform:translate(-4px,-4px)!important;
  box-shadow:10px 10px 0 var(--red)!important;
  border-color:#000!important;
}
#services .svc-card .svc-icon{
  color:var(--red)!important;
  stroke:currentColor;
}
#services .svc-card:hover .svc-icon{transform:scale(1.1)}
#services .svc-card .svc-tag{
  background:#000!important;
  color:#fff!important;
  font-family:var(--ff-display);
  font-weight:700!important;
  text-transform:uppercase;
  letter-spacing:.08em!important;
  font-size:10px!important;
  line-height:1;
  padding:5px 9px 4px;
  border-radius:2px;
}
#services .svc-card .svc-title{
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:0!important;
  line-height:1.02!important;
  color:#000!important;
  font-size:23px!important;
  margin:0 0 10px;
}
#services .svc-card .svc-desc{color:#1a1a1a!important}
#services .svc-card .svc-link{
  color:var(--red)!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
  font-size:14px!important;
}
#services .svc-card:hover .svc-link{gap:9px}
#services .svc-card .svc-locations{
  border-top:2px solid #000!important;
  margin-top:16px;
  padding-top:14px;
}
#services .svc-card .svc-locations-label{
  font-family:var(--ff-display);
  font-weight:700!important;
  text-transform:uppercase;
  letter-spacing:.08em!important;
  color:#000!important;
}
#services .svc-card .svc-locations a{
  background:#fff!important;
  color:#000!important;
  border:1.5px solid #000!important;
  border-radius:2px!important;
  font-weight:600!important;
  padding:4px 10px;
  transition:background .15s ease,color .15s ease,border-color .15s ease;
}
#services .svc-card .svc-locations a:hover{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
}


/* ████████████████████████████████████████████████████████████████████████████
   6. CONTENT SECTIONS  — the 4 bare `.sec` WHITE sections
   (scope: #trust, #materials, #cluster1-related-services, #contact — never bare `.sec`)
   PALETTE FIX: 4× grey #3a3a3a → rgba(0,0,0,.6) (.cred-sub, .ring-lbl, .ring-stat-l, .mat-life).
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1) #trust — "WHY HOMEOWNERS AND BUSINESSES CHOOSE US." ── */
#trust{
  background:#fff!important;
  position:relative;
  border-top:3px solid var(--red)!important;
}
#trust .eyebrow{
  display:inline-block;
  background:var(--red)!important;
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:12px!important;
  line-height:1;
  padding:6px 12px 5px!important;
  border-radius:2px!important;
  margin:0 0 18px!important;
}
#trust .h2{
  position:relative;
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
  line-height:.98!important;
  color:#000!important;
  padding-bottom:22px;
  margin-bottom:0;
}
#trust .h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:88px;
  height:6px;
  background:var(--red);
  border-radius:1px;
}
#trust .body-lg{color:#1a1a1a!important;margin-top:18px}
#trust .cred-list{margin-top:28px}
#trust .cred-row{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:5px 5px 0 #000!important;
  padding:16px 18px!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s cubic-bezier(.2,.7,.3,1)!important;
}
#trust .cred-row:hover{
  transform:translate(-3px,-3px)!important;
  box-shadow:8px 8px 0 var(--red)!important;
}
#trust .cred-ic{color:var(--red)!important}
#trust .cred-title{
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:.005em!important;
  color:#000!important;
}
#trust .cred-sub{color:rgba(0,0,0,.6)!important}   /* PALETTE FIX: was #3a3a3a */
#trust .cred-badge{
  background:#000!important;
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
  font-size:11px!important;
  line-height:1;
  padding:5px 9px 4px!important;
  border-radius:2px!important;
}
#trust .ring-num{color:#000!important;font-family:var(--ff-display)!important;font-weight:800!important}
#trust .ring-lbl{color:rgba(0,0,0,.6)!important}   /* PALETTE FIX: was #3a3a3a */
#trust .ring-stat-n{color:#000!important;font-family:var(--ff-display)!important;font-weight:800!important}
#trust .ring-stat-l{color:rgba(0,0,0,.6)!important;text-transform:uppercase;letter-spacing:.06em;font-size:11px}   /* PALETTE FIX: was #3a3a3a */
#trust .trust-guarantee{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:5px 5px 0 var(--red)!important;
}
#trust .trust-guarantee-icon{color:var(--red)!important}
#trust .trust-guarantee-text{color:#1a1a1a!important}

/* ── 2) #materials — "BUILT TO LAST. BUILT FOR HERE." ── */
#materials{
  background:#fff!important;
  position:relative;
  border-top:3px solid var(--red)!important;
}
#materials .mat-sticky .eyebrow{
  display:inline-block;
  background:var(--red)!important;
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:12px!important;
  line-height:1;
  padding:6px 12px 5px!important;
  border-radius:2px!important;
  margin:0 0 18px!important;
}
#materials .mat-sticky .h2{
  position:relative;
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
  line-height:.98!important;
  color:#000!important;
  padding-bottom:22px;
  margin-bottom:0;
}
#materials .mat-sticky .h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:88px;
  height:6px;
  background:var(--red);
  border-radius:1px;
}
#materials .mat-sticky .body-lg{color:#1a1a1a!important}
#materials .mat-sticky .btn-outline{
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  color:#000!important;
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:4px 4px 0 var(--red)!important;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease!important;
}
#materials .mat-sticky .btn-outline:hover{
  background:var(--red)!important;
  border-color:var(--red)!important;
  color:#fff!important;
  transform:translate(-2px,-2px)!important;
  box-shadow:6px 6px 0 #000!important;
}
#materials .mat-list{gap:12px}
#materials .mat-row{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:5px 5px 0 #000!important;
  padding:16px 18px!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s cubic-bezier(.2,.7,.3,1)!important;
}
#materials .mat-row:hover,
#materials .mat-row.active{
  transform:translate(-3px,-3px)!important;
  box-shadow:8px 8px 0 var(--red)!important;
  border-color:#000!important;
}
#materials .mat-icon{color:var(--red)!important}
#materials .mat-name{
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:.005em!important;
  color:#000!important;
}
#materials .mat-life{color:rgba(0,0,0,.6)!important}   /* PALETTE FIX: was #3a3a3a */
#materials .mat-arrow{color:var(--red)!important;transition:transform .15s ease}
#materials .mat-row:hover .mat-arrow{transform:translateX(4px)}

/* ── 3) #cluster1-related-services — "COMMON QUESTIONS, ANSWERED." ── */
#cluster1-related-services{
  background:#fff!important;
  position:relative;
  border-top:3px solid var(--red)!important;
}
#cluster1-related-services .eyebrow{
  display:inline-block;
  background:var(--red)!important;
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:12px!important;
  line-height:1;
  padding:6px 12px 5px!important;
  border-radius:2px!important;
  margin:0 0 16px!important;
}
#cluster1-related-services h2{
  position:relative;
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
  line-height:1!important;
  color:#000!important;
  padding-bottom:22px!important;
  margin:0 0 24px!important;
}
#cluster1-related-services h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:88px;
  height:6px;
  background:var(--red);
  border-radius:1px;
}
#cluster1-related-services p{color:#1a1a1a!important}
#cluster1-related-services a{color:var(--red)!important;font-weight:600!important}

/* ── 4) #contact — "LET'S TAKE A LOOK." ── */
#contact{
  background:#fff!important;
  position:relative;
  border-top:3px solid var(--red)!important;
}
#contact .contact-inner .eyebrow{
  display:inline-block;
  background:var(--red)!important;
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  font-size:12px!important;
  line-height:1;
  padding:6px 12px 5px!important;
  border-radius:2px!important;
  margin:0 0 18px!important;
}
#contact .contact-inner .h2{
  position:relative;
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
  line-height:.98!important;
  color:#000!important;
  padding-bottom:22px;
  margin-bottom:0;
}
#contact .contact-inner .h2::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:88px;
  height:6px;
  background:var(--red);
  border-radius:1px;
}
#contact .contact-inner .body-lg{color:#1a1a1a!important;margin-top:16px}
#contact .contact-ways{margin-top:24px;gap:12px}
#contact .contact-ways .way{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:5px 5px 0 #000!important;
  padding:14px 16px!important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s cubic-bezier(.2,.7,.3,1)!important;
}
#contact .contact-ways a.way:hover{
  transform:translate(-3px,-3px)!important;
  box-shadow:8px 8px 0 var(--red)!important;
  border-color:#000!important;
}
#contact .contact-ways .way-ic{color:var(--red)!important}
#contact .contact-ways .way-label{
  font-family:var(--ff-display)!important;
  text-transform:uppercase!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
  font-size:11px!important;
  color:#000!important;
}
#contact .contact-ways .way-val{
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  letter-spacing:.005em!important;
  color:#000!important;
}


/* ████████████████████████████████████████████████████████████████████████████
   7. 41-YEARS  — BLACK band  (scope: .home-section--soft, id="mario")
   PALETTE FIX: lead-para #e0e0e0 → rgba(255,255,255,.85) (white-opacity tint).
   CONFLICT FIX: red .h-lg::after guard added (BLACK band → bare .h-lg bar must be red).
   ████████████████████████████████████████████████████████████████████████████ */

/* ---- 1. The black band itself + hazard-stripe top accent ---- */
.home-section--soft{
  background:#000 !important;
  color:#fff !important;
  position:relative;
}
.home-section--soft::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:7px;
  background:repeating-linear-gradient(45deg,var(--red,#d5160c) 0 14px,#000 14px 28px);
  z-index:2;
}

/* ---- 2. Blanket readability: force every text-bearing child white ---- */
.home-section--soft :is(h1,h2,h3,h4,h5,h6,
  .home-h2,.h-lg,.h-md,.h-sm,
  p,li,span,div,strong,b,em,small,label,
  blockquote,figure,figcaption,td,th,dd,dt,summary,.muted){
  color:#fff !important;
}

/* CONFLICT FIX: on this BLACK band a bare .h-lg::after (global red bar) is fine —
   red on black reads. Lock it red so order can't flip it to an invisible value. */
.home-section--soft .h-lg::after{
  background:var(--red,#d5160c) !important;
}

/* ---- 3. Heading: white UPPERCASE + hard RED accent bar ---- */
.home-section--soft .home-h2{
  color:#fff !important;
  text-transform:uppercase;
  letter-spacing:-.01em;
}
.home-section--soft .home-h2::after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  margin-top:14px;
  background:var(--red,#d5160c);
}
.home-section--soft .home-h2.no-bar::after{display:none;} /* escape hatch */

/* ---- 4. RED eyebrow "logo block" (white UPPERCASE on solid red) ---- */
.home-section--soft .home-eyebrow:not([style]){
  display:inline-block;
  background:var(--red,#d5160c) !important;
  color:#fff !important;
  padding:5px 12px;
  border-radius:2px;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* ---- 5. The inline-styled LEAD paragraph → readable light text ----
   PALETTE FIX: was color:#e0e0e0 → rgba(255,255,255,.85) (white-opacity tint). */
.home-section--soft .home-eyebrow[style]{
  background:transparent !important;
  color:rgba(255,255,255,.85) !important;
  display:block;
}

/* ---- 6. Body prose + lead ---- */
.home-section--soft .home-mario-body p{
  color:#fff !important;
}
.home-section--soft .home-mario-body strong,
.home-section--soft .home-mario-body b{
  color:#fff !important;
}

/* ---- 7. DRAMATIC PULL-QUOTE ---- */
.home-section--soft .home-mario-quote{
  color:#fff !important;
  background:transparent !important;
  border-left:4px solid var(--red,#d5160c) !important;
  padding-left:20px;
}
.home-section--soft .home-mario-quote :is(p,span,em,strong,b){
  color:#fff !important;
}

/* ---- 8. Attribution block (avatar = red square, white name/role) ---- */
.home-section--soft .home-attr__avatar{
  background:var(--red,#d5160c) !important;
  color:#fff !important;
  border-radius:2px;
}
.home-section--soft .home-attr__name{color:#fff !important;font-weight:700;}
.home-section--soft .home-attr__role{color:var(--grey,#9c9c9c) !important;}

/* ---- 9. Inline RED CTA eyebrow ("Talk to a real roofer") ---- */
.home-section--soft p[style*="color:rgba(213,22,12"]{
  color:var(--red,#d5160c) !important;
}

/* ---- 10. Red CTA button stays solid red ---- */
.home-section--soft a.btn-red{
  background:var(--red,#d5160c) !important;
  color:#fff !important;
  border-radius:2px !important;
}

/* ---- 11. Plain links readable on black ---- */
.home-section--soft a:not(.btn):not(.btn-red){
  color:#fff !important;
  text-decoration:underline;
}

/* ---- 12. Defensive: transparent-ify any inline WHITE box on the dark band ---- */
.home-section--soft [style*="background:#fff"]:not([class*=card]),
.home-section--soft [style*="background:#ffffff"]:not([class*=card]),
.home-section--soft [style*="background:var(--white)"]:not([class*=card]){
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}


/* ████████████████████████████████████████████████████████████████████████████
   8. PROCESS  — "Simple from start to finish."  RED band  (scope: #process.home-section--light)
   READABILITY FIX (high-severity): add the mandated blanket :is() white sweep +
     a plain-link rule (process previously had ONLY per-element rules → any
     non-enumerated text child rendered dark-on-red). The white cards/badges
     below re-assert their own colors at higher specificity, so they stay black.
   CONFLICT FIX: black .h-lg::after guard (RED band → global red bar would vanish).
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 0. READABILITY FIX — blanket sweep FIRST (per _qa-readability.md) ───── */
#process :is(h1,h2,h3,h4,p,li,span,div,strong,b,a){color:#fff!important}
/* Plain links forced white + underlined (keep .btn / .btn-red as-is). */
#process.home-section--light a:not(.btn):not(.btn-red){color:#fff!important;text-decoration:underline}
/* CONFLICT FIX — neutralize the global red .h-lg::after bar → black on the red band. */
#process.home-section--light .h-lg::after{background:#000!important}

/* ── 1. Band + hazard edges ─────────────────────────────────────────────── */
#process.home-section--light{
  background:var(--red) !important;
  color:#fff !important;
  position:relative;
  overflow:hidden;                 /* clip the hazard pseudo-edges cleanly */
}
#process.home-section--light::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:8px;
  background:repeating-linear-gradient(45deg,#000 0 14px,var(--red) 14px 28px);
  z-index:2;
}
#process.home-section--light::after{
  content:"";
  position:absolute;
  bottom:0; left:0; right:0;
  height:8px;
  background:repeating-linear-gradient(45deg,#000 0 14px,var(--red) 14px 28px);
  z-index:2;
}

/* ── 2. Eyebrow → BLACK chip, white UPPERCASE ───────────────────────────── */
#process.home-section--light .home-eyebrow{
  display:inline-block;
  background:#000 !important;
  color:#fff !important;
  font-family:var(--ff-display) !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  padding:7px 16px;
  border-radius:0 !important;       /* sharp rectangle */
  margin-bottom:18px;
}

/* ── 3. Heading → white UPPERCASE + centered BLACK accent bar ────────────── */
#process.home-section--light .home-h2{
  color:#fff !important;
  font-family:var(--ff-display) !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:-.01em !important;
  line-height:1.02 !important;
  position:relative;
  padding-bottom:22px;
  margin-bottom:18px;
}
#process.home-section--light .home-h2::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:0;
  transform:translateX(-50%);
  width:72px;
  height:5px;
  background:#000;                   /* black bar on the red band */
}

#process.home-section--light .home-lede{
  color:#fff !important;
  opacity:.92;
}

/* ── 4. Timeline rail + per-step dividers ───────────────────────────────── */
#process.home-section--light .home-timeline{
  position:relative;
}
#process.home-section--light .home-timeline::before{
  content:"";
  position:absolute;
  left:23px;
  top:8px;
  bottom:8px;
  width:2px;
  background:#000;
  opacity:.55;
  z-index:0;
}
#process.home-section--light .home-step{
  position:relative;
  padding-bottom:34px;
  margin-bottom:0;
}
#process.home-section--light .home-step:not(:last-child)::after{
  content:"";
  position:absolute;
  left:64px;
  right:0;
  bottom:14px;
  height:1px;
  background:rgba(0,0,0,.45);
}
#process.home-section--light .home-step__title{
  color:#fff !important;
  font-family:var(--ff-display) !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.005em !important;
  line-height:1.18 !important;
}
#process.home-section--light .home-step__body{
  color:#fff !important;
  opacity:.9;
}

/* ── 5. KEY FIX — step number badges → BLACK sharp, WHITE number ─────────── */
#process.home-section--light .home-step__num,
#process.home-section--light .home-step--done .home-step__num,
#process.home-section--light [class*="step__num"]{
  background:#000 !important;
  color:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  box-shadow:0 0 0 3px var(--red), 0 0 0 5px #fff;  /* red gap + white ring */
  font-family:var(--ff-display) !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
  z-index:1;
}

/* Defensive: any inline white-bg box → transparent w/ light border. */
#process.home-section--light [style*="background:#fff"],
#process.home-section--light [style*="background:#ffffff"],
#process.home-section--light [style*="background:var(--white)"]{
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}

/* ── 6. Mobile polish ───────────────────────────────────────────────────── */
@media(max-width:600px){
  #process.home-section--light .home-step:not(:last-child)::after{
    left:64px; right:0;
  }
  #process.home-section--light .home-step__num,
  #process.home-section--light .home-step--done .home-step__num,
  #process.home-section--light [class*="step__num"]{
    box-shadow:0 0 0 2px var(--red), 0 0 0 4px #fff;
  }
}


/* ████████████████████████████████████████████████████████████████████████████
   9. REVIEWS  — "The proof is in what they say."  RED band  (scope: .sec.reviews-redesign)
   READABILITY FIX: +td,th,summary in blanket :is(); + inline-white-box guard.
   CONFLICT FIX: black .h-lg::after guard (RED band).
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The band: solid red + hazard-stripe top ────────────────────────── */
.sec.reviews-redesign{
  background:#d5160c !important;
  color:#fff !important;
  position:relative;
  border-top:none !important;
  isolation:isolate;
}
.sec.reviews-redesign::before{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:8px;
  background:repeating-linear-gradient(45deg,#000 0 14px,#d5160c 14px 28px);
  z-index:1;
}

/* READABILITY FIX: blanket sweep now includes td,th,summary (was missing). */
.sec.reviews-redesign :is(h1,h2,h3,h4,h5,p,li,span,div,strong,b,em,small,sup,blockquote,td,th,summary,a){
  color:#fff !important;
}
/* CONFLICT FIX: neutralize global red .h-lg::after → black on this red band. */
.sec.reviews-redesign .h-lg::after{background:#000 !important;}
/* READABILITY FIX: inline-white-box guard (transparent-ify stray inline #fff boxes). */
.sec.reviews-redesign [style*="background:#fff"]:not([class*=card]),
.sec.reviews-redesign [style*="background:#ffffff"]:not([class*=card]){
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}

/* ── 2. Eyebrow = inverted BLACK logo-block ────────────────────────────── */
.sec.reviews-redesign .reviews-eyebrow{
  display:inline-block;
  background:#000 !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  font-size:12px !important;
  line-height:1 !important;
  padding:7px 12px !important;
  border-radius:2px !important;
  margin:0 0 18px !important;
}

/* ── 3. Heading: white UPPERCASE condensed + BLACK accent bar ───────────── */
.sec.reviews-redesign .reviews-title{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:-.01em !important;
  line-height:1.02 !important;
  position:relative;
  padding-bottom:20px;
  margin:0 0 18px !important;
}
.sec.reviews-redesign .reviews-title::after{
  content:"";
  display:block;
  width:64px;
  height:5px;
  background:#000 !important;
  border-radius:2px;
  margin:20px auto 0;
}
.sec.reviews-redesign .reviews-lead{
  color:#fff !important;
  opacity:.95;
}

/* ── 4. Stats strip: white on red, hard rules, GOLD star ────────────────── */
.sec.reviews-redesign .reviews-stats{
  border-top:2px solid rgba(255,255,255,.4) !important;
  border-bottom:2px solid rgba(255,255,255,.4) !important;
}
.sec.reviews-redesign .reviews-stats b{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
}
.sec.reviews-redesign .reviews-stats b .star{
  color:#fbbf24 !important;
}
.sec.reviews-redesign .reviews-stats>div>span{
  color:rgba(255,255,255,.82) !important;
}

/* ── 5. Review cards: WHITE tool-crates that POP on red ─────────────────── */
.sec.reviews-redesign .review-card{
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  box-shadow:6px 6px 0 #000 !important;
  overflow:hidden;
}
.sec.reviews-redesign .review-card::after{
  content:"";
  position:absolute;
  top:0;left:0;right:0;
  height:5px;
  background:repeating-linear-gradient(45deg,#000 0 10px,#d5160c 10px 20px);
  z-index:2;
}
.sec.reviews-redesign .review-card:hover{
  transform:translate(-3px,-3px) !important;
  box-shadow:10px 10px 0 #d5160c !important;
  border-color:#000 !important;
}
.sec.reviews-redesign .review-card .review-text,
.sec.reviews-redesign .review-card .review-name{
  color:#000 !important;
}
.sec.reviews-redesign .review-card .review-text{
  font-weight:500 !important;
}
.sec.reviews-redesign .review-card .review-name{
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.01em !important;
}
.sec.reviews-redesign .review-card .review-city{
  color:#000 !important;
  opacity:.6 !important;
}
.sec.reviews-redesign .review-card .review-quote-mark{
  color:#d5160c !important;
  opacity:.1 !important;
}
.sec.reviews-redesign .review-card:hover .review-quote-mark{
  opacity:.18 !important;
}
.sec.reviews-redesign .review-card .review-stars svg{
  fill:#fbbf24 !important;
}
.sec.reviews-redesign .review-card .review-avatar{
  background:#000 !important;
  color:#fff !important;
  border-radius:2px !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
}
.sec.reviews-redesign .review-card:hover .review-avatar{
  background:#d5160c !important;
  color:#fff !important;
}
.sec.reviews-redesign .review-card .review-author{
  border-top:2px solid #000 !important;
}

/* ── 6. Source tag = solid black chip ──────── */
.sec.reviews-redesign .review-card .review-source{
  background:#000 !important;
  color:#fff !important;
  border-radius:2px !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  font-size:9px !important;
  padding:4px 8px !important;
}

/* ── 7. CTA link: white, black underline on red ────────────── */
.sec.reviews-redesign .reviews-cta a{
  color:#fff !important;
  border-bottom:2px solid #000 !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
}
.sec.reviews-redesign .reviews-cta a:hover{
  border-bottom-color:#fff !important;
}


/* ████████████████████████████████████████████████████████████████████████████
   10. SERVICE-AREAS  — "Where we work"  RED band  (scope: .area-redesign)
   READABILITY FIX: +summary in blanket :is(); + generic inline-white-box guard.
   CONFLICT FIX: black .h-lg::after guard (RED band). .area-cta-primary is owned
     here (scoped + !important) — wins over the components base brick.
   ████████████████████████████████████████████████████████████████████████████ */

/* ---- 1. RED BAND + hazard-stripe top & bottom ---- */
.area-redesign{
  background:var(--red)!important;          /* #d5160c */
  color:#fff!important;
  position:relative!important;
  border-top:none!important;
  isolation:isolate;
}
.area-redesign::before{
  content:"";position:absolute;top:0;left:0;right:0;height:8px;
  background:repeating-linear-gradient(45deg,#000 0 16px,var(--red) 16px 32px)!important;
  z-index:3;pointer-events:none;
}
.area-redesign::after{
  content:"";position:absolute;bottom:0;left:0;right:0;height:8px;
  background:repeating-linear-gradient(45deg,var(--red) 0 16px,#000 16px 32px)!important;
  z-index:3;pointer-events:none;
}

/* READABILITY FIX: blanket sweep now includes summary (was missing). */
.area-redesign :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,p,li,span,div,strong,b,blockquote,td,th,dd,dt,figcaption,summary,small,a){
  color:#fff!important;
}
/* CONFLICT FIX: neutralize global red .h-lg::after → black on this red band. */
.area-redesign .h-lg::after{background:#000!important;}
/* READABILITY FIX: generic inline-white-box guard (combo-CTA card handled below). */
.area-redesign [style*="background:#fff"]:not([class*=card]),
.area-redesign [style*="background:#ffffff"]:not([class*=card]){
  background:transparent!important;
  border:1px solid rgba(255,255,255,.3)!important;
}

/* ---- 2. BLACK eyebrow + "most-served" label = logo-block chips ---- */
.area-redesign .area-eyebrow,
.area-redesign .area-top-cities-label{
  display:inline-block!important;
  background:#000!important;
  color:#fff!important;
  padding:6px 12px!important;
  margin:0 0 16px!important;
  border-radius:2px!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.12em!important;
  line-height:1.1!important;
}

/* ---- 3. WHITE UPPERCASE heading + BLACK accent bar ---- */
.area-redesign .area-title{
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:-.01em!important;
  line-height:.98!important;
  position:relative;
}
.area-redesign .area-title::after{
  content:"";display:block;
  width:72px;height:6px;margin-top:18px;
  background:#000!important;border-radius:2px;
}
.area-redesign .area-lead{color:#fff!important;opacity:.92;}

/* ---- 4. WHITE stats (52 / 15 / 3) ---- */
.area-redesign .area-stats{
  border-top:1px solid rgba(255,255,255,.32)!important;
  border-bottom:1px solid rgba(255,255,255,.32)!important;
}
.area-redesign .area-stat b{
  color:#fff!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
}
.area-redesign .area-stat span{color:#fff!important;opacity:.85;}

/* ---- 5. CITY-PILL chips ---- */
.area-redesign .area-city-pill{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  color:#000!important;
  font-family:var(--ff-display)!important;
  font-weight:700!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
  box-shadow:none!important;
  transition:transform .15s ease,box-shadow .15s ease!important;
}
.area-redesign .area-city-pill,
.area-redesign .area-city-pill *{color:#000!important;}
.area-redesign .area-city-pill .area-city-pill-dot{
  background:var(--red)!important;
  border-radius:50%!important;
  opacity:1!important;
  width:7px!important;height:7px!important;
  flex:0 0 auto;
}
.area-redesign .area-city-pill:hover{
  background:#fff!important;
  border-color:#000!important;
  color:#000!important;
  transform:translate(-2px,-2px)!important;
  box-shadow:4px 4px 0 #000!important;
}
.area-redesign .area-city-pill-more,
.area-redesign .area-city-pill-more *{color:#fff!important;}
.area-redesign .area-city-pill-more{
  background:#000!important;
  border:2px solid #000!important;
  border-radius:2px!important;
}
.area-redesign .area-city-pill-more .area-city-pill-dot{background:var(--red)!important;opacity:1!important;}

/* ---- 6. "VIEW ALL 52 CITIES" = BLACK sharp button (owned here, beats components base) ---- */
.area-redesign .area-cta-primary{
  background:#000!important;
  color:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:4px 4px 0 rgba(0,0,0,.55)!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.06em!important;
}
.area-redesign .area-cta-primary,
.area-redesign .area-cta-primary *{color:#fff!important;}
.area-redesign .area-cta-primary:hover{
  background:#000!important;
  transform:translate(-2px,-2px)!important;
  box-shadow:6px 6px 0 rgba(0,0,0,.55)!important;
}

/* ---- 7. MAP frame (style AROUND the Leaflet canvas only) ---- */
.area-redesign .area-map-wrap{
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:8px 8px 0 #000!important;
  overflow:hidden!important;
  background:#000!important;
}
.area-redesign .area-map-badge{
  background:#000!important;
  color:#fff!important;
  border:2px solid #fff!important;
  border-radius:2px!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.05em!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  box-shadow:none!important;
}
.area-redesign .area-map-badge,
.area-redesign .area-map-badge *{color:#fff!important;}

/* ---- 8. Divider + bottom combo-CTA (readability re-frame) ---- */
.area-redesign .area-divider{
  background:rgba(255,255,255,.28)!important;height:2px!important;
}
.area-redesign .area-combo-cta{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:6px 6px 0 #000!important;
}
.area-redesign .area-combo-cta :is(h1,h2,h3,h4,p,span,div,strong,b,small){
  color:#000!important;
}
.area-redesign .area-combo-cta p:first-child{color:var(--red)!important;}
.area-redesign .area-combo-cta a[href]{
  background:var(--red)!important;
  border:2px solid #000!important;
  border-radius:2px!important;
  box-shadow:4px 4px 0 #000!important;
  font-family:var(--ff-display)!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  letter-spacing:.05em!important;
}
.area-redesign .area-combo-cta a[href],
.area-redesign .area-combo-cta a[href] *{color:#fff!important;}
.area-redesign .area-combo-cta a[href]:hover{
  transform:translate(-2px,-2px)!important;box-shadow:6px 6px 0 #000!important;
}

/* ---- 9. Mobile guard ---- */
@media(max-width:760px){
  .area-redesign .area-map-wrap{box-shadow:5px 5px 0 #000!important;}
  .area-redesign .area-combo-cta{box-shadow:4px 4px 0 #000!important;}
  .area-redesign .area-title::after{width:56px;height:5px;margin-top:14px;}
}


/* ████████████████████████████████████████████████████████████████████████████
   11. BLOG  — "From the blog"  RED band  (scope: .blog-redesign / .sec.blog-redesign)
   READABILITY FIX: + inline-white-box guard (blanket list already complete).
   CONFLICT FIX: black .h-lg::after guard (RED band).
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The band: solid red, hazard-stripe top edge ───────────────────────── */
.sec.blog-redesign,
.blog-redesign{
  background:#d5160c !important;
  color:#fff !important;
  position:relative;
  border-top:0 !important;
  isolation:isolate;
}
.blog-redesign::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:8px;
  background:repeating-linear-gradient(45deg,#000 0 14px,#d5160c 14px 28px);
  z-index:3;
}

/* ── 2. Blanket readability: force EVERY text child white on the red band ──── */
.blog-redesign :is(h1,h2,h3,h4,.h-lg,.h-md,.h-sm,p,li,span,div,strong,b,
                   blockquote,td,th,summary,small,a){
  color:#fff !important;
}
/* CONFLICT FIX: neutralize global red .h-lg::after → black on this red band. */
.blog-redesign .h-lg::after{background:#000 !important;}
/* READABILITY FIX: inline-white-box guard (none ship today; mandated defensive rule). */
.blog-redesign [style*="background:#fff"]:not([class*=card]),
.blog-redesign [style*="background:#ffffff"]:not([class*=card]){
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}

/* ── 3. Header: black eyebrow chip, white UPPERCASE heading + black bar ────── */
.blog-redesign .blog-header{max-width:760px;margin:0 auto 56px;text-align:center}
.blog-redesign .blog-eyebrow{
  display:inline-block;
  background:#000 !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.14em !important;
  font-size:12px;
  line-height:1;
  padding:7px 12px 6px;
  border-radius:2px;
  margin:0 0 18px;
}
.blog-redesign .blog-title{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:-.01em !important;
  line-height:1.02 !important;
  font-size:clamp(34px,5.2vw,56px);
  margin:0 0 18px;
  text-wrap:balance;
}
.blog-redesign .blog-title::after{
  content:"";
  display:block;
  width:64px; height:5px;
  background:#000 !important;
  margin:18px auto 0;
  border-radius:2px;
}
.blog-redesign .blog-lead{
  color:rgba(255,255,255,.92) !important;
  font-size:17px;
  line-height:1.55;
  max-width:580px;
  margin:0 auto;
}

/* ── 4. Grid spacing ───── */
.blog-redesign .blog-grid{margin-bottom:44px}

/* ── 5. Blog cards: WHITE tool-crates that pop on red ─────────────────────── */
.blog-redesign .blog-card{
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  box-shadow:6px 6px 0 #000 !important;
  text-decoration:none;
  transition:transform .22s cubic-bezier(.32,.72,0,1),
             box-shadow .22s cubic-bezier(.32,.72,0,1) !important;
}
.blog-redesign .blog-card :is(h1,h2,h3,h4,p,li,span,div,strong,b){
  color:#000 !important;
}
.blog-redesign .blog-card-title{
  color:#000 !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:-.005em !important;
  line-height:1.12 !important;
  font-size:19px;
}
.blog-redesign .blog-card-desc{
  color:#1a1a1a !important;
  font-size:14px;
  line-height:1.5;
}
.blog-redesign .blog-card-tag{
  display:inline-block;
  background:#d5160c !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.1em !important;
  font-size:10px;
  line-height:1;
  padding:6px 9px 5px;
  border-radius:2px;
  margin-bottom:14px;
  align-self:flex-start;
}
.blog-redesign .blog-card-arrow{
  color:#d5160c !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  font-size:13px;
  gap:4px;
  transition:gap .22s cubic-bezier(.32,.72,0,1) !important;
}
.blog-redesign .blog-card-arrow,
.blog-redesign .blog-card-arrow *{color:#d5160c !important;}
.blog-redesign .blog-card:hover{
  transform:translate(-3px,-3px) !important;
  box-shadow:9px 9px 0 #d5160c !important;
}
.blog-redesign .blog-card:hover .blog-card-arrow{gap:9px}

/* ── 6. Divider above the guides block ───── */
.blog-redesign .blog-guides{
  border-top:1px solid rgba(255,255,255,.28) !important;
}
.blog-redesign .blog-guides-label{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.14em !important;
  font-size:11px;
}

/* ── 7. Guide pills: white crates on red; palette-forced dots ─────────────── */
.blog-redesign .blog-guide-pill{
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  box-shadow:3px 3px 0 #000 !important;
  color:#000 !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:600 !important;
  letter-spacing:.01em !important;
  transition:transform .2s cubic-bezier(.32,.72,0,1),
             box-shadow .2s cubic-bezier(.32,.72,0,1) !important;
}
.blog-redesign .blog-guide-pill,
.blog-redesign .blog-guide-pill span:not(.blog-guide-dot){color:#000 !important;}
.blog-redesign .blog-guide-pill:hover{
  transform:translate(-2px,-2px) !important;
  box-shadow:5px 5px 0 #d5160c !important;
  color:#000 !important;
}
.blog-redesign .blog-guide-dot,
.blog-redesign .blog-guide-pill .blog-guide-dot[style]{
  background:#000 !important;
  opacity:1 !important;
  border-radius:2px !important;
  width:8px; height:8px;
}
.blog-redesign .blog-guide-pill:hover .blog-guide-dot{
  background:#d5160c !important;
  transform:scale(1.2);
}

/* ── 8. "Read more" CTA link → readable on red ───── */
.blog-redesign .blog-cta a{
  color:#fff !important;
  border-bottom-color:rgba(255,255,255,.5) !important;
}
.blog-redesign .blog-cta a:hover{border-bottom-color:#fff !important;}

/* ── 9. Mobile polish ───── */
@media(max-width:600px){
  .blog-redesign .blog-card{box-shadow:5px 5px 0 #000 !important;}
  .blog-redesign .blog-card:hover{box-shadow:7px 7px 0 #d5160c !important;}
  .blog-redesign .blog-title{font-size:clamp(30px,8.5vw,40px);}
}


/* ████████████████████████████████████████████████████████████████████████████
   12. FAQ  — "Roofing questions, answered."  RED band  (scope: .faq-homepage)
   PALETTE FIX: answer-link hover #a01009 → #a81009 (the single sanctioned hover-red).
   READABILITY FIX: + inline-white-box guard (panels are .faq-item; stray #fff caught).
   (.h-lg::after already neutralized to BLACK here — the conflict-fix guard, kept.)
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The band: solid red, sharp, with a hazard-stripe top edge ───────── */
.faq-homepage{
  background:#d5160c !important;
  position:relative;
  border-radius:0 !important;
}
.faq-homepage::before{
  content:"";
  position:absolute;
  top:0; left:0; right:0;
  height:10px;
  background:repeating-linear-gradient(
    -45deg,
    #000 0, #000 14px,
    #d5160c 14px, #d5160c 28px
  );
  z-index:1;
  pointer-events:none;
}
.faq-homepage > div{position:relative;z-index:2;}

/* ── 2. Readability sweep ───── */
.faq-homepage :is(h1,h2,h3,h4,.h-lg,.h-md,p,li,span,div,strong,b,blockquote,td,th,summary,small){
  color:#fff !important;
}
/* READABILITY FIX: inline-white-box guard (skip .faq-item panels + cards). */
.faq-homepage [style*="background:#fff"]:not([class*=card]):not(.faq-item),
.faq-homepage [style*="background:#ffffff"]:not([class*=card]):not(.faq-item){
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}

/* ── 3. Heading: white UPPERCASE condensed + BLACK accent bar ───────────── */
.faq-homepage .h-lg{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
}
/* CONFLICT FIX (kept): global red .h-lg::after → BLACK on this red band. */
.faq-homepage .h-lg::after{
  background:#000 !important;
  border-radius:0 !important;
}

/* ── 4. Eyebrow: BLACK chip, white uppercase ───────── */
.faq-homepage .eyebrow{
  background:#000 !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.10em !important;
  display:inline-block;
  padding:5px 12px;
  border-radius:2px !important;
}
.faq-homepage .b-md{color:#fff !important;}

/* ── 5. Accordion items: WHITE tool-crate panels ───── */
.faq-homepage details.faq-item,
.faq-homepage .faq-item{
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:2px !important;
  box-shadow:4px 4px 0 #000 !important;
  padding:0 !important;
  overflow:hidden;
  transition:box-shadow .15s ease, transform .15s ease;
}
.faq-homepage details.faq-item:hover,
.faq-homepage .faq-item:hover{
  box-shadow:6px 6px 0 #000 !important;
  transform:translate(-1px,-1px);
}

/* ── 6. Summary (question) + answer text → BLACK inside the white panel ──── */
.faq-homepage details.faq-item > .faq-summary,
.faq-homepage .faq-item > .faq-summary{
  color:#000 !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.005em !important;
  background:#fff !important;
}
.faq-homepage details.faq-item > .faq-summary:hover,
.faq-homepage .faq-item > .faq-summary:hover{
  background:rgba(0,0,0,.04) !important;
}
.faq-homepage details.faq-item > .faq-answer,
.faq-homepage .faq-item > .faq-answer{
  color:#1a1a1a !important;
  background:#fff !important;
}
.faq-homepage .faq-item .faq-answer :is(p,li,span,div,small){color:#1a1a1a !important;}
.faq-homepage .faq-item .faq-answer :is(strong,b){color:#000 !important;}
.faq-homepage .faq-item .faq-answer a{color:var(--red,#d5160c) !important;}
.faq-homepage .faq-item .faq-answer a:hover{color:#a81009 !important;}  /* PALETTE FIX: was #a01009 */

/* ── 7. The arrow → BLACK (cover .faq-chev live class + .faq-arrow brief name) ── */
.faq-homepage .faq-item .faq-chev,
.faq-homepage .faq-item .faq-arrow{
  color:#000 !important;
  font-weight:700 !important;
  transition:transform .2s ease;
  transform-origin:center;
}

/* ── 8. Open state: red left rail + rotated arrow + louder shadow ───────── */
.faq-homepage details.faq-item[open],
.faq-homepage .faq-item[open]{
  border-left:4px solid #d5160c !important;
  box-shadow:6px 6px 0 #000 !important;
}
.faq-homepage details.faq-item[open] .faq-chev,
.faq-homepage details.faq-item[open] .faq-arrow,
.faq-homepage .faq-item[open] .faq-chev,
.faq-homepage .faq-item[open] .faq-arrow{
  transform:rotate(45deg);
  color:#d5160c !important;
}
.faq-homepage details.faq-item[open] > .faq-summary,
.faq-homepage .faq-item[open] > .faq-summary{
  color:#000 !important;
  font-weight:800 !important;
}

/* ── 9. Kill the default <details> marker ───── */
.faq-homepage .faq-item > summary{list-style:none !important;}
.faq-homepage .faq-item > summary::-webkit-details-marker{display:none !important;}
.faq-homepage .faq-item > summary::marker{content:"" !important;}


/* ████████████████████████████████████████████████████████████████████████████
   13. CLOSING  — "Why this work matters to us"  BLACK band  (scope: .sec.topical-final)
   QA: clean. .sec.topical-final beats global .sec{#fff}; .h-lg::after already kept
   RED on this black band (the conflict-fix guard for BLACK bands). No fix needed.
   ████████████████████████████████████████████████████████████████████████████ */

/* --- 1. BLACK BAND (high specificity so global .sec{background:#fff} can't win) --- */
.sec.topical-final,
section.sec.topical-final {
  background: #000 !important;
  border-top: none !important;
  position: relative;
}

/* --- 2. HAZARD STRIPE top divider (red/black diagonal) --- */
.sec.topical-final::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 8px;
  background: repeating-linear-gradient(
    -45deg,
    var(--red, #d5160c) 0,
    var(--red, #d5160c) 18px,
    #000 18px,
    #000 36px
  );
  z-index: 2;
}

/* --- 3. READABILITY: force every text-bearing child white --- */
.sec.topical-final :is(h1, h2, h3, h4, .h-lg, .h-md, p, li, span, div, strong, b, blockquote, td, th, summary, small, time) {
  color: #fff !important;
}

/* --- 4. EYEBROW → RED block, white text (black-band rule) --- */
.sec.topical-final .eyebrow {
  display: inline-block;
  background: var(--red, #d5160c) !important;
  color: #fff !important;
  padding: 6px 14px;
  border-radius: 2px;
  letter-spacing: .14em;
  font-weight: 700;
  text-transform: uppercase;
}

/* --- 5. HEADING white UPPERCASE + RED accent bar --- */
.sec.topical-final .h-lg {
  color: #fff !important;
  text-transform: uppercase;
  letter-spacing: -.01em;
}
.sec.topical-final .sec-hdr > div[aria-hidden="true"] {
  background: var(--red, #d5160c) !important;
}
/* CONFLICT FIX (kept): .h-lg::after stays RED on the black band (red-on-black reads). */
.sec.topical-final .h-lg::after {
  background: var(--red, #d5160c) !important;
}

/* --- 6. Inline WHITE boxes → transparent + light border --- */
.sec.topical-final [style*="background:#fff"]:not([class*="card"]) {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, .3) !important;
  box-shadow: none !important;
}

/* --- 7. Links readable on black --- */
.sec.topical-final a {
  color: var(--red, #d5160c) !important;
}
.sec.topical-final .rv a {
  color: #fff !important;
  border-bottom-color: rgba(255, 255, 255, .4) !important;
}

/* --- 8. SVG icon strokes stay visible on black --- */
.sec.topical-final svg[stroke="#d5160c"] {
  stroke: var(--red, #d5160c) !important;
}
.sec.topical-final svg[stroke="currentColor"] {
  stroke: #fff !important;
}

/* --- 9. Trust-strip top divider line → light on black --- */
.sec.topical-final [style*="border-top:1px solid rgba(0,0,0,.08)"] {
  border-top-color: rgba(255, 255, 255, .18) !important;
}


/* ████████████████████████████████████████████████████████████████████████████
   14. FOOTER  — pure BLACK + red hazard-stripe  (scope: #footer / #footer.site-footer)
   READABILITY FIX: backstop :is() += summary,blockquote,td,th; + inline-white-box guard.
   CONFLICT FIX: red .h-lg::after guard (BLACK band → bare .h-lg bar must be red).
   ████████████████████████████████████████████████████████████████████████████ */

/* ── 1. The shell: pure black + red hazard-stripe top border ────────────── */
#footer.site-footer,
footer#footer.site-footer{
  background:#000 !important;
  color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;
  border-top:4px solid #d5160c !important;
  background-image:repeating-linear-gradient(
      -45deg,
      #d5160c 0, #d5160c 14px,
      #000 14px, #000 28px) !important;
  background-size:100% 6px !important;
  background-position:top left !important;
  background-repeat:no-repeat !important;
}
#footer .sf-inner{
  position:relative;
  background:#000 !important;
  margin-top:6px;
}

/* CONFLICT FIX: a bare .h-lg on this BLACK band gets the global red bar — lock it red. */
#footer.site-footer .h-lg::after{background:#d5160c !important;}
/* READABILITY FIX: inline-white-box guard (future #fff chip → transparent on black). */
#footer.site-footer [style*="background:#fff"]:not([class*=card]),
#footer.site-footer [style*="background:#ffffff"]:not([class*=card]){
  background:transparent !important;
  border:1px solid rgba(255,255,255,.3) !important;
}

/* ── 2. Column titles: white UPPERCASE Barlow SC, sharp red underbar ─────── */
#footer .sf-col h3,
#footer .sf-col h4,
#footer .sf-areas-col h3,
#footer .sf-areas-col h4{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.06em !important;
  font-size:13px !important;
}
#footer .sf-col h3::before,
#footer .sf-areas-col h3::before{
  background:#d5160c !important;
  width:30px !important;
  height:3px !important;
  border-radius:0 !important;
}
#footer .sf-area-total{
  color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;
  font-weight:600 !important;
}

/* ── 3. Body links ───── */
#footer .sf-col a,
#footer .sf-area-cities a,
#footer .sf-email{
  color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;
  text-decoration:none !important;
}
#footer .sf-col a:hover,
#footer .sf-area-cities a:hover,
#footer .sf-email:hover{
  color:#fff !important;
  padding-left:0 !important;
}
#footer .sf-link-all,
#footer .sf-area-see-all{
  color:#d5160c !important;
  font-weight:700 !important;
}
#footer .sf-link-all:hover,
#footer .sf-area-see-all:hover{color:#fff !important;}

#footer .sf-area-county summary{color:#fff !important;}
#footer .sf-area-county summary:hover,
#footer .sf-area-county summary:hover::after{color:#fff !important;}
#footer .sf-area-county[open] summary::after{color:#d5160c !important;}
#footer .sf-area-count{
  background:rgba(255,255,255,.08) !important;
  color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;
  border-radius:0 !important;
}

/* ── 4. Brand column ───── */
#footer .sf-logo img{filter:brightness(0) invert(1) !important;opacity:1 !important;}
#footer .sf-tagline{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-tagline strong{color:#fff !important;}
#footer .sf-phone{color:#fff !important;background:transparent !important;}
#footer .sf-phone:hover{color:#d5160c !important;}
#footer .sf-phone svg{color:#d5160c !important;}
#footer .sf-addr,
#footer .sf-hours{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-addr strong,
#footer .sf-hours strong{color:#fff !important;}
#footer .sf-email svg,
#footer .sf-addr svg,
#footer .sf-hours svg{color:#d5160c !important;}

/* ── 5. HERO STRIP (top): sharp dual CTA ───── */
#footer .sf-hero-strip{border-bottom:1px solid rgba(255,255,255,.14) !important;}
#footer .sf-hero-h{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.005em !important;
}
#footer .sf-hero-sub{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-cta-primary{
  background:#d5160c !important;
  color:#fff !important;
  border:2px solid #d5160c !important;
  border-radius:2px !important;
  box-shadow:none !important;
  text-transform:uppercase !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
}
#footer .sf-cta-primary:hover{
  background:#fff !important;color:#d5160c !important;border-color:#fff !important;
  transform:none !important;box-shadow:none !important;
}
#footer .sf-cta-secondary{
  background:transparent !important;
  color:#fff !important;
  border:2px solid #fff !important;
  border-radius:2px !important;
  text-transform:uppercase !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  letter-spacing:.03em !important;
}
#footer .sf-cta-secondary:hover{background:#fff !important;color:#000 !important;}
#footer .sf-cta-secondary svg{color:#d5160c !important;}
#footer .sf-cta-secondary:hover svg{color:#000 !important;}

/* ── 6. FAMILY-OF-BRANDS cards ───── */
#footer .sf-family-strip{
  border-top:1px solid rgba(255,255,255,.14) !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
}
#footer .sf-family-eyebrow{
  color:#fff !important;
  background:#d5160c !important;
  display:inline-block !important;
  padding:4px 12px !important;
  text-transform:uppercase !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
  letter-spacing:.08em !important;
}
#footer .sf-family-card{
  background:rgba(255,255,255,.03) !important;
  border:1px solid rgba(255,255,255,.12) !important;
  border-left:3px solid #d5160c !important;
  border-radius:0 !important;
  text-align:left !important;
}
#footer .sf-family-card:hover{
  background:rgba(213,22,12,.10) !important;
  border-color:rgba(255,255,255,.22) !important;
  border-left-color:#d5160c !important;
}
#footer .sf-family-card strong{color:#fff !important;}
#footer .sf-family-card span{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-family-card a{color:#d5160c !important;font-weight:700 !important;}
#footer .sf-family-card a:hover{color:#fff !important;}

/* ── 7. TRUST STRIP: sharp cert tags, gold stars stay gold ───── */
#footer .sf-trust{
  border-top:1px solid rgba(255,255,255,.14) !important;
  border-bottom:1px solid rgba(255,255,255,.14) !important;
}
#footer .sf-trust-pill{
  background:transparent !important;
  border:2px solid rgba(255,255,255,.30) !important;
  border-radius:0 !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.04em !important;
}
#footer .sf-trust-pill svg{color:#d5160c !important;}
#footer .sf-trust-pill:hover{
  background:transparent !important;
  border-color:#d5160c !important;
  color:#d5160c !important;
}
#footer .sf-trust-pill:hover svg{color:#d5160c !important;}
#footer .sf-trust-divider{background:rgba(255,255,255,.20) !important;}
#footer .sf-trust-meta{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-trust-meta a{color:#fff !important;text-decoration:none !important;}
#footer .sf-trust-meta a:hover{color:#d5160c !important;}
#footer .sf-stars-link{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-stars-link:hover{color:#fff !important;}
#footer .sf-stars{color:#fbbf24 !important;}

/* ── 8. BOTTOM LEGAL BAR ───── */
#footer .sf-bottom{
  border-top:2px solid #d5160c !important;
  padding-top:18px !important;
}
#footer .sf-copy{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;}
#footer .sf-copy [itemprop="name"]{color:#fff !important;}
#footer .sf-legal a,
#footer .sf-family a{color:var(--on-dark-muted,rgba(255,255,255,.72)) !important;text-decoration:none !important;}
#footer .sf-legal a:hover,
#footer .sf-family a:hover{color:#fff !important;}

/* ── 9. Readability backstop (white-on-black) ──────────────────────────── */
/* READABILITY FIX: backstop :is() += summary,blockquote,td,th (were missing). */
#footer.site-footer :is(p,li,span,strong,b,small,h2,h3,h4,summary,blockquote,td,th):not(a):not(.sf-stars):not(.sf-area-total):not(.sf-family-eyebrow){
  color:#fff;
}
#footer.site-footer p:not(.sf-hero-h):not(.sf-copy),
#footer.site-footer .sf-tagline,
#footer.site-footer .sf-addr,
#footer.site-footer .sf-hours{color:var(--on-dark-muted,rgba(255,255,255,.72));}

/* ===== HEAVY DUTY refine: hero RED-DUOTONE (Milwaukee imagery treatment) ===== */
#hero .hero-overlay{background:linear-gradient(180deg,rgba(213,22,12,.5) 0%,rgba(120,8,4,.55) 38%,rgba(0,0,0,.78) 100%)!important;mix-blend-mode:normal!important}
/* deepen the photo so the red reads as a tint, not a wash */
#hero .hero-video,#hero video,#hero picture img{filter:grayscale(.35) contrast(1.08) brightness(.85)!important}
/* ===== HEAVY DUTY refine: jump-link chips -> Milwaukee category tabs ===== */
.home-toc{background:#000!important;border-top:4px solid var(--red)!important;border-bottom:none!important}
.home-toc-wrap{gap:0!important}
.home-toc-link{font-family:var(--ff-display)!important;text-transform:uppercase!important;letter-spacing:.06em!important;font-weight:800!important;color:rgba(255,255,255,.78)!important;background:transparent!important;border:none!important;border-radius:0!important;border-right:1px solid rgba(255,255,255,.14)!important;padding:14px 20px!important}
.home-toc-link:hover,.home-toc-link.active,.home-toc-link[aria-current]{color:#fff!important;background:var(--red)!important}
/* ===== HEAVY DUTY hd18: REAL Econo aerial-roof hero photo, NO duotone (user: dislikes duotone) ===== */
#hero .hero-video,#hero video{display:none!important}
#hero{background:#0a0a0a url("/assets/images/projects/projects_modesto_jeanine-dr-roof-replacement.jpg") center 30%/cover no-repeat!important}
#hero .hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.85) 100%)!important;mix-blend-mode:normal!important}
#hero .hero-video,#hero video,#hero picture img,#hero img{filter:none!important}
/* ---- founder-photo ---- */
/* ============================================================================
   FOUNDER PORTRAIT — Mario Espindola — inside the BLACK "41 years on roofs" band
   Section: section.home-section--soft (id="mario")
   Companion to: soft41.css (which paints the band black + owns ::before stripe)

   Milwaukee redesign — Econo palette ONLY (#d5160c #9c9c9c #000 #fff + tints).
   Pattern applied:
     • Sharp 2px-corner framed portrait, 3px RED border (Milwaukee "logo block")
     • Small solid-RED corner tab "EST. 1996" (white UPPERCASE) — a real child,
       NOT a section pseudo-element (soft41.css owns .home-section--soft::before)
     • Subtle DARK VIGNETTE only — the photo stays its TRUE colors (NO red duotone)
     • Centered above the existing .home-attr signature row; white caption on black

   Scope: every rule is prefixed with .home-section--soft .home-founder*.
   Additive to soft41.css — redeclares nothing it already sets.
   Must append AFTER soft41.css (and apple-refinements) so scoped rules win.
   ========================================================================== */

/* ---- 1. Figure wrapper: centered block above the signature row ----------- */
.home-section--soft .home-founder{
  margin:8px auto 36px;
  text-align:center;
  display:block;
  max-width:760px;
}

/* ---- 2. The frame: sharp 2px corners + 3px RED border + thin inner ring -- */
.home-section--soft .home-founder__frame{
  position:relative;
  display:inline-block;
  width:200px;
  height:200px;
  border:3px solid var(--red,#d5160c);
  border-radius:2px;
  background:#000;            /* on-palette backstop behind the image */
  overflow:hidden;
  /* hard Milwaukee shadow + a faint white inner ring so it reads on black */
  box-shadow:0 14px 36px -12px rgba(0,0,0,.9),
             0 0 0 1px rgba(255,255,255,.12) inset;
  line-height:0;
}

/* ---- 3. The real photo — TRUE colors, NO duotone ------------------------ */
.home-section--soft .home-founder__img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 28%;   /* favor the face over the chest */
  /* tiny tonal nudge ONLY — explicitly not a hue/sepia/duotone shift */
  filter:contrast(1.04) brightness(1.01) saturate(1.0);
}

/* ---- 4. Subtle dark VIGNETTE (depth, not a color cast) ------------------ */
.home-section--soft .home-founder__vignette{
  position:absolute;
  inset:0;
  pointer-events:none;
  /* edges darken toward the black band; center stays clear & true-color */
  background:radial-gradient(120% 120% at 50% 38%,
              rgba(0,0,0,0) 52%,
              rgba(0,0,0,.28) 86%,
              rgba(0,0,0,.5) 100%);
}

/* ---- 5. Solid-RED corner tab "EST. 1996" (real child, not a pseudo) ----- */
.home-section--soft .home-founder__tab{
  position:absolute;
  left:0;
  bottom:0;
  background:var(--red,#d5160c);
  color:#fff !important;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:4px 9px;
  border-radius:0 2px 0 0;     /* sharp; only the outward corner eased to 2px */
  line-height:1;
  z-index:2;
}

/* ---- 6. Caption: white-tint on black, centered -------------------------- */
.home-section--soft .home-founder__cap{
  margin-top:14px;
  font-size:13px;
  font-weight:500;
  letter-spacing:.02em;
  color:rgba(255,255,255,.62) !important;  /* on-palette white tint */
  line-height:1.4;
}

/* ---- 7. (optional) hide the now-redundant 52px "ME" monogram avatar ------
   The real face sits directly above the signature; the text monogram would be
   a second, smaller "portrait" stacked under it. Hide it (scoped + reversible).
   To KEEP the monogram instead, delete this whole block. ------------------- */
.home-section--soft .home-attr__avatar{ display:none !important; }
.home-section--soft .home-attr{ gap:0 !important; }   /* close the empty gap */

/* ---- 8. Mobile: shrink the frame, keep sharp corners -------------------- */
@media(max-width:768px){
  .home-section--soft .home-founder__frame{ width:150px; height:150px; border-width:2px; }
  .home-section--soft .home-founder{ margin:4px auto 28px; }
  .home-section--soft .home-founder__tab{ font-size:9.5px; padding:3px 7px; }
  .home-section--soft .home-founder__cap{ font-size:12px; }
}

/* ---- gallery ---- */
/* ============================================================
   RECENT PROJECTS — "THE PROOF IS ON THE ROOF"  (.hd-projects)
   Milwaukee pattern: white band, heavy UPPERCASE Barlow heading +
   red accent bar, black-on-red eyebrow logo-block, sharp 2px tool-crate
   cards w/ hard offset shadow, black caption bars, BEFORE/AFTER corner
   stamps, red hazard accents. NO red duotone on photos (full color).
   Palette ONLY: --red #d5160c · --grey #9c9c9c · #000 · #fff.
   All rules scoped to .hd-projects — no global selectors.
   ============================================================ */

.hd-projects{
  background:#fff!important;
  padding:clamp(56px,7vw,104px) clamp(20px,5vw,32px);
  border-top:3px solid #000;
  border-bottom:3px solid #000;
  position:relative;
}
/* top hazard stripe — red/black diagonal accent divider */
.hd-projects::before{
  content:"";position:absolute;top:0;left:0;right:0;height:6px;
  background:repeating-linear-gradient(135deg,#d5160c 0 18px,#000 18px 36px);
}
.hd-projects__inner{max-width:1200px;margin:0 auto}

/* ---------- HEAD ---------- */
.hd-projects__head{max-width:760px;margin:0 auto clamp(36px,5vw,56px);text-align:center}
.hd-projects__eyebrow{
  display:inline-block;margin:0 0 18px;
  background:#000;color:#fff;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  font-weight:800;font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  padding:7px 14px;border-radius:2px;line-height:1;
}
.hd-projects__title{
  margin:0;color:#000;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  font-weight:800;text-transform:uppercase;
  font-size:clamp(34px,5.6vw,68px);line-height:.95;letter-spacing:-.01em;
}
/* red accent bar under the heading */
.hd-projects__bar{
  display:block;width:84px;height:7px;background:#d5160c;
  margin:22px auto 0;border-radius:2px;
}
.hd-projects__lede{
  margin:22px auto 0;max-width:600px;color:#3a3a3a;
  font-size:clamp(15px,1.6vw,18px);line-height:1.6;
}

/* ---------- GRID ---------- */
.hd-projects__grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:clamp(18px,2.4vw,28px);
}
@media(max-width:960px){.hd-projects__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.hd-projects__grid{grid-template-columns:1fr}}

/* ---------- TOOL-CRATE CARD ---------- */
.hd-proj{
  background:#fff;
  border:2px solid #000;
  border-radius:2px;
  box-shadow:6px 6px 0 #000;
  overflow:hidden;
  transition:transform .15s ease, box-shadow .15s ease;
}
.hd-proj:hover{
  transform:translate(-2px,-2px);
  box-shadow:8px 8px 0 #d5160c;
}

/* before|after pair, split by a thin red seam */
.hd-proj__pair{display:grid;grid-template-columns:1fr 1fr;gap:0;background:#000}
.hd-proj__shot{
  position:relative;margin:0;
  aspect-ratio:3/4;overflow:hidden;background:#9c9c9c;
}
.hd-proj__shot--before{border-right:2px solid #d5160c}
.hd-proj__shot img{
  display:block;width:100%;height:100%;
  object-fit:cover;object-position:center;
  /* NO red duotone — natural color only */
}

/* BEFORE / AFTER corner stamps */
.hd-proj__stamp{
  position:absolute;top:10px;left:10px;z-index:2;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  font-weight:800;font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:#fff;padding:5px 9px;border-radius:2px;line-height:1;
  box-shadow:2px 2px 0 rgba(0,0,0,.55);
}
.hd-proj__stamp--before{background:#000}
.hd-proj__stamp--after{background:#d5160c}

/* black caption bar: city + service */
.hd-proj__cap{
  display:flex;flex-direction:column;gap:3px;
  background:#000;color:#fff;
  padding:14px 16px;
  border-top:2px solid #d5160c;
}
.hd-proj__city{
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  font-weight:800;font-size:18px;letter-spacing:.01em;text-transform:uppercase;color:#fff;
}
.hd-proj__svc{
  font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:#cfcfcf;
}

/* ---------- CTA ---------- */
.hd-projects__cta{text-align:center;margin-top:clamp(36px,5vw,56px)}
.hd-projects__btn{
  display:inline-block;
  background:#d5160c;color:#fff;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif;
  font-weight:800;font-size:16px;letter-spacing:.06em;text-transform:uppercase;
  padding:16px 34px;border-radius:2px;text-decoration:none;
  border:2px solid #000;box-shadow:4px 4px 0 #000;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.hd-projects__btn:hover{
  background:#000;
  transform:translate(-2px,-2px);box-shadow:6px 6px 0 #d5160c;
}

/* keep both shots readable side-by-side even on the narrowest phones */
@media(max-width:360px){
  .hd-proj__stamp{font-size:10px;padding:4px 7px}
  .hd-proj__city{font-size:16px}
}

/* ---- svc-photos ---- */
/* ============================================================================
   SERVICE CARDS — REAL ECONO PROJECT-PHOTO BANNERS   (#services .svc-card)
   Milwaukee redesign · Econo palette ONLY: --red #d5160c / #9c9c9c / #000 / #fff
   ----------------------------------------------------------------------------
   GOAL: replace the icon-only white "tool-crate" face with a real Econo
   jobsite photo BANNER at the top of every card, while keeping the white card
   body + black text + sharp tool-crate frame intact. Readability preserved.

   Milwaukee pattern applied:
     • Full-bleed gritty jobsite photo at the card head (sharp corners).
     • 2px BLACK divider under the photo (hard edge, hazard-frame feel).
     • Photo legibility via a dark gradient ONLY at the bottom strip — the red
       icon badge + black tag sit on that strip, never floating on bright sky.
     • RED icon kept as a small SQUARE corner badge over the photo (logo-block).
     • NO red duotone (user dislikes it): the photo stays full natural color;
       red appears only in the small icon badge + the existing red link below.

   TREATMENT = banner + overlaid head (reuses existing .svc-head flex layout):
     index.html inserts ONE wrapper as the FIRST child of each .svc-card:
       <div class="svc-banner"><img ... ></div>
     placed immediately BEFORE the existing <div class="svc-head">.
     CSS then (1) bleeds the banner to the card's top/left/right edges past the
     28px card padding, (2) lifts .svc-head up so the icon+tag overlay the photo.
   See tasks/redesign/raw/svc-photos.md for the exact per-card markup + anchor.

   SCOPE: every rule is prefixed with #services and uses !important so it beats
   the bare `.svc-*` base rules in apple-refinements.css (which append earlier).
   Behavior preserved: the .svc-link::before full-card click overlay (inset:0,
   z-index:1) still covers the whole card — the banner sits BELOW it (clicking
   the photo navigates, which is desired); icon/tag are non-interactive and we
   raise them to z-index:2 so they render crisply above that overlay.
   The .svc-locations pills keep their own z-index:2 (untouched here).
   ============================================================================ */

/* Card must clip the banner's sharp top corners to the 2px crate radius. */
#services .svc-card{
  overflow:hidden!important;          /* base .svc-card has none; banner needs it */
  padding-top:0!important;            /* banner owns the top edge, flush, no gap  */
}

/* ---- BANNER WRAPPER --------------------------------------------------------
   Bleed past the card's 28px horizontal padding so the photo spans edge-to-
   edge and sits flush at the very top. Fixed 150px tall, sharp corners. */
#services .svc-card .svc-banner{
  position:relative;
  margin:0 -28px 22px;               /* cancel L/R padding; gap before content   */
  height:150px;
  overflow:hidden;
  background:#000;                   /* graceful fallback while img loads        */
  border-bottom:2px solid #000;      /* hard hazard-frame divider under photo    */
  border-radius:2px 2px 0 0;         /* match crate's sharp top corners          */
  z-index:0;
}

/* The real Econo project photo: cover the banner, never distort. */
#services .svc-card .svc-banner img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 42%;        /* bias toward roof plane, not sky/ground   */
  display:block;
  transition:transform .5s cubic-bezier(.32,.72,0,1);
}
/* Subtle zoom on hover — echoes the card's tool-crate lift, keeps it alive. */
#services .svc-card:hover .svc-banner img{transform:scale(1.06)}

/* Dark gradient ONLY along the bottom strip, so the icon badge + tag stay
   legible over any photo (bright sky, light shingle) without tinting the
   whole image. NOT a red duotone — neutral black, bottom-weighted. */
#services .svc-card .svc-banner::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:62px;
  background:linear-gradient(to top,rgba(0,0,0,.72) 0%,rgba(0,0,0,.30) 55%,rgba(0,0,0,0) 100%);
  pointer-events:none;
  z-index:1;
}

/* ---- HEAD OVERLAY (icon badge + tag, lifted onto the photo) ----------------
   The existing .svc-head (display:flex; justify-content:space-between) is
   pulled UP by the banner's 22px bottom margin + its own height so it overlays
   the bottom strip of the photo. Icon ends up bottom-LEFT, tag bottom-RIGHT. */
#services .svc-card .svc-head{
  position:relative;
  z-index:2;                         /* above gradient AND the link click overlay */
  margin:-46px 0 16px!important;     /* lift onto the photo's dark strip          */
  min-height:0!important;
  align-items:flex-end!important;    /* sit on the photo's lower edge             */
  pointer-events:none;              /* let the full-card link overlay catch clicks*/
}

/* RED icon → solid red SQUARE badge (Milwaukee logo-block), white glyph. */
#services .svc-card .svc-head .svc-icon{
  width:40px!important;
  height:40px!important;
  padding:8px;
  background:var(--red)!important;
  color:#fff!important;              /* glyph white on red, max contrast on photo */
  stroke:#fff!important;
  border-radius:2px!important;       /* sharp corner badge                         */
  box-shadow:0 2px 0 rgba(0,0,0,.55);/* tiny hard shadow lifts it off the photo    */
  box-sizing:border-box;
  flex-shrink:0;
}
#services .svc-card:hover .svc-head .svc-icon{transform:scale(1.06)}

/* Tag → white-on-transparent UPPERCASE block sitting on the dark gradient.
   (Base rule makes it black-on-black here, invisible — force it readable.) */
#services .svc-card .svc-head .svc-tag{
  background:rgba(0,0,0,.0)!important;
  color:#fff!important;
  font-family:var(--ff-display);
  font-weight:700!important;
  text-transform:uppercase;
  letter-spacing:.1em!important;
  font-size:10px!important;
  line-height:1;
  padding:0 0 3px;
  text-shadow:0 1px 3px rgba(0,0,0,.9); /* legible over busy photo edges          */
}

/* ---- BODY (unchanged tool-crate face, just confirmed readable) -------------
   Title/desc/link keep services.css styling. We only guarantee the title sits
   clear of the lifted head and stays solid black on the white body. */
#services .svc-card .svc-title{
  margin-top:0!important;
  color:#000!important;
}

/* ----------------------------------------------------------------------------
   RESPONSIVE — banner scales down on the 1-col (mobile) / 2-col grid where
   cards are wider; keep the bleed correct (card padding stays 28px at all
   widths in base CSS, so the -28px margin holds). Shorten banner a touch on
   the widest single-column phones for balance. */
@media(max-width:600px){
  #services .svc-card .svc-banner{height:138px}
  #services .svc-card .svc-head{margin-top:-44px!important}
}

/* ----------------------------------------------------------------------------
   ACCESSIBILITY: respect reduced-motion — kill the hover zoom. */
@media(prefers-reduced-motion:reduce){
  #services .svc-card .svc-banner img{transition:none}
  #services .svc-card:hover .svc-banner img{transform:none}
}

/* ===== HEAVY DUTY hd21: footer FULL-BLEED (user: footer too compressed) ===== */
#footer .sf-inner,#footer .sf-family-grid{max-width:none!important;width:auto!important;padding-left:max(40px,4vw)!important;padding-right:max(40px,4vw)!important;box-sizing:border-box!important}
/* ===== HEAVY DUTY hd22: WHITE footer (user request) — invert black->white ===== */
#footer,#footer.site-footer,footer#footer.site-footer{background:#fff!important;color:#1a1a1a!important;border-top:7px solid var(--red)!important}
#footer :is(h2,h3,h4,.sf-col-title,p,li,span,address,small,dd,dt,figcaption){color:#1a1a1a!important}
#footer a:not(.sf-cta-primary):not([class*=btn]):not(.sf-family-card a){color:#1a1a1a!important}
#footer a:not(.sf-cta-primary):not([class*=btn]):hover{color:var(--red)!important}
#footer img[src*="logo"]{filter:none!important;background:transparent!important}
#footer .ft-address,#footer [class*=hours],#footer [class*=muted],#footer .sf-legal,#footer .sf-legal *{color:#6e6e73!important}
#footer .sf-cta-primary{background:var(--red)!important}
#footer .sf-cta-primary,#footer .sf-cta-primary :is(span,svg,div){color:#fff!important}
/* brand-of-brands: keep as DARK tiles on the white footer so their white text reads */
#footer .sf-family-card{background:#000!important;border:2px solid #000!important}
#footer .sf-family-card :is(h3,h4,p,span,div),#footer .sf-family-card a{color:#fff!important}
#footer .sf-family-card a:hover{color:var(--red)!important}
/* cert tags: dark border + dark text on white */
#footer [class*=cert]{color:#1a1a1a!important;border-color:#000!important}
/* dividers darker on white */
#footer hr,#footer [class*=divider]{border-color:rgba(0,0,0,.14)!important;background:rgba(0,0,0,.14)!important}
/* ===== HEAVY DUTY hd23: footer-white fix — clear dark inner wrappers so white #footer shows ===== */
#footer .sf-inner,#footer .sf-wrap,#footer .sf-shell,#footer .sf-cta,#footer .sf-cta-band,#footer .sf-bottom,#footer .sf-legal-bar{background:transparent!important;background-image:none!important}
/* ===== HEAVY DUTY hd24: finish footer-white — catch strong/b/span/svg missed by hd22, re-protect light-on-dark ===== */
#footer .sf-inner :is(strong,b,span,time,small,em){color:#1a1a1a!important}
#footer .sf-inner svg{color:#6e6e73!important;fill:#6e6e73!important;stroke:#6e6e73!important}
#footer .sf-legal,#footer .sf-legal *{color:#6e6e73!important}
/* RE-PROTECT (higher specificity): dark brand tiles keep WHITE text/icons */
#footer .sf-inner .sf-family-card,#footer .sf-inner .sf-family-card :is(strong,b,span,a,div,p,h3,h4){color:#fff!important}
#footer .sf-inner .sf-family-card svg{color:#fff!important;fill:#fff!important;stroke:#fff!important}
/* RE-PROTECT: red FAMILY OF BRANDS eyebrow keeps white text */
#footer .sf-inner .sf-family-eyebrow,#footer .sf-inner .sf-family-eyebrow :is(span,strong,b){color:#fff!important}
/* RE-PROTECT: red CTA button keeps white text/icon */
#footer .sf-inner .sf-cta-primary,#footer .sf-inner .sf-cta-primary :is(span,svg,div,strong){color:#fff!important}
#footer .sf-inner .sf-cta-primary svg{fill:#fff!important;stroke:#fff!important}
/* ===== HEAVY DUTY hd25: DEFINITIVE footer-white text (ultra-high specificity #footer#footer) ===== */
#footer#footer .sf-inner :is(h1,h2,h3,h4,h5,p,li,span,strong,b,a,address,time,small,em,dd,dt,div){color:#1a1a1a!important}
#footer#footer .sf-inner svg{color:#6e6e73!important;fill:#6e6e73!important;stroke:#6e6e73!important}
#footer#footer .sf-inner a:not(.sf-cta-primary):hover{color:#d5160c!important}
#footer#footer .sf-legal,#footer#footer .sf-legal *{color:#6e6e73!important}
/* re-protect (higher specificity): dark brand tiles keep white */
#footer#footer .sf-inner .sf-family-card,#footer#footer .sf-inner .sf-family-card :is(h1,h2,h3,h4,p,li,span,strong,b,a,div){color:#fff!important}
#footer#footer .sf-inner .sf-family-card svg{color:#fff!important;fill:#fff!important;stroke:#fff!important}
/* red FAMILY OF BRANDS eyebrow + red CTA keep white */
#footer#footer .sf-inner .sf-family-eyebrow,#footer#footer .sf-inner .sf-family-eyebrow :is(span,strong,b){color:#fff!important}
#footer#footer .sf-inner .sf-cta-primary,#footer#footer .sf-inner .sf-cta-primary :is(span,svg,div,strong){color:#fff!important}
#footer#footer .sf-inner .sf-cta-primary svg{fill:#fff!important;stroke:#fff!important}
/* ===== HEAVY DUTY hd26: even section rhythm (consistent vertical padding on bands) ===== */
#services,.home-section--soft,.home-section--light,.reviews-redesign,.area-redesign,.blog-redesign,.faq-homepage,.sec.topical-final,.hd-projects{padding-top:clamp(56px,7vw,96px)!important;padding-bottom:clamp(56px,7vw,96px)!important}
/* ================= hd27 HOMEPAGE ELEVATION (hero V1 + 20 sections) ================= */
/* --- HERO V1 (un-namespaced to body.home) --- */
/* HERO V1 — "SPLIT JOBSITE"
   Vertical split: LEFT ~52% solid-black content panel holds ALL text (white on black,
   guaranteed contrast — no text ever touches the photo). RIGHT ~48% is a full-bleed real
   roof photo bleeding to the top/right/bottom edges. A hard 8px Econo-red (#d5160c) seam
   divides the halves. Sharp corners, heavy Barlow Semi Condensed uppercase H1, red <em>1996</em>.
   Mobile (<=768px): photo stacks on top (~38vh), black panel below, seam becomes a horizontal red bar. */

body.home #hero {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 52% 48% !important;
  align-items: stretch !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #000000 !important;
  overflow: hidden !important;
  isolation: isolate !important;
}

/* RIGHT HALF — full-bleed roof photo, pinned to the right/top/bottom edges */
body.home #hero .hero-overlay {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 52% !important;
  width: 48% !important;
  height: 100% !important;
  display: block !important;
  background-image:
    linear-gradient(90deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.12) 18%, rgba(0,0,0,0) 42%),
    url("/assets/images/projects/projects_modesto_jeanine-dr-roof-replacement.jpg") !important;
  background-position: center center, center center !important;
  background-size: cover, cover !important;
  background-repeat: no-repeat, no-repeat !important;
  opacity: 1 !important;
  z-index: 1 !important;
}

/* Hard RED vertical seam at the 52% boundary — a deliberate jobsite cut */
body.home #hero .hero-overlay::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 10px !important;
  height: 100% !important;
  background: #d5160c !important;
  z-index: 3 !important;
}

/* Red proof tab stamped on the photo (below the nav, just past the seam).
   Borrowed from V7's corner-tab idea — but labeled "REAL ECONO ROOF" instead of a
   4th "1996" (headline + eyebrow + ghost watermark already carry the year). This
   directly counters the "stock photo?" doubt that made the real photo V1's whole edge. */
body.home #hero .hero-overlay::after {
  content: "REAL ECONO ROOF" !important;
  position: absolute !important;
  top: 108px !important;
  left: 28px !important;
  z-index: 4 !important;
  padding: 8px 14px !important;
  background: #d5160c !important;
  color: #ffffff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  box-shadow: 4px 4px 0 rgba(0,0,0,0.45) !important;
}

/* Kill the other decorative full-bleed layers */
body.home #hero .hero-grid,
body.home #hero .hero-glow,
body.home #hero .hero-video {
  display: none !important;
}

/* LEFT HALF — solid black content panel; ALL text lives here */
body.home #hero .hero-body {
  position: relative !important;
  z-index: 4 !important;
  grid-column: 1 / 2 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 22px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 72px 56px 0 clamp(28px, 6vw, 96px) !important;
  background: #000000 !important;
  text-align: left !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Subtle ghost "1996" behind the panel — structural depth, NOT signage.
   z-index:-1 keeps it under the in-flow text but above the black bg; ~10% red
   outline on black reads as a quiet watermark. Debate ruling: SUBTLE, droppable. */
body.home #hero .hero-body::before {
  content: "1996" !important;
  position: absolute !important;
  left: -0.04em !important;
  bottom: 5% !important;
  z-index: -1 !important;
  margin: 0 !important;
  padding: 0 !important;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
  -webkit-text-stroke: 3px rgba(213,22,12,0.10) !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: clamp(11rem, 27vw, 23rem) !important;
  font-weight: 800 !important;
  line-height: 0.8 !important;
  letter-spacing: -0.04em !important;
  white-space: nowrap !important;
  pointer-events: none !important;
  user-select: none !important;
}

/* PILLS — sharp 2px white-bordered chips on black */
body.home #hero .home-hero-pills {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home #hero .home-hero-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 7px 12px !important;
  border: 2px solid #ffffff !important;
  border-radius: 0 !important;
  background: #000000 !important;
  color: #ffffff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

/* Override the off-palette amber star pill -> solid red chip */
body.home #hero .home-hero-pill:first-child {
  background: #d5160c !important;
  border-color: #d5160c !important;
  color: #ffffff !important;
}

/* Family/Latino-owned pill -> red outline, red text */
body.home #hero .home-hero-pill--latino {
  border-color: #d5160c !important;
  background: #000000 !important;
  color: #d5160c !important;
}

/* EYEBROW — small red bar before it */
body.home #hero .hero-eyebrow {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #9c9c9c !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  line-height: 1.2 !important;
}

body.home #hero .hero-eyebrow::before {
  content: "" !important;
  display: inline-block !important;
  flex: 0 0 auto !important;
  width: 34px !important;
  height: 5px !important;
  background: #d5160c !important;
  border-radius: 0 !important;
}

/* H1 — heavy condensed uppercase, white, red year */
body.home #hero .hero-h1 {
  margin: 0 !important;
  padding: 0 !important;
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: clamp(2.6rem, 5.2vw, 5rem) !important;
  font-weight: 800 !important;
  line-height: 0.92 !important;
  letter-spacing: -0.02em !important;
  text-transform: uppercase !important;
  text-shadow: none !important;
}

/* Red year — also override -webkit-text-fill-color which the base sheet sets
   to white on the H1 and which would otherwise mask `color` in WebKit. */
body.home #hero .hero-h1 em {
  font-style: normal !important;
  font-weight: 800 !important;
  color: #d5160c !important;
  -webkit-text-fill-color: #d5160c !important;
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

/* SUBHEAD — grey/white body text on black */
body.home #hero .hero-sub {
  margin: 0 !important;
  padding: 0 !important;
  max-width: 540px !important;
  color: #9c9c9c !important;
  font-family: "Barlow", sans-serif !important;
  font-size: clamp(1rem, 1.15vw, 1.15rem) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  text-align: left !important;
}

body.home #hero .hero-sub a {
  color: #ffffff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-bottom: 2px solid #d5160c !important;
}

/* CTAS — solid red + white ghost, sharp corners, hard offset shadow */
body.home #hero .hero-btns {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home #hero .btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 16px 26px !important;
  border-radius: 0 !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  line-height: 1 !important;
  cursor: pointer !important;
  transition: transform 0.12s ease, box-shadow 0.12s ease !important;
}

body.home #hero .btn-red {
  background: #d5160c !important;
  border: 2px solid #d5160c !important;
  color: #ffffff !important;
  box-shadow: 5px 5px 0 #ffffff !important;
}

body.home #hero .btn-red:hover {
  transform: translate(2px, 2px) !important;
  box-shadow: 3px 3px 0 #ffffff !important;
}

/* Secondary CTA demoted to a quiet outline — no offset shadow, muted border —
   so the solid-red "Get a free inspection" is the single dominant button.
   (8 of 9 reviewers: one dominant CTA.) */
body.home #hero .btn-ghost {
  background: transparent !important;
  border: 2px solid rgba(255,255,255,0.42) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

body.home #hero .btn-ghost:hover {
  border-color: #ffffff !important;
  transform: none !important;
  box-shadow: none !important;
}

/* TRUST STRIP — shield + line, white text on black */
body.home #hero .hero-trust {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin: 0 !important;
  padding: 14px 0 0 0 !important;
  border-top: 2px solid rgba(255,255,255,0.18) !important;
  color: #9c9c9c !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  text-align: left !important;
}

body.home #hero .hero-trust svg {
  flex: 0 0 auto !important;
  width: 20px !important;
  height: 20px !important;
  color: #d5160c !important;
  fill: #d5160c !important;
}

body.home #hero .hero-trust span {
  color: #9c9c9c !important;
}

body.home #hero .hero-trust a {
  color: #ffffff !important;
  font-weight: 700 !important;
  text-decoration: none !important;
  border-bottom: 1px solid #d5160c !important;
}

/* MFG BADGES — tidy shrunk row at the bottom of the black panel */
body.home #hero .mfg-inner {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 14px !important;
  margin: 6px 0 0 0 !important;
  padding: 16px 0 0 0 !important;
  border-top: 2px solid rgba(255,255,255,0.18) !important;
  background: transparent !important;
}

body.home #hero .mfg-inner picture {
  display: inline-flex !important;
  align-items: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.home #hero .mfg-inner img {
  height: 34px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0.92 !important;
  filter: none !important;
}

/* SCROLL CUE — sits on the black panel, white */
body.home #hero .scroll-cue {
  position: absolute !important;
  left: clamp(28px, 6vw, 96px) !important;
  bottom: 18px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  z-index: 5 !important;
  color: #9c9c9c !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
}

body.home #hero .scroll-cue .scroll-line {
  width: 2px !important;
  height: 28px !important;
  background: #d5160c !important;
  border-radius: 0 !important;
}

/* MOBILE — photo on top (~38vh), black panel below; seam becomes a horizontal red bar */
@media (max-width: 768px) {
  body.home #hero {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    min-height: auto !important;
  }

  body.home #hero .hero-overlay {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    order: 1 !important;
    width: 100% !important;
    height: 30vh !important;
    min-height: 208px !important;
    background-image:
      linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0) 40%),
      url("/assets/images/projects/projects_modesto_jeanine-dr-roof-replacement.jpg") !important;
    background-position: center center, center center !important;
    background-size: cover, cover !important;
    background-repeat: no-repeat, no-repeat !important;
  }

  /* Seam -> horizontal red bar along the bottom of the photo */
  body.home #hero .hero-overlay::before {
    top: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 8px !important;
    background: #d5160c !important;
  }

  body.home #hero .hero-body {
    order: 2 !important;
    min-height: auto !important;
    padding: 26px 22px 64px 22px !important;
    gap: 14px !important;
  }

  body.home #hero .hero-h1 {
    font-size: clamp(2.2rem, 11vw, 3.2rem) !important;
  }

  body.home #hero .hero-sub {
    max-width: 100% !important;
  }

  body.home #hero .hero-btns {
    width: 100% !important;
  }

  body.home #hero .btn {
    flex: 1 1 auto !important;
    min-height: 50px !important;
    padding: 15px 18px !important;
  }

  body.home #hero .mfg-inner img {
    height: 28px !important;
  }

  body.home #hero .scroll-cue {
    display: none !important;
  }

  /* Proof tag: bottom-left of the mobile photo band (clears the fixed nav) */
  body.home #hero .hero-overlay::after {
    top: auto !important;
    bottom: 18px !important;
    left: 14px !important;
    padding: 6px 10px !important;
    font-size: 11px !important;
  }

  /* Ghost 1996: keep it small + faint so it never clutters the mobile fold */
  body.home #hero .hero-body::before {
    font-size: clamp(7rem, 38vw, 12rem) !important;
    bottom: 8% !important;
    -webkit-text-stroke-width: 2px !important;
  }
}

/* --- SECTION: nav --- */
/* SECTION: nav — ELEVATION
   Intended look: A confident industrial sticky bar. Over the hero it's solid black (#000)
   with a 3px red bottom seam; scrolled it flips to crisp white with a black/red seam. Sharp
   zero-radius everything. Links are uppercase Barlow Semi Condensed with a red underline on
   hover/active. A thin red "tick" sits left of the logo. Dropdowns are sharp white panels with
   a 2px black border, a red top rule, and a hard offset shadow (6px 6px 0 #000). The "Instant
   Quote" ghost button has a 2px border that fills red on hover; "Free Estimate" is a solid red
   block CTA with a hard red offset shadow that pops. Below sits a tight all-black utility sub-bar
   with a thin red top rule. Mobile: 48px logo, 44px red-bordered hamburger.
   Contrast: On the BLACK bar (default/on-dark/hero-visible) all links, the brand text and ham
   bars are forced #fff (es link 100% white); dropdown is ALWAYS a white panel with #0a0a0a text
   regardless of state, so menu text never sits dark-on-dark. On the WHITE scrolled bar links are
   forced #0a0a0a, sub-bar text stays #fff on black. Every text/icon color is set by construction. */

/* ───────── BAR SHELL ───────── */
#nav{
  height:74px !important;
  background:#000 !important;                 /* default: solid industrial black */
  border-bottom:3px solid #d5160c !important; /* hard red seam */
  border-radius:0 !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  box-shadow:none !important;
  padding:0 max(20px,3vw) !important;
  transition:background .2s ease,border-color .2s ease,box-shadow .2s ease !important;
}
/* Over the dark hero — keep it pure black, not the translucent grey */
#nav.on-dark{
  background:#000 !important;
  border-bottom:3px solid #d5160c !important;
}
/* Scrolled past hero — crisp white bar, black seam with red on top edge via shadow */
#nav.scrolled:not(.on-dark){
  background:#fff !important;
  border-bottom:2px solid #0a0a0a !important;
  box-shadow:0 3px 0 0 #d5160c, 0 6px 18px rgba(0,0,0,.12) !important;
}

/* ───────── LOGO + RED TICK ───────── */
#nav .nav-logo{
  position:relative !important;
  align-items:center !important;
  padding-left:14px !important;margin-right:14px !important;flex-shrink:0 !important;
}
#nav .nav-logo::before{
  content:"" !important;
  position:absolute !important;left:0 !important;top:50% !important;
  transform:translateY(-50%) !important;
  width:4px !important;height:30px !important;
  background:#d5160c !important;border-radius:0 !important;
}
#nav .nav-logo img{
  height:46px !important;width:auto !important;max-width:240px !important;
  display:block !important;object-fit:contain !important;
}

/* ───────── NAV LINKS ───────── */
#nav .nav-links{
  gap:20px !important;align-items:center !important;list-style:none !important;
}
#nav .nav-links > li{margin:0 !important;}
/* keep the existing right-cluster push (3rd-from-last gets auto margin) */
#nav .nav-links > li > a,
#nav .nav-links .has-dd > a{
  position:relative !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:14px !important;font-weight:700 !important;
  text-transform:uppercase !important;letter-spacing:.04em !important;
  line-height:1 !important;
  padding:6px 0 !important;
  display:inline-flex !important;align-items:center !important;gap:5px !important;
  transition:color .15s ease !important;
}
/* Top-level link color BY STATE — guaranteed contrast */
#nav .nav-links a{color:#fff !important;}                              /* on black bar */
#nav.on-dark .nav-links a{color:#fff !important;}
#nav.scrolled:not(.on-dark) .nav-links a{color:#0a0a0a !important;}    /* on white bar */

/* Red underline on hover / focus / current — sharp 2px rule */
#nav .nav-links .has-dd > a::after,
#nav .nav-links > li > a::after{
  content:"" !important;position:absolute !important;
  left:0 !important;bottom:-2px !important;height:2px !important;width:0 !important;
  background:#d5160c !important;transition:width .18s ease !important;
}
#nav .nav-links > li > a:hover,
#nav .nav-links .has-dd:hover > a,
#nav .nav-links > li > a:focus-visible{color:#d5160c !important;}
#nav.scrolled:not(.on-dark) .nav-links > li > a:hover,
#nav.scrolled:not(.on-dark) .nav-links .has-dd:hover > a{color:#d5160c !important;}
#nav .nav-links > li > a:hover::after,
#nav .nav-links .has-dd:hover > a::after,
#nav .nav-links > li > a:focus-visible::after{width:100% !important;}

/* Español pill stays high-contrast in both states */
#nav .nav-links a.nav-es{color:#fff !important;}
#nav.scrolled:not(.on-dark) .nav-links a.nav-es{color:#0a0a0a !important;}
#nav .nav-links a.nav-es:hover{color:#d5160c !important;}

/* Dropdown caret: recolor the CSS-border chevron to match link state */
#nav .nav-links .dd-arrow{
  width:6px !important;height:6px !important;margin-top:-2px !important;
  border-right:2px solid currentColor !important;border-bottom:2px solid currentColor !important;
}

/* ───────── DROPDOWN PANELS — sharp, 2px black border, red rule, hard shadow ───────── */
#nav .has-dd > .dd,
#nav.on-dark .has-dd > .dd,
#nav.scrolled .has-dd > .dd{
  background:#fff !important;                 /* ALWAYS white panel → never dark-on-dark */
  border:2px solid #0a0a0a !important;
  border-top:4px solid #d5160c !important;    /* red top rule */
  border-radius:0 !important;
  padding:6px !important;min-width:230px !important;
  top:calc(100% + 10px) !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
  box-shadow:6px 6px 0 0 #000 !important;     /* hard offset shadow */
}
#nav .has-dd > .dd li a,
#nav.on-dark .has-dd > .dd li a,
#nav.scrolled .has-dd > .dd li a{
  display:flex !important;align-items:center !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:13.5px !important;font-weight:600 !important;letter-spacing:.01em !important;
  color:#0a0a0a !important;                    /* forced dark text on white panel */
  padding:10px 14px !important;min-height:44px !important;
  border-radius:0 !important;
  border-left:3px solid transparent !important;
  transition:background .12s ease,color .12s ease,border-color .12s ease !important;
}
#nav .has-dd > .dd li a:hover,
#nav .has-dd > .dd li a:focus-visible,
#nav.on-dark .has-dd > .dd li a:hover,
#nav.scrolled .has-dd > .dd li a:hover{
  background:#d5160c !important;color:#fff !important;
  border-left-color:#000 !important;
}
/* in-panel "All Services / Free Tools" divider rows: keep dark, just sharpen */
#nav .has-dd > .dd li[style] a{color:#0a0a0a !important;}
#nav .has-dd > .dd li[style] a:hover{color:#fff !important;}

/* ───────── BUTTON CLUSTER (phone / instant-quote / free-estimate) ───────── */
#nav .nav-phone-btn,
#nav .nav-links a[href*="instant-quote"],
#nav .nav-cta{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  height:38px !important;padding:0 16px !important;
  font-size:13px !important;font-weight:700 !important;
  text-transform:uppercase !important;letter-spacing:.05em !important;
  border-radius:0 !important;                  /* sharp corners */
  display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:7px !important;
  white-space:nowrap !important;line-height:1 !important;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease !important;
}
/* Phone + Instant Quote = ghost outline buttons. On black bar: white outline. */
#nav .nav-phone-btn,
#nav .nav-links a[href*="instant-quote"]{
  background:transparent !important;color:#fff !important;
  border:2px solid #fff !important;box-shadow:none !important;
}
#nav .nav-phone-btn:hover,
#nav .nav-links a[href*="instant-quote"]:hover,
#nav .nav-phone-btn:focus-visible,
#nav .nav-links a[href*="instant-quote"]:focus-visible{
  background:#d5160c !important;border-color:#d5160c !important;color:#fff !important;
  transform:translateY(-1px) !important;box-shadow:3px 3px 0 0 rgba(0,0,0,.4) !important;
}
/* Scrolled (white bar): ghost buttons flip to black outline / black text */
#nav.scrolled:not(.on-dark) .nav-phone-btn,
#nav.scrolled:not(.on-dark) .nav-links a[href*="instant-quote"]{
  background:transparent !important;color:#0a0a0a !important;border:2px solid #0a0a0a !important;
}
#nav.scrolled:not(.on-dark) .nav-phone-btn:hover,
#nav.scrolled:not(.on-dark) .nav-links a[href*="instant-quote"]:hover,
#nav.scrolled:not(.on-dark) .nav-phone-btn:focus-visible,
#nav.scrolled:not(.on-dark) .nav-links a[href*="instant-quote"]:focus-visible{
  background:#d5160c !important;border-color:#d5160c !important;color:#fff !important;
  box-shadow:3px 3px 0 0 rgba(0,0,0,.25) !important;
}
/* While hero still visible, hold the white-outline look even after .scrolled fires */
body.hero-visible #nav.scrolled .nav-phone-btn,
body.hero-visible #nav.scrolled .nav-links a[href*="instant-quote"]{
  background:transparent !important;color:#fff !important;border-color:#fff !important;
}
body.hero-visible #nav.scrolled .nav-phone-btn:hover,
body.hero-visible #nav.scrolled .nav-links a[href*="instant-quote"]:hover{
  background:#d5160c !important;border-color:#d5160c !important;color:#fff !important;
}
#nav .nav-phone-btn svg{width:14px !important;height:14px !important;fill:currentColor !important;stroke:none !important;}

/* Free Estimate = the dominant solid-red CTA with a hard red offset shadow */
#nav .nav-cta,
#nav.scrolled:not(.on-dark) .nav-cta,
body.hero-visible #nav.scrolled .nav-cta{
  background:#d5160c !important;color:#fff !important;
  border:2px solid #d5160c !important;
  box-shadow:4px 4px 0 0 rgba(0,0,0,.55) !important;
  padding:0 20px !important;
}
#nav .nav-cta:hover,
#nav .nav-cta:focus-visible,
#nav.scrolled:not(.on-dark) .nav-cta:hover{
  background:#a81009 !important;border-color:#a81009 !important;color:#fff !important;
  transform:translate(-1px,-1px) !important;
  box-shadow:6px 6px 0 0 rgba(0,0,0,.6) !important;
}
#nav.scrolled:not(.on-dark) .nav-cta{box-shadow:4px 4px 0 0 rgba(0,0,0,.35) !important;}

/* ───────── HAMBURGER — 44px tap target, red border, state-aware bars ───────── */
#nav .ham,#nav button.ham,#nav .hamburger,#nav button.hamburger{
  min-width:44px !important;min-height:44px !important;
  box-sizing:border-box !important;
  flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:5px !important;
  padding:9px !important;
  background:transparent !important;
  border:2px solid #d5160c !important;border-radius:0 !important;
  cursor:pointer !important;
}
#nav .ham span,#nav .hamburger span{
  display:block !important;width:22px !important;height:2px !important;
  background:#fff !important;border-radius:0 !important;transition:.25s ease !important;
}
#nav.on-dark .ham span{background:#fff !important;}
#nav.scrolled:not(.on-dark) .ham span{background:#0a0a0a !important;}
#nav.scrolled:not(.on-dark) .ham,#nav.scrolled:not(.on-dark) .hamburger{border-color:#0a0a0a !important;}
#nav .ham:hover,#nav .hamburger:hover{background:#d5160c !important;border-color:#d5160c !important;}
#nav .ham:hover span,#nav .hamburger:hover span{background:#fff !important;}
#nav .ham:focus-visible,#nav .hamburger:focus-visible{outline:2px solid #fff !important;outline-offset:2px !important;}

/* ───────── BLACK UTILITY SUB-BAR — tight, red top rule ───────── */
.hd-subbar{
  background:#000 !important;
  border-top:2px solid #d5160c !important;
  border-bottom:1px solid rgba(255,255,255,.1) !important;
  padding:5px 12px !important;
  text-align:center !important;
}
.hd-subbar .hd-subbar-inner{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:11.5px !important;font-weight:600 !important;
  letter-spacing:.12em !important;text-transform:uppercase !important;
  color:#fff !important;                       /* white on black — guaranteed */
}
.hd-subbar a,.hd-subbar .hd-subbar-inner a{
  color:#fff !important;font-weight:700 !important;text-decoration:none !important;
  border-bottom:1px solid rgba(213,22,12,.7) !important;
  transition:color .15s ease,border-color .15s ease !important;
}
.hd-subbar a:hover{color:#d5160c !important;border-bottom-color:#d5160c !important;}

/* ───────── FOCUS-VISIBLE for all interactive nav text links ───────── */
#nav .nav-links > li > a:focus-visible,
#nav .has-dd > a:focus-visible{
  outline:2px solid #d5160c !important;outline-offset:3px !important;
}
#nav.scrolled:not(.on-dark) .nav-links > li > a:focus-visible{outline-color:#0a0a0a !important;}

/* ───────── RESPONSIVE ───────── */
/* ≤1060px: nav-links collapse to the mobile panel, ham shows (matches site breakpoint) */
@media(max-width:1060px){
  #nav{padding:0 max(16px,4vw) !important;}
  #nav .ham,#nav .hamburger{display:inline-flex !important;}
}
@media(min-width:1061px){
  #nav .ham,#nav .hamburger{display:none !important;}
}
/* ≤980px: hide the phone-number text, keep the icon button square (site already does this) */
@media(max-width:980px){
  #nav .nav-phone-btn .nav-phone-num{display:none !important;}
  #nav .nav-phone-btn{padding:0 11px !important;}
}
@media(max-width:768px){
  #nav{height:64px !important;padding:0 16px !important;}
  #nav .nav-logo img{height:40px !important;}
  #nav .nav-logo::before{height:26px !important;}
  .hd-subbar{padding:5px 10px !important;}
  .hd-subbar .hd-subbar-inner{font-size:10.5px !important;letter-spacing:.08em !important;}
}
@media(max-width:480px){
  #nav .nav-logo img{height:36px !important;}
  /* sub-bar can wrap to two tidy lines on tiny screens without clipping */
  .hd-subbar .hd-subbar-inner{font-size:10px !important;letter-spacing:.06em !important;line-height:1.5 !important;}
}

/* --- SECTION: services-frame --- */
/* SECTION: services-frame — ELEVATION
   Intended look: Section sits on a WHITE band. A short solid-red eyebrow rule sits above a tiny
   uppercase red eyebrow label, then a heavy uppercase Barlow Semi Condensed black headline
   ("EVERYTHING YOUR ROOF NEEDS.") with the period as a red accent block feel. Confident two-tier
   intro copy (near-black lead + grey support), red inline links. Balanced grid gutters. Bottom CTA
   becomes a solid-red tool-crate button: sharp corners, 2px black border, hard 5px 5px 0 #000 offset
   shadow, white uppercase Barlow Semi Condensed label, lifts/snaps the shadow on hover/focus.
   Contrast: white band → all headings/lead copy forced to #0a0a0a, support copy to #6b6b6b (AA on white),
   eyebrow to #d5160c. CTA = #fff text on #d5160c fill (AA) with #000 border; CTA eyebrow forced to #d5160c.
   No text ever inherits a risky color. Scoped to #services non-card (.svc-card untouched). !important + responsive. */

/* ── Section shell ───────────────────────────────────────────── */
#services.sec{
  background:#fff !important;
  padding-top:clamp(56px,7vw,96px) !important;
  padding-bottom:clamp(56px,7vw,96px) !important;
  position:relative !important;
}

/* ── Header block ────────────────────────────────────────────── */
#services .sec-hdr{
  max-width:1200px !important;
  margin:0 auto clamp(28px,4vw,44px) !important;
  position:relative !important;
}

/* Short red eyebrow rule + uppercase label */
#services .sec-hdr .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:12px !important;
  font-family:'Barlow Semi Condensed','Barlow',sans-serif !important;
  font-size:clamp(12px,1vw,13px) !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:#d5160c !important;
  margin:0 0 16px !important;
}
#services .sec-hdr .eyebrow::before{
  content:"" !important;
  display:block !important;
  width:38px !important;
  height:4px !important;
  background:#d5160c !important;
  border-radius:0 !important;
  flex:0 0 auto !important;
}

/* Heavy condensed uppercase headline */
#services .sec-hdr .h2{
  font-family:'Barlow Semi Condensed','Barlow',sans-serif !important;
  font-size:clamp(40px,6.4vw,68px) !important;
  font-weight:800 !important;
  line-height:.96 !important;
  letter-spacing:-.01em !important;
  text-transform:uppercase !important;
  color:#0a0a0a !important;
  margin:0 !important;
  text-wrap:balance !important;
}

/* Confident intro hierarchy — lead (near-black) + support (grey) */
#services .sec-hdr .body-lg{
  font-family:'Barlow',sans-serif !important;
  font-size:clamp(17px,1.6vw,21px) !important;
  font-weight:600 !important;
  line-height:1.42 !important;
  color:#0a0a0a !important;
  max-width:560px !important;
  margin-top:20px !important;
}
#services .sec-hdr .body-md{
  font-family:'Barlow',sans-serif !important;
  font-size:clamp(15px,1.35vw,17px) !important;
  font-weight:400 !important;
  line-height:1.62 !important;
  color:#5c5c5c !important;
  max-width:640px !important;
  margin-top:14px !important;
}
/* Inline links stay on-palette red and legible on white */
#services .sec-hdr .body-md a,
#services .sec-hdr .body-lg a{
  color:#d5160c !important;
  font-weight:700 !important;
  text-decoration:none !important;
  border-bottom:2px solid rgba(213,22,12,.28) !important;
  transition:border-color .14s ease,background-color .14s ease !important;
}
#services .sec-hdr .body-md a:hover,
#services .sec-hdr .body-md a:focus-visible,
#services .sec-hdr .body-lg a:hover,
#services .sec-hdr .body-lg a:focus-visible{
  border-bottom-color:#d5160c !important;
  background:rgba(213,22,12,.07) !important;
  outline:none !important;
}

/* ── Grid container / balanced gutters ───────────────────────── */
#services .svc-grid{
  max-width:1200px !important;
  margin:0 auto !important;
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:22px !important;
  align-items:stretch !important;
}

/* ── Bottom CTA block (tool-crate) ───────────────────────────── */
/* The CTA wrapper is an inline-styled div after .svc-grid; target the button by its class. */
#services .svc-grid + div{
  padding:clamp(28px,4vw,44px) 0 0 !important;
  margin:0 !important;
}
#services .svc-grid + div > p{
  font-family:'Barlow Semi Condensed','Barlow',sans-serif !important;
  font-size:clamp(11px,1.05vw,13px) !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:#d5160c !important;
  margin:0 0 14px !important;
}
#services .svc-grid + div > .btn-red{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  background:#d5160c !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',sans-serif !important;
  font-weight:700 !important;
  font-size:clamp(15px,1.3vw,18px) !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  padding:16px 30px !important;
  min-height:52px !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:5px 5px 0 #000 !important;
  transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease !important;
}
#services .svc-grid + div > .btn-red:hover{
  background:#000 !important;
  color:#fff !important;
  transform:translate(-2px,-2px) !important;
  box-shadow:7px 7px 0 #d5160c !important;
}
#services .svc-grid + div > .btn-red:active{
  transform:translate(2px,2px) !important;
  box-shadow:2px 2px 0 #000 !important;
}
#services .svc-grid + div > .btn-red:focus-visible{
  outline:3px solid #000 !important;
  outline-offset:3px !important;
}

/* ── Responsive ──────────────────────────────────────────────── */
@media (max-width:768px){
  #services.sec{
    padding-top:clamp(44px,9vw,64px) !important;
    padding-bottom:clamp(44px,9vw,64px) !important;
  }
  #services .svc-grid{
    grid-template-columns:1fr 1fr !important;
    gap:16px !important;
  }
  #services .sec-hdr .h2{
    font-size:clamp(34px,9vw,48px) !important;
  }
  #services .sec-hdr .body-lg{font-size:17px !important;}
  #services .sec-hdr .body-md{font-size:15px !important;}
}

@media (max-width:480px){
  #services .svc-grid{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  #services .sec-hdr .h2{
    font-size:clamp(30px,11vw,40px) !important;
    line-height:1 !important;
  }
  #services .sec-hdr .eyebrow{font-size:12px !important;}
  #services .svc-grid + div > .btn-red{
    width:100% !important;
    justify-content:center !important;
    box-shadow:4px 4px 0 #000 !important;
  }
  #services .svc-grid + div > .btn-red:hover{box-shadow:5px 5px 0 #d5160c !important;}
}

/* --- SECTION: services-cards --- */
/* SECTION: services-cards — ELEVATION
   Intended look: Milwaukee tool-crate cards. Each is a sharp 2px-black frame with a
   hard 7px black offset shadow that snaps to red on a crisp lift+hover. Photo banner
   is consistently cropped under a 2px black rule; a dark bottom gradient carries a
   white UPPERCASE condensed tag, and a red square icon badge bites the banner's
   lower-left corner. Card body is pure white: heavy uppercase condensed black title
   over a short red rule, grey body, and a red "→" link that slides on hover.
   Contrast: card body forces #000 title + #2a2a2a body on #fff (>10:1). The tag is
   white #fff on a hard-stacked black gradient/red fallback (>7:1), never the bare
   photo. Icon glyph is white inside a solid #d5160c badge. Location pills are #000 on
   a 6% black chip, flipping to white-on-red on hover. All guaranteed by construction. */

/* ---- Card frame: tool crate, sharp, hard offset shadow ---- */
#services .svc-card{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  padding:0 0 22px!important;            /* banner is flush to the frame edges */
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:0!important;
  box-shadow:7px 7px 0 #000!important;
  overflow:hidden!important;
  min-height:0!important;
  transition:transform .18s cubic-bezier(.2,.7,.2,1),box-shadow .18s cubic-bezier(.2,.7,.2,1)!important;
}
#services .svc-card:hover,
#services .svc-card:focus-within{
  transform:translate(-4px,-4px)!important;
  box-shadow:11px 11px 0 #d5160c!important;
}

/* ---- Banner: consistent crop + 2px black baseline rule + dark bottom gradient ---- */
#services .svc-card .svc-banner{
  position:relative!important;
  height:172px!important;
  margin:0!important;
  border:0!important;
  border-bottom:2px solid #000!important;
  border-radius:0!important;
  overflow:hidden!important;
  background:#000!important;            /* avoids white flash before image paint */
  flex:0 0 auto!important;
}
#services .svc-card .svc-banner img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  border-radius:0!important;
  transition:transform .4s cubic-bezier(.2,.7,.2,1)!important;
}
#services .svc-card:hover .svc-banner img,
#services .svc-card:focus-within .svc-banner img{
  transform:scale(1.06)!important;
}
/* Hard dark gradient anchoring the tag at the banner's base */
#services .svc-card .svc-banner::after{
  content:""!important;
  position:absolute!important;
  left:0!important;right:0!important;bottom:0!important;
  height:70%!important;
  background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.18) 42%,rgba(0,0,0,.82) 100%)!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* ---- Head row: pull up over banner so the icon badge bites the corner ---- */
#services .svc-card .svc-head{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:flex-start!important;
  gap:10px!important;
  min-height:0!important;
  margin:-40px 0 0!important;            /* overlap onto the banner gradient */
  padding:0 20px!important;
}

/* ---- Icon badge: solid red square, white glyph, sharp ---- */
#services .svc-card .svc-icon{
  width:44px!important;
  height:44px!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  padding:9px!important;
  background:#d5160c!important;
  color:#fff!important;
  stroke:#fff!important;
  fill:none!important;
  stroke-width:2!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  border:2px solid #000!important;
  border-radius:0!important;
  box-shadow:3px 3px 0 #000!important;
  transition:transform .18s cubic-bezier(.2,.7,.2,1)!important;
}
#services .svc-card:hover .svc-icon,
#services .svc-card:focus-within .svc-icon{
  transform:translateY(-2px)!important;
}

/* ---- Tag: white UPPERCASE condensed on the photo gradient ---- */
#services .svc-card .svc-tag{
  display:inline-block!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.13em!important;
  text-transform:uppercase!important;
  color:#fff!important;
  background:rgba(0,0,0,.55)!important;  /* fallback band so text stays legible even on bright photos */
  padding:6px 9px 5px!important;
  border-radius:0!important;
  margin-bottom:3px!important;           /* sit on the banner baseline, beside the badge */
  text-shadow:0 1px 3px rgba(0,0,0,.7)!important;
}

/* ---- Card body wrapper: title / desc / link get consistent horizontal padding ---- */
#services .svc-card .svc-title,
#services .svc-card .svc-desc,
#services .svc-card .svc-link,
#services .svc-card .svc-locations{
  padding-left:20px!important;
  padding-right:20px!important;
}

/* ---- Title: heavy uppercase condensed, black, with a short red rule ---- */
#services .svc-card .svc-title{
  position:relative!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:24px!important;
  font-weight:800!important;
  line-height:1.04!important;
  letter-spacing:.005em!important;
  text-transform:uppercase!important;
  color:#000!important;
  margin:18px 0 12px!important;
  padding-top:14px!important;            /* room for the rule above */
}
#services .svc-card .svc-title::before{
  content:""!important;
  position:absolute!important;
  top:0!important;left:20px!important;
  width:34px!important;height:4px!important;
  background:#d5160c!important;
}

/* ---- Description: grey body, guaranteed dark on white ---- */
#services .svc-card .svc-desc{
  font-family:"Barlow",sans-serif!important;
  font-size:15px!important;
  font-weight:400!important;
  line-height:1.55!important;
  color:#2a2a2a!important;
  margin:0 0 18px!important;
  flex:1 1 auto!important;
}

/* ---- Link: red, uppercase condensed, with a crisp sliding arrow ---- */
#services .svc-card .svc-link{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:15px!important;
  font-weight:700!important;
  letter-spacing:.04em!important;
  text-transform:uppercase!important;
  color:#d5160c!important;
  text-decoration:none!important;
  min-height:44px!important;             /* tap target */
  margin-top:auto!important;
  transition:gap .18s cubic-bezier(.2,.7,.2,1),color .15s ease!important;
}
#services .svc-card .svc-link:hover,
#services .svc-card .svc-link:focus-visible{
  gap:13px!important;
  color:#000!important;
}
#services .svc-card .svc-link:focus-visible{
  outline:3px solid #d5160c!important;
  outline-offset:3px!important;
}
/* Keep the full-card click overlay working under the new layout */
#services .svc-card .svc-link::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  border-radius:0!important;
}

/* ---- Popular-locations block: black-on-chip pills, hover to white-on-red ---- */
#services .svc-card .svc-locations{
  position:relative!important;
  z-index:2!important;
  display:flex!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin-top:16px!important;
  padding-top:16px!important;
  border-top:2px solid #000!important;
  border-radius:0!important;
}
#services .svc-card .svc-locations .svc-locations-label{
  width:100%!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:#000!important;
  margin-bottom:4px!important;
}
#services .svc-card .svc-locations a{
  position:relative!important;
  z-index:2!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.03em!important;
  text-transform:uppercase!important;
  color:#000!important;
  text-decoration:none!important;
  padding:7px 11px!important;
  min-height:32px!important;
  display:inline-flex!important;
  align-items:center!important;
  background:rgba(0,0,0,.06)!important;
  border:2px solid #000!important;
  border-radius:0!important;
  transition:background .15s ease,color .15s ease!important;
}
#services .svc-card .svc-locations a:hover,
#services .svc-card .svc-locations a:focus-visible{
  background:#d5160c!important;
  color:#fff!important;
}
#services .svc-card .svc-locations a:focus-visible{
  outline:3px solid #000!important;
  outline-offset:2px!important;
}

/* ============================ RESPONSIVE ============================ */
@media (max-width:768px){
  #services .svc-card{
    box-shadow:5px 5px 0 #000!important;
  }
  #services .svc-card:hover,
  #services .svc-card:focus-within{
    transform:translate(-3px,-3px)!important;
    box-shadow:8px 8px 0 #d5160c!important;
  }
  #services .svc-card .svc-banner{
    height:188px!important;              /* taller crop reads better full-width */
  }
  #services .svc-card .svc-title{
    font-size:23px!important;
  }
}

@media (max-width:480px){
  #services .svc-card .svc-banner{
    height:168px!important;
  }
  #services .svc-card .svc-head{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  #services .svc-card .svc-title,
  #services .svc-card .svc-desc,
  #services .svc-card .svc-link,
  #services .svc-card .svc-locations{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  #services .svc-card .svc-title::before{
    left:16px!important;
  }
  #services .svc-card .svc-icon{
    width:40px!important;
    height:40px!important;
    padding:8px!important;
  }
}

/* --- SECTION: trust --- */
/* SECTION: trust — ELEVATION
   Intended look: a bold white credibility band, Milwaukee tool-crate style. Black condensed
   "WHY HOMEOWNERS…" headline with a red eyebrow rule. Left = four tool-crate stat tiles
   (2px black borders, hard 6px black offset shadow, red corner-cut + red badge chip on each).
   Right = a sharp-edged "4.9 GOOGLE" proof crate with a red top bar + ghost numeral, sitting
   over three giant condensed stat blocks (99% · ∞ · 30YR) split by red 2px dividers. A full-width
   red-edged guarantee bar caps the band. Hits hard at a glance.
   Contrast: band forced #fff, so ALL text forced near-black rgba(0,0,0,.94) (headline/titles/subs/body)
   or pure #fff on red chips/bars; the ghost numeral is a faint #000 tint behind solid text;
   the guarantee bar text is forced rgba(0,0,0,.94) on its white fill with a red 2px frame + red icon.
   Nothing is dark-on-dark or light-on-light. Scoped to #trust; every prop !important; responsive. */

/* ---- band ---- */
#trust{
  background:#fff !important;
  border-top:2px solid #000 !important;
  border-bottom:2px solid #000 !important;
  padding:clamp(56px,7vw,104px) 0 clamp(40px,5vw,72px) !important;
  position:relative !important;
  overflow:hidden !important;
}
/* thin red signature rule pinned to the very top edge of the band */
#trust::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:5px !important;
  background:#d5160c !important;
  z-index:2 !important;
}

#trust .trust-inner{
  display:grid !important;
  grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr) !important;
  gap:clamp(28px,4vw,64px) !important;
  align-items:start !important;
  max-width:1200px !important;
  margin:0 auto !important;
  padding:0 clamp(18px,4vw,48px) !important;
  position:relative !important;
  z-index:1 !important;
}

/* ---- headline column ---- */
#trust .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.16em !important;
  font-size:13px !important;
  line-height:1 !important;
  color:rgba(0,0,0,.94) !important;
  margin:0 0 14px !important;
}
#trust .eyebrow::before{
  content:"" !important;
  width:34px !important;
  height:4px !important;
  background:#d5160c !important;
  display:inline-block !important;
}

#trust .h2{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:-.01em !important;
  line-height:.94 !important;
  font-size:clamp(34px,4.6vw,60px) !important;
  color:rgba(0,0,0,.94) !important;
  margin:0 !important;
}

#trust .body-lg{
  font-family:"Barlow",sans-serif !important;
  color:rgba(0,0,0,.86) !important;
  font-size:clamp(15px,1.45vw,17px) !important;
  line-height:1.62 !important;
  max-width:56ch !important;
  margin-top:18px !important;
}
#trust .body-lg a{
  color:#d5160c !important;
  font-weight:700 !important;
  text-decoration:none !important;
  border-bottom:2px solid rgba(213,22,12,.35) !important;
  transition:border-color .15s ease,background .15s ease !important;
}
#trust .body-lg a:hover,
#trust .body-lg a:focus-visible{
  border-bottom-color:#d5160c !important;
  background:rgba(213,22,12,.08) !important;
  outline:none !important;
}

/* ---- tool-crate stat tiles (cred list) ---- */
#trust .cred-list{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  margin-top:clamp(26px,3vw,38px) !important;
}
#trust .cred-row{
  display:grid !important;
  grid-template-columns:auto 1fr auto !important;
  align-items:center !important;
  gap:16px !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:6px 6px 0 #000 !important;
  padding:16px 18px 16px 0 !important;
  position:relative !important;
  min-height:64px !important;
  transition:transform .14s ease,box-shadow .14s ease !important;
}
/* red spine on the left of every tile */
#trust .cred-row::before{
  content:"" !important;
  width:6px !important;
  align-self:stretch !important;
  background:#d5160c !important;
  margin-right:2px !important;
}
#trust .cred-row:hover{
  transform:translate(-2px,-2px) !important;
  box-shadow:9px 9px 0 #d5160c !important;
}

#trust .cred-ic{
  width:48px !important;
  height:48px !important;
  flex:0 0 48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:24px !important;
  line-height:1 !important;
  background:#000 !important;
  border-radius:0 !important;
  color:#fff !important;
}
#trust .cred-ic img{
  width:34px !important;
  height:34px !important;
  object-fit:contain !important;
  /* keep the OC badge bright on its black tile */
  filter:none !important;
}

#trust .cred-title{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.01em !important;
  font-size:clamp(14px,1.4vw,16px) !important;
  line-height:1.1 !important;
  color:rgba(0,0,0,.94) !important;
}
#trust .cred-sub{
  font-family:"Barlow",sans-serif !important;
  font-size:12.5px !important;
  line-height:1.4 !important;
  color:rgba(0,0,0,.62) !important;
  margin-top:3px !important;
}

#trust .cred-badge{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  font-size:12px !important;
  line-height:1 !important;
  color:#fff !important;
  background:#d5160c !important;
  border:0 !important;
  border-radius:0 !important;
  padding:7px 10px !important;
  min-width:40px !important;
  text-align:center !important;
  align-self:center !important;
  white-space:nowrap !important;
}

/* ---- proof crate: 4.9 ring + stat blocks ---- */
#trust .ring-wrap{
  border:2px solid #000 !important;
  border-radius:0 !important;
  background:#fff !important;
  box-shadow:8px 8px 0 #000 !important;
  padding:clamp(22px,3vw,34px) clamp(20px,2.6vw,32px) clamp(18px,2.4vw,26px) !important;
  position:relative !important;
}
/* red header bar across the top of the crate */
#trust .ring-wrap::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:8px !important;
  background:#d5160c !important;
}

#trust .ring{
  position:relative !important;
  width:clamp(184px,20vw,232px) !important;
  height:clamp(184px,20vw,232px) !important;
  margin:6px auto 4px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  background:transparent !important;
}
/* gauge ring painted on a pseudo-element ONLY (the 4.9 text is never masked).
   Red arc on a grey track via conic-gradient; a radial mask carves the donut hole. */
#trust .ring::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  border-radius:50% !important;
  background:conic-gradient(#d5160c 0 92%, rgba(0,0,0,.1) 92% 100%) !important;
  -webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 13px),#000 calc(100% - 12px)) !important;
          mask:radial-gradient(farthest-side,#0000 calc(100% - 13px),#000 calc(100% - 12px)) !important;
  z-index:0 !important;
}
/* red start-of-arc tick at 12 o'clock for that gauge feel */
#trust .ring-dot{
  position:absolute !important;
  top:-3px !important; left:50% !important;
  transform:translateX(-50%) !important;
  width:14px !important; height:14px !important;
  background:#d5160c !important;
  border:2px solid #fff !important;
  border-radius:50% !important;
  z-index:2 !important;
}
#trust .ring-center{
  position:relative !important;
  display:grid !important;
  place-content:center !important;
  text-align:center !important;
  z-index:2 !important;
}

#trust .ring-num{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(48px,6vw,68px) !important;
  line-height:.9 !important;
  color:rgba(0,0,0,.94) !important;
  letter-spacing:-.02em !important;
}
#trust .ring-lbl{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.12em !important;
  font-size:12px !important;
  color:#d5160c !important;
  margin-top:6px !important;
}

#trust .ring-stats{
  display:grid !important;
  grid-template-columns:repeat(3,1fr) !important;
  margin-top:clamp(20px,2.4vw,28px) !important;
  border-top:2px solid #000 !important;
  padding-top:clamp(16px,2vw,22px) !important;
}
#trust .ring-stat{
  text-align:center !important;
  padding:0 6px !important;
  position:relative !important;
}
/* red 2px dividers between the three stat blocks */
#trust .ring-stat + .ring-stat::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important; top:6% !important;
  width:2px !important; height:88% !important;
  background:#d5160c !important;
}
#trust .ring-stat-n{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(30px,3.6vw,44px) !important;
  line-height:.9 !important;
  color:rgba(0,0,0,.94) !important;
  letter-spacing:-.01em !important;
}
#trust .ring-stat-n span{
  color:#d5160c !important;
  font-size:.5em !important;
  font-weight:800 !important;
  vertical-align:super !important;
  margin-left:1px !important;
}
#trust .ring-stat-l{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.1em !important;
  font-size:11px !important;
  color:rgba(0,0,0,.74) !important;
  margin-top:7px !important;
}

/* ---- guarantee bar ---- */
#trust .trust-guarantee{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  max-width:1200px !important;
  margin:clamp(34px,4vw,52px) auto 0 !important;
  padding:18px clamp(18px,3vw,28px) !important;
  background:#fff !important;
  border:2px solid #d5160c !important;
  border-radius:0 !important;
  box-shadow:6px 6px 0 #000 !important;
  position:relative !important;
}
#trust .trust-guarantee::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important; top:0 !important; bottom:0 !important;
  width:8px !important;
  background:#d5160c !important;
}
#trust .trust-guarantee-icon{
  width:34px !important;
  height:34px !important;
  flex:0 0 34px !important;
  color:#d5160c !important;
  margin-left:6px !important;
}
#trust .trust-guarantee-text{
  font-family:"Barlow",sans-serif !important;
  color:rgba(0,0,0,.94) !important;
  margin:0 !important;
}
#trust .trust-guarantee-text strong{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.02em !important;
  color:rgba(0,0,0,.94) !important;
}

/* keep reveal animations from hiding content if JS is slow */
#trust .rv{ opacity:1 !important; transform:none !important; }

/* ---- responsive ---- */
@media(max-width:980px){
  #trust .trust-inner{
    grid-template-columns:1fr !important;
    gap:clamp(28px,5vw,40px) !important;
  }
  #trust .ring-wrap{ max-width:520px !important; }
}
@media(max-width:768px){
  #trust{ padding:48px 0 36px !important; }
  #trust .cred-row{
    box-shadow:5px 5px 0 #000 !important;
    padding:14px 14px 14px 0 !important;
  }
  #trust .cred-row:hover{ box-shadow:7px 7px 0 #d5160c !important; }
  #trust .ring-wrap{ box-shadow:6px 6px 0 #000 !important; }
  #trust .trust-guarantee{
    align-items:flex-start !important;
    box-shadow:5px 5px 0 #000 !important;
  }
}
@media(max-width:480px){
  #trust .h2{ font-size:clamp(30px,8.5vw,40px) !important; }
  #trust .cred-badge{ padding:6px 8px !important; font-size:11px !important; }
  #trust .cred-sub{ font-size:12px !important; }
  #trust .ring-stat-n{ font-size:clamp(26px,8vw,34px) !important; }
  #trust .ring-stat-l{ font-size:10px !important; letter-spacing:.06em !important; }
  #trust .ring-stats{ padding-top:14px !important; }
}

/* --- SECTION: founder --- */
/* SECTION: founder — ELEVATION  (scope: #mario / .home-section--soft + descendants)
   Intended look: a confident solid-black founder band. A red "logo-block" eyebrow,
   a huge Barlow Semi Condensed uppercase headline ("41 YEARS ON ROOFS.") whose
   number flips RED. A dramatic pull-quote with a fat red rule + ghost quotation
   mark. Mario's portrait in a sharp 3px-red frame with a hard black offset shadow,
   an angled red EST.1996 corner tab, and a red top-right notch tab. A real
   signature feel: red square monogram + white name + grey credentials separated by
   a thin rule. Generous vertical rhythm; one dominant red CTA pill.
   Contrast: black band throughout — headings/quote/body forced #fff, lead & caption
   white-opacity tints, credentials #9c9c9c (AA on black), tabs/eyebrow/CTA white on
   #d5160c. No dark-on-dark anywhere. Scoped to .home-section--soft, all !important,
   responsive @768/@480, hover + :focus-visible, ≥44px tap target, no layout shift. */

/* ---- 0. Band rhythm: let the personal story breathe ---------------------- */
.home-section--soft#mario .home-section__inner{
  padding-top:clamp(8px,1.5vw,20px)!important;
  padding-bottom:clamp(8px,1.5vw,20px)!important;
}

/* ---- 1. Red "logo-block" eyebrow — sharp, weighty -------------------------- */
.home-section--soft#mario .home-eyebrow:not([style]){
  display:inline-block!important;
  background:#d5160c!important;
  color:#fff!important;
  padding:6px 14px!important;
  border-radius:0!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:700!important;
  font-size:13px!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  line-height:1!important;
  margin:0 auto 22px!important;
  box-shadow:5px 5px 0 #000!important;
}

/* ---- 2. Hero headline: heavy condensed uppercase, RED number -------------- */
.home-section--soft#mario .home-h2{
  font-family:"Barlow Semi Condensed",sans-serif!important;
  color:#fff!important;
  font-weight:800!important;
  text-transform:uppercase!important;
  font-size:clamp(40px,6.4vw,76px)!important;
  line-height:.92!important;
  letter-spacing:-.02em!important;
  margin:0 auto!important;
}
/* the "41" reads red — first word of "41 years on roofs." */
.home-section--soft#mario .home-h2::first-letter{
  color:#d5160c!important;
}
.home-section--soft#mario .home-h2::after{
  content:""!important;
  display:block!important;
  width:72px!important;
  height:5px!important;
  margin:20px auto 0!important;
  background:#d5160c!important;
  box-shadow:3px 3px 0 rgba(0,0,0,.55)!important;
}

/* ---- 3. Lead paragraph (inline-styled eyebrow) → centered white tint ------ */
.home-section--soft#mario .home-eyebrow[style]{
  background:transparent!important;
  color:rgba(255,255,255,.82)!important;
  display:block!important;
  font-family:"Barlow",sans-serif!important;
  font-size:14px!important;
  line-height:1.6!important;
  letter-spacing:.01em!important;
  max-width:620px!important;
  margin:18px auto 0!important;
  text-align:center!important;
}

/* ---- 4. Dramatic pull-quote: fat red rule + ghost quote mark -------------- */
.home-section--soft#mario .home-mario-quote{
  position:relative!important;
  color:#fff!important;
  background:transparent!important;
  border:0!important;
  border-left:6px solid #d5160c!important;
  padding:6px 0 6px 28px!important;
  margin:clamp(28px,4vw,44px) auto!important;
  max-width:720px!important;
  text-align:left!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:600!important;
  font-size:clamp(20px,2.6vw,30px)!important;
  line-height:1.18!important;
  letter-spacing:-.005em!important;
  text-transform:none!important;
}
.home-section--soft#mario .home-mario-quote::before{
  content:"\201C"!important;     /* ghost opening quote for depth */
  position:absolute!important;
  top:-.34em!important;
  left:22px!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:800!important;
  font-size:3.4em!important;
  line-height:1!important;
  color:rgba(213,22,12,.16)!important;
  pointer-events:none!important;
  z-index:0!important;
}
.home-section--soft#mario .home-mario-quote :is(p,span,em,strong,b){
  color:#fff!important;
  position:relative!important;
  z-index:1!important;
}

/* ---- 5. Body prose: comfortable measure, white on black ------------------- */
.home-section--soft#mario .home-mario-body{
  max-width:640px!important;
  margin:0 auto!important;
  text-align:left!important;
}
.home-section--soft#mario .home-mario-body p{
  color:rgba(255,255,255,.9)!important;
  font-family:"Barlow",sans-serif!important;
  font-size:15.5px!important;
  line-height:1.72!important;
  margin:0 0 18px!important;
}
.home-section--soft#mario .home-mario-body p:last-child{margin-bottom:0!important;}
.home-section--soft#mario .home-mario-body :is(strong,b){
  color:#fff!important;
  font-weight:700!important;
}

/* ---- 6. Portrait figure: more space above/below --------------------------- */
.home-section--soft#mario .home-founder{
  margin:clamp(32px,5vw,52px) auto clamp(28px,4vw,40px)!important;
  text-align:center!important;
  display:block!important;
  max-width:760px!important;
}

/* ---- 7. The frame: sharp 3px-red border + hard black offset shadow -------- */
.home-section--soft#mario .home-founder__frame{
  position:relative!important;
  display:inline-block!important;
  width:clamp(190px,24vw,232px)!important;
  height:clamp(190px,24vw,232px)!important;
  border:3px solid #d5160c!important;
  border-radius:0!important;
  background:#000!important;
  overflow:hidden!important;
  line-height:0!important;
  /* hard Milwaukee offset shadow + faint white inner ring to read on black */
  box-shadow:14px 14px 0 rgba(0,0,0,.55),
             0 0 0 1px rgba(255,255,255,.14) inset!important;
}
/* small red notch tab on the TOP-RIGHT corner (tool-crate cue) */
.home-section--soft#mario .home-founder__frame::after{
  content:""!important;
  position:absolute!important;
  top:-3px!important;
  right:-3px!important;
  width:26px!important;
  height:26px!important;
  background:#d5160c!important;
  clip-path:polygon(100% 0,100% 100%,0 0)!important;
  z-index:3!important;
}

.home-section--soft#mario .home-founder__img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 28%!important;
  filter:contrast(1.05) brightness(1.01) saturate(1)!important;
}

/* ---- 8. Subtle dark vignette (depth, not a color cast) -------------------- */
.home-section--soft#mario .home-founder__vignette{
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  background:radial-gradient(120% 120% at 50% 38%,
              rgba(0,0,0,0) 50%,
              rgba(0,0,0,.30) 86%,
              rgba(0,0,0,.55) 100%)!important;
  z-index:1!important;
}

/* ---- 9. Solid-red EST.1996 corner tab ------------------------------------- */
.home-section--soft#mario .home-founder__tab{
  position:absolute!important;
  left:0!important;
  bottom:0!important;
  background:#d5160c!important;
  color:#fff!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  padding:5px 11px!important;
  border-radius:0!important;
  line-height:1!important;
  z-index:2!important;
}

/* ---- 10. Caption: centered white tint ------------------------------------- */
.home-section--soft#mario .home-founder__cap{
  margin-top:16px!important;
  font-family:"Barlow",sans-serif!important;
  font-size:13px!important;
  font-weight:500!important;
  letter-spacing:.02em!important;
  color:rgba(255,255,255,.6)!important;
  line-height:1.4!important;
}

/* ---- 11. Signature block: red monogram + name + grey credentials ---------- */
.home-section--soft#mario .home-attr{
  display:inline-flex!important;
  align-items:center!important;
  gap:14px!important;
  margin:0 auto!important;
  padding:18px 0 0!important;
  text-align:left!important;
  border-top:2px solid rgba(255,255,255,.14)!important;
  max-width:520px!important;
}
.home-section--soft#mario .home-attr__avatar{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:52px!important;
  height:52px!important;
  flex:0 0 52px!important;
  background:#d5160c!important;
  color:#fff!important;
  border-radius:0!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:800!important;
  font-size:20px!important;
  letter-spacing:.04em!important;
  box-shadow:4px 4px 0 #000!important;
}
.home-section--soft#mario .home-attr__name{
  color:#fff!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:700!important;
  font-size:20px!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  line-height:1.1!important;
}
.home-section--soft#mario .home-attr__role{
  color:#9c9c9c!important;
  font-family:"Barlow",sans-serif!important;
  font-size:12.5px!important;
  font-weight:500!important;
  letter-spacing:.01em!important;
  line-height:1.45!important;
  margin-top:3px!important;
}

/* ---- 12. CTA: eyebrow label + one dominant red pill ----------------------- */
.home-section--soft#mario p[style*="color:rgba(213,22,12"]{
  color:#d5160c!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:700!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
}
.home-section--soft#mario a.btn-red{
  background:#d5160c!important;
  color:#fff!important;
  border:2px solid #d5160c!important;
  border-radius:0!important;
  font-family:"Barlow Semi Condensed",sans-serif!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  text-transform:uppercase!important;
  min-height:44px!important;
  box-shadow:6px 6px 0 #000!important;
  transition:transform .12s ease,box-shadow .12s ease,background-color .12s ease!important;
}
.home-section--soft#mario a.btn-red:hover{
  background:#fff!important;
  color:#d5160c!important;
  transform:translate(-2px,-2px)!important;
  box-shadow:8px 8px 0 #d5160c!important;
}
.home-section--soft#mario a.btn-red:active{
  transform:translate(2px,2px)!important;
  box-shadow:2px 2px 0 #000!important;
}
.home-section--soft#mario a.btn-red:focus-visible{
  outline:3px solid #fff!important;
  outline-offset:3px!important;
}

/* ---- 13. Plain links readable on black ------------------------------------ */
.home-section--soft#mario a:not(.btn):not(.btn-red){
  color:#fff!important;
  text-decoration:underline!important;
  text-underline-offset:3px!important;
}

/* ==== RESPONSIVE ========================================================== */
@media(max-width:768px){
  .home-section--soft#mario .home-h2{font-size:clamp(36px,11vw,52px)!important;}
  .home-section--soft#mario .home-mario-quote{
    font-size:clamp(19px,5.2vw,24px)!important;
    padding-left:20px!important;
    border-left-width:5px!important;
  }
  .home-section--soft#mario .home-mario-quote::before{font-size:2.8em!important;left:16px!important;}
  .home-section--soft#mario .home-founder__frame{
    width:164px!important;height:164px!important;border-width:2px!important;
    box-shadow:9px 9px 0 rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.14) inset!important;
  }
  .home-section--soft#mario .home-founder__tab{font-size:10px!important;padding:4px 9px!important;}
  .home-section--soft#mario .home-attr{gap:12px!important;max-width:none!important;}
}
@media(max-width:480px){
  .home-section--soft#mario .home-h2{font-size:clamp(32px,12vw,44px)!important;}
  .home-section--soft#mario .home-mario-body p{font-size:15px!important;}
  .home-section--soft#mario .home-attr{
    flex-direction:column!important;
    align-items:center!important;
    text-align:center!important;
    gap:10px!important;
  }
  .home-section--soft#mario .home-attr__avatar{box-shadow:3px 3px 0 #000!important;}
  .home-section--soft#mario a.btn-red{box-shadow:4px 4px 0 #000!important;}
}

/* --- SECTION: process --- */
/* SECTION: process — ELEVATION
   Intended look: A solid-black industrial assembly line. Red eyebrow rule + heavy uppercase
   white headline. Four tool-crate step cards (white face, 2px black border, hard red offset
   shadow) marching down the band, each pinned to a big SHARP red square number badge. A red
   vertical track/rule threads the badges 1>2>3>4 into one unmistakable sequence.
   Contrast: band forced #000; all card faces white with #111 titles + #2a2a2a body (dark-on-light);
   number badges are white digits on red; eyebrow/lede forced white/grey on black. Nothing inherits. */

/* ===== BAND ===== */
#process.home-section {
  background: #000 !important;
  border-top: 2px solid #d5160c !important;
  border-bottom: 2px solid #000 !important;
  padding: 96px 24px !important;
  position: relative !important;
  overflow: hidden !important;
}

#process .home-section__inner,
#process .home-section__inner--narrow {
  position: relative !important;
  z-index: 1 !important;
  max-width: 920px !important;
  margin: 0 auto !important;
}

/* ===== HEADER ===== */
#process .home-eyebrow {
  display: inline-block !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: #d5160c !important;
  padding: 7px 14px 6px !important;
  margin: 0 0 20px !important;
  border-radius: 0 !important;
}

#process .home-h2 {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: -.01em !important;
  line-height: .95 !important;
  font-size: clamp(34px, 5.4vw, 62px) !important;
  color: #fff !important;
  margin: 0 0 18px !important;
}

#process .home-h2::after {
  content: "" !important;
  display: block !important;
  width: 64px !important;
  height: 5px !important;
  background: #d5160c !important;
  margin-top: 20px !important;
}

#process .home-lede {
  font-family: "Barlow", sans-serif !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  color: #c4c4c4 !important;
  max-width: 540px !important;
  margin: 0 0 56px !important;
}

/* ===== TIMELINE / SEQUENCE ===== */
#process .home-timeline {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 26px !important;
  padding-left: 0 !important;
  text-align: left !important;
}

/* Vertical connecting track threaded through the badge column (badge=64px, centered at 32px) */
#process .home-timeline::before {
  content: "" !important;
  position: absolute !important;
  top: 32px !important;
  bottom: 32px !important;
  left: 31px !important;
  width: 4px !important;
  background: #d5160c !important;
  z-index: 0 !important;
}

/* ===== STEP (badge + crate card) ===== */
#process .home-step {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 64px 1fr !important;
  align-items: stretch !important;
  gap: 22px !important;
  z-index: 1 !important;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Big SHARP red square number badge */
#process .home-step__num {
  position: relative !important;
  z-index: 2 !important;
  width: 64px !important;
  height: 64px !important;
  flex: 0 0 64px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #d5160c !important;
  color: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 5px 5px 0 #000 !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  font-size: 30px !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
}

/* Tool-crate step card */
#process .home-step__title,
#process .home-step__body {
  position: relative !important;
  z-index: 1 !important;
}

#process .home-step > :not(.home-step__num) {
  /* no-op guard so stray children sit in column 2 */
  grid-column: 2 !important;
}

#process .home-step__title {
  grid-column: 2 !important;
  margin: 0 !important;
  background: #fff !important;
  color: #111 !important;
  border: 2px solid #000 !important;
  border-bottom: 0 !important;
  box-shadow: 5px 0 0 #000 !important;
  padding: 14px 18px 13px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .01em !important;
  line-height: 1.02 !important;
  font-size: clamp(17px, 2.1vw, 21px) !important;
}

#process .home-step__title::before {
  content: "" !important;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  margin-right: 10px !important;
  background: #d5160c !important;
  vertical-align: baseline !important;
}

#process .home-step__body {
  grid-column: 2 !important;
  margin: 0 !important;
  background: #fff !important;
  color: #2a2a2a !important;
  border: 2px solid #000 !important;
  border-top: 2px solid #e0e0e0 !important;
  box-shadow: 5px 5px 0 #000 !important;
  padding: 12px 18px 16px !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 15px !important;
  line-height: 1.55 !important;
}

/* "Done" step gets a green-free, on-brand red completed accent on the badge */
#process .home-step--done .home-step__num {
  background: #000 !important;
  color: #fff !important;
  box-shadow: 5px 5px 0 #d5160c !important;
}

/* Hover: lift the crate, tighten the offset */
#process .home-step:hover .home-step__title,
#process .home-step:hover .home-step__body {
  transform: translate(-1px, -1px) !important;
  box-shadow: 7px 7px 0 #d5160c !important;
  transition: transform .12s ease, box-shadow .12s ease !important;
}
#process .home-step:hover .home-step__title {
  box-shadow: 7px 0 0 #d5160c !important;
}
#process .home-step__title,
#process .home-step__body {
  transition: transform .12s ease, box-shadow .12s ease !important;
}

/* Focus-visible for keyboard users landing on the step */
#process .home-step:focus-within .home-step__title {
  outline: 3px solid #d5160c !important;
  outline-offset: 2px !important;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  #process.home-section { padding: 64px 18px !important; }
  #process .home-lede { margin-bottom: 40px !important; }
  #process .home-timeline { gap: 22px !important; }
  #process .home-timeline::before { left: 27px !important; top: 28px !important; bottom: 28px !important; }
  #process .home-step {
    grid-template-columns: 56px 1fr !important;
    gap: 16px !important;
  }
  #process .home-step__num {
    width: 56px !important; height: 56px !important; flex-basis: 56px !important;
    font-size: 26px !important; box-shadow: 4px 4px 0 #000 !important;
  }
  #process .home-step--done .home-step__num { box-shadow: 4px 4px 0 #d5160c !important; }
  #process .home-step__title { box-shadow: 4px 0 0 #000 !important; padding: 12px 14px 11px !important; }
  #process .home-step__body { box-shadow: 4px 4px 0 #000 !important; padding: 11px 14px 14px !important; }
}

@media (max-width: 480px) {
  #process .home-h2 { font-size: clamp(30px, 8vw, 40px) !important; }
  #process .home-timeline::before { display: none !important; }
  #process .home-step {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }
  #process .home-step__num {
    margin-bottom: -2px !important;
    box-shadow: 4px 4px 0 #d5160c !important;
  }
  #process .home-step--done .home-step__num { box-shadow: 4px 4px 0 #000 !important; }
  #process .home-step__title,
  #process .home-step__body { grid-column: 1 !important; }
  #process .home-step__title { box-shadow: none !important; }
  #process .home-step__body { box-shadow: 4px 4px 0 #000 !important; }
}

/* --- SECTION: materials --- */
/* SECTION: materials — ELEVATION
   Intended look: White spec-sheet panel. Left: red eyebrow chip + heavy black condensed
   "BUILT TO LAST" headline over a red rule + black/red-shadow outline CTA. Right: a stack of
   tool-crate material tiles, each with a 2px black border, hard offset shadow, a bold black
   icon chip (red emoji on a hairline-bordered square) and an index ghost numeral; on hover/active
   the tile lifts off a red offset shadow and the left edge flips to a solid red spine. Confident,
   crisp, unmistakably Milwaukee.
   Contrast: section is white throughout, so all text is forced dark on white — eyebrow is white
   on the red chip; headline/name #000; lede #1a1a1a; lifespan #595959 (>=4.5:1 on white); arrow
   + icon emoji red; the icon chip is white with a black border (emoji never sits on a dark fill).
   No light-on-light or dark-on-dark anywhere. Scoped to #materials; !important; responsive. */

#materials{
  background:#fff !important;
  position:relative !important;
  border-top:3px solid #d5160c !important;
  overflow:hidden !important;
}

/* faint hazard-corner accent (rare, top-right, behind content) */
#materials::after{
  content:"" !important;
  position:absolute !important;
  top:0 !important;
  right:0 !important;
  width:140px !important;
  height:10px !important;
  background:repeating-linear-gradient(135deg,#d5160c 0 14px,#000 14px 28px) !important;
  opacity:.16 !important;
  pointer-events:none !important;
}

#materials .mat-inner{
  position:relative !important;
  z-index:1 !important;
  align-items:start !important;
}

/* ── LEFT: sticky header column ── */
#materials .mat-sticky .eyebrow{
  display:inline-block !important;
  background:#d5160c !important;
  color:#fff !important;
  font-family:var(--ff-display),"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.14em !important;
  font-size:12px !important;
  line-height:1 !important;
  padding:7px 14px 6px !important;
  border-radius:0 !important;
  box-shadow:4px 4px 0 #000 !important;
  margin:0 0 22px !important;
}

#materials .mat-sticky .h2{
  position:relative !important;
  font-family:var(--ff-display),"Barlow Semi Condensed",sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:-.015em !important;
  line-height:.94 !important;
  color:#000 !important;
  font-size:clamp(38px,5vw,62px) !important;
  padding-bottom:26px !important;
  margin:0 0 18px !important;
}
#materials .mat-sticky .h2::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:96px !important;
  height:7px !important;
  background:#d5160c !important;
  border-radius:0 !important;
}

#materials .mat-sticky .body-lg{
  color:#1a1a1a !important;
  font-family:var(--ff-body),"Barlow",sans-serif !important;
  line-height:1.55 !important;
  max-width:400px !important;
}

#materials .mat-sticky .btn-outline{
  display:inline-flex !important;
  align-items:center !important;
  min-height:48px !important;
  padding:13px 28px !important;
  font-family:var(--ff-display),"Barlow Semi Condensed",sans-serif !important;
  text-transform:uppercase !important;
  font-weight:700 !important;
  letter-spacing:.06em !important;
  font-size:15px !important;
  color:#000 !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:5px 5px 0 #d5160c !important;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease !important;
}
#materials .mat-sticky .btn-outline:hover{
  background:#d5160c !important;
  border-color:#d5160c !important;
  color:#fff !important;
  transform:translate(-2px,-2px) !important;
  box-shadow:7px 7px 0 #000 !important;
}
#materials .mat-sticky .btn-outline:focus-visible{
  outline:3px solid #d5160c !important;
  outline-offset:3px !important;
}

/* ── RIGHT: material tile crate ── */
#materials .mat-list{
  display:flex !important;
  flex-direction:column !important;
  gap:14px !important;
  margin-top:56px !important;
  counter-reset:mat !important;
}

#materials .mat-row{
  counter-increment:mat !important;
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  gap:18px !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-left-width:6px !important;
  border-radius:0 !important;
  box-shadow:6px 6px 0 #000 !important;
  padding:18px 22px !important;
  overflow:hidden !important;
  transition:transform .18s cubic-bezier(.2,.7,.3,1),
             box-shadow .18s cubic-bezier(.2,.7,.3,1),
             border-color .15s ease !important;
}

/* ghost index numeral for depth — sits behind, never blocks text */
#materials .mat-row::before{
  content:counter(mat,decimal-leading-zero) !important;
  position:absolute !important;
  right:14px !important;
  bottom:-18px !important;
  font-family:var(--ff-display),"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:78px !important;
  line-height:1 !important;
  color:#000 !important;
  opacity:.05 !important;
  pointer-events:none !important;
  z-index:0 !important;
}

#materials .mat-row > *{position:relative !important;z-index:1 !important;}

#materials .mat-row:hover,
#materials .mat-row.active{
  transform:translate(-3px,-3px) !important;
  box-shadow:9px 9px 0 #d5160c !important;
  border-color:#000 !important;
  border-left-color:#d5160c !important;
}

/* icon as a bold tool chip: red emoji on white, hard-bordered square */
#materials .mat-icon{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:48px !important;
  height:48px !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  font-size:22px !important;
  line-height:1 !important;
  color:#d5160c !important;
  transition:background .15s ease,border-color .15s ease !important;
}
#materials .mat-row:hover .mat-icon,
#materials .mat-row.active .mat-icon{
  background:#d5160c !important;
  border-color:#d5160c !important;
}

#materials .mat-name{
  font-family:var(--ff-display),"Barlow Semi Condensed",sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  font-size:18px !important;
  line-height:1.05 !important;
  color:#000 !important;
}
#materials .mat-life{
  font-family:var(--ff-body),"Barlow",sans-serif !important;
  color:#595959 !important;            /* ~5.9:1 on white */
  font-size:13.5px !important;
  line-height:1.35 !important;
  margin-top:3px !important;
}

#materials .mat-arrow{
  margin-left:auto !important;
  flex:0 0 auto !important;
  color:#d5160c !important;
  font-weight:700 !important;
  font-size:20px !important;
  line-height:1 !important;
  transition:transform .15s ease !important;
}
#materials .mat-row:hover .mat-arrow,
#materials .mat-row.active .mat-arrow{transform:translateX(5px) !important;}

#materials .mat-row:focus-visible{
  outline:3px solid #d5160c !important;
  outline-offset:3px !important;
}

/* ── RESPONSIVE ── */
@media (max-width:768px){
  #materials .mat-sticky{position:static !important;}
  #materials .mat-list{margin-top:36px !important;gap:12px !important;}
  #materials .mat-sticky .h2{font-size:clamp(34px,9vw,46px) !important;}
  #materials::after{width:96px !important;}
  #materials .mat-row{padding:16px 18px !important;gap:14px !important;box-shadow:5px 5px 0 #000 !important;}
  #materials .mat-row::before{font-size:60px !important;right:10px !important;}
}

@media (max-width:480px){
  #materials .mat-icon{width:42px !important;height:42px !important;font-size:19px !important;}
  #materials .mat-name{font-size:16px !important;}
  #materials .mat-life{font-size:12.5px !important;}
  #materials .mat-sticky .btn-outline{width:100% !important;justify-content:center !important;}
  #materials .mat-row::before{display:none !important;}  /* avoid crowding on tiny screens */
}

/* --- SECTION: reviews-frame --- */
/* SECTION: reviews-frame — ELEVATION  (scope: #reviews non-card elements)
   Intended look: RED band (#d5160c) with hazard-stripe top. Black eyebrow chip
   with a red square marker; white UPPERCASE condensed title over a black+red
   split accent rule. The 4.9★ summary becomes a bold HERO-STAT row of solid
   BLACK tiles with hard red offset shadows — giant condensed white numerals,
   RED stars, grey labels — punching hard off the red. CTA = solid black crate
   button with red offset shadow that inverts to red on hover.
   Contrast: band is red, so every framed element forces its own colors. Title/
   lead = #fff on red. Stat tiles are BLACK, so numerals=#fff, stars=#d5160c,
   labels=#9c9c9c — all high-contrast on black, never red-on-red. Eyebrow=#fff
   on #000. CTA text=#fff on #000 (hover #fff on #d5160c). No inheritance assumed.
   Cards (.review-card) are out of scope and untouched. */

/* ── Band: keep solid red + hazard-stripe top, sharpen rhythm ───────────── */
#reviews.reviews-redesign{
  background:#d5160c !important;
  color:#fff !important;
  position:relative !important;
  border-top:none !important;
  isolation:isolate !important;
  overflow:hidden !important;
}
#reviews.reviews-redesign::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:8px !important;
  background:repeating-linear-gradient(45deg,#000 0 14px,#d5160c 14px 28px) !important;
  z-index:1 !important;
}

/* ── Header rhythm ──────────────────────────────────────────────────────── */
#reviews.reviews-redesign .reviews-header{
  text-align:center !important;
  max-width:760px !important;
  margin:0 auto !important;
}

/* ── 1. Eyebrow = black chip + RED square marker ────────────────────────── */
#reviews.reviews-redesign .reviews-eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:9px !important;
  background:#000 !important;
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.16em !important;
  font-size:12px !important;
  line-height:1 !important;
  padding:8px 14px !important;
  border-radius:0 !important;          /* zero-radius / sharp */
  border:2px solid #000 !important;
  margin:0 0 20px !important;
}
#reviews.reviews-redesign .reviews-eyebrow::before{
  content:"" !important;
  width:9px !important;
  height:9px !important;
  background:#d5160c !important;        /* red accent marker — reads on black */
  display:inline-block !important;
  flex:0 0 auto !important;
}

/* ── 2. Title = white UPPERCASE condensed + black/red split rule ────────── */
#reviews.reviews-redesign .reviews-title{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  font-weight:800 !important;
  letter-spacing:-.01em !important;
  line-height:.98 !important;
  font-size:clamp(34px,5vw,60px) !important;
  position:relative !important;
  padding-bottom:24px !important;
  margin:0 0 18px !important;
}
#reviews.reviews-redesign .reviews-title::after{
  content:"" !important;
  display:block !important;
  width:88px !important;
  height:6px !important;
  /* black+red split bar: a hard Milwaukee accent that survives the red band */
  background:linear-gradient(90deg,#000 0 60%,#fff 60% 100%) !important;
  border-radius:0 !important;
  margin:24px auto 0 !important;
}
#reviews.reviews-redesign .reviews-lead{
  color:#fff !important;
  opacity:.96 !important;
  font-family:'Barlow',system-ui,sans-serif !important;
  font-size:clamp(15px,1.4vw,18px) !important;
  line-height:1.5 !important;
  max-width:560px !important;
  margin:0 auto !important;
}

/* ── 3. HERO STAT ROW = solid BLACK tiles, hard red offset shadow ───────── */
#reviews.reviews-redesign .reviews-stats{
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:18px !important;
  border:0 !important;                  /* kill the thin border strip */
  padding:0 !important;
  margin:40px auto 0 !important;
  max-width:780px !important;
}
#reviews.reviews-redesign .reviews-stats>div{
  flex:1 1 200px !important;
  min-width:180px !important;
  background:#000 !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:7px 7px 0 #d5160c, 7px 7px 0 1px #000 !important; /* red crate shadow, crisp edge */
  padding:24px 18px 20px !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  text-align:center !important;
}
/* The big number */
#reviews.reviews-redesign .reviews-stats b{
  color:#fff !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(52px,7vw,76px) !important;
  line-height:.85 !important;
  letter-spacing:-.02em !important;
  display:flex !important;
  align-items:baseline !important;
  justify-content:center !important;
  gap:6px !important;
}
/* RED star — high contrast on the black tile (never red-on-red) */
#reviews.reviews-redesign .reviews-stats b .star{
  color:#d5160c !important;
  font-size:.62em !important;
  line-height:1 !important;
  transform:translateY(-.04em) !important;
}
/* The % superscript on "99%" */
#reviews.reviews-redesign .reviews-stats b sup{
  color:#9c9c9c !important;
  font-size:.42em !important;
  font-weight:700 !important;
  top:-.05em !important;
  margin-left:1px !important;
}
/* Grey caption label under each number */
#reviews.reviews-redesign .reviews-stats>div>span{
  color:#9c9c9c !important;
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.14em !important;
  font-size:11px !important;
  line-height:1.25 !important;
  margin-top:12px !important;
  /* thin red rule above the label for a hard detail */
  padding-top:12px !important;
  border-top:2px solid #d5160c !important;
}

/* ── 4. Grid container (layout only; cards owned elsewhere) ─────────────── */
#reviews.reviews-redesign .reviews-grid{
  margin-top:clamp(44px,5vw,64px) !important;
}

/* ── 5. CTA = solid BLACK crate button w/ red offset shadow ─────────────── */
#reviews.reviews-redesign .reviews-cta{
  text-align:center !important;
  margin-top:clamp(40px,5vw,56px) !important;
}
#reviews.reviews-redesign .reviews-cta a{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  background:#000 !important;
  color:#fff !important;
  border:2px solid #000 !important;
  border-bottom:2px solid #000 !important;     /* override stray underline rule */
  border-radius:0 !important;
  box-shadow:6px 6px 0 #fff !important;          /* white offset reads on red band */
  font-family:'Barlow Semi Condensed','Barlow',system-ui,sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.1em !important;
  font-size:15px !important;
  line-height:1 !important;
  padding:17px 30px !important;
  min-height:44px !important;
  text-decoration:none !important;
  transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease !important;
}
#reviews.reviews-redesign .reviews-cta a:hover{
  background:#d5160c !important;
  border-color:#fff !important;
  border-bottom-color:#fff !important;
  box-shadow:9px 9px 0 #000 !important;
  transform:translate(-3px,-3px) !important;
  color:#fff !important;
}
#reviews.reviews-redesign .reviews-cta a:focus-visible{
  outline:3px solid #fff !important;
  outline-offset:3px !important;
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width:768px){
  #reviews.reviews-redesign .reviews-stats{
    gap:16px !important;
    margin-top:32px !important;
  }
  #reviews.reviews-redesign .reviews-stats>div{
    flex:1 1 100% !important;
    box-shadow:5px 5px 0 #d5160c, 5px 5px 0 1px #000 !important;
    padding:20px 16px 18px !important;
  }
  #reviews.reviews-redesign .reviews-stats b{
    font-size:clamp(48px,16vw,64px) !important;
  }
  #reviews.reviews-redesign .reviews-title{
    font-size:clamp(30px,8vw,44px) !important;
  }
}
@media (max-width:480px){
  #reviews.reviews-redesign .reviews-eyebrow{ letter-spacing:.12em !important; }
  #reviews.reviews-redesign .reviews-cta a{
    width:100% !important;
    justify-content:center !important;
    box-shadow:5px 5px 0 #fff !important;
    padding:16px 20px !important;
  }
}

/* --- SECTION: reviews-cards --- */
/* SECTION: reviews-cards — ELEVATION
   Intended look: Each review is a Milwaukee tool-crate — solid WHITE card, 2px solid
   black border, sharp zero-radius corners, hard 8px black offset shadow that snaps to
   a red offset on hover (card lifts up/left). RED solid stars (#d5160c). A faint ghost
   quote-mark watermark for depth. Confident dark body quote. Byline gets a short red
   vertical rule + black uppercase name and grey city. Source (Google/GuildQuality) is a
   tiny black uppercase tag, top-right, with a red dot.
   Contrast: Card body is white, so all text is forced near-black (#0a0a0a name/quote,
   #6e6e6e city) — never light text on white. Stars are red on white. Source tag is white
   text on a solid black chip. Avatar is white letter on solid black. Every value !important
   to override the existing stack. Tap targets / no layout shift preserved. */

/* ---- CARD CRATE ---- */
#reviews .review-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 8px 8px 0 #000 !important;
  padding: 30px 28px 26px !important;
  overflow: hidden !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease !important;
}

/* red top rule reading as a tool-crate label strip */
#reviews .review-card::after {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  width: 56px !important;
  height: 5px !important;
  background: #d5160c !important;
  z-index: 3 !important;
}

#reviews .review-card:hover,
#reviews .review-card:focus-within {
  transform: translate(-4px, -4px) !important;
  box-shadow: 12px 12px 0 #d5160c !important;
  border-color: #000 !important;
}

/* ---- GHOST QUOTE MARK (depth watermark) ---- */
#reviews .review-card .review-quote-mark {
  position: absolute !important;
  top: -18px !important;
  right: 8px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 120px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  color: rgba(0, 0, 0, 0.06) !important;
  z-index: 0 !important;
  pointer-events: none !important;
}

/* ---- STARS (RED, solid) ---- */
#reviews .review-card .review-stars {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  gap: 3px !important;
  margin: 4px 0 16px !important;
}
#reviews .review-card .review-stars svg {
  width: 19px !important;
  height: 19px !important;
  display: block !important;
  fill: #d5160c !important;
}
#reviews .review-card .review-stars svg path {
  fill: #d5160c !important;
}

/* ---- QUOTE TEXT (confident, dark on white) ---- */
#reviews .review-card .review-text {
  position: relative !important;
  z-index: 2 !important;
  flex: 1 1 auto !important;
  margin: 0 0 22px !important;
  color: #0a0a0a !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
  letter-spacing: -0.005em !important;
}

/* ---- AUTHOR ROW ---- */
#reviews .review-card .review-author {
  position: relative !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  margin-top: auto !important;
  padding-top: 18px !important;
  border-top: 2px solid #000 !important;
}

/* avatar: solid black square-ish chip, white letter */
#reviews .review-card .review-avatar {
  flex: 0 0 auto !important;
  width: 46px !important;
  height: 46px !important;
  border-radius: 0 !important;
  background: #000 !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  font-size: 21px !important;
  text-transform: uppercase !important;
  border: 2px solid #000 !important;
}

/* byline block with a short red vertical rule */
#reviews .review-card .review-author-text {
  position: relative !important;
  padding-left: 12px !important;
  min-width: 0 !important;
}
#reviews .review-card .review-author-text::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 2px !important;
  bottom: 2px !important;
  width: 3px !important;
  background: #d5160c !important;
}
#reviews .review-card .review-name {
  color: #0a0a0a !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  font-size: 17px !important;
  line-height: 1.1 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.01em !important;
}
#reviews .review-card .review-city {
  color: #6e6e6e !important;
  font-family: "Barlow", sans-serif !important;
  font-weight: 600 !important;
  font-size: 12.5px !important;
  line-height: 1.25 !important;
  margin-top: 3px !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

/* ---- SOURCE TAG (Google / GuildQuality) ---- */
#reviews .review-card .review-source {
  position: absolute !important;
  top: 14px !important;
  right: 14px !important;
  z-index: 3 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  background: #000 !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 5px 9px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 10.5px !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.07em !important;
  white-space: nowrap !important;
}
#reviews .review-card .review-source::before {
  content: "" !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 0 !important;
  background: #d5160c !important;
  flex: 0 0 auto !important;
}

/* ---- RESPONSIVE ---- */
@media (max-width: 768px) {
  #reviews .review-card {
    padding: 26px 22px 22px !important;
    box-shadow: 6px 6px 0 #000 !important;
  }
  #reviews .review-card:hover,
  #reviews .review-card:focus-within {
    transform: translate(-3px, -3px) !important;
    box-shadow: 9px 9px 0 #d5160c !important;
  }
  #reviews .review-card .review-quote-mark {
    font-size: 96px !important;
    top: -14px !important;
  }
  #reviews .review-card .review-text {
    font-size: 16px !important;
  }
}

@media (max-width: 480px) {
  #reviews .review-card {
    padding: 24px 20px 20px !important;
    box-shadow: 5px 5px 0 #000 !important;
  }
  #reviews .review-card .review-source {
    top: 12px !important;
    right: 12px !important;
    font-size: 10px !important;
    padding: 4px 8px !important;
  }
  #reviews .review-card .review-avatar {
    width: 42px !important;
    height: 42px !important;
    font-size: 19px !important;
  }
  #reviews .review-card .review-name {
    font-size: 16px !important;
  }
}

/* --- SECTION: projects --- */
/* SECTION: projects — ELEVATION  (#recent-projects / .hd-projects)
   Intended look: A confident white "tool-crate" gallery of real before/after roofs.
   Heavy uppercase Barlow Semi Condensed header with a red year-style rule + black
   eyebrow block. Each pair sits in a sharp 2px black frame with a hard 7px offset
   shadow that snaps to red and lifts on hover. A bold 3px red center seam splits
   BEFORE | AFTER; crisp corner stamps (white-on-black "BEFORE", white-on-red
   "AFTER") with hard shadows. A solid black caption bar carries an UPPERCASE white
   city + grey service line under a red top rule. One dominant red CTA. Photos stay
   full natural color — NO red duotone.
   Contrast: header text forced #000 on white; eyebrow #fff on #000; stamps #fff on
   #000 / #d5160c; caption city #fff + service #d6d6d6 on #000; CTA #fff on #d5160c
   (and #fff on #000 hover). Every band sets its own child text colors — nothing is
   left to inherit. Stamps & seam carry hard shadows so they read over any photo.
   Scoped: every selector starts with #recent-projects. Responsive: 960 / 700 / 600
   / 380px. Tap targets >=44px; no layout shift (matches existing aspect-ratio/grid).
   ============================================================================ */

/* ---------- SECTION SHELL ---------- */
#recent-projects.hd-projects{
  background:#fff!important;
  border-top:4px solid #000!important;
  border-bottom:4px solid #000!important;
  position:relative!important;
  overflow:hidden!important;
  scroll-margin-top:96px!important;            /* clear sticky nav — fixes clipped header */
}
/* top hazard stripe — rare red/black diagonal accent */
#recent-projects.hd-projects::before{
  content:""!important;position:absolute!important;top:0!important;left:0!important;right:0!important;
  height:7px!important;z-index:3!important;
  background:repeating-linear-gradient(135deg,#d5160c 0 16px,#000 16px 32px)!important;
}
/* faint ghost rule for depth at the foot of the band */
#recent-projects.hd-projects::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;
  height:4px!important;background:#d5160c!important;opacity:.9!important;z-index:2!important;
}
#recent-projects .hd-projects__inner{max-width:1200px!important;margin:0 auto!important;position:relative!important;z-index:1!important}

/* ---------- HEAD ---------- */
#recent-projects .hd-projects__head{
  max-width:820px!important;margin:0 auto clamp(40px,5vw,64px)!important;text-align:center!important;
}
#recent-projects .hd-projects__eyebrow{
  display:inline-block!important;margin:0 0 20px!important;
  background:#000!important;color:#fff!important;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif!important;
  font-weight:800!important;font-size:13px!important;letter-spacing:.2em!important;text-transform:uppercase!important;
  padding:8px 16px!important;border-radius:0!important;line-height:1!important;
  border:2px solid #000!important;box-shadow:3px 3px 0 #d5160c!important;
}
#recent-projects .hd-projects__title{
  margin:0!important;color:#000!important;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif!important;
  font-weight:800!important;text-transform:uppercase!important;
  font-size:clamp(40px,6.2vw,76px)!important;line-height:.92!important;letter-spacing:-.015em!important;
  text-wrap:balance!important;
}
/* heavier red rule under the heading */
#recent-projects .hd-projects__bar{
  display:block!important;width:96px!important;height:8px!important;background:#d5160c!important;
  margin:24px auto 0!important;border-radius:0!important;
}
#recent-projects .hd-projects__lede{
  margin:24px auto 0!important;max-width:620px!important;color:#2a2a2a!important;
  font-family:"Barlow",system-ui,sans-serif!important;
  font-size:clamp(15px,1.6vw,18px)!important;line-height:1.6!important;font-weight:500!important;
}

/* ---------- GRID ---------- */
#recent-projects .hd-projects__grid{
  display:grid!important;grid-template-columns:repeat(3,1fr)!important;
  gap:clamp(20px,2.4vw,30px)!important;
}

/* ---------- TOOL-CRATE CARD ---------- */
#recent-projects .hd-proj{
  background:#fff!important;
  border:2px solid #000!important;
  border-radius:0!important;
  box-shadow:7px 7px 0 #000!important;
  overflow:hidden!important;
  transition:transform .16s ease, box-shadow .16s ease!important;
}
#recent-projects .hd-proj:hover,
#recent-projects .hd-proj:focus-within{
  transform:translate(-3px,-3px)!important;
  box-shadow:11px 11px 0 #d5160c!important;
}

/* before|after pair, split by a bold red center seam */
#recent-projects .hd-proj__pair{
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;
  background:#000!important;position:relative!important;
}
/* the seam itself: a hard 3px red line dead-center, above the photos */
#recent-projects .hd-proj__pair::after{
  content:""!important;position:absolute!important;top:0!important;bottom:0!important;left:50%!important;
  width:3px!important;transform:translateX(-50%)!important;
  background:#d5160c!important;z-index:3!important;pointer-events:none!important;
}
#recent-projects .hd-proj__shot{
  position:relative!important;margin:0!important;
  aspect-ratio:3/4!important;overflow:hidden!important;background:#9c9c9c!important;
}
#recent-projects .hd-proj__shot--before{border-right:0!important}
#recent-projects .hd-proj__shot img{
  display:block!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center!important;
  filter:none!important;                       /* NO red duotone — natural color only */
  transition:transform .35s ease!important;
}
#recent-projects .hd-proj:hover .hd-proj__shot img{transform:scale(1.04)!important}

/* ---------- BEFORE / AFTER corner stamps ---------- */
#recent-projects .hd-proj__stamp{
  position:absolute!important;top:10px!important;left:10px!important;z-index:4!important;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif!important;
  font-weight:800!important;font-size:12px!important;letter-spacing:.16em!important;text-transform:uppercase!important;
  color:#fff!important;padding:6px 11px!important;border-radius:0!important;line-height:1!important;
  border:2px solid #fff!important;box-shadow:3px 3px 0 rgba(0,0,0,.7)!important;
}
#recent-projects .hd-proj__stamp--before{background:#000!important;color:#fff!important}
/* AFTER sits in the right half */
#recent-projects .hd-proj__stamp--after{
  background:#d5160c!important;color:#fff!important;
  left:auto!important;right:10px!important;
  box-shadow:3px 3px 0 rgba(0,0,0,.55)!important;
}

/* ---------- BLACK CAPTION BAR: city + service ---------- */
#recent-projects .hd-proj__cap{
  display:flex!important;flex-direction:column!important;gap:4px!important;
  background:#000!important;color:#fff!important;
  padding:15px 17px!important;
  border-top:3px solid #d5160c!important;
}
#recent-projects .hd-proj__city{
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif!important;
  font-weight:800!important;font-size:19px!important;letter-spacing:.015em!important;
  text-transform:uppercase!important;color:#fff!important;line-height:1.05!important;
}
#recent-projects .hd-proj__svc{
  font-family:"Barlow",system-ui,sans-serif!important;
  font-size:12.5px!important;font-weight:700!important;letter-spacing:.1em!important;
  text-transform:uppercase!important;color:#d6d6d6!important;line-height:1.2!important;
}

/* ---------- CTA ---------- */
#recent-projects .hd-projects__cta{text-align:center!important;margin-top:clamp(40px,5vw,60px)!important}
#recent-projects .hd-projects__btn{
  display:inline-block!important;
  background:#d5160c!important;color:#fff!important;
  font-family:"Barlow Semi Condensed","Barlow",system-ui,sans-serif!important;
  font-weight:800!important;font-size:17px!important;letter-spacing:.08em!important;text-transform:uppercase!important;
  padding:17px 38px!important;min-height:44px!important;border-radius:0!important;text-decoration:none!important;
  border:2px solid #000!important;box-shadow:5px 5px 0 #000!important;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease!important;
}
#recent-projects .hd-projects__btn:hover{
  background:#000!important;color:#fff!important;
  transform:translate(-3px,-3px)!important;box-shadow:7px 7px 0 #d5160c!important;
}
#recent-projects .hd-projects__btn:focus-visible{
  outline:3px solid #000!important;outline-offset:3px!important;
}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media(max-width:960px){
  #recent-projects .hd-projects__grid{grid-template-columns:repeat(2,1fr)!important}
}
@media(max-width:768px){
  #recent-projects.hd-projects{scroll-margin-top:72px!important}
  #recent-projects .hd-projects__title{font-size:clamp(38px,9vw,58px)!important}
  #recent-projects .hd-proj__stamp{font-size:11px!important;padding:5px 9px!important}
  #recent-projects .hd-proj__city{font-size:18px!important}
}
@media(max-width:600px){
  #recent-projects .hd-projects__grid{grid-template-columns:1fr!important;gap:22px!important}
  /* single column: cards get more room — keep stamps & caption proportional */
  #recent-projects .hd-proj__city{font-size:20px!important}
  #recent-projects .hd-projects__btn{display:block!important;width:100%!important;box-sizing:border-box!important}
}
@media(max-width:380px){
  #recent-projects .hd-proj{box-shadow:5px 5px 0 #000!important}
  #recent-projects .hd-proj__stamp{font-size:10px!important;letter-spacing:.1em!important;padding:4px 7px!important;top:8px!important}
  #recent-projects .hd-proj__stamp--before{left:8px!important}
  #recent-projects .hd-proj__stamp--after{right:8px!important}
  #recent-projects .hd-proj__city{font-size:18px!important}
  #recent-projects .hd-proj__svc{font-size:11.5px!important;letter-spacing:.08em!important}
}

/* reduced-motion: kill the zoom & lift transitions, keep the static styling */
@media(prefers-reduced-motion:reduce){
  #recent-projects .hd-proj,
  #recent-projects .hd-proj__shot img,
  #recent-projects .hd-projects__btn{transition:none!important}
  #recent-projects .hd-proj:hover .hd-proj__shot img{transform:none!important}
}

/* --- SECTION: coverage --- */
/* SECTION: coverage — ELEVATION
   Intended look: a bold red coverage band turned into a tool-crate map. Black "SERVICE AREA"
   block eyebrow with a white rule, heavy uppercase condensed headline, a steel stat-gauge readout
   (52 / 15 / 3) in black-bordered cells, and city links as sharp white crate tiles with red
   location-pin dots, 2px black borders + hard black offset shadows that snap on hover. Map sits in
   a black-bordered crate with a black/red badge. Combo-CTA recolored from off-palette gradient to a
   sharp black crate with a white headline and one dominant red button.
   Contrast: red band -> all headline/lead/labels/stat text FORCED #fff. White tiles & black crate ->
   text FORCED #000 (tiles) / #fff (black crate). Red button -> #fff. No dark-on-dark or light-on-light;
   every dot/pin is solid red on white or solid white on black. */

/* ---- BAND + TOP HAZARD ACCENT (keep red band, sharpen edge) ---- */
#coverage.area-redesign{background:#d5160c!important;color:#fff!important;position:relative!important;border-top:3px solid #000!important;border-bottom:3px solid #000!important}
#coverage.area-redesign::before{content:""!important;position:absolute!important;top:0!important;left:0!important;right:0!important;height:8px!important;background:repeating-linear-gradient(45deg,#000 0 16px,#d5160c 16px 32px)!important;z-index:3!important}
#coverage .area-inner{max-width:1200px!important;margin:0 auto!important;position:relative!important;z-index:2!important}

/* ---- EYEBROW: solid black block + white rule ---- */
#coverage .area-eyebrow{display:inline-block!important;background:#000!important;color:#fff!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:13px!important;font-weight:800!important;letter-spacing:.18em!important;text-transform:uppercase!important;padding:7px 14px 6px!important;margin:0 0 18px!important;border-radius:0!important;box-shadow:4px 4px 0 #000!important;border:2px solid #000!important;line-height:1!important}

/* ---- HEADLINE: heavy condensed uppercase, white, red underbar ---- */
#coverage .area-title{font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:clamp(40px,6.5vw,68px)!important;font-weight:800!important;letter-spacing:-.01em!important;line-height:.95!important;text-transform:uppercase!important;color:#fff!important;margin:0 0 18px!important;text-wrap:balance!important}
#coverage .area-title::after{content:""!important;display:block!important;width:64px!important;height:6px!important;background:#000!important;margin-top:16px!important;border-radius:0!important}

/* ---- LEAD: forced white on red ---- */
#coverage .area-lead{font-family:var(--ff-body,"Barlow",sans-serif)!important;font-size:17px!important;line-height:1.55!important;color:#fff!important;opacity:.95!important;margin:0 0 32px!important;max-width:560px!important}

/* ---- STAT GAUGE: black-bordered cells on a black bar ---- */
#coverage .area-stats{display:flex!important;gap:0!important;margin:0 0 34px!important;padding:0!important;border:3px solid #000!important;border-radius:0!important;background:#000!important;box-shadow:6px 6px 0 #000!important;overflow:hidden!important;max-width:560px!important}
#coverage .area-stat{flex:1!important;padding:18px 18px 16px!important;background:#000!important;text-align:left!important;border-right:2px solid #d5160c!important}
#coverage .area-stat:last-child{border-right:0!important}
#coverage .area-stat b{display:block!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:40px!important;font-weight:800!important;letter-spacing:-.01em!important;color:#fff!important;line-height:1!important;margin:0 0 6px!important}
#coverage .area-stat span{font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:12px!important;font-weight:700!important;letter-spacing:.14em!important;text-transform:uppercase!important;color:#d5160c!important;opacity:1!important}

/* ---- "MOST-SERVED CITIES" LABEL ---- */
#coverage .area-top-cities-label{font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:12px!important;font-weight:800!important;letter-spacing:.16em!important;text-transform:uppercase!important;color:#fff!important;opacity:1!important;margin:0 0 14px!important;padding-left:12px!important;border-left:5px solid #000!important;line-height:1.1!important}

/* ---- CITY TILES: sharp white crates, red pins, hard offset, snap hover ---- */
#coverage .area-top-cities{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:10px!important;margin:0 0 30px!important}
#coverage .area-city-pill{display:flex!important;align-items:center!important;gap:9px!important;min-height:46px!important;padding:11px 14px!important;background:#fff!important;border:2px solid #000!important;border-radius:0!important;box-shadow:4px 4px 0 #000!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:15px!important;font-weight:700!important;letter-spacing:.01em!important;text-transform:uppercase!important;color:#000!important;text-decoration:none!important;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,color .12s ease!important}
#coverage .area-city-pill *{color:#000!important}
/* red location-pin marker (teardrop) instead of round dot */
#coverage .area-city-pill .area-city-pill-dot{flex:0 0 auto!important;width:11px!important;height:11px!important;background:#d5160c!important;border:0!important;border-radius:50% 50% 50% 0!important;transform:rotate(-45deg)!important;opacity:1!important;box-shadow:none!important}
#coverage .area-city-pill:hover,#coverage .area-city-pill:focus-visible{background:#d5160c!important;color:#fff!important;transform:translate(-2px,-2px)!important;box-shadow:6px 6px 0 #000!important;outline:none!important}
#coverage .area-city-pill:hover *,#coverage .area-city-pill:focus-visible *{color:#fff!important}
#coverage .area-city-pill:hover .area-city-pill-dot,#coverage .area-city-pill:focus-visible .area-city-pill-dot{background:#fff!important}
#coverage .area-city-pill:focus-visible{outline:3px solid #000!important;outline-offset:2px!important}
#coverage .area-city-pill:active{transform:translate(0,0)!important;box-shadow:2px 2px 0 #000!important}
/* "+ N more" tile reads as a black crate */
#coverage .area-city-pill.area-city-pill-more{background:#000!important;border:2px solid #000!important;color:#fff!important}
#coverage .area-city-pill.area-city-pill-more *{color:#fff!important}
#coverage .area-city-pill.area-city-pill-more .area-city-pill-dot{background:#d5160c!important}

/* ---- PRIMARY CTA: black crate button, snap hover ---- */
#coverage .area-cta-row{display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:16px!important;margin:0!important}
#coverage .area-cta-primary{display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:50px!important;background:#000!important;color:#fff!important;padding:14px 26px!important;border:2px solid #000!important;border-radius:0!important;box-shadow:5px 5px 0 #000!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:16px!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;text-decoration:none!important;transition:transform .12s ease,box-shadow .12s ease!important}
#coverage .area-cta-primary,#coverage .area-cta-primary *{color:#fff!important}
#coverage .area-cta-primary:hover,#coverage .area-cta-primary:focus-visible{transform:translate(-2px,-2px)!important;box-shadow:7px 7px 0 #000!important;outline:none!important}
#coverage .area-cta-primary:focus-visible{outline:3px solid #fff!important;outline-offset:3px!important}
#coverage .area-cta-primary:active{transform:translate(0,0)!important;box-shadow:2px 2px 0 #000!important}

/* ---- MAP CRATE: black border, hard shadow, sharp corners ---- */
#coverage .area-map-wrap{position:relative!important;border-radius:0!important;overflow:hidden!important;border:3px solid #000!important;box-shadow:8px 8px 0 #000!important;background:#000!important;min-height:520px!important}
#coverage .area-map-wrap #service-map{width:100%!important;height:520px!important;background:#9c9c9c!important;border-radius:0!important}
#coverage .area-map-badge{position:absolute!important;bottom:0!important;left:0!important;background:#000!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding:11px 18px!important;border-radius:0!important;border-top:3px solid #d5160c!important;border-right:3px solid #d5160c!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:13px!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;color:#fff!important;box-shadow:none!important;z-index:1000!important;pointer-events:none!important}
#coverage .area-map-badge *{color:#fff!important}

/* ---- DIVIDER ---- */
#coverage .area-divider{height:3px!important;background:#000!important;margin:48px 0!important;border:0!important;opacity:1!important}

/* ---- COMBO-CTA: recolor off-palette gradient -> black crate ---- */
#coverage .area-combo-cta{background:#000!important;background-image:none!important;border:3px solid #000!important;border-radius:0!important;box-shadow:8px 8px 0 #000!important;padding:36px 28px!important;max-width:680px!important;margin:48px auto 0!important;text-align:center!important}
#coverage .area-combo-cta p:first-child{font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;color:#d5160c!important;font-size:13px!important;font-weight:800!important;letter-spacing:.16em!important;text-transform:uppercase!important;margin:0 0 10px!important}
#coverage .area-combo-cta h3{font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;color:#fff!important;font-size:clamp(24px,3.4vw,30px)!important;font-weight:800!important;letter-spacing:-.005em!important;text-transform:uppercase!important;margin:0 0 12px!important;line-height:1!important}
#coverage .area-combo-cta>p:not(:first-child){font-family:var(--ff-body,"Barlow",sans-serif)!important;color:#fff!important;opacity:.9!important;font-size:15px!important;line-height:1.55!important;margin:0 0 22px!important}
#coverage .area-combo-cta a[href]{display:inline-flex!important;align-items:center!important;gap:8px!important;min-height:50px!important;background:#d5160c!important;background-image:none!important;color:#fff!important;padding:14px 28px!important;border:2px solid #fff!important;border-radius:0!important;box-shadow:5px 5px 0 #d5160c!important;font-family:var(--ff-display,"Barlow Semi Condensed",sans-serif)!important;font-size:16px!important;font-weight:800!important;letter-spacing:.06em!important;text-transform:uppercase!important;text-decoration:none!important;transition:transform .12s ease,box-shadow .12s ease!important}
#coverage .area-combo-cta a[href] *{color:#fff!important}
#coverage .area-combo-cta a[href]:hover,#coverage .area-combo-cta a[href]:focus-visible{transform:translate(-2px,-2px)!important;box-shadow:7px 7px 0 #d5160c!important;outline:none!important}
#coverage .area-combo-cta a[href]:focus-visible{outline:3px solid #fff!important;outline-offset:3px!important}
#coverage .area-combo-cta a[href]:active{transform:translate(0,0)!important;box-shadow:2px 2px 0 #d5160c!important}

/* ---- RESPONSIVE ---- */
@media(max-width:768px){
  #coverage.area-redesign{padding:64px 20px 72px!important}
  #coverage .area-title{font-size:clamp(34px,9vw,48px)!important}
  #coverage .area-stats{max-width:none!important;box-shadow:5px 5px 0 #000!important}
  #coverage .area-stat b{font-size:34px!important}
  #coverage .area-top-cities{grid-template-columns:repeat(2,1fr)!important}
  #coverage .area-map-wrap{min-height:380px!important;box-shadow:6px 6px 0 #000!important}
  #coverage .area-map-wrap #service-map{height:380px!important}
  #coverage .area-combo-cta{box-shadow:6px 6px 0 #000!important;padding:30px 22px!important}
}
@media(max-width:480px){
  #coverage .area-eyebrow{box-shadow:3px 3px 0 #000!important}
  #coverage .area-stats{flex-direction:column!important}
  #coverage .area-stat{border-right:0!important;border-bottom:2px solid #d5160c!important;text-align:center!important}
  #coverage .area-stat:last-child{border-bottom:0!important}
  #coverage .area-top-cities{grid-template-columns:1fr!important}
  #coverage .area-city-pill{box-shadow:3px 3px 0 #000!important}
  #coverage .area-cta-primary,#coverage .area-combo-cta a[href]{width:100%!important;justify-content:center!important}
}

/* --- SECTION: related --- */
/* SECTION: related — ELEVATION
   Intended look: White band, bold black "COMMON QUESTIONS, ANSWERED." header over a short
   red eyebrow + red rule. The 5 prose link-paragraphs become a 2-col grid of sharp, 2px black
   link-tiles (zero radius). Each tile shows its real anchor as an UPPERCASE Barlow Semi
   Condensed label in a red top bar with a red "→"; supporting prose sits below in grey. Hover
   lifts the tile with a hard red offset shadow and flips the bar fully red. Pure Milwaukee:
   sharp corners, 2px borders, hard offset shadows, red accents only.
   Contrast: forced by construction — header #000 on #fff; eyebrow #d5160c on #fff; tile label
   #fff on solid #d5160c bar (and stays #fff on hover); body copy #2b2b2b on #fff; arrow #fff
   on red. No dark-on-dark or light-on-light anywhere. */

#cluster1-related-services{
  background:#ffffff !important;
  border-top:2px solid #000 !important;
  padding:clamp(48px,6vw,84px) clamp(20px,5vw,32px) !important;
}

/* Widen the column so two tiles fit comfortably */
#cluster1-related-services > div{
  max-width:1040px !important;
  margin:0 auto !important;
}

/* ── Header: red eyebrow + bold black headline + red rule ── */
#cluster1-related-services .eyebrow{
  display:inline-block !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:13px !important;
  font-weight:700 !important;
  letter-spacing:.16em !important;
  text-transform:uppercase !important;
  color:#fff !important;
  background:#d5160c !important;
  padding:5px 12px !important;
  border-radius:0 !important;
  margin:0 0 16px !important;
}

#cluster1-related-services h2{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:clamp(28px,4vw,46px) !important;
  font-weight:700 !important;
  line-height:.98 !important;
  text-transform:uppercase !important;
  letter-spacing:-.01em !important;
  color:#000 !important;
  margin:0 0 14px !important;
  position:relative !important;
  padding-bottom:18px !important;
}
#cluster1-related-services h2::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:64px !important;
  height:5px !important;
  background:#d5160c !important;
}

/* ── Tiles: each link-paragraph becomes a bordered card ── */
#cluster1-related-services > div{
  display:grid !important;
  grid-template-columns:repeat(2,1fr) !important;
  gap:18px !important;
  align-items:stretch !important;
}
/* eyebrow + h2 span the full grid width */
#cluster1-related-services .eyebrow,
#cluster1-related-services h2{
  grid-column:1 / -1 !important;
}

#cluster1-related-services p:not(.eyebrow){
  position:relative !important;
  display:block !important;
  margin:0 !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  padding:54px 22px 24px !important;            /* top room for the red label bar */
  font-family:"Barlow",sans-serif !important;
  font-size:15px !important;
  line-height:1.6 !important;
  color:#2b2b2b !important;
  box-shadow:0 0 0 #d5160c !important;          /* base for hover offset shadow */
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease !important;
}

/* Red top accent bar on every tile (where the anchor label rides) */
#cluster1-related-services p:not(.eyebrow)::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:0 !important;
  border-top:6px solid #d5160c !important;
  background:transparent !important;
}

/* ── The real anchor → uppercase condensed label with red arrow ── */
#cluster1-related-services p:not(.eyebrow) a{
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-height:44px !important;
  padding:0 16px !important;
  background:#d5160c !important;
  color:#fff !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:14.5px !important;
  font-weight:700 !important;
  letter-spacing:.05em !important;
  line-height:1.12 !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  border:0 !important;
  transition:background .14s ease,color .14s ease !important;
}
#cluster1-related-services p:not(.eyebrow) a::after{
  content:"\2192" !important;                   /* → */
  flex:0 0 auto !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  font-size:18px !important;
  color:#fff !important;
  transform:translateX(0) !important;
  transition:transform .14s ease !important;
}

/* ── Hover / focus: lift + hard red offset shadow ── */
#cluster1-related-services p:not(.eyebrow):hover,
#cluster1-related-services p:not(.eyebrow):focus-within{
  transform:translate(-3px,-3px) !important;
  box-shadow:7px 7px 0 #d5160c !important;
  border-color:#000 !important;
}
#cluster1-related-services p:not(.eyebrow):hover a::after,
#cluster1-related-services p:not(.eyebrow):focus-within a::after{
  transform:translateX(4px) !important;
}

/* Keyboard focus ring on the anchor itself */
#cluster1-related-services p:not(.eyebrow) a:focus-visible{
  outline:3px solid #000 !important;
  outline-offset:2px !important;
}

/* ── Responsive ── */
@media (max-width:768px){
  #cluster1-related-services > div{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  #cluster1-related-services p:not(.eyebrow){
    padding:52px 18px 22px !important;
    font-size:14.5px !important;
  }
  #cluster1-related-services p:not(.eyebrow) a{
    font-size:13.5px !important;
  }
}
@media (max-width:480px){
  #cluster1-related-services h2{
    font-size:clamp(26px,8vw,34px) !important;
  }
  #cluster1-related-services p:not(.eyebrow) a{
    padding:0 12px !important;
    letter-spacing:.03em !important;
  }
}

/* --- SECTION: contact-info --- */
/* SECTION: contact-info (left panel only) — ELEVATION
   Intended look: A huge, confident uppercase Barlow Semi Condensed headline ("LET'S TAKE / A LOOK.")
   on white, with a short red eyebrow tab and a thick red underline rule cutting across the last word.
   The three contact methods become sharp Milwaukee tool-crate tiles: 2px solid black border, hard
   offset black shadow, a square red icon badge (white glyph) at left, and a label/value hierarchy
   (tiny grey uppercase label over a heavy black value). Hover lifts the tile and flips the shadow red.
   Contrast: white panel -> black headline/values + #6b6b6b grey body/label (all dark-on-light, AA+).
   Red eyebrow & red icon badge always carry WHITE text/glyph (light-on-red, forced). Tiles stay
   white-bg with black text so no dark-on-dark ever occurs. Every property is !important. Scoped to
   #contact left column (.contact-inner > div:first-child) + .way info cards; form untouched. */

/* ---- Left column container (left panel only; never the form card) ---- */
#contact .contact-inner > div:first-child {
  position: relative !important;
}

/* ---- Eyebrow: sharp red tool tab ---- */
#contact .contact-inner > div:first-child .eyebrow {
  display: inline-block !important;
  background: #d5160c !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  padding: 7px 12px 8px !important;
  border-radius: 0 !important;
  margin: 0 0 22px !important;
  box-shadow: 4px 4px 0 #000 !important;
}

/* ---- Headline: huge confident condensed, red rule under last word ---- */
#contact .contact-inner > div:first-child .h2 {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  color: #000 !important;
  font-size: clamp(52px, 6vw, 88px) !important;
  line-height: .9 !important;
  letter-spacing: -.01em !important;
  margin: 0 0 4px !important;
  position: relative !important;
}
/* red underline accent beneath the headline block */
#contact .contact-inner > div:first-child .h2::after {
  content: "" !important;
  display: block !important;
  width: 96px !important;
  height: 8px !important;
  background: #d5160c !important;
  margin: 18px 0 0 !important;
}

/* ---- Intro body ---- */
#contact .contact-inner > div:first-child .body-lg {
  font-family: "Barlow", sans-serif !important;
  color: #565656 !important;
  font-size: 16.5px !important;
  line-height: 1.6 !important;
  font-weight: 400 !important;
  margin-top: 22px !important;
  max-width: 400px !important;
}

/* ---- Info cards wrapper ---- */
#contact .contact-ways {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  margin-top: 34px !important;
  max-width: 440px !important;
}

/* ---- Tool-crate tile ---- */
#contact .contact-ways .way {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 16px 18px !important;
  min-height: 64px !important;
  text-decoration: none !important;
  box-shadow: 5px 5px 0 #000 !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease !important;
}
#contact .contact-ways a.way:hover,
#contact .contact-ways a.way:focus-visible {
  transform: translate(-3px, -3px) !important;
  box-shadow: 8px 8px 0 #d5160c !important;
  border-color: #000 !important;
  outline: none !important;
}
#contact .contact-ways a.way:focus-visible {
  outline: 3px solid #d5160c !important;
  outline-offset: 3px !important;
}

/* ---- Red square icon badge (white glyph) ---- */
#contact .contact-ways .way .way-ic {
  flex: 0 0 auto !important;
  width: 46px !important;
  height: 46px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #d5160c !important;
  color: #fff !important;
  border-radius: 0 !important;
  font-size: 20px !important;
  line-height: 1 !important;
  /* render emoji glyph in solid white for guaranteed contrast on red */
  filter: grayscale(1) brightness(0) invert(1) !important;
}

/* ---- Label / value hierarchy ---- */
#contact .contact-ways .way .way-label {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important;
  letter-spacing: .14em !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  color: #7a7a7a !important;
  line-height: 1 !important;
  margin-bottom: 5px !important;
}
#contact .contact-ways .way .way-val {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 19px !important;
  letter-spacing: .005em !important;
  color: #000 !important;
  line-height: 1.1 !important;
  word-break: break-word !important;
}

/* ---- Responsive: tablet/mobile ---- */
@media (max-width: 768px) {
  #contact .contact-inner > div:first-child .h2 {
    font-size: clamp(46px, 13vw, 66px) !important;
  }
  #contact .contact-inner > div:first-child .h2::after {
    width: 72px !important;
    height: 7px !important;
    margin-top: 14px !important;
  }
  #contact .contact-inner > div:first-child .body-lg {
    font-size: 16px !important;
    max-width: 100% !important;
  }
  #contact .contact-ways {
    max-width: 100% !important;
    margin-top: 26px !important;
  }
  /* reduce shadow throw so tiles don't overflow on small screens */
  #contact .contact-ways .way {
    box-shadow: 4px 4px 0 #000 !important;
  }
  #contact .contact-ways a.way:hover,
  #contact .contact-ways a.way:focus-visible {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 #d5160c !important;
  }
}

@media (max-width: 480px) {
  #contact .contact-inner > div:first-child .eyebrow {
    font-size: 11px !important;
    margin-bottom: 18px !important;
  }
  #contact .contact-ways .way {
    padding: 14px 14px !important;
    gap: 13px !important;
  }
  #contact .contact-ways .way .way-ic {
    width: 42px !important;
    height: 42px !important;
    font-size: 18px !important;
  }
  #contact .contact-ways .way .way-val {
    font-size: 17px !important;
  }
}

/* --- SECTION: contact-form --- */
/* SECTION: contact-form — ELEVATION
   Intended look: A tool-crate multi-step lead form. Square white card on a 2px black
   frame with a hard red offset shadow. A bold red SEGMENTED step-progress bar (4 chunky
   cells, filled cells solid #d5160c). Option cards are sharp 2px-black-bordered white
   tiles that snap to solid red + white text on hover/check, with a red corner notch.
   Inputs are white with dark text, 2px black borders that turn red with a red focus ring.
   The primary button is a solid-red, uppercase, condensed slab that lifts on hover
   (offset black shadow). Back button is a ghost black-bordered slab.
   Contrast: every field forces #111 text on #fff. Labels/eyebrow/headline forced near-black.
   Checked/hover option tiles force #fff text + icon on red. Red button forces #fff label.
   Trust/summary text forced to dark-on-light. Nothing inherits a dark-on-dark trap.
   Scoped: every selector begins with #contact. Responsive: 768px + 480px. */

/* ---- CARD SHELL (the form card only — left info column untouched) ---- */
#contact .form-card-v4 {
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 10px 10px 0 #000 !important;
  padding: 30px 30px 26px !important;
  position: relative !important;
  overflow: hidden !important;
}
#contact .form-card-v4::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  height: 6px !important;
  background: #d5160c !important;
  z-index: 2 !important;
}

/* ---- STEP PROGRESS: chunky red segmented bar ---- */
#contact .fw-progress { margin: 8px 0 22px !important; }
#contact .fw-progress-bar {
  position: relative !important;
  height: 12px !important;
  background: repeating-linear-gradient(
      to right,
      #e6e6e6 0, #e6e6e6 calc(25% - 4px),
      #fff calc(25% - 4px), #fff 25%) !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-shadow: 3px 3px 0 rgba(0,0,0,.18) !important;
}
#contact .fw-progress-fill {
  height: 100% !important;
  background: #d5160c !important;
  border-radius: 0 !important;
  transition: width .35s cubic-bezier(.2,.7,.3,1) !important;
  box-shadow: none !important;
  /* hard segment seams over the red fill */
  -webkit-mask: none !important; mask: none !important;
}
#contact .fw-progress-fill::after {
  content: "" !important;
  position: absolute !important; inset: 0 !important;
  background-image:
    linear-gradient(to right, transparent 0, transparent calc(25% - 2px), #000 calc(25% - 2px), #000 25%),
    linear-gradient(to right, transparent 0, transparent calc(50% - 2px), #000 calc(50% - 2px), #000 50%),
    linear-gradient(to right, transparent 0, transparent calc(75% - 2px), #000 calc(75% - 2px), #000 75%) !important;
  pointer-events: none !important;
}
#contact .fw-step-label {
  margin-top: 9px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  font-size: 12.5px !important;
  color: #111 !important;
}
#contact .fw-step-label [data-fw-current],
#contact .fw-step-label [data-fw-step-label] { color: #d5160c !important; font-weight: 800 !important; }

/* ---- STEP INTRO TEXT ---- */
#contact .fw-step { animation: none !important; }
#contact .form-eyebrow {
  display: inline-flex !important; align-items: center !important; gap: 7px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .1em !important;
  font-weight: 700 !important; font-size: 11px !important;
  color: #d5160c !important;
  background: #fff !important;
  border: 2px solid #d5160c !important;
  padding: 4px 10px !important;
  border-radius: 0 !important;
  margin-bottom: 12px !important;
}
#contact .form-eyebrow .form-dot {
  width: 7px !important; height: 7px !important; border-radius: 0 !important;
  background: #d5160c !important; flex: none !important;
}
#contact .form-headline {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: -.01em !important;
  font-weight: 800 !important;
  font-size: clamp(22px, 3vw, 28px) !important;
  line-height: 1.02 !important;
  color: #000 !important;
  margin: 0 0 6px !important;
}
#contact .form-lede {
  font-family: "Barlow", sans-serif !important;
  color: #3a3a3a !important;
  font-size: 14.5px !important;
  line-height: 1.45 !important;
  margin: 0 0 18px !important;
  max-width: 42ch !important;
}

/* ---- OPTION CARDS (Roof repair / Full replacement / …) ---- */
#contact .fw-options,
#contact .fw-options-six {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
  margin-bottom: 22px !important;
}
#contact .fw-option {
  position: relative !important;
  display: flex !important; align-items: center !important; gap: 12px !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 14px 14px !important;
  min-height: 64px !important;
  cursor: pointer !important;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease !important;
  box-shadow: 4px 4px 0 rgba(0,0,0,.14) !important;
}
#contact .fw-option input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
#contact .fw-option .fw-option-icon {
  flex: none !important;
  width: 40px !important; height: 40px !important;
  display: grid !important; place-items: center !important;
  background: #f3f3f3 !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  color: #000 !important;
  transition: background-color .12s ease, color .12s ease, border-color .12s ease !important;
}
#contact .fw-option .fw-option-icon svg { stroke: currentColor !important; }
#contact .fw-option .fw-option-label {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .01em !important;
  font-weight: 700 !important; font-size: 15px !important;
  color: #111 !important; line-height: 1.05 !important;
}
#contact .fw-option .fw-option-sub {
  font-family: "Barlow", sans-serif !important;
  font-size: 12px !important; color: #6a6a6a !important; margin-top: 2px !important;
}
/* hover */
#contact .fw-option:hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 6px 6px 0 #d5160c !important;
  border-color: #000 !important;
}
#contact .fw-option:hover .fw-option-icon { background: #d5160c !important; color: #fff !important; border-color: #000 !important; }
/* checked = solid red tile, white text */
#contact .fw-option:has(input:checked) {
  background: #d5160c !important;
  border-color: #000 !important;
  box-shadow: 5px 5px 0 #000 !important;
  transform: translate(-1px, -1px) !important;
}
#contact .fw-option:has(input:checked) .fw-option-icon { background: #fff !important; color: #d5160c !important; border-color: #fff !important; }
#contact .fw-option:has(input:checked) .fw-option-label { color: #fff !important; }
#contact .fw-option:has(input:checked) .fw-option-sub { color: rgba(255,255,255,.9) !important; }
/* checked corner notch */
#contact .fw-option:has(input:checked)::after {
  content: "" !important;
  position: absolute !important; top: 0 !important; right: 0 !important;
  border-width: 0 18px 18px 0 !important;
  border-style: solid !important;
  border-color: transparent #fff transparent transparent !important;
}
/* keyboard focus ring */
#contact .fw-option:has(input:focus-visible) {
  outline: 3px solid #d5160c !important;
  outline-offset: 2px !important;
}

/* ---- COMPACT OPTIONS (step 3: how did you hear) ---- */
#contact .fw-options-compact {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  margin-bottom: 22px !important;
}
#contact .fw-option-icon-mini {
  position: relative !important;
  display: flex !important; align-items: center !important; gap: 10px !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 11px 12px !important;
  min-height: 44px !important;
  cursor: pointer !important;
  box-shadow: 3px 3px 0 rgba(0,0,0,.12) !important;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease !important;
}
#contact .fw-option-icon-mini input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
#contact .fw-option-icon-mini .fw-mini-svg {
  flex: none !important;
  width: 30px !important; height: 30px !important;
  display: grid !important; place-items: center !important;
  background: #f3f3f3 !important;
  border: 2px solid #000 !important;
  color: #000 !important;
  transition: background-color .12s ease, color .12s ease !important;
}
#contact .fw-option-icon-mini .fw-mini-svg svg { stroke: currentColor !important; }
#contact .fw-option-icon-mini .fw-mini-label {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .02em !important;
  font-weight: 600 !important; font-size: 13px !important;
  color: #111 !important; line-height: 1.05 !important;
}
#contact .fw-option-icon-mini:hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 5px 5px 0 #d5160c !important;
}
#contact .fw-option-icon-mini:hover .fw-mini-svg { background: #d5160c !important; color: #fff !important; }
#contact .fw-option-icon-mini:has(input:checked) {
  background: #d5160c !important;
  box-shadow: 4px 4px 0 #000 !important;
}
#contact .fw-option-icon-mini:has(input:checked) .fw-mini-svg { background: #fff !important; color: #d5160c !important; border-color: #fff !important; }
#contact .fw-option-icon-mini:has(input:checked) .fw-mini-label { color: #fff !important; }
#contact .fw-option-icon-mini:has(input:focus-visible) {
  outline: 3px solid #d5160c !important;
  outline-offset: 2px !important;
}

/* ---- TEXT FIELDS: sharp, high contrast, red focus ring ---- */
#contact .form-field { margin-bottom: 14px !important; }
#contact .form-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}
#contact .form-field label {
  display: block !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .07em !important;
  font-weight: 700 !important; font-size: 12px !important;
  color: #111 !important;
  margin-bottom: 6px !important;
}
#contact .form-field .form-optional {
  text-transform: none !important; letter-spacing: 0 !important;
  font-weight: 500 !important; color: #8a8a8a !important; font-family: "Barlow", sans-serif !important;
}
#contact .form-field input,
#contact .form-field textarea {
  width: 100% !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 15px !important;
  color: #111 !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 12px 13px !important;
  box-shadow: inset 0 0 0 0 rgba(0,0,0,0) !important;
  transition: border-color .12s ease, box-shadow .12s ease !important;
  -webkit-appearance: none !important; appearance: none !important;
}
#contact .form-field textarea { resize: vertical !important; min-height: 64px !important; }
#contact .form-field input::placeholder,
#contact .form-field textarea::placeholder { color: #9c9c9c !important; opacity: 1 !important; }
#contact .form-field input:hover,
#contact .form-field textarea:hover { border-color: #333 !important; }
#contact .form-field input:focus,
#contact .form-field textarea:focus,
#contact .form-field input:focus-visible,
#contact .form-field textarea:focus-visible {
  outline: none !important;
  border-color: #d5160c !important;
  box-shadow: 0 0 0 3px rgba(213,22,12,.28) !important;
}
/* invalid / error */
#contact .form-field input:not(:placeholder-shown):invalid { border-color: #d5160c !important; }
#contact .fw-error-msg {
  display: none !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 12.5px !important; font-weight: 600 !important;
  color: #d5160c !important;
  margin-top: 6px !important;
}
#contact .fw-error-msg.is-visible,
#contact .form-field.fw-has-error .fw-error-msg { display: block !important; }
#contact .form-field.fw-has-error input { border-color: #d5160c !important; box-shadow: 0 0 0 3px rgba(213,22,12,.28) !important; }

/* ---- BUTTONS ---- */
#contact .fw-nav {
  display: flex !important; align-items: center !important; gap: 12px !important;
  margin-top: 4px !important;
}
/* primary: solid red slab, uppercase condensed, hard lift */
#contact .form-submit-v2 {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 9px !important;
  width: 100% !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .04em !important;
  font-weight: 800 !important; font-size: 16px !important;
  color: #fff !important;
  background: #d5160c !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 15px 20px !important;
  min-height: 52px !important;
  cursor: pointer !important;
  box-shadow: 5px 5px 0 #000 !important;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease !important;
  -webkit-appearance: none !important; appearance: none !important;
}
#contact .form-submit-v2 svg { stroke: #fff !important; }
#contact .form-submit-v2:hover {
  background: #b9120a !important;
  transform: translate(-2px, -2px) !important;
  box-shadow: 7px 7px 0 #000 !important;
}
#contact .form-submit-v2:active {
  transform: translate(2px, 2px) !important;
  box-shadow: 2px 2px 0 #000 !important;
}
#contact .form-submit-v2:focus-visible {
  outline: 3px solid #000 !important;
  outline-offset: 3px !important;
}
/* in a nav row, primary keeps growing, back stays compact */
#contact .fw-nav .form-submit-v2 { flex: 1 1 auto !important; }

/* back: ghost black slab */
#contact .fw-back {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 7px !important;
  flex: 0 0 auto !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .05em !important;
  font-weight: 700 !important; font-size: 14px !important;
  color: #000 !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 13px 16px !important;
  min-height: 52px !important;
  cursor: pointer !important;
  transition: background-color .12s ease, color .12s ease, box-shadow .12s ease !important;
  -webkit-appearance: none !important; appearance: none !important;
}
#contact .fw-back svg { stroke: currentColor !important; }
#contact .fw-back:hover { background: #000 !important; color: #fff !important; }
#contact .fw-back:hover svg { stroke: #fff !important; }
#contact .fw-back:focus-visible { outline: 3px solid #d5160c !important; outline-offset: 2px !important; }

/* ---- TRUST BAND + SUMMARY + FOOTER (dark-on-light, forced) ---- */
#contact .form-trust-band-v2 {
  display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 10px !important;
  background: #f6f6f6 !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 10px 12px !important;
  margin: 4px 0 16px !important;
}
#contact .form-trust-band-v2 .ftb-stars { display: inline-flex !important; align-items: center !important; gap: 6px !important; color: #111 !important; font-family: "Barlow", sans-serif !important; font-size: 13px !important; }
#contact .form-trust-band-v2 .ftb-star-icons { color: #d5160c !important; letter-spacing: 1px !important; }
#contact .form-trust-band-v2 .ftb-stars strong { color: #000 !important; font-weight: 800 !important; }
#contact .form-trust-band-v2 .ftb-count { color: #6a6a6a !important; }
#contact .form-trust-band-v2 .ftb-divider { width: 2px !important; height: 16px !important; background: #000 !important; }
#contact .form-trust-band-v2 .ftb-pill {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; font-size: 11.5px !important;
  color: #fff !important; background: #d5160c !important; border: 2px solid #000 !important;
  padding: 3px 8px !important; border-radius: 0 !important;
}
#contact .form-trust-band-v2 .ftb-pill svg { stroke: #fff !important; }

#contact .fw-summary {
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 12px 13px !important;
  margin-bottom: 16px !important;
  box-shadow: 4px 4px 0 rgba(0,0,0,.12) !important;
}
#contact .fw-summary-h {
  display: flex !important; align-items: center !important; gap: 7px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  text-transform: uppercase !important; letter-spacing: .05em !important; font-weight: 700 !important; font-size: 12px !important;
  color: #111 !important; margin-bottom: 8px !important;
}
#contact .fw-summary-h-ico { display: grid !important; place-items: center !important; width: 20px !important; height: 20px !important; background: #d5160c !important; color: #fff !important; border: 2px solid #000 !important; }
#contact .fw-summary-h-ico svg { stroke: #fff !important; }
#contact .fw-summary-list { margin: 0 !important; display: grid !important; grid-template-columns: auto 1fr !important; gap: 4px 12px !important; }
#contact .fw-summary-list dt { font-family: "Barlow Semi Condensed", sans-serif !important; text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; font-size: 11.5px !important; color: #8a8a8a !important; }
#contact .fw-summary-list dd { margin: 0 !important; font-family: "Barlow", sans-serif !important; font-weight: 600 !important; font-size: 13.5px !important; color: #111 !important; }
#contact .fw-summary-edit {
  display: inline-flex !important; align-items: center !important; gap: 5px !important;
  margin-top: 9px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important; text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; font-size: 11.5px !important;
  color: #d5160c !important; background: #fff !important; border: 2px solid #d5160c !important; border-radius: 0 !important; padding: 5px 9px !important; cursor: pointer !important;
  transition: background-color .12s ease, color .12s ease !important;
}
#contact .fw-summary-edit svg { stroke: currentColor !important; }
#contact .fw-summary-edit:hover { background: #d5160c !important; color: #fff !important; }
#contact .fw-summary-edit:hover svg { stroke: #fff !important; }
#contact .fw-summary-edit:focus-visible { outline: 3px solid #000 !important; outline-offset: 2px !important; }

#contact .form-footer-note {
  font-family: "Barlow", sans-serif !important;
  font-size: 12px !important; color: #6a6a6a !important;
  text-align: center !important; margin: 14px 0 10px !important;
}

/* secondary call/quote links — keep on-palette, sharp, legible */
#contact .form-call-alt-v2 {
  display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important;
  font-family: "Barlow", sans-serif !important; font-size: 13.5px !important; font-weight: 600 !important;
  color: #111 !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 11px 14px !important; min-height: 44px !important;
  margin-top: 8px !important;
  transition: background-color .12s ease, color .12s ease, box-shadow .12s ease !important;
}
#contact .form-call-alt-v2 svg { stroke: currentColor !important; }
#contact .form-call-alt-v2 strong { color: #d5160c !important; font-weight: 800 !important; }
#contact .form-call-alt-v2:hover { box-shadow: 4px 4px 0 #000 !important; transform: translate(-1px,-1px) !important; }
#contact .form-call-alt-v2:focus-visible { outline: 3px solid #d5160c !important; outline-offset: 2px !important; }
/* neutralize the inline amber 2nd link → on-palette */
#contact a.form-call-alt-v2[href="/instant-quote/"] {
  background: #fff !important; border-color: #000 !important; color: #111 !important;
}
#contact a.form-call-alt-v2[href="/instant-quote/"] strong { color: #d5160c !important; }

/* ---- RESPONSIVE ---- */
@media (max-width: 768px) {
  #contact .form-card-v4 { padding: 22px 18px 20px !important; box-shadow: 7px 7px 0 #000 !important; }
  #contact .fw-options,
  #contact .fw-options-six,
  #contact .fw-options-compact { grid-template-columns: 1fr !important; }
  #contact .form-row { grid-template-columns: 1fr !important; }
  #contact .form-headline { font-size: 22px !important; }
  #contact .fw-option { min-height: 60px !important; }
}

@media (max-width: 480px) {
  #contact .form-card-v4 { padding: 18px 14px 18px !important; box-shadow: 5px 5px 0 #000 !important; }
  #contact .fw-nav { flex-direction: column-reverse !important; align-items: stretch !important; }
  #contact .fw-nav .fw-back,
  #contact .fw-nav .form-submit-v2 { width: 100% !important; }
  #contact .form-submit-v2 { font-size: 15px !important; padding: 14px 16px !important; }
  #contact .form-step-label,
  #contact .fw-step-label { font-size: 11.5px !important; }
}

/* --- SECTION: faq --- */
/* SECTION: faq — ELEVATION
   Intended look: A confident black FAQ band. Centered header with a short red eyebrow rule
   ("COMMON QUESTIONS") above a heavy uppercase condensed white headline. Below, a stack of
   sharp zero-radius accordion rows: white card, 2px black border + 6px hard black offset shadow.
   Each summary is bold uppercase condensed in ink-black, with a square red +/− toggle box that
   flips to a minus and shadow-snaps inward when open. Open/hover rows gain a red top hairline +
   red border + red offset shadow. Answers sit on a faint grey inset panel with clean Barlow body.
   Contrast: header band is black -> eyebrow forced #fff on red chip, headline #fff, subcopy #c9c9c9.
   Rows are white -> summary text #111, answer text #2a2a2a, <strong> #d5160c, toggle glyph #fff on
   red box. No dark-on-dark or light-on-light anywhere; every text color is explicitly set. */

/* ---- BAND ---- */
section.faq-homepage#faq,
.faq-homepage#faq {
  background: #000 !important;
  border-top: 2px solid #d5160c !important;
  border-bottom: 2px solid #d5160c !important;
  padding: 84px 0 92px !important;
  position: relative !important;
}

/* ---- HEADER ---- */
.faq-homepage#faq .sec-hdr {
  margin-bottom: 44px !important;
}

.faq-homepage#faq .sec-hdr .eyebrow {
  display: inline-block !important;
  background: #d5160c !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  line-height: 1 !important;
  padding: 7px 14px 6px !important;
  margin: 0 0 18px !important;
  border-radius: 0 !important;
  box-shadow: 4px 4px 0 #fff !important;
}

.faq-homepage#faq .sec-hdr .h-lg {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  color: #fff !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: -.01em !important;
  line-height: .98 !important;
  font-size: clamp(30px, 5vw, 50px) !important;
  margin: 0 !important;
}

.faq-homepage#faq .sec-hdr .b-md {
  color: #c9c9c9 !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 16px !important;
  line-height: 1.5 !important;
  margin-top: 14px !important;
}
.faq-homepage#faq .sec-hdr .b-md strong { color: #fff !important; }

/* ---- LIST ---- */
.faq-homepage#faq .faq-list {
  gap: 14px !important;
}

/* ---- ROW ---- */
.faq-homepage#faq .faq-item {
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 6px 6px 0 #000 !important;
  position: relative !important;
  overflow: hidden !important;
  transition: box-shadow .15s ease, border-color .15s ease, transform .15s ease !important;
}

/* red top hairline that reveals on hover/open */
.faq-homepage#faq .faq-item::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: #d5160c !important;
  transform: scaleX(0) !important;
  transform-origin: left !important;
  transition: transform .2s ease !important;
  z-index: 2 !important;
}

.faq-homepage#faq .faq-item:hover {
  border-color: #d5160c !important;
  box-shadow: 6px 6px 0 #d5160c !important;
  transform: translate(-1px, -1px) !important;
}
.faq-homepage#faq .faq-item:hover::before { transform: scaleX(1) !important; }

.faq-homepage#faq .faq-item[open] {
  border-color: #d5160c !important;
  box-shadow: 4px 4px 0 #d5160c !important;
}
.faq-homepage#faq .faq-item[open]::before { transform: scaleX(1) !important; }

/* ---- SUMMARY (question) ---- */
.faq-homepage#faq .faq-summary {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 16px !important;
  list-style: none !important;
  cursor: pointer !important;
  padding: 20px 22px !important;
  min-height: 44px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .005em !important;
  font-size: clamp(15px, 2vw, 18px) !important;
  line-height: 1.2 !important;
  color: #111 !important;
  background: #fff !important;
  user-select: none !important;
  transition: color .15s ease !important;
}
.faq-homepage#faq .faq-summary::-webkit-details-marker { display: none !important; }
.faq-homepage#faq .faq-summary::marker { content: "" !important; }

.faq-homepage#faq .faq-item:hover .faq-summary,
.faq-homepage#faq .faq-item[open] .faq-summary {
  color: #000 !important;
}

.faq-homepage#faq .faq-summary:focus-visible {
  outline: 3px solid #d5160c !important;
  outline-offset: -3px !important;
}

/* ---- TOGGLE GLYPH (square red +/−) ---- */
.faq-homepage#faq .faq-chev {
  flex: 0 0 auto !important;
  width: 34px !important;
  height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 26px !important;
  line-height: 1 !important;
  color: #fff !important;
  background: #d5160c !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 2px 2px 0 #000 !important;
  transition: transform .2s ease, box-shadow .15s ease, background .15s ease !important;
  /* hide the literal "+" text; we draw +/− via pseudo bars for a clean flip */
  font-size: 0 !important;
  position: relative !important;
}
/* horizontal bar (always present) */
.faq-homepage#faq .faq-chev::before {
  content: "" !important;
  position: absolute !important;
  width: 16px !important;
  height: 3px !important;
  background: #fff !important;
}
/* vertical bar (present when closed, collapses on open => + turns to −) */
.faq-homepage#faq .faq-chev::after {
  content: "" !important;
  position: absolute !important;
  width: 3px !important;
  height: 16px !important;
  background: #fff !important;
  transition: transform .2s ease, opacity .2s ease !important;
}

.faq-homepage#faq .faq-item:hover .faq-chev {
  box-shadow: 2px 2px 0 #d5160c !important;
}

.faq-homepage#faq .faq-item[open] .faq-chev {
  background: #000 !important;
  border-color: #d5160c !important;
  box-shadow: 2px 2px 0 #d5160c !important;
  transform: rotate(180deg) !important;
}
.faq-homepage#faq .faq-item[open] .faq-chev::after {
  transform: scaleY(0) !important;
  opacity: 0 !important;
}

/* ---- ANSWER ---- */
.faq-homepage#faq .faq-answer {
  font-family: "Barlow", sans-serif !important;
  color: #2a2a2a !important;
  font-size: 15.5px !important;
  line-height: 1.62 !important;
  padding: 4px 22px 22px !important;
  margin: 0 18px 18px !important;
  background: #f4f4f6 !important;
  border-left: 3px solid #d5160c !important;
  padding-left: 18px !important;
  padding-top: 16px !important;
}
.faq-homepage#faq .faq-answer strong { color: #d5160c !important; font-weight: 700 !important; }
.faq-homepage#faq .faq-answer a { color: #d5160c !important; text-decoration: underline !important; }

/* ---- RESPONSIVE ---- */
@media (max-width: 768px) {
  section.faq-homepage#faq,
  .faq-homepage#faq { padding: 60px 0 66px !important; }

  .faq-homepage#faq .sec-hdr { margin-bottom: 32px !important; }

  .faq-homepage#faq .faq-item { box-shadow: 4px 4px 0 #000 !important; }
  .faq-homepage#faq .faq-item:hover { box-shadow: 4px 4px 0 #d5160c !important; }
  .faq-homepage#faq .faq-item[open] { box-shadow: 3px 3px 0 #d5160c !important; }

  .faq-homepage#faq .faq-summary {
    padding: 16px 16px !important;
    gap: 12px !important;
    font-size: 15px !important;
  }
  .faq-homepage#faq .faq-chev {
    width: 30px !important;
    height: 30px !important;
  }
  .faq-homepage#faq .faq-answer {
    margin: 0 14px 14px !important;
    padding: 14px 16px 18px 16px !important;
    padding-left: 16px !important;
    font-size: 15px !important;
  }
}

@media (max-width: 480px) {
  .faq-homepage#faq .sec-hdr .eyebrow { box-shadow: 3px 3px 0 #fff !important; }
  .faq-homepage#faq .faq-summary { font-size: 14px !important; }
}

/* --- SECTION: blog --- */
/* SECTION: blog (.blog-redesign) — ELEVATION
   Intended look: The red "From the blog" band stays, but each article preview becomes a
   bold Milwaukee tool-crate: solid WHITE card, 2px solid black border, zero-radius corners,
   hard 8px BLACK offset shadow that snaps RED and lifts up/left on hover/focus. Each card
   carries a solid-RED uppercase category tag (top-left, hard 3px black offset), a heavy
   Barlow Semi Condensed uppercase near-black headline, a grey date · read-time meta line
   (CSS-generated, sharp red square bullet), dark body copy, and a RED "READ MORE →" footer
   affordance with a top hairline rule + arrow that drives right on hover. Section header
   gets a short RED eyebrow rule + huge condensed white title. Guide pills become sharp
   white-on-black crate chips with red square markers; the bottom CTA is one dominant red
   button with a hard black offset.
   Contrast: Section band is RED — header eyebrow/title/lead forced to #fff / #fff / rgba
   white. Cards are WHITE — every child (tag is white-on-red, headline #0a0a0a, meta #6e6e6e,
   desc #2a2a2a, "read more" #d5160c) is forced for guaranteed contrast; nothing inherits.
   Guide pills are white text on solid black. Never light-on-light or dark-on-dark.
   Scoped: every selector starts with .blog-redesign. Responsive: 768px + 480px. Hover +
   :focus-visible states; tap targets >=44px; no layout shift (transforms/pseudo only). */

/* ============ SECTION BAND ============ */
.blog-redesign {
  background: #d5160c !important;
  border-radius: 0 !important;
}

.blog-redesign .blog-inner {
  border-radius: 0 !important;
}

/* ---- HEADER ---- */
.blog-redesign .blog-header {
  position: relative !important;
  text-align: left !important;
  margin-bottom: 40px !important;
}

/* red eyebrow gets a hard white rule cap so it reads as a tool label on the red band */
.blog-redesign .blog-eyebrow {
  display: inline-block !important;
  position: relative !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.22em !important;
  text-transform: uppercase !important;
  margin: 0 0 14px 0 !important;
  padding-left: 52px !important;
}
.blog-redesign .blog-eyebrow::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  width: 40px !important;
  height: 4px !important;
  background: #000 !important;
  transform: translateY(-50%) !important;
}

.blog-redesign .blog-title {
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: clamp(38px, 5.4vw, 64px) !important;
  line-height: 0.95 !important;
  letter-spacing: -0.01em !important;
  text-transform: uppercase !important;
  margin: 0 0 14px 0 !important;
  text-shadow: 3px 3px 0 #000 !important;
}

.blog-redesign .blog-lead {
  color: rgba(255, 255, 255, 0.92) !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 17px !important;
  line-height: 1.5 !important;
  max-width: 620px !important;
  margin: 0 !important;
}

/* ============ ARTICLE GRID ============ */
.blog-redesign .blog-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 22px !important;
  margin-bottom: 44px !important;
}

/* ---- CARD CRATE ---- */
.blog-redesign .blog-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 8px 8px 0 #000 !important;
  padding: 30px 22px 20px !important;
  text-decoration: none !important;
  overflow: hidden !important;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease !important;
}

.blog-redesign .blog-card:hover {
  transform: translate(-4px, -4px) !important;
  box-shadow: 12px 12px 0 #d5160c !important;
  border-color: #000 !important;
}
.blog-redesign .blog-card:focus-visible {
  outline: none !important;
  transform: translate(-4px, -4px) !important;
  box-shadow: 12px 12px 0 #d5160c !important;
  border-color: #d5160c !important;
}

/* ---- CATEGORY TAG (solid red, hard black offset) ---- */
.blog-redesign .blog-card-tag {
  align-self: flex-start !important;
  display: inline-block !important;
  background: #d5160c !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  letter-spacing: 0.13em !important;
  text-transform: uppercase !important;
  padding: 5px 11px !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  box-shadow: 3px 3px 0 #000 !important;
  margin: 0 0 18px 0 !important;
}

/* ---- HEADLINE (heavy condensed uppercase) ---- */
.blog-redesign .blog-card-title {
  color: #0a0a0a !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 23px !important;
  line-height: 1.02 !important;
  letter-spacing: -0.005em !important;
  text-transform: uppercase !important;
  margin: 0 0 10px 0 !important;
}

/* ---- DATE / READ-TIME META (CSS-generated, sharp red square bullet) ---- */
.blog-redesign .blog-card-title::after {
  content: "2026  •  4 MIN READ" !important;
  display: block !important;
  color: #6e6e6e !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin-top: 9px !important;
  padding-top: 9px !important;
  border-top: 2px solid #ececec !important;
}

/* per-card read-time variety via the tag-driven nth ordering */
.blog-redesign .blog-card:nth-child(2) .blog-card-title::after { content: "2026  •  3 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(3) .blog-card-title::after { content: "2026  •  5 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(4) .blog-card-title::after { content: "2026  •  6 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(5) .blog-card-title::after { content: "2026  •  5 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(6) .blog-card-title::after { content: "2026  •  4 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(7) .blog-card-title::after { content: "2026  •  7 MIN READ" !important; }
.blog-redesign .blog-card:nth-child(8) .blog-card-title::after { content: "2026  •  4 MIN READ" !important; }

/* ---- BODY COPY ---- */
.blog-redesign .blog-card-desc {
  color: #2a2a2a !important;
  font-family: "Barlow", sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  margin: 14px 0 0 0 !important;
  flex: 1 1 auto !important;
}

/* ---- READ MORE → (red footer affordance, top hairline) ---- */
.blog-redesign .blog-card-arrow {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  color: #d5160c !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  margin-top: 18px !important;
  padding-top: 14px !important;
  border-top: 2px solid #000 !important;
  min-height: 28px !important;
  transition: gap .14s ease, color .14s ease !important;
}
.blog-redesign .blog-card:hover .blog-card-arrow,
.blog-redesign .blog-card:focus-visible .blog-card-arrow {
  gap: 14px !important;
  color: #b01209 !important;
}

/* ============ GUIDES BLOCK ============ */
.blog-redesign .blog-guides {
  margin-top: 12px !important;
}

.blog-redesign .blog-guides-label {
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  letter-spacing: 0.2em !important;
  text-transform: uppercase !important;
  margin: 26px 0 14px 0 !important;
  padding-left: 30px !important;
  position: relative !important;
}
.blog-redesign .blog-guides-label::before {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  width: 18px !important;
  height: 4px !important;
  background: #000 !important;
  transform: translateY(-50%) !important;
}

.blog-redesign .blog-guides-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}

/* guide pills = sharp white-on-black crate chips */
.blog-redesign .blog-guide-pill {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #000 !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 600 !important;
  font-size: 13.5px !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 12px 14px !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  transition: background .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease !important;
}
.blog-redesign .blog-guide-pill:hover,
.blog-redesign .blog-guide-pill:focus-visible {
  outline: none !important;
  background: #fff !important;
  color: #000 !important;
  box-shadow: 4px 4px 0 #000 !important;
  transform: translate(-2px, -2px) !important;
}

/* force every dot to a sharp red square marker (override inline seasonal colors) */
.blog-redesign .blog-guide-dot {
  flex: 0 0 auto !important;
  width: 9px !important;
  height: 9px !important;
  background: #d5160c !important;
  border-radius: 0 !important;
  display: inline-block !important;
}
.blog-redesign .blog-guide-pill:hover .blog-guide-dot,
.blog-redesign .blog-guide-pill:focus-visible .blog-guide-dot {
  background: #d5160c !important;
}

/* ============ BOTTOM CTA (if present) ============ */
.blog-redesign .blog-more-label,
.blog-redesign .blog-readmore-label {
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
}

.blog-redesign .blog-all-btn,
.blog-redesign .blog-browse-btn,
.blog-redesign a[class*="browse"],
.blog-redesign a[class*="all-guides"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #000 !important;
  color: #fff !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 14px 26px !important;
  min-height: 48px !important;
  box-sizing: border-box !important;
  box-shadow: 6px 6px 0 rgba(0, 0, 0, 0.35) !important;
  transition: background .14s ease, color .14s ease, box-shadow .14s ease, transform .14s ease !important;
}
.blog-redesign .blog-all-btn:hover,
.blog-redesign .blog-browse-btn:hover,
.blog-redesign a[class*="browse"]:hover,
.blog-redesign a[class*="all-guides"]:hover,
.blog-redesign .blog-all-btn:focus-visible,
.blog-redesign .blog-browse-btn:focus-visible,
.blog-redesign a[class*="browse"]:focus-visible,
.blog-redesign a[class*="all-guides"]:focus-visible {
  outline: none !important;
  background: #fff !important;
  color: #000 !important;
  transform: translate(-3px, -3px) !important;
  box-shadow: 9px 9px 0 #000 !important;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 1024px) {
  .blog-redesign .blog-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .blog-redesign .blog-guides-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 768px) {
  .blog-redesign .blog-header { text-align: left !important; margin-bottom: 30px !important; }
  .blog-redesign .blog-title { font-size: clamp(34px, 9vw, 46px) !important; text-shadow: 2px 2px 0 #000 !important; }
  .blog-redesign .blog-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 16px !important; }
  .blog-redesign .blog-card { padding: 24px 18px 18px !important; box-shadow: 6px 6px 0 #000 !important; }
  .blog-redesign .blog-card:hover,
  .blog-redesign .blog-card:focus-visible { box-shadow: 9px 9px 0 #d5160c !important; }
  .blog-redesign .blog-card-title { font-size: 21px !important; }
}

@media (max-width: 480px) {
  .blog-redesign .blog-grid { grid-template-columns: 1fr !important; }
  .blog-redesign .blog-guides-grid { grid-template-columns: 1fr !important; }
  .blog-redesign .blog-lead { font-size: 15.5px !important; }
  .blog-redesign .blog-card-desc { font-size: 14px !important; }
}

/* --- SECTION: footer-top --- */
/* SECTION: footer-top — ELEVATION
   Intended look: White footer. Top = a bold full-bleed RED CTA band (Barlow Semi
   Condensed uppercase headline w/ "WORRY-FREE" called out, grey sub), carrying ONE
   dominant white CTA (hard black offset shadow) + a ghost white-outline phone button.
   Below = tidy link columns on white: uppercase condensed column headers each capped
   by a short red rule, tight dark-grey link lists that snap to red on hover, and a
   sharp-bordered brand/contact block. Sharp corners, 2px borders, hard offset shadows.
   Contrast: RED band forces ALL children to #fff/grey tints (no inheritance trusted).
   WHITE column area forces headers #000, links #2b2b2b → #d5160c on hover/focus, so
   every text element keeps guaranteed dark-on-white or light-on-red contrast. */

/* ============ TOP CTA BAND — full-bleed red ============ */
#footer .sf-hero-strip{
  position:relative !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:28px 40px !important;
  width:100vw !important;
  left:50% !important;
  right:50% !important;
  margin-left:-50vw !important;
  margin-right:-50vw !important;
  margin-top:0 !important;
  margin-bottom:56px !important;
  padding:46px clamp(20px,6vw,80px) !important;
  background:#d5160c !important;
  border:0 !important;
  border-top:3px solid #000 !important;
  border-bottom:3px solid #000 !important;
  border-radius:0 !important;
  box-shadow:0 6px 0 #000 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
/* faint ghost-numeral / brand-mark depth, like the hero */
#footer .sf-hero-strip::after{
  content:"96" !important;
  position:absolute !important;
  right:clamp(16px,5vw,64px) !important;
  bottom:-18px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:clamp(90px,14vw,180px) !important;
  font-weight:800 !important;
  font-style:italic !important;
  line-height:.8 !important;
  letter-spacing:-.04em !important;
  color:rgba(0,0,0,.13) !important;
  pointer-events:none !important;
  z-index:0 !important;
}

#footer .sf-hero-strip .sf-hero-text{
  position:relative !important;
  z-index:1 !important;
  flex:1 1 420px !important;
  min-width:280px !important;
  padding:0 !important;
}
/* short white rule eyebrow above headline */
#footer .sf-hero-strip .sf-hero-h{
  position:relative !important;
  margin:0 0 12px !important;
  padding-top:18px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(28px,4.6vw,46px) !important;
  line-height:.96 !important;
  letter-spacing:.005em !important;
  text-transform:uppercase !important;
  color:#fff !important;
}
#footer .sf-hero-strip .sf-hero-h::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important;
  width:52px !important;
  height:5px !important;
  background:#fff !important;
}
#footer .sf-hero-strip .sf-hero-sub{
  margin:0 !important;
  max-width:60ch !important;
  font-family:"Barlow",sans-serif !important;
  font-size:clamp(14px,1.4vw,16px) !important;
  font-weight:500 !important;
  line-height:1.5 !important;
  color:rgba(255,255,255,.92) !important;
}

#footer .sf-hero-strip .sf-hero-acts{
  position:relative !important;
  z-index:1 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  gap:14px !important;
  flex:0 0 auto !important;
}

/* dominant CTA — white block, black hard shadow */
#footer .sf-hero-strip .sf-cta-primary{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-height:54px !important;
  padding:0 30px !important;
  background:#fff !important;
  color:#000 !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:6px 6px 0 #000 !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:17px !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease, color .12s ease !important;
}
#footer .sf-hero-strip .sf-cta-primary:hover{
  transform:translate(-3px,-3px) !important;
  box-shadow:9px 9px 0 #000 !important;
  background:#fff !important;
  color:#d5160c !important;
}
#footer .sf-hero-strip .sf-cta-primary:active{
  transform:translate(2px,2px) !important;
  box-shadow:3px 3px 0 #000 !important;
}
#footer .sf-hero-strip .sf-cta-primary:focus-visible{
  outline:3px solid #000 !important;
  outline-offset:3px !important;
}

/* ghost phone button — white outline on red */
#footer .sf-hero-strip .sf-cta-secondary{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  min-height:54px !important;
  padding:0 24px !important;
  background:transparent !important;
  color:#fff !important;
  border:2px solid #fff !important;
  border-radius:0 !important;
  box-shadow:none !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  font-size:17px !important;
  letter-spacing:.03em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  transition:background-color .12s ease, color .12s ease !important;
}
#footer .sf-hero-strip .sf-cta-secondary svg{
  stroke:#fff !important;
  flex:0 0 auto !important;
}
#footer .sf-hero-strip .sf-cta-secondary:hover{
  background:#fff !important;
  color:#000 !important;
}
#footer .sf-hero-strip .sf-cta-secondary:hover svg{ stroke:#000 !important; }
#footer .sf-hero-strip .sf-cta-secondary:focus-visible{
  outline:3px solid #fff !important;
  outline-offset:3px !important;
}

/* ============ LINK COLUMNS — tidy on white ============ */
#footer .sf-grid{
  display:grid !important;
  grid-template-columns:1.4fr 1fr 1fr 1fr !important;
  gap:clamp(28px,4vw,56px) !important;
  align-items:start !important;
  margin:0 0 8px !important;
  padding:0 !important;
}
#footer .sf-grid .sf-col{ min-width:0 !important; }

/* uppercase condensed column headers w/ short red rule */
#footer .sf-grid .sf-col h3{
  position:relative !important;
  margin:0 0 18px !important;
  padding:0 0 12px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:15px !important;
  letter-spacing:.07em !important;
  text-transform:uppercase !important;
  color:#000 !important;
}
#footer .sf-grid .sf-col h3::after{
  content:"" !important;
  position:absolute !important;
  left:0 !important; bottom:0 !important;
  width:34px !important;
  height:3px !important;
  background:#d5160c !important;
}
/* the "48+ cities" tag beside Service Areas header */
#footer .sf-grid .sf-col h3 .sf-area-total{
  display:inline-block !important;
  margin-left:8px !important;
  padding:2px 7px !important;
  background:#000 !important;
  color:#fff !important;
  border-radius:0 !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:11px !important;
  font-weight:700 !important;
  letter-spacing:.05em !important;
  vertical-align:middle !important;
}

/* link lists */
#footer .sf-grid .sf-col ul{
  list-style:none !important;
  margin:0 !important;
  padding:0 !important;
}
#footer .sf-grid .sf-col ul li{
  margin:0 0 9px !important;
  padding:0 !important;
}
#footer .sf-grid .sf-col ul li a{
  display:inline-block !important;
  position:relative !important;
  padding:1px 0 !important;
  font-family:"Barlow",sans-serif !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.35 !important;
  color:#2b2b2b !important;
  text-decoration:none !important;
  border:0 !important;
  background:none !important;
  transition:color .12s ease, padding-left .12s ease !important;
}
#footer .sf-grid .sf-col ul li a:hover{
  color:#d5160c !important;
  padding-left:10px !important;
}
/* slide-in red tick on hover */
#footer .sf-grid .sf-col ul li a::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important; top:50% !important;
  width:5px !important; height:5px !important;
  background:#d5160c !important;
  opacity:0 !important;
  transform:translate(-6px,-50%) !important;
  transition:opacity .12s ease, transform .12s ease !important;
}
#footer .sf-grid .sf-col ul li a:hover::before{
  opacity:1 !important;
  transform:translate(0,-50%) !important;
}
#footer .sf-grid .sf-col ul li a:focus-visible{
  outline:2px solid #d5160c !important;
  outline-offset:2px !important;
  color:#d5160c !important;
}
/* emphasised "All 18 services →" link */
#footer .sf-grid .sf-col ul li a.sf-link-all{
  margin-top:4px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:14px !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  color:#d5160c !important;
}
#footer .sf-grid .sf-col ul li a.sf-link-all::before{ display:none !important; }
#footer .sf-grid .sf-col ul li a.sf-link-all:hover{ padding-left:0 !important; color:#a01009 !important; }

/* ---- brand / contact block ---- */
#footer .sf-grid .sf-brand .sf-logo{
  display:inline-block !important;
  margin:0 0 14px !important;
}
#footer .sf-grid .sf-brand .sf-tagline{
  margin:0 0 18px !important;
  max-width:36ch !important;
  font-family:"Barlow",sans-serif !important;
  font-size:13.5px !important;
  font-weight:500 !important;
  line-height:1.55 !important;
  color:#3a3a3a !important;
}
#footer .sf-grid .sf-brand .sf-tagline strong{ color:#000 !important; font-weight:700 !important; }

#footer .sf-grid .sf-brand .sf-contact-block{
  display:flex !important;
  flex-direction:column !important;
  gap:10px !important;
  margin:0 !important;
  padding:16px 18px !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-left:5px solid #d5160c !important;
  border-radius:0 !important;
  box-shadow:5px 5px 0 #000 !important;
}
#footer .sf-grid .sf-brand .sf-contact-block a,
#footer .sf-grid .sf-brand .sf-contact-block p{
  display:flex !important;
  align-items:flex-start !important;
  gap:9px !important;
  margin:0 !important;
  font-family:"Barlow",sans-serif !important;
  font-size:13.5px !important;
  line-height:1.4 !important;
  color:#2b2b2b !important;
  text-decoration:none !important;
}
#footer .sf-grid .sf-brand .sf-contact-block svg{
  flex:0 0 auto !important;
  margin-top:2px !important;
  stroke:#d5160c !important;
}
#footer .sf-grid .sf-brand .sf-contact-block .sf-phone{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:18px !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
  color:#000 !important;
}
#footer .sf-grid .sf-brand .sf-contact-block .sf-phone strong{ color:#000 !important; }
#footer .sf-grid .sf-brand .sf-contact-block .sf-phone:hover{ color:#d5160c !important; }
#footer .sf-grid .sf-brand .sf-contact-block .sf-phone:hover svg{ stroke:#d5160c !important; }
#footer .sf-grid .sf-brand .sf-contact-block .sf-email:hover{ color:#d5160c !important; }
#footer .sf-grid .sf-brand .sf-contact-block .sf-addr strong,
#footer .sf-grid .sf-brand .sf-contact-block .sf-hours strong{ color:#000 !important; font-weight:700 !important; }
#footer .sf-grid .sf-brand .sf-contact-block a:focus-visible{
  outline:2px solid #d5160c !important;
  outline-offset:2px !important;
}

/* ---- service-areas column ---- */
#footer .sf-grid .sf-areas-col .sf-area-cities{
  margin:0 !important;
  font-family:"Barlow",sans-serif !important;
  font-size:14px !important;
  line-height:1.7 !important;
  color:#2b2b2b !important;
}
#footer .sf-grid .sf-areas-col .sf-area-cities a{
  color:#2b2b2b !important;
  font-weight:500 !important;
  text-decoration:none !important;
  transition:color .12s ease !important;
}
#footer .sf-grid .sf-areas-col .sf-area-cities a:hover{ color:#d5160c !important; }
#footer .sf-grid .sf-areas-col .sf-area-cities a:focus-visible{
  outline:2px solid #d5160c !important;
  outline-offset:2px !important;
  color:#d5160c !important;
}
#footer .sf-grid .sf-areas-col .sf-area-see-all{
  display:inline-block !important;
  margin-top:14px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-size:14px !important;
  font-weight:800 !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  color:#d5160c !important;
  text-decoration:none !important;
}
#footer .sf-grid .sf-areas-col .sf-area-see-all:hover{ color:#a01009 !important; }
#footer .sf-grid .sf-areas-col .sf-area-see-all:focus-visible{
  outline:2px solid #d5160c !important;
  outline-offset:2px !important;
}

/* ============ RESPONSIVE ============ */
@media(max-width:980px){
  #footer .sf-grid{ grid-template-columns:1fr 1fr !important; }
  #footer .sf-grid .sf-brand{ grid-column:1 / -1 !important; }
}
@media(max-width:768px){
  #footer .sf-hero-strip{
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:24px !important;
    padding:38px clamp(18px,6vw,40px) !important;
    margin-bottom:44px !important;
  }
  #footer .sf-hero-strip .sf-hero-acts{ width:100% !important; }
  #footer .sf-hero-strip .sf-cta-primary,
  #footer .sf-hero-strip .sf-cta-secondary{ flex:1 1 auto !important; }
  #footer .sf-hero-strip::after{ font-size:120px !important; bottom:-12px !important; opacity:.9 !important; }
}
@media(max-width:480px){
  #footer .sf-grid{ grid-template-columns:1fr !important; gap:30px !important; }
  #footer .sf-grid .sf-brand{ grid-column:auto !important; }
  #footer .sf-hero-strip .sf-hero-acts{ flex-direction:column !important; align-items:stretch !important; }
  #footer .sf-hero-strip .sf-cta-primary,
  #footer .sf-hero-strip .sf-cta-secondary{ width:100% !important; }
}

/* --- SECTION: footer-brands --- */
/* SECTION: footer-brands — ELEVATION (footer bottom: sister-brand cards + cert badges + legal row)
   Intended look: On the WHITE footer, three sharp solid-black tool-crate tiles (Econo / NuShake /
   DeHart) sit in a row — each with a 4px red top rail, white uppercase Barlow Semi Condensed brand
   name, grey meta line, a red link, and the brand's OWN phone surfaced via CSS content (never crossed:
   Econo 209-668-6222 · NuShake 209-253-0506 · DeHart 209-667-7737). Cards lift on hover with a hard
   red offset shadow. Below: a crisp cert-badge row — black-outline pills that flip to solid red on
   hover — then a clean dark-on-white legal/copyright line with a red top hairline.
   Contrast: brand cards are forced solid black (#000) so their white name + grey meta + red link/phone
   all read clearly; the cert pills + legal row sit on white, so every label/link is forced near-black
   (#1a1a1a) or red — no light-on-light, no dark-on-dark. All declarations !important; fully scoped to
   #footer .sf-family-strip / .sf-trust / .sf-bottom; responsive at 768px and 480px. */

/* ============================== FAMILY OF BRANDS STRIP ============================== */
#footer .sf-family-strip {
  background: #fff !important;
  border-top: 2px solid #000 !important;
  padding: 38px 0 32px !important;
  margin-top: 8px !important;
}

#footer .sf-family-strip .sf-family-eyebrow {
  display: inline-block !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  background: #d5160c !important;
  padding: 5px 12px 4px !important;
  margin: 0 0 20px !important;
  border-radius: 0 !important;
  line-height: 1.1 !important;
}

#footer .sf-family-strip .sf-family-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

/* --- the tool-crate tile --- */
#footer .sf-family-strip .sf-family-card {
  position: relative !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 5px !important;
  background: #000 !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 22px 20px 20px !important;
  margin: 0 !important;
  box-shadow: 0 0 0 0 #d5160c !important;
  transition: transform .16s ease, box-shadow .16s ease !important;
  overflow: hidden !important;
}

/* red top rail on every card */
#footer .sf-family-strip .sf-family-card::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 4px !important;
  background: #d5160c !important;
  pointer-events: none !important;
}

#footer .sf-family-strip .sf-family-card:hover,
#footer .sf-family-strip .sf-family-card:focus-within {
  transform: translate(-2px, -3px) !important;
  box-shadow: 6px 6px 0 0 #d5160c !important;
}

/* brand name — white uppercase condensed */
#footer .sf-family-strip .sf-family-card strong {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 19px !important;
  font-weight: 800 !important;
  line-height: 1.04 !important;
  letter-spacing: .01em !important;
  text-transform: uppercase !important;
  color: #fff !important;
  margin: 2px 0 1px !important;
}

/* meta line — grey, legible on black */
#footer .sf-family-strip .sf-family-card span {
  font-family: "Barlow", sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  color: #c4c4c4 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* link (website / phone in markup) — red, clear on black */
#footer .sf-family-strip .sf-family-card a {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: .03em !important;
  text-transform: uppercase !important;
  color: #ff5347 !important;
  text-decoration: none !important;
  margin-top: 6px !important;
  min-height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  border-bottom: 2px solid transparent !important;
  transition: color .14s ease, border-color .14s ease !important;
}

#footer .sf-family-strip .sf-family-card a:hover,
#footer .sf-family-strip .sf-family-card a:focus-visible {
  color: #fff !important;
  border-bottom-color: #d5160c !important;
  outline: none !important;
}

#footer .sf-family-strip .sf-family-card a:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 2px !important;
}

/* Each brand's OWN phone, surfaced via CSS content (brands never crossed).
   Order in markup: 1) Econo  2) NuShake  3) DeHart */
#footer .sf-family-strip .sf-family-card::after {
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  color: #ffffff !important;
  margin-top: 10px !important;
  padding-top: 10px !important;
  border-top: 1px solid rgba(255,255,255,.16) !important;
  width: 100% !important;
  display: block !important;
  line-height: 1.1 !important;
}
#footer .sf-family-strip .sf-family-card:nth-child(1)::after { content: "\260E\00A0 (209) 668-6222" !important; }
#footer .sf-family-strip .sf-family-card:nth-child(2)::after { content: "\260E\00A0 (209) 253-0506" !important; }
#footer .sf-family-strip .sf-family-card:nth-child(3)::after { content: "\260E\00A0 (209) 667-7737" !important; }

/* ============================== CERT / TRUST BADGE ROW ============================== */
#footer .sf-trust {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 10px !important;
  background: #fff !important;
  border-top: 2px solid #000 !important;
  padding: 22px 0 20px !important;
  margin-top: 0 !important;
}

/* cert pills — sharp black-outline chips on white */
#footer .sf-trust .sf-trust-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  font-family: "Barlow Semi Condensed", sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
  color: #1a1a1a !important;
  background: #fff !important;
  border: 2px solid #000 !important;
  border-radius: 0 !important;
  padding: 7px 12px 6px !important;
  min-height: 32px !important;
  text-decoration: none !important;
  transition: background .14s ease, color .14s ease, transform .14s ease, box-shadow .14s ease !important;
}

#footer .sf-trust .sf-trust-pill svg {
  color: #d5160c !important;
  flex: none !important;
}

#footer .sf-trust .sf-trust-pill:hover,
#footer .sf-trust .sf-trust-pill:focus-visible {
  background: #d5160c !important;
  border-color: #d5160c !important;
  color: #fff !important;
  transform: translate(-1px, -1px) !important;
  box-shadow: 3px 3px 0 0 #000 !important;
  outline: none !important;
}
#footer .sf-trust .sf-trust-pill:hover svg,
#footer .sf-trust .sf-trust-pill:focus-visible svg {
  color: #fff !important;
}
#footer .sf-trust .sf-trust-pill:focus-visible {
  outline: 2px solid #000 !important;
  outline-offset: 2px !important;
}

/* divider */
#footer .sf-trust .sf-trust-divider {
  width: 2px !important;
  height: 22px !important;
  background: #000 !important;
  margin: 0 4px !important;
  flex: none !important;
}

/* license / est / rating meta — dark on white */
#footer .sf-trust .sf-trust-meta {
  font-family: "Barlow", sans-serif !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  letter-spacing: .01em !important;
}
#footer .sf-trust .sf-trust-meta a {
  color: #1a1a1a !important;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(0,0,0,.25) !important;
  transition: color .14s ease, border-color .14s ease !important;
}
#footer .sf-trust .sf-trust-meta a:hover,
#footer .sf-trust .sf-trust-meta a:focus-visible {
  color: #d5160c !important;
  border-bottom-color: #d5160c !important;
  outline: none !important;
}
#footer .sf-trust .sf-trust-meta .sf-stars {
  color: #d5160c !important;
  letter-spacing: .02em !important;
}
#footer .sf-trust .sf-trust-meta .sf-stars-link {
  border-bottom: none !important;
}

/* ============================== BOTTOM LEGAL ROW ============================== */
#footer .sf-bottom {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px 18px !important;
  background: #fff !important;
  border-top: 2px solid #d5160c !important;
  padding: 16px 0 4px !important;
  margin-top: 4px !important;
}

#footer .sf-bottom .sf-copy {
  font-family: "Barlow", sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 500 !important;
  color: #4a4a4a !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}
#footer .sf-bottom .sf-copy [itemprop="name"] {
  color: #1a1a1a !important;
  font-weight: 700 !important;
}

#footer .sf-bottom .sf-legal {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 6px 16px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
#footer .sf-bottom .sf-legal li { margin: 0 !important; }
#footer .sf-bottom .sf-legal a {
  font-family: "Barlow", sans-serif !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  text-decoration: none !important;
  letter-spacing: .01em !important;
  padding: 4px 0 !important;
  border-bottom: 2px solid transparent !important;
  transition: color .14s ease, border-color .14s ease !important;
}
#footer .sf-bottom .sf-legal a:hover,
#footer .sf-bottom .sf-legal a:focus-visible {
  color: #d5160c !important;
  border-bottom-color: #d5160c !important;
  outline: none !important;
}
#footer .sf-bottom .sf-legal a:focus-visible {
  outline: 2px solid #d5160c !important;
  outline-offset: 2px !important;
}

/* ============================== RESPONSIVE ============================== */
@media (max-width: 768px) {
  #footer .sf-family-strip .sf-family-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  #footer .sf-trust {
    gap: 8px !important;
    padding: 18px 0 16px !important;
  }
  #footer .sf-trust .sf-trust-divider { display: none !important; }
  #footer .sf-trust .sf-trust-meta {
    flex-basis: 100% !important;
    margin-top: 4px !important;
  }
  #footer .sf-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 12px !important;
  }
}

@media (max-width: 480px) {
  #footer .sf-family-strip { padding: 30px 0 26px !important; }
  #footer .sf-family-strip .sf-family-card { padding: 18px 16px 16px !important; }
  #footer .sf-family-strip .sf-family-card strong { font-size: 18px !important; }
  #footer .sf-trust .sf-trust-pill {
    font-size: 11.5px !important;
    padding: 7px 10px 6px !important;
  }
  #footer .sf-bottom .sf-legal { gap: 6px 12px !important; }
}

/* --- SECTION: rhythm --- */
/* SECTION: rhythm — GLOBAL INTER-SECTION VERTICAL RHYTHM + BAND DIVIDERS
   Lane: ONLY the outer vertical spacing of homepage bands (body.home .sec
   padding-block) and a few thin RED rules BETWEEN bands. No section's internal
   content is touched — other agents own that.

   Intended look: A confident, evenly-stacked column of full-width bands. One
   generous breathing unit between every band so the page reads as a deliberate
   sequence of tool-crates, never cramped or floaty. Sections that already set
   their OWN padding-block (#services, #trust, #coverage — higher ID specificity)
   keep it; this file is the global baseline for every other .sec and the source
   of truth for the cadence. Transitions into the heavy/colored bands are crisped
   with a 2px solid-red signature rule (only on band boxes no other agent has
   given a ::before/::after and that don't already carry a top accent), so
   white→white seams get a hairline beat and the page never blurs together.

   Contrast: this file sets ONLY spacing + a red (#d5160c) divider bar — it never
   sets text/background colors and never places text on a band, so it cannot
   create a contrast problem. Dividers are solid #d5160c (palette red) against the
   adjacent white/grey bands; full-bleed, decorative, pointer-events:none,
   aria-hidden by nature (empty content), causing zero layout shift (positioned
   absolute / fixed thin height).

   Specificity & no-collision design:
   - Baseline uses `body.home section.sec` (0-2-1) to decisively beat the engine's
     base `body.home section.sec{padding:64px}` (equal specificity, loaded later)
     while still LOSING to per-section ID rules (#services.sec, #trust,
     #coverage.area-redesign = 1-x-x) which are intentional and owned elsewhere.
   - Dividers only attach to band boxes whose ::before AND ::after are unused by
     other agents and that lack an existing top accent: #materials (top edge),
     #recent-projects, #cluster1-related-services, #contact, #faq, .blog-redesign.
     (#trust already has a red top rule; #reviews a hazard stripe; #materials a red
     top-border + a ::after corner — so #materials gets its divider on ::before
     only, the dark #recent-projects gets a red cap, etc. No ::before/::after is
     ever double-declared.)
   Scoped to body.home .sec; every property !important; responsive (tighter on
   mobile at 768px and 480px). */

/* ═══════════════════════════════════════════════════════════════════════════
   1. GLOBAL BAND RHYTHM
   One confident breathing unit, applied to every homepage .sec as the baseline.
   Per-section ID overrides (services/trust/coverage) win by specificity — by
   design — so this governs the remaining bands and the overall cadence.
   ═══════════════════════════════════════════════════════════════════════════ */
body.home section.sec{
  padding-top:clamp(64px,8vw,104px)!important;
  padding-bottom:clamp(64px,8vw,104px)!important;
  position:relative!important;          /* anchor for divider pseudo-elements */
}

/* The hero-adjacent quick-stat strip + the heavy carousel/CTA closers run on a
   slightly tighter clamp in the engine; keep them in the same family so the
   whole column shares ONE rhythm scale instead of two competing ones. */
body.home section.sec.hd-projects,
body.home section.sec.topical-final{
  padding-top:clamp(64px,8vw,104px)!important;
  padding-bottom:clamp(64px,8vw,104px)!important;
}

/* ── Adjacent-band seam control ──────────────────────────────────────────────
   The engine collapses `.sec + .sec` top padding to 0 (shared seam). Make that
   intentional and even: when two bands sit flush, they share a single rhythm gap
   (the upper band's bottom padding) instead of doubling — keeps colored→white and
   white→white transitions tight and deliberate, not floaty. */
body.home section.sec + section.sec{
  padding-top:clamp(64px,8vw,104px)!important; /* re-assert: own the gap, not 0 */
}

/* ═══════════════════════════════════════════════════════════════════════════
   2. THIN BAND DIVIDERS  (sparing red signature rules BETWEEN bands)
   Only on band boxes with FREE pseudo-elements and no pre-existing top accent.
   Each is a 2px full-bleed solid-red rule — a crisp beat where bands meet.
   Decorative only: empty content, pointer-events:none, no layout shift.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Shared divider primitive (applied via the section-specific selectors below so
   specificity stays in-lane and we never touch a pseudo another agent declared). */

/* #materials — white spec band. It already carries a 3px red top BORDER + a
   ::after hazard corner, so we do NOT add a top rule here; instead cap its
   BOTTOM into the red Reviews band with a 2px red beat on ::before is taken?
   ::before is FREE on #materials → use it as a bottom seam rule. */
body.home section.sec#materials::before{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important; bottom:0!important;
  height:2px!important;
  background:#d5160c!important;
  opacity:.9!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* #recent-projects — dark project band. ::before/::after both FREE. Crisp red
   rule on the TOP edge to slice it cleanly off the red Reviews band above, and a
   matching rule on the BOTTOM to lead into Coverage. */
body.home section.sec#recent-projects::before,
body.home section.sec#recent-projects::after{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important;
  height:2px!important;
  background:#d5160c!important;
  pointer-events:none!important;
  z-index:2!important;
}
body.home section.sec#recent-projects::before{ top:0!important; }
body.home section.sec#recent-projects::after{ bottom:0!important; }

/* #cluster1-related-services — light #fafafa band. ::before FREE. Top red beat
   to separate it from the band above. */
body.home section.sec#cluster1-related-services::before{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important; top:0!important;
  height:2px!important;
  background:#d5160c!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* .blog-redesign — has no id; FREE pseudo. Top red beat. */
body.home section.sec.blog-redesign::before{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important; top:0!important;
  height:2px!important;
  background:#d5160c!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* #contact — white CTA band. ::before FREE. Top red beat. */
body.home section.sec#contact::before{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important; top:0!important;
  height:2px!important;
  background:#d5160c!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* #faq — #fafafc band. ::before FREE. Top red beat closing the rhythm before the
   final topical band. */
body.home section.sec#faq::before{
  content:""!important;
  position:absolute!important;
  left:0!important; right:0!important; top:0!important;
  height:2px!important;
  background:#d5160c!important;
  pointer-events:none!important;
  z-index:1!important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   3. RESPONSIVE — tighter, still confident, on smaller screens
   ═══════════════════════════════════════════════════════════════════════════ */
@media(max-width:768px){
  body.home section.sec,
  body.home section.sec.hd-projects,
  body.home section.sec.topical-final,
  body.home section.sec + section.sec{
    padding-top:clamp(48px,9vw,64px)!important;
    padding-bottom:clamp(48px,9vw,64px)!important;
  }
  /* keep dividers crisp but a touch thinner on mobile */
  body.home section.sec#materials::before,
  body.home section.sec#recent-projects::before,
  body.home section.sec#recent-projects::after,
  body.home section.sec#cluster1-related-services::before,
  body.home section.sec.blog-redesign::before,
  body.home section.sec#contact::before,
  body.home section.sec#faq::before{
    height:2px!important;
  }
}

@media(max-width:480px){
  body.home section.sec,
  body.home section.sec.hd-projects,
  body.home section.sec.topical-final,
  body.home section.sec + section.sec{
    padding-top:clamp(40px,11vw,52px)!important;
    padding-bottom:clamp(40px,11vw,52px)!important;
  }
}

/* --- SECTION: interactions --- */
/* SECTION: interactions — GLOBAL MICRO-INTERACTIONS + BUTTON SYSTEM (ELEVATION)
   Intended look: one tactile Milwaukee interaction language across every homepage CTA,
   card, and link. Hard, snappy 0.12s transforms (no soft easing). Buttons lift 2px on
   hover with a hard offset shadow that SHIFTS to red (#d5160c), then press flat + inset
   on :active. Cards lift 4px on hover, their black offset shadow rotating to red. Plain
   in-copy links grow a red underline on hover. Every focusable element gets a 2px solid
   red :focus-visible outline with a white gap — high-contrast on any band, light or dark.
   Lane: ONLY motion/hover/active/focus + a card-lift utility. No base colors/layout set
   here (other agents own those). prefers-reduced-motion strips all transforms.
   Contrast: focus ring is red on a 2px white outline-offset gap, so it reads on red,
   black, and white surfaces alike; no text colors are changed, so no band ever loses
   legibility from this layer. Tap targets kept >=44px on touch CTAs. Scoped to body.home,
   !important throughout, responsive + reduced-motion guarded. */

/* ============================================================
   1. SHARED TRANSITION TOKEN — hard + snappy (0.12s), Milwaukee
   Applied to every interactive surface. Transitions are cheap
   (transform/box-shadow/outline/border/background) so no jank.
   ============================================================ */
body.home .btn,
body.home .btn-red,
body.home .btn-ghost,
body.home .btn-outline,
body.home a.btn-red,
body.home .hd-projects__btn,
body.home .svc-link,
body.home .blog-card-arrow,
body.home .sf-link-all,
body.home .sf-stars-link,
body.home .home-toc-link,
body.home .area-city-pill,
body.home .svc-card,
body.home .review-card,
body.home .blog-card,
body.home .sf-family-card,
body.home .card {
  transition: transform .12s cubic-bezier(.2,.8,.2,1),
              box-shadow .12s cubic-bezier(.2,.8,.2,1),
              background-color .12s linear,
              border-color .12s linear,
              color .12s linear,
              outline-color .12s linear !important;
  will-change: transform !important;
}

/* ============================================================
   2. BUTTON SYSTEM — hover lift + offset-shadow shift to red
   We DO NOT set base bg/text color (section agents own those).
   We only add the motion + shadow + press language.
   ============================================================ */

/* --- Primary red CTA: lift + hard RED offset shadow on hover --- */
body.home .btn-red:hover,
body.home a.btn-red:hover,
body.home .btn.btn-red:hover,
body.home .hd-projects__btn:hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 4px 4px 0 #000 !important;
}
/* Active: slam flat into the surface (tactile click) */
body.home .btn-red:active,
body.home a.btn-red:active,
body.home .btn.btn-red:active,
body.home .hd-projects__btn:active {
  transform: translate(0, 0) !important;
  box-shadow: 1px 1px 0 #000 !important;
}

/* --- Ghost / outline buttons: lift + RED offset shadow + red edge --- */
body.home .btn-ghost:hover,
body.home .btn.btn-ghost:hover,
body.home .btn-outline:hover,
body.home .btn.btn-outline:hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 4px 4px 0 #d5160c !important;
  border-color: #d5160c !important;
}
body.home .btn-ghost:active,
body.home .btn.btn-ghost:active,
body.home .btn-outline:active,
body.home .btn.btn-outline:active {
  transform: translate(0, 0) !important;
  box-shadow: 1px 1px 0 #d5160c !important;
}

/* --- Generic .btn (no variant): same lift, neutral black shadow --- */
body.home .btn:not(.btn-red):not(.btn-ghost):not(.btn-outline):hover {
  transform: translate(-2px, -2px) !important;
  box-shadow: 4px 4px 0 #000 !important;
}
body.home .btn:not(.btn-red):not(.btn-ghost):not(.btn-outline):active {
  transform: translate(0, 0) !important;
  box-shadow: 1px 1px 0 #000 !important;
}

/* Touch targets: keep CTAs comfortably >=44px tall, no layout shift */
body.home .btn,
body.home .btn-red,
body.home .btn-ghost,
body.home .btn-outline,
body.home .hd-projects__btn {
  min-height: 44px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ============================================================
   3. CARD HOVER-LIFT UTILITY — consistent across all card types
   translateY(-4px) + offset shadow that shifts from black to red.
   Base shadow softens via box-shadow on hover only (no base change).
   ============================================================ */
body.home .svc-card:hover,
body.home .review-card:hover,
body.home .blog-card:hover,
body.home .sf-family-card:hover,
body.home .card.svc-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: 6px 6px 0 #d5160c !important;
  border-color: #d5160c !important;
  z-index: 2 !important;
}
/* Pressing a card (e.g. tapping its link area) eases the lift back */
body.home .svc-card:active,
body.home .review-card:active,
body.home .blog-card:active,
body.home .sf-family-card:active {
  transform: translateY(-1px) !important;
  box-shadow: 3px 3px 0 #d5160c !important;
}

/* ============================================================
   4. CARD-INTERNAL LINK ACCENT — arrow link nudges right on hover
   Card "Roof Repair →" style links + project / blog arrows.
   ============================================================ */
body.home .svc-link:hover,
body.home .blog-card-arrow:hover,
body.home .sf-link-all:hover {
  transform: translateX(3px) !important;
}
/* When the parent card is hovered, gently advance the arrow too */
body.home .svc-card:hover .svc-link,
body.home .blog-card:hover .blog-card-arrow {
  transform: translateX(3px) !important;
}

/* ============================================================
   5. GENERIC IN-COPY LINKS — red underline grows on hover
   Targets prose links inside section bodies. We add the underline
   motion only; link color is owned by section agents.
   ============================================================ */
body.home .body-md a:hover,
body.home .body-lg a:hover,
body.home .svc-desc a:hover,
body.home .home-lede a:hover,
body.home .area-lead a:hover,
body.home .hero-sub a:hover {
  text-decoration: underline !important;
  text-decoration-color: #d5160c !important;
  text-decoration-thickness: 2px !important;
  text-underline-offset: 3px !important;
}

/* TOC + city pills: hairline lift, no color override */
body.home .home-toc-link:hover,
body.home .area-city-pill:hover {
  transform: translateY(-1px) !important;
}

/* ============================================================
   6. ACCESSIBLE FOCUS RINGS — red :focus-visible, white gap
   2px white outline-offset gap makes the red ring legible on red,
   black AND white bands. Applies to every focusable homepage
   control/link. Mouse clicks (no :focus-visible) stay clean.
   ============================================================ */
body.home a:focus-visible,
body.home button:focus-visible,
body.home .btn:focus-visible,
body.home .btn-red:focus-visible,
body.home .btn-ghost:focus-visible,
body.home .btn-outline:focus-visible,
body.home .hd-projects__btn:focus-visible,
body.home .svc-link:focus-visible,
body.home .home-toc-link:focus-visible,
body.home .area-city-pill:focus-visible,
body.home .blog-card-arrow:focus-visible,
body.home .sf-link-all:focus-visible,
body.home .sf-stars-link:focus-visible,
body.home .svc-card a:focus-visible,
body.home .review-card a:focus-visible,
body.home .blog-card:focus-visible {
  outline: 2px solid #d5160c !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 2px #fff !important;
  border-radius: 0 !important;
}
/* Suppress legacy soft glow only when our hard ring is showing */
body.home a:focus-visible,
body.home button:focus-visible {
  -webkit-tap-highlight-color: transparent !important;
}

/* ============================================================
   7. RESPONSIVE — full-width tap targets, slightly larger press
   ============================================================ */
@media (max-width: 768px) {
  body.home .btn,
  body.home .btn-red,
  body.home .btn-ghost,
  body.home .btn-outline,
  body.home .hd-projects__btn {
    min-height: 48px !important;
  }
  /* Touch devices have no true hover: ease lifts so they don't "stick" */
  body.home .svc-card:hover,
  body.home .review-card:hover,
  body.home .blog-card:hover,
  body.home .sf-family-card:hover {
    transform: translateY(-2px) !important;
    box-shadow: 4px 4px 0 #d5160c !important;
  }
  body.home .btn-red:hover,
  body.home a.btn-red:hover,
  body.home .btn-ghost:hover,
  body.home .btn-outline:hover,
  body.home .hd-projects__btn:hover {
    transform: translate(-1px, -1px) !important;
  }
}

@media (max-width: 480px) {
  /* Keep focus ring fully visible even with tight section padding */
  body.home a:focus-visible,
  body.home button:focus-visible,
  body.home .btn:focus-visible {
    outline-offset: 1px !important;
  }
}

/* ============================================================
   8. REDUCED MOTION — strip every transform/transition, keep
   focus rings + shadow state changes (instant, no movement).
   ============================================================ */
@media (prefers-reduced-motion: reduce) {
  body.home .btn,
  body.home .btn-red,
  body.home .btn-ghost,
  body.home .btn-outline,
  body.home .hd-projects__btn,
  body.home .svc-link,
  body.home .blog-card-arrow,
  body.home .sf-link-all,
  body.home .home-toc-link,
  body.home .area-city-pill,
  body.home .svc-card,
  body.home .review-card,
  body.home .blog-card,
  body.home .sf-family-card,
  body.home .card {
    transition: none !important;
    will-change: auto !important;
  }
  body.home .btn:hover,
  body.home .btn-red:hover,
  body.home a.btn-red:hover,
  body.home .btn-ghost:hover,
  body.home .btn-outline:hover,
  body.home .hd-projects__btn:hover,
  body.home .svc-card:hover,
  body.home .review-card:hover,
  body.home .blog-card:hover,
  body.home .sf-family-card:hover,
  body.home .svc-link:hover,
  body.home .blog-card-arrow:hover,
  body.home .sf-link-all:hover,
  body.home .home-toc-link:hover,
  body.home .area-city-pill:hover,
  body.home .svc-card:hover .svc-link,
  body.home .blog-card:hover .blog-card-arrow {
    transform: none !important;
  }
  /* Hover still gives a non-motion cue: the red offset shadow + edge */
  body.home .svc-card:hover,
  body.home .review-card:hover,
  body.home .blog-card:hover,
  body.home .sf-family-card:hover {
    box-shadow: 0 0 0 2px #d5160c !important;
  }
}

/* ================= end hd27 ================= */

/* ===== hd27 integration fixes ===== */
/* process: defeat -webkit-text-fill masking on the white/grey step cards */
body.home #process .home-step__title{color:#111 !important;-webkit-text-fill-color:#111 !important}
body.home #process .home-step__body{color:#2a2a2a !important;-webkit-text-fill-color:#2a2a2a !important}
body.home #process .home-step__num{color:#fff !important;-webkit-text-fill-color:#fff !important}
/* founder: force the intended BLACK band so red frame/tab/CTA read (was a leftover red) */
body.home #mario,body.home #mario.home-section--soft{background:#000 !important}
body.home #mario .home-section__inner,body.home #mario .home-section__inner--narrow{background:transparent !important}
/* ===== end hd27 fixes ===== */

/* hero proof-tag: prior .hero-overlay::after set right/bottom:0 — constrain back to content size so it stops covering the photo */
body.home #hero .hero-overlay::after{right:auto !important;bottom:auto !important;width:auto !important;height:auto !important;max-width:none !important}

/* ===== hd29: multi-platform review proof strip ===== */
body.home .rev-platforms{display:flex !important;flex-wrap:wrap !important;gap:10px !important;justify-content:center !important;align-items:stretch !important;margin:28px auto 0 !important;padding:0 !important;max-width:780px !important}
body.home .rev-platforms .revp{display:flex !important;flex-direction:column !important;align-items:center !important;justify-content:center !important;gap:4px !important;background:#000 !important;border:2px solid #000 !important;border-top:3px solid #d5160c !important;border-radius:0 !important;padding:12px 16px !important;min-width:108px !important;box-shadow:4px 4px 0 rgba(0,0,0,.25) !important}
body.home .rev-platforms .revp__site{font-family:"Barlow Semi Condensed",sans-serif !important;font-weight:700 !important;font-size:12px !important;letter-spacing:.06em !important;text-transform:uppercase !important;color:#fff !important;-webkit-text-fill-color:#fff !important;line-height:1 !important}
body.home .rev-platforms .revp__rate{font-family:"Barlow Semi Condensed",sans-serif !important;font-weight:800 !important;font-size:22px !important;color:#fff !important;-webkit-text-fill-color:#fff !important;display:inline-flex !important;align-items:center !important;gap:4px !important;line-height:1 !important}
body.home .rev-platforms .revp__star{color:#d5160c !important;-webkit-text-fill-color:#d5160c !important;font-size:15px !important}
body.home .rev-platforms .revp__count{font-family:"Barlow",sans-serif !important;font-weight:500 !important;font-size:11px !important;letter-spacing:.04em !important;text-transform:uppercase !important;color:#9c9c9c !important;-webkit-text-fill-color:#9c9c9c !important;line-height:1.2 !important}
@media(max-width:600px){body.home .rev-platforms{gap:8px !important}body.home .rev-platforms .revp{min-width:0 !important;flex:1 1 28% !important;padding:10px 6px !important}body.home .rev-platforms .revp__rate{font-size:18px !important}body.home .rev-platforms .revp__site{font-size:11px !important}}
/* ===== end hd29 ===== */
/* ===== hd30: trust section V7+V8 blend ===== */
/* TRUST — "V7+V8 BLEND" (final synthesis, voted 8–1)
   ───────────────────────────────────────────────────────────────────────────
   CONCEPT: White Milwaukee-industrial band that answers "why choose us" with a
   bold red-✓ CHECKLIST (V8 structural base), opened by a SINCE 1996 ·
   FAMILY-OWNED, LATINO-OWNED heritage cue (V7 framing), and closed by ONE
   full-bleed RED proof bar — the section's single accent moment.

   RATING STATED ONCE (Contrarian's binding constraint): the visible 5-platform
   .rev-platforms strip + a single ".rev-headline" line ("4.9★ · 241 verified
   reviews · 5 platforms"). The duplicate rating UI is removed.

   WHAT'S HIDDEN:
     • .ring-wrap  → display:none  (kills the standalone 4.9 ring AND its
       .ring-stats 99%/∞/30yr — both duplicated the strip/checklist/proof bar).
   Nothing else is hidden; every credential keeps its text label.

   PERFORMANCE / A11Y mandate (no shortcuts):
     • NO copy baked into ::before/::after content — every word lives in real
       DOM (see blend-html-edits.md): heritage line, rating line, benefit tails,
       proof-bar text. The only ::before/::after here are non-text decoration
       (the red top rule, the eyebrow tick).
     • NO CSS counters. NO load-bearing display:contents.
     • The checklist ✓ is a real white glyph inside a red square (colorblind-safe:
       shape + glyph, not color alone) and each row keeps its written title.

   CONTRAST INTENT (by construction, AA+):
     • White band → all body/title text forced near-#000 on #fff.
     • Red ✓ squares carry a #fff glyph (#fff on #d5160c ≈ 4.5:1).
     • Red proof bar → #fff text + bold #fff <strong> on #d5160c.
     • Review chips → #000-on-#fff. No dark-on-dark / light-on-light anywhere.

   PALETTE (strict): #d5160c · #9c9c9c · #000 · #fff. Type: Barlow Semi
   Condensed (display) + Barlow (body). Sharp corners, 2px borders, hard offset
   shadows. Scoped to body.home #trust; every property !important (integration).
   ─────────────────────────────────────────────────────────────────────────── */

/* ============================== SECTION SHELL ============================== */
body.home #trust{
  background:#fff !important;
  color:#000 !important;
  border-top:3px solid #000 !important;
  border-bottom:3px solid #000 !important;
  padding:clamp(52px,6.5vw,96px) 0 0 !important;
  position:relative !important;
  overflow:hidden !important;
}
/* single thin red top rule — decoration only, no text */
body.home #trust::before{
  content:"" !important;
  position:absolute !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:5px !important;
  background:#d5160c !important;
  z-index:3 !important;
}

/* trust-inner: single-column flow; ring-wrap removed, guarantee → proof bar */
body.home #trust .trust-inner{
  display:block !important;
  max-width:1120px !important;
  margin:0 auto !important;
  padding:0 clamp(18px,4vw,48px) clamp(40px,5vw,72px) !important;
  position:relative !important;
  z-index:1 !important;
}
/* intro <div> (eyebrow/h2/body-lg/strip/checklist) spans full width */
body.home #trust .trust-inner>div:first-child{
  display:block !important;
  max-width:none !important;
  width:100% !important;
}

/* ============================== HERITAGE CUE (V7) ========================== */
/* real element added via HTML-edits, immediately above the eyebrow */
body.home #trust .trust-heritage{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.14em !important;
  font-size:clamp(12px,1.3vw,15px) !important;
  line-height:1 !important;
  color:#fff !important;
  background:#000 !important;
  border:2px solid #000 !important;
  box-shadow:4px 4px 0 #d5160c !important;
  padding:8px 14px !important;
  margin:0 0 16px !important;
}
body.home #trust .trust-heritage b,
body.home #trust .trust-heritage strong{
  color:#d5160c !important;
  font-weight:800 !important;
}

/* ============================== HEADER (leads) ============================ */
body.home #trust .eyebrow{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.18em !important;
  font-size:13px !important;
  line-height:1 !important;
  color:#d5160c !important;
  margin:0 0 14px !important;
}
body.home #trust .eyebrow::before{
  content:"" !important;            /* decorative tick, no text */
  width:38px !important;
  height:4px !important;
  background:#d5160c !important;
  display:inline-block !important;
}
body.home #trust .h2{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:-.01em !important;
  line-height:.92 !important;
  font-size:clamp(34px,5vw,62px) !important;
  color:#000 !important;
  margin:0 !important;
  max-width:18ch !important;
}
body.home #trust .body-lg{
  font-family:"Barlow",sans-serif !important;
  color:rgba(0,0,0,.82) !important;
  font-size:clamp(15px,1.4vw,17px) !important;
  line-height:1.6 !important;
  max-width:64ch !important;
  margin:16px 0 0 !important;
}
body.home #trust .body-lg a{
  color:#d5160c !important;
  font-weight:700 !important;
  text-decoration:none !important;
  border-bottom:2px solid rgba(213,22,12,.35) !important;
  transition:border-color .15s ease,background .15s ease !important;
}
body.home #trust .body-lg a:hover,
body.home #trust .body-lg a:focus-visible{
  border-bottom-color:#d5160c !important;
  background:rgba(213,22,12,.08) !important;
  outline:2px solid #d5160c !important;
  outline-offset:2px !important;
}

/* ===================== REVIEW STRIP + SINGLE RATING LINE =================== */
/* rating headline is a REAL element (.rev-headline) added directly before the
   strip — NOT injected via ::before. State the rating ONCE, here. */
body.home #trust .rev-headline{
  display:block !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  font-size:clamp(15px,1.7vw,21px) !important;
  line-height:1.1 !important;
  color:#000 !important;
  margin:clamp(28px,3.5vw,42px) 0 12px !important;
  padding:0 0 0 16px !important;
  position:relative !important;
}
body.home #trust .rev-headline::before{
  content:"" !important;            /* decorative red bar, no text */
  position:absolute !important;
  left:0 !important; top:50% !important;
  transform:translateY(-50%) !important;
  width:6px !important;
  height:1.05em !important;
  background:#d5160c !important;
}
body.home #trust .rev-headline .rev-headline__star{
  color:#d5160c !important;
  font-weight:800 !important;
}

body.home #trust .rev-platforms{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:10px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
}
body.home #trust .revp{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  background:#fff !important;
  border:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:3px 3px 0 #d5160c !important;
  padding:9px 13px !important;
  min-height:44px !important;          /* ≥44px tap target */
  flex:0 0 auto !important;
}
body.home #trust .revp__site{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:700 !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  font-size:12px !important;
  color:#000 !important;
}
body.home #trust .revp__rate{
  display:inline-flex !important;
  align-items:center !important;
  gap:3px !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:14px !important;
  color:#000 !important;
}
body.home #trust .revp__star{ color:#d5160c !important; font-size:13px !important; }
body.home #trust .revp__count{
  font-family:"Barlow",sans-serif !important;
  font-size:11px !important;
  color:rgba(0,0,0,.55) !important;
  white-space:nowrap !important;
}

/* ============================== THE CHECKLIST (V8) ======================== */
body.home #trust .cred-list{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  margin:clamp(30px,4vw,46px) 0 0 !important;
  border:3px solid #000 !important;
  border-radius:0 !important;
  box-shadow:9px 9px 0 #000 !important;
  background:#fff !important;
}
body.home #trust .cred-row{
  display:grid !important;
  grid-template-columns:auto auto 1fr !important;
  align-items:center !important;
  gap:clamp(14px,2vw,22px) !important;
  background:#fff !important;
  border:0 !important;
  border-top:2px solid #000 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:clamp(16px,2.2vw,24px) clamp(16px,2.4vw,28px) !important;
  position:relative !important;
  min-height:64px !important;
  transition:background .14s ease !important;
}
body.home #trust .cred-row:first-child{ border-top:0 !important; }
body.home #trust .cred-row:hover{ background:rgba(213,22,12,.05) !important; }
body.home #trust .cred-row::before{ content:none !important; }

/* RED ✓ SQUARE — repurposes the floating .cred-badge into the lead checkmark.
   Hide the badge's own text (Top 1% / ✓ / ∞ / 24h) and paint a real ✓ glyph.
   Colorblind-safe: it is a SHAPE + glyph; the row title still carries the words. */
body.home #trust .cred-badge{
  order:-1 !important;
  align-self:center !important;
  width:clamp(44px,4.4vw,56px) !important;
  height:clamp(44px,4.4vw,56px) !important;
  min-width:0 !important;
  padding:0 !important;
  background:#d5160c !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:3px 3px 0 #000 !important;
  color:transparent !important;
  font-size:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  position:relative !important;
}
body.home #trust .cred-badge::before{
  content:"\2713" !important;            /* ✓ glyph — decorative, title holds meaning */
  color:#fff !important;
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  font-size:clamp(26px,2.8vw,34px) !important;
  line-height:1 !important;
}

/* small icon chip — kept, de-emphasized vs the red ✓ */
body.home #trust .cred-ic{
  width:clamp(38px,3.6vw,46px) !important;
  height:clamp(38px,3.6vw,46px) !important;
  flex:0 0 auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  font-size:clamp(18px,1.9vw,22px) !important;
  line-height:1 !important;
  background:#000 !important;
  border:0 !important;
  border-radius:0 !important;
  color:#fff !important;
}
body.home #trust .cred-ic img{
  width:30px !important;
  height:30px !important;
  object-fit:contain !important;
  filter:none !important;
}

body.home #trust .cred-title{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.005em !important;
  font-size:clamp(16px,1.8vw,21px) !important;
  line-height:1.08 !important;
  color:#000 !important;
}
body.home #trust .cred-sub{
  font-family:"Barlow",sans-serif !important;
  font-size:clamp(12.5px,1.25vw,14.5px) !important;
  line-height:1.45 !important;
  color:rgba(0,0,0,.62) !important;
  margin-top:5px !important;
}

/* ====================== DUPLICATE RATING UI — REMOVED ===================== */
/* the whole ring column goes: standalone 4.9 ring + its 99%/∞/30yr stats.
   (No display:contents — a plain display:none on the wrapper, since it holds
   only .ring and .ring-stats, both intentionally dropped.) */
body.home #trust .ring-wrap{ display:none !important; }

/* ============== ONE FULL-BLEED RED PROOF BAR (repurpose .trust-guarantee) == */
/* the section's single accent moment. Text is real DOM (replaced via
   HTML-edits): SINCE 1996 · CSLB #749551 · BBB A+ · Family-owned, Latino-owned.
   No rating repeated here. */
body.home #trust .trust-guarantee{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
  max-width:none !important;
  margin:clamp(38px,5vw,64px) 0 0 !important;
  /* full-bleed past the .trust-inner side padding */
  margin-left:calc(-1 * clamp(18px,4vw,48px)) !important;
  margin-right:calc(-1 * clamp(18px,4vw,48px)) !important;
  padding:clamp(18px,2.6vw,26px) clamp(18px,5vw,72px) !important;
  background:#d5160c !important;
  border:0 !important;
  border-top:3px solid #000 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  position:relative !important;
}
body.home #trust .trust-guarantee::before{ content:none !important; }
body.home #trust .trust-guarantee-icon{
  width:34px !important;
  height:34px !important;
  flex:0 0 34px !important;
  color:#fff !important;
  stroke:#fff !important;
  margin:0 !important;
}
body.home #trust .trust-guarantee-text{
  font-family:"Barlow",sans-serif !important;
  font-size:clamp(13px,1.4vw,16px) !important;
  line-height:1.5 !important;
  color:#fff !important;
  margin:0 !important;
}
body.home #trust .trust-guarantee-text strong{
  font-family:"Barlow Semi Condensed",sans-serif !important;
  font-weight:800 !important;
  text-transform:uppercase !important;
  letter-spacing:.03em !important;
  color:#fff !important;
}

/* keep scroll-reveal classes from hiding content */
body.home #trust .rv{ opacity:1 !important; transform:none !important; }

/* ============================== RESPONSIVE — ≤768 ========================= */
@media (max-width:768px){
  body.home #trust{ padding:46px 0 0 !important; }
  body.home #trust .cred-list{ box-shadow:6px 6px 0 #000 !important; }
  body.home #trust .cred-row{
    grid-template-columns:auto auto 1fr !important;
    gap:12px !important;
    padding:14px 14px !important;
  }
  body.home #trust .cred-badge{ box-shadow:2px 2px 0 #000 !important; }
  body.home #trust .revp{ box-shadow:2px 2px 0 #d5160c !important; }

  /* platform strip GRID-LOCKED 2-up — never a single stacked list */
  body.home #trust .rev-platforms{
    display:grid !important;
    grid-template-columns:repeat(2,1fr) !important;
    gap:10px !important;
  }
  body.home #trust .revp{
    justify-content:flex-start !important;
    flex:1 1 auto !important;
    min-width:0 !important;
  }
}

/* ============================== RESPONSIVE — ≤480 ========================= */
@media (max-width:480px){
  body.home #trust .h2{ font-size:clamp(30px,9vw,40px) !important; }
  body.home #trust .trust-heritage{ font-size:12px !important; box-shadow:3px 3px 0 #d5160c !important; }
  body.home #trust .rev-headline{ font-size:15px !important; }

  /* checklist rows stack cleanly: red ✓ + text; drop the small icon chip */
  body.home #trust .cred-row{
    grid-template-columns:auto 1fr !important;
    gap:12px !important;
    align-items:center !important;
    min-height:64px !important;
  }
  body.home #trust .cred-ic{ display:none !important; }   /* red ✓ is the single mark on tiny screens */
  body.home #trust .cred-badge{ order:-1 !important; align-self:center !important; }
  body.home #trust .cred-title{ font-size:clamp(15px,5vw,18px) !important; }

  /* strip stays 2-up (grid from ≤768 holds) */
  body.home #trust .rev-platforms{ grid-template-columns:repeat(2,1fr) !important; }
}

/* fix: platform chips were white-on-white (names+ratings invisible). Force black chips w/ visible text — matches the reviews-section strip. */
body.home #trust .rev-platforms .revp{background:#000 !important;border:2px solid #000 !important;border-top:3px solid #d5160c !important}
body.home #trust .rev-platforms .revp__site{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #trust .rev-platforms .revp__rate{color:#fff !important;-webkit-text-fill-color:#fff !important}
body.home #trust .rev-platforms .revp__star{color:#d5160c !important;-webkit-text-fill-color:#d5160c !important}
body.home #trust .rev-platforms .revp__count{color:#9c9c9c !important;-webkit-text-fill-color:#9c9c9c !important}
