@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Jost:wght@400;500;600;700&display=swap');
:root{--paper:#f4f9fb;--ink:#253e48;--primary:#3e7286;--primary-hover:#253e48;--accent:#deedf2;--wash:#deedf2;--line:color-mix(in srgb,var(--ink) 17%,transparent);--body:'DM Sans',sans-serif;--display:'Jost',serif;--white:#fff;--radius:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.65}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,a{ -webkit-tap-highlight-color:transparent}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--display);font-weight:500;line-height:1.07;letter-spacing:-.035em}h1{font-size:clamp(3.6rem,5.4vw,5.9rem)}h2{font-size:clamp(2.2rem,3.4vw,3.7rem)}h3{font-size:1.18rem;line-height:1.35;font-weight:600}p{max-width:65ch}p+p{margin-top:1rem}a:focus-visible,button:focus-visible{outline:3px solid var(--primary);outline-offset:5px}::selection{background:var(--wash)}.container{width:min(1240px,calc(100% - 88px));margin:auto}.section{padding:88px 0}.eyebrow{text-transform:uppercase;font-size:.71rem;letter-spacing:.18em;font-weight:700;margin-bottom:18px}.section-head{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:36px}.section-head>div{max-width:630px}.section-head>p{max-width:350px;opacity:.78}.alt{background:var(--wash)}.dark{background:var(--ink);color:var(--paper)}.btn,.btn-secondary,.btn-light{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:52px;padding:12px 22px;border-radius:3px;font-size:.85rem;font-weight:600;border:1px solid var(--primary);background:var(--primary);color:#fff;transition:background .2s,transform .2s}.btn:hover{background:var(--ink);transform:translateY(-2px)}.btn-secondary{background:transparent;border-color:var(--line);color:var(--ink)}.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.card-link{display:inline-block;margin-top:18px;font-size:.82rem;font-weight:700;border-bottom:1px solid var(--line);padding-bottom:5px}.card-link:after{content:' â†—';margin-left:8px}.skip-link{position:fixed;z-index:100;top:-100px;left:20px;padding:12px;background:var(--ink);color:white}.skip-link:focus{top:12px}
.site-header{background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:20}.nav-wrap{display:flex;align-items:center;min-height:100px;gap:32px}.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:.98rem;line-height:1.3;max-width:260px}.brand-logo{width:44px;height:44px;flex-shrink:0}.brand small{display:block;font-weight:400;font-size:.65rem;letter-spacing:.06em;margin-top:5px}.nav{display:flex;align-items:center;gap:24px;margin-left:auto;font-size:.8rem}.nav a{padding:8px 0;border-bottom:1px solid transparent}.nav a:hover,.nav a.active{border-color:var(--primary)}.header-actions .btn{min-height:44px;padding:10px 16px;font-size:.75rem}.menu-toggle{display:none}.header-kicker{border-bottom:1px solid var(--line);padding:8px 0;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}.header-kicker .container{display:flex;justify-content:space-between}
.hero{position:relative;overflow:hidden;padding:50px 0 64px}.hero-layout{display:grid;grid-template-columns:1fr 1.08fr;align-items:center;gap:60px}.hero-copy{padding:30px 0}.hero-copy p{font-size:1.05rem;opacity:.8;margin-top:25px;max-width:43ch}.hero-media{position:relative}.hero-img{width:100%;height:580px;object-fit:cover;border-radius:var(--radius)}.photo-label{position:absolute;left:24px;bottom:24px;background:var(--paper);padding:12px 18px;font-size:.72rem;max-width:220px;border-left:3px solid var(--primary)}.hero-note{margin-top:25px;display:flex;gap:20px;font-size:.72rem;border-top:1px solid var(--line);padding-top:18px}.hero-note span{flex:1}.hero-note strong{display:block;font-weight:600}.layout-panorama .hero{padding:0}.layout-panorama .hero-layout{min-height:700px;padding:80px 0;position:relative}.layout-panorama .hero-media{position:absolute;inset:0;left:34%;z-index:0}.layout-panorama .hero-img{height:100%;border-radius:0}.layout-panorama .hero-media:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--paper),transparent 70%)}.layout-panorama .hero-copy{z-index:1;max-width:650px;padding:30px 38px 30px 0}.layout-panorama .hero-copy h1{max-width:12ch}.layout-panorama .photo-label{left:auto;right:24px;z-index:1}.layout-portrait .hero-media{padding:0 30px}.layout-portrait .hero-img{height:620px;border-radius:48% 48% 2px 2px}.layout-portrait .hero-media:before{content:'';position:absolute;inset:20px 0 -20px;border:1px solid var(--line);border-radius:48% 48% 2px 2px;z-index:-1}.layout-gallery .hero-layout{grid-template-columns:.95fr 1.3fr;gap:45px}.layout-gallery .hero-img{height:570px;border-radius:0}.layout-gallery .hero-media{border:12px solid white;box-shadow:0 18px 60px #0000000c}.layout-gallery .hero-copy h1{font-size:clamp(4rem,6vw,6.8rem)}.layout-workshop .hero-layout{grid-template-columns:1.15fr 1fr;gap:75px}.layout-workshop .hero-copy h1{font-size:clamp(4rem,6vw,6.8rem)}.layout-workshop .hero-media{transform:rotate(1deg);border:10px solid var(--wash)}.layout-workshop .hero-img{height:520px;border-radius:0}.layout-technical{--radius:0}.layout-technical .hero-layout{gap:0;grid-template-columns:1fr 1.2fr;border:1px solid var(--line)}.layout-technical .hero-copy{padding:45px}.layout-technical .hero-img{height:570px}.layout-technical h1,.layout-technical h2{letter-spacing:-.04em;font-weight:600}.layout-technical .hero-note{font-size:.68rem}.layout-airy .hero-media{border-radius:0 0 100px 0;overflow:hidden}.layout-airy .hero-img{height:570px;border-radius:0}.layout-airy .hero{padding-top:70px}.layout-airy .hero-copy h1{font-size:clamp(3.8rem,5.5vw,6rem)}
.process-strip{padding:32px 0;border-block:1px solid var(--line)}.process-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:30px;align-items:start}.process-step{font-size:.8rem;border-left:1px solid var(--line);padding-left:24px}.process-step span{font-size:.65rem;display:block;opacity:.65;margin-bottom:8px}.process-step strong{display:block;font-weight:600;margin-bottom:5px}.process-grid h2{font-family:var(--body);font-size:1.25rem;letter-spacing:-.02em}.trigger-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.trigger-card{padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.98rem;min-height:130px;display:flex;flex-direction:column;justify-content:space-between;gap:14px;transition:background .2s}.trigger-card:hover{background:var(--wash)}.trigger-card>span{font-size:.65rem;letter-spacing:.14em;opacity:.6}.trigger-card small{font-size:.72rem;display:flex;justify-content:space-between;opacity:.7}.grid.services-grid,.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.service-card{background:var(--white);border:1px solid var(--line);overflow:hidden;border-radius:var(--radius)}.media{overflow:hidden}.media img{width:100%;height:240px;object-fit:cover;transition:transform .6s}.service-card:hover .media img{transform:scale(1.035)}.service-card .body{padding:26px}.service-card p{font-size:.85rem;opacity:.78;margin-top:12px}.service-number{font-size:.65rem;letter-spacing:.15em;opacity:.55;display:block;margin-bottom:13px}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}.split>img{height:470px;width:100%;object-fit:cover;border-radius:var(--radius)}.split p{margin-top:24px;opacity:.8}.detail-list{margin:26px 0 0;padding:0;list-style:none}.detail-list li{padding:14px 0;border-bottom:1px solid var(--line);font-size:.88rem;display:flex;gap:15px}.detail-list li:before{content:'â†—';color:var(--primary)}.timeline-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.timeline-step{border-top:1px solid var(--line);padding-top:24px}.timeline-step span{font-family:var(--display);font-size:2.8rem;opacity:.35;line-height:1}.timeline-step h3{margin-top:25px}.timeline-step p{font-size:.82rem;margin-top:12px;opacity:.78}.trade-band{padding:80px 0;background:var(--primary);color:#fff;position:relative;overflow:hidden}.trade-band:before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent,transparent 79px,#ffffff10 80px)}.trade-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;position:relative}.trade-grid p{margin-top:25px;opacity:.87}.material-rows{display:flex;flex-direction:column;justify-content:center}.material-row{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid #ffffff40;font-size:1.1rem}.material-row span{font-size:.7rem;opacity:.55}.day-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.day-card{border:1px solid var(--line);padding:30px;background:var(--paper)}.day-card .eyebrow{opacity:.55}.day-card p{font-size:.9rem;opacity:.85}.gallery-wrap{display:grid;grid-template-columns:1fr 170px;gap:18px}.gallery-stage{position:relative;height:580px;background:var(--wash);overflow:hidden}.gallery-stage img{height:100%;width:100%;object-fit:cover}.gallery-main-btn{position:absolute;inset:0;background:transparent;border:0}.gallery-main-btn:after{content:'Enlarge â†—';position:absolute;bottom:25px;left:25px;padding:12px 18px;background:var(--paper);font-size:.75rem}.gallery-counter{position:absolute;right:25px;bottom:25px;background:var(--paper);padding:12px 18px;font-size:.75rem}.gallery-rail{display:grid;grid-auto-rows:1fr;gap:14px}.gallery-thumb{padding:0;border:2px solid transparent;background:transparent;overflow:hidden}.gallery-thumb img{width:100%;height:100%;object-fit:cover}.gallery-thumb[aria-current=true]{border-color:var(--primary)}.gallery-controls{display:flex;justify-content:space-between;margin-top:14px}.icon-btn{border:1px solid var(--line);background:var(--paper);padding:10px 18px;font-size:.75rem}.gallery-caption{font-size:.7rem;opacity:.65;margin-top:18px}.viewer{display:none;position:fixed;inset:0;background:#101816f5;z-index:80;color:#fff;align-items:center;justify-content:center}.viewer.open{display:flex}.viewer-img{max-width:85vw;max-height:80vh;object-fit:contain}.viewer-close{position:absolute;right:20px;top:20px;background:transparent;border:1px solid #fff8;color:white;padding:12px}.viewer-count{position:absolute;bottom:25px}.viewer-nav{position:absolute;left:20px;right:20px;display:flex;justify-content:space-between;pointer-events:none}.viewer-nav button{pointer-events:all}.viewer-thumbs{display:none}
.grid.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.review-card{border:1px solid var(--line);padding:28px;background:#fff;color:#263039}.review-author{display:flex;gap:12px;align-items:center;font-size:.83rem}.review-avatar{width:34px;height:34px;display:grid;place-items:center;background:#4285f4;color:#fff;border-radius:50%}.review-rating{display:flex;align-items:center;gap:12px;margin:14px 0;font-size:.7rem;color:#667}.stars{color:#fbbc04;font-size:1.05rem}.stars b{color:#ddd}.review-card p{font-size:.85rem;line-height:1.6}.faq-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px}.faq-item{border-bottom:1px solid var(--line)}.faq-q{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;border:0;background:transparent;padding:24px 0;text-align:left;font-weight:600;font-size:.92rem}.faq-q:after{content:'+';font-size:1.3rem;font-weight:400}.faq-item.open .faq-q:after{content:'âˆ’'}.faq-a{font-size:.85rem;padding:0 45px 24px 0;opacity:.8}.js .faq-item:not(.open) .faq-a{display:none}.map-layout{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.map-card{position:relative;height:330px;background:var(--wash);border:1px solid var(--line);overflow:hidden;display:grid;place-items:center}.map-card:before{content:'';position:absolute;inset:-40px;background:repeating-linear-gradient(35deg,transparent,transparent 80px,#ffffff80 81px,#ffffff80 88px,transparent 89px),repeating-linear-gradient(120deg,transparent,transparent 100px,#ffffff90 101px,#ffffff90 106px,transparent 107px)}.map-pin{position:relative;background:var(--paper);border:1px solid var(--line);padding:24px;text-align:center;font-size:.9rem}.map-pin:before{content:'';display:block;width:18px;height:18px;background:var(--primary);border:4px solid white;border-radius:50%;margin:0 auto 12px;box-shadow:0 0 0 20px #ffffff50}.map-card small{position:absolute;bottom:15px;right:15px;font-size:.65rem}.location-card{padding:20px 0;border-top:1px solid var(--line);margin-top:25px;font-size:.85rem}.location-card strong{display:block}.booking-section{padding:80px 0}.booking-box{border:1px solid var(--line);background:white;padding:50px}.booking-box>p{font-size:.9rem;opacity:.75;margin-top:18px}.template-booking-mock{margin-top:32px;display:grid;grid-template-columns:1fr 1.8fr;gap:35px;background:var(--paper);padding:28px;pointer-events:none}.template-booking-sidebar strong{font-size:.82rem}.template-booking-choice{padding:12px;border:1px solid var(--line);margin-top:12px;font-size:.72rem}.template-booking-choice.active{background:var(--wash)}.template-booking-top{display:flex;justify-content:space-between;font-size:.82rem;gap:20px}.template-booking-top span{font-size:.65rem;opacity:.65}.template-booking-days,.template-booking-times{display:flex;gap:12px;margin-top:18px}.template-booking-days button,.template-booking-times button{flex:1;padding:14px 6px;border:1px solid var(--line);background:#fff;font-size:.75rem}.template-booking-days button span{display:block;font-size:.65rem}.template-booking-times button.active{background:var(--primary);color:white}.template-booking-intake{display:flex;gap:10px;margin-top:18px}.template-booking-input{border:1px solid var(--line);padding:12px;font-size:.65rem;flex:1;background:#fff}.template-booking-submit{border:0;background:var(--primary);color:#fff;font-size:.68rem;padding:12px}.cta{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.cta p{opacity:.75;margin-top:25px}.cta-media img{height:350px;width:100%;object-fit:cover;border-radius:var(--radius)}.site-footer{padding:65px 0 30px;background:var(--paper);border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:70px}.footer-grid p{font-size:.79rem;margin-top:20px;opacity:.7}.footer-grid h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;margin-bottom:20px}.footer-grid ul{padding:0;list-style:none;margin:0}.footer-grid li{font-size:.76rem;margin-top:10px}.footer-bottom{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:24px;margin-top:40px;font-size:.67rem;opacity:.65}.mobile-cta{display:none}.template-chat-mock{position:fixed;right:28px;bottom:25px;z-index:40;width:340px;background:#fff;border:1px solid var(--line);box-shadow:0 20px 80px #0002;border-radius:12px;overflow:hidden}.template-chat-mock.is-collapsed{display:none}.template-chat-header{display:flex;justify-content:space-between;gap:15px;padding:20px;background:var(--ink);color:white;font-size:.8rem}.template-chat-header button{border:0;background:transparent;color:white;font-size:1.3rem}.template-chat-body{padding:25px;font-size:.82rem}.template-chat-bubble{background:var(--wash);padding:18px;border-radius:8px}.template-chat-footer{padding:15px 25px;background:var(--paper);font-size:.67rem}.template-chat-launcher{position:fixed;right:28px;bottom:25px;z-index:35;background:var(--ink);color:#fff;padding:16px 22px;border:0;border-radius:40px;font-size:.8rem;box-shadow:0 8px 35px #0002}.template-chat-launcher.is-hidden{display:none}.tcl-icon{margin-right:10px}.page-hero{padding:70px 0 60px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(3.3rem,5.4vw,5.5rem);max-width:18ch}.page-hero p{margin-top:25px;font-size:1.03rem;opacity:.78;max-width:60ch}.breadcrumb{font-size:.72rem;margin-bottom:35px;opacity:.65}.related{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}.related a{border:1px solid var(--line);padding:10px 14px;font-size:.73rem}.scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:30px}.scope-card{padding:28px;border:1px solid var(--line)}.scope-card p{margin-top:12px;font-size:.85rem;opacity:.8}
body[data-niche=pressure-washing] .trade-band:before{background:radial-gradient(circle at 85% 40%,#ffffff15,transparent 45%)}body[data-niche=fencing] .trade-band:before{background:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff18 40px,#ffffff18 41px)}body[data-niche=flooring-tile] .trade-band:before{background:repeating-linear-gradient(45deg,transparent,transparent 69px,#ffffff15 70px),repeating-linear-gradient(-45deg,transparent,transparent 69px,#ffffff10 70px)}body[data-niche=masonry] .trade-band:before{background-size:100px 50px;background-image:linear-gradient(#ffffff20 1px,transparent 1px),linear-gradient(90deg,#ffffff20 1px,transparent 1px)}body[data-niche=concrete] .trade-band:before{background-image:linear-gradient(90deg,#ffffff15 1px,transparent 1px),linear-gradient(#ffffff15 1px,transparent 1px);background-size:180px 180px}body[data-niche=excavation] .trade-band:before{background:repeating-radial-gradient(ellipse at 110% 60%,transparent,transparent 35px,#ffffff15 36px,transparent 37px)}body[data-niche=glass-window-door] .trade-band:before{background:linear-gradient(120deg,transparent 55%,#ffffff18 55%,#ffffff18 60%,transparent 60%)}body[data-niche=screen-enclosures] .trade-band:before{background:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px);background-size:15px 15px}body[data-niche=epoxy-flooring] .trade-band:before{background:radial-gradient(#ffffff25 1px,transparent 2px);background-size:25px 23px}body[data-niche=gutters] .trade-band:before{background:repeating-linear-gradient(120deg,transparent,transparent 39px,#ffffff18 40px,transparent 42px)}body[data-niche=siding] .trade-band:before{background:repeating-linear-gradient(0deg,transparent,transparent 55px,#ffffff25 56px,#ffffff25 58px)}body[data-niche=insulation] .trade-band:before{background:repeating-radial-gradient(ellipse at 90% 100%,transparent,transparent 22px,#ffffff15 23px,transparent 25px)}body[data-niche=drywall] .trade-band:before{background:linear-gradient(100deg,transparent 70%,#ffffff15 70%,#ffffff15 71%,transparent 71%)}body[data-niche=deck-patio] .trade-band:before{background:repeating-linear-gradient(90deg,transparent,transparent 99px,#ffffff18 100px,#ffffff18 103px)}
@media(min-width:1600px){.container{width:min(1360px,calc(100% - 120px))}}@media(max-width:1100px){.container{width:calc(100% - 56px)}.nav{gap:17px}.header-actions{display:none}.hero-layout,.layout-workshop .hero-layout{gap:35px}.hero-img,.layout-portrait .hero-img{height:510px}.layout-technical .hero-copy{padding:30px}.section{padding:70px 0}.split,.trade-grid,.faq-layout{gap:45px}.grid.services-grid,.service-grid{grid-template-columns:repeat(2,1fr)}.timeline-grid{gap:20px}.footer-grid{gap:35px}}
@media(max-width:720px){.container{width:calc(100% - 40px)}body{font-size:15px}.section{padding:48px 0}.section-head{display:block;margin-bottom:26px}.section-head>p{margin-top:18px;max-width:100%;font-size:.88rem}h1{font-size:3.2rem}h2{font-size:2.2rem}.eyebrow{font-size:.63rem;letter-spacing:.14em;margin-bottom:14px}.header-kicker{display:none}.nav-wrap{min-height:82px;justify-content:space-between;gap:15px}.brand{font-size:.81rem;max-width:245px;gap:10px}.brand-logo{width:38px;height:38px}.brand small{font-size:.58rem}.menu-toggle{display:block;border:1px solid var(--line);background:transparent;padding:8px 12px;font-size:.7rem}.js .nav{display:none;position:absolute;top:81px;left:0;right:0;background:var(--paper);padding:22px;box-shadow:0 12px 24px #0001;flex-direction:column;align-items:stretch;gap:8px}.js .nav.open{display:flex}.no-js .nav{display:flex;flex-wrap:wrap;font-size:.64rem;margin:0;gap:10px}.no-js .nav-wrap{flex-wrap:wrap;padding:16px 0}.no-js .menu-toggle{display:none}.hero,.layout-airy .hero{padding:28px 0 40px}.hero-layout,.layout-gallery .hero-layout,.layout-workshop .hero-layout,.layout-technical .hero-layout{display:flex;flex-direction:column;gap:25px;align-items:stretch;border:0}.hero-copy,.layout-technical .hero-copy{padding:12px 0}.hero-copy h1,.layout-gallery .hero-copy h1,.layout-workshop .hero-copy h1,.layout-airy .hero-copy h1{font-size:3.2rem;max-width:12ch}.hero-copy p{font-size:.94rem;margin-top:20px}.hero-actions{gap:10px;margin-top:24px}.btn,.btn-secondary,.btn-light{font-size:.75rem;padding:12px 16px;min-height:48px}.hero-note{font-size:.66rem;margin-top:22px;gap:10px}.hero-img,.layout-gallery .hero-img,.layout-workshop .hero-img,.layout-technical .hero-img,.layout-airy .hero-img{height:315px}.hero-media,.layout-workshop .hero-media{transform:none}.layout-portrait .hero-media{padding:0 15px}.layout-portrait .hero-img{height:370px}.layout-gallery .hero-media{border-width:7px}.photo-label{left:16px;bottom:16px;padding:10px 12px;font-size:.63rem;max-width:195px}.layout-panorama .hero{padding:0 0 25px}.layout-panorama .hero-layout{padding:28px 0 0;min-height:0;display:flex}.layout-panorama .hero-media{position:relative;inset:auto;order:2;left:auto}.layout-panorama .hero-copy{max-width:none;padding:12px 0;order:1}.layout-panorama .hero-img{height:330px}.layout-panorama .hero-media:after{display:none}.layout-panorama .photo-label{right:16px;left:auto}.process-strip{padding:28px 0}.process-grid{grid-template-columns:1fr;gap:18px}.process-grid h2{font-size:1.1rem}.process-step{padding-left:15px;font-size:.75rem}.process-step span{display:inline-block;margin:0 10px 0 0}.process-step strong{display:inline}.process-step p{margin-top:6px}.trigger-grid{grid-template-columns:repeat(2,1fr)}.trigger-card{padding:17px;min-height:140px;font-size:.84rem}.trigger-card small{font-size:.61rem}.grid.services-grid,.service-grid{grid-template-columns:1fr;gap:18px}.media img{height:220px}.service-card .body{padding:22px}.service-card h3{font-size:1.12rem}.service-card p{font-size:.83rem}.split,.trade-grid,.faq-layout,.map-layout,.cta{grid-template-columns:1fr;gap:30px}.split>img{height:310px}.split p{margin-top:20px;font-size:.89rem}.timeline-grid{grid-template-columns:1fr 1fr;gap:28px 20px}.timeline-step{padding-top:18px}.timeline-step span{font-size:2rem}.timeline-step h3{font-size:1rem;margin-top:18px}.timeline-step p{font-size:.75rem}.trade-band{padding:58px 0}.trade-grid p{font-size:.87rem}.material-row{padding:17px 0;font-size:.97rem}.day-grid{grid-template-columns:1fr;gap:14px}.day-card{padding:24px}.day-card p{font-size:.85rem}.gallery-wrap{grid-template-columns:1fr;gap:14px}.gallery-stage{height:280px}.gallery-rail{grid-template-columns:repeat(auto-fit,minmax(85px,1fr));grid-auto-rows:90px;gap:10px}.gallery-main-btn:after,.gallery-counter{font-size:.64rem;bottom:15px;padding:9px 13px}.gallery-main-btn:after{left:15px}.gallery-counter{right:15px}.gallery-caption{font-size:.65rem}.grid.reviews{grid-template-columns:1fr;gap:15px}.review-card{padding:23px}.review-card p{font-size:.82rem}.faq-q{font-size:.84rem;padding:22px 0}.faq-a{font-size:.82rem;padding-right:12px}.map-card{height:270px}.booking-section{padding:55px 0}.booking-box{padding:26px 20px}.booking-box>p{font-size:.84rem}.template-booking-mock{grid-template-columns:1fr;padding:17px;gap:24px}.template-booking-sidebar{display:none}.template-booking-top{font-size:.72rem;gap:12px}.template-booking-top span{font-size:.59rem}.template-booking-days,.template-booking-times{gap:7px}.template-booking-days button,.template-booking-times button{font-size:.66rem;padding:12px 2px}.template-booking-intake{flex-wrap:wrap;gap:8px}.template-booking-input{font-size:.6rem;min-width:90px}.template-booking-submit{width:100%;padding:12px}.cta-media img{height:280px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px 20px}.footer-grid>div:first-child{grid-column:1/-1}.footer-grid p{font-size:.78rem}.footer-grid h3{font-size:.66rem}.footer-grid li{font-size:.7rem}.footer-bottom{font-size:.61rem;flex-direction:column;gap:8px;margin-top:30px}.site-footer{padding:50px 0 95px}.mobile-cta{display:flex;position:fixed;bottom:0;left:0;right:0;padding:10px 15px calc(10px + env(safe-area-inset-bottom));gap:10px;background:var(--paper);border-top:1px solid var(--line);z-index:30}.mobile-cta a{flex:1;padding:11px;font-size:.74rem;text-align:center;border:1px solid var(--primary);font-weight:600}.mobile-cta a:last-child{background:var(--primary);color:white}.template-chat-launcher{display:none}.template-chat-mock{right:15px;left:15px;bottom:80px;width:auto;max-height:70vh;overflow:auto}.page-hero{padding:42px 0}.page-hero h1{font-size:3rem}.page-hero p{font-size:.9rem}.breadcrumb{font-size:.66rem;margin-bottom:28px}.scope-grid{grid-template-columns:1fr}.scope-card{padding:24px}.related a{font-size:.67rem}.viewer-img{max-width:100vw;max-height:70vh}.viewer-nav{left:10px;right:10px}.viewer-nav .icon-btn{padding:10px;font-size:.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

.hero-media,.hero-copy,.split>*,.trade-grid>*,.faq-layout>*,.cta>*{min-width:0}
@media(min-width:721px){body[data-niche=pressure-washing] .hero-copy h1{font-size:6.3rem}body[data-niche=fencing] .trigger-grid{grid-template-columns:repeat(2,1fr)}body[data-niche=flooring-tile] .hero-img{height:620px}body[data-niche=masonry] .hero-media{transform:rotate(-1deg);border-width:14px}body[data-niche=concrete] .hero-copy .eyebrow{border-left:3px solid var(--primary);padding-left:15px}body[data-niche=excavation] .hero-copy h1{font-size:5.3rem;max-width:11ch}body[data-niche=glass-window-door] .hero-layout{grid-template-columns:.85fr 1.3fr}body[data-niche=screen-enclosures] .hero-layout{grid-template-columns:1fr 1.1fr}body[data-niche=screen-enclosures] .hero-media{border-radius:30px 0 30px 0;overflow:hidden}body[data-niche=epoxy-flooring] .hero-layout{grid-template-columns:1fr 1.45fr;border:0;gap:40px}body[data-niche=epoxy-flooring] .hero-copy{padding:0}body[data-niche=epoxy-flooring] .hero-img{clip-path:polygon(7% 0,100% 0,100% 100%,0 100%,0 7%)}body[data-niche=gutters] .hero-media{order:-1}body[data-niche=gutters] .hero-layout{grid-template-columns:1.2fr 1fr}body[data-niche=siding] .hero-media{left:38%}body[data-niche=insulation] .hero-img{border-radius:100px 100px 0 0}body[data-niche=drywall] .hero-media{transform:none;border:0;border-left:1px solid var(--line);padding-left:25px}body[data-niche=deck-patio] .hero-img{border-radius:2px 42% 2px 2px}body[data-niche=deck-patio] .hero-media:before{border-radius:2px 42% 2px 2px}}
/* Hero: Window panes (2026-10-08) */
/* The photo fills the hero behind white mullions; the copy pane on the right is frosted glass, which leaves the room and courtyard (left of the photo) clear. Pane edges follow the .container gutter so the copy always sits inside its pane. */
.hero-panes{--pane-edge:calc((100% - min(1240px,100% - 88px)) / 2);--pane-copy:clamp(330px,34vw,450px);--pane-w:calc(var(--pane-edge) + var(--pane-copy) + 60px);--pane-x:calc(100% - var(--pane-w));--sidelight:calc(var(--pane-edge) + 56px);--mullion:8px;position:relative;isolation:isolate;padding:0;background-color:var(--paper);min-height:min(700px,calc(100vh - 110px))}
.layout-airy .hero-panes{padding:0}
.hero-panes .hero-layout{display:flex;justify-content:flex-end;align-items:center;min-height:inherit;position:relative;z-index:1;gap:0}
.hero-panes .hero-copy{width:var(--pane-copy);padding:76px 0 68px}
.hero-panes .hero-copy p{opacity:.86}
.hero-panes .hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background-color:#c9d6d6}
.hero-panes .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:28% 60%;border-radius:0}
.hero-panes .hero-bg:before{content:'';position:absolute;z-index:1;top:0;bottom:0;right:0;width:var(--pane-w);background:linear-gradient(118deg,#ffffff6b,#fff0 46%) #f4f9fbd6;-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}
.hero-panes .hero-bg:after{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent calc(var(--pane-x) - var(--mullion) / 2),#fff calc(var(--pane-x) - var(--mullion) / 2) calc(var(--pane-x) + var(--mullion) / 2),transparent calc(var(--pane-x) + var(--mullion) / 2)),linear-gradient(90deg,transparent calc(var(--sidelight) - var(--mullion) / 2),#fff calc(var(--sidelight) - var(--mullion) / 2) calc(var(--sidelight) + var(--mullion) / 2),transparent calc(var(--sidelight) + var(--mullion) / 2)),linear-gradient(180deg,transparent calc(30% - var(--mullion) / 2),#fff calc(30% - var(--mullion) / 2) calc(30% + var(--mullion) / 2),transparent calc(30% + var(--mullion) / 2)) left top / var(--pane-x) 100% no-repeat;box-shadow:inset 0 var(--mullion) 0 #fff,inset 0 calc(var(--mullion) * -1) 0 #fff}
.hero-panes .photo-label{z-index:2;left:var(--pane-edge);bottom:calc(28px + var(--mullion));background:#fff;box-shadow:0 10px 30px #253e481f}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.hero-panes .hero-bg:before{background-color:#f4f9fbf5}}
@media(min-width:1600px){.hero-panes{--pane-edge:calc((100% - min(1360px,100% - 120px)) / 2)}}
@media(max-width:1100px){.hero-panes{--pane-edge:28px;--mullion:7px}.hero-panes .hero-img{object-position:22% 60%}}
@media(max-width:720px){
.hero-panes{display:flex;flex-direction:column;min-height:0;--mullion:6px}
.hero-panes .hero-layout{display:block;min-height:0}
.hero-panes .hero-copy{width:auto;padding:28px 0 30px}
.hero-panes .hero-copy p{font-size:1rem}
.hero-panes .hero-bg{position:relative;inset:auto;aspect-ratio:3/2}
/* At the photo's own 3:2 nothing is cropped, so the sidelight mullion lands on the curtain edge at every phone width. */
.hero-panes .hero-bg:before{display:none}
.hero-panes .hero-bg:after{background:linear-gradient(90deg,transparent calc(13% - var(--mullion) / 2),#fff calc(13% - var(--mullion) / 2) calc(13% + var(--mullion) / 2),transparent calc(13% + var(--mullion) / 2)),linear-gradient(180deg,transparent calc(30% - var(--mullion) / 2),#fff calc(30% - var(--mullion) / 2) calc(30% + var(--mullion) / 2),transparent calc(30% + var(--mullion) / 2))}
.hero-panes .photo-label{left:20px;bottom:calc(16px + var(--mullion))}
}
