@import url('https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;500;600;700&family=Bodoni+Moda:wght@400;500;600;700&display=swap');
:root{--paper:#f1eee8;--ink:#46352f;--primary:#885344;--primary-hover:#46352f;--accent:#dac9bc;--wash:#dac9bc;--line:color-mix(in srgb,var(--ink) 17%,transparent);--body:'Source Sans 3',sans-serif;--display:'Bodoni Moda',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: Coursed edge (2026-10-08) */
/* Copy on paper; the stonework photo bleeds to the right edge of the screen and its left edge is toothed like brick courses. The toothing is a two-layer mask (full photo past the tooth strip, plus every other course inside it), so it stays crisp at any hero height. */
.hero-coursed{--course:64px;--tooth:92px;--edge:calc((100% - min(1240px,100% - 88px)) / 2);padding:0}
.hero.hero-coursed .hero-layout{width:100%;max-width:none;margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0 64px;align-items:stretch;padding-left:var(--edge);min-height:min(700px,calc(100vh - 100px))}
.hero.hero-coursed .hero-copy{align-self:center;padding:72px 0 64px;max-width:600px}
.hero.hero-coursed .hero-copy h1{font-size:clamp(3.6rem,5.4vw,6.2rem)}
.hero.hero-coursed .hero-media{transform:none;border:0;position:relative;filter:drop-shadow(-14px 10px 22px #46352f26)}
.hero.hero-coursed .hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 60%;border-radius:0;-webkit-mask:linear-gradient(90deg,transparent var(--tooth),#000 var(--tooth)),repeating-linear-gradient(180deg,#000 0 var(--course),transparent var(--course) calc(var(--course) * 2)) 0 0/var(--tooth) 100% no-repeat;mask:linear-gradient(90deg,transparent var(--tooth),#000 var(--tooth)),repeating-linear-gradient(180deg,#000 0 var(--course),transparent var(--course) calc(var(--course) * 2)) 0 0/var(--tooth) 100% no-repeat}
.hero.hero-coursed .photo-label{left:calc(var(--tooth) + 26px);bottom:30px;background:var(--paper)}
@media(min-width:1600px){.hero-coursed{--edge:calc((100% - min(1360px,100% - 120px)) / 2)}}
@media(max-width:1100px){.hero-coursed{--edge:28px;--course:52px;--tooth:58px}.hero.hero-coursed .hero-layout{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);column-gap:40px}}
/* Phones: copy and photo both run from the left gutter to the screen edge (the copy keeps its right gutter as padding), so the band stacks at the copy's width and still bleeds right. */
@media(max-width:720px){
.hero-coursed{--course:38px;--tooth:28px}
.hero.hero-coursed .hero-layout{display:flex;flex-direction:column;gap:0;padding-left:20px;min-height:0}
.hero.hero-coursed .hero-copy{max-width:none;padding:28px 20px 34px 0}
.hero.hero-coursed .hero-copy h1{font-size:3.1rem}
.hero.hero-coursed .hero-copy p{font-size:1rem}
.hero.hero-coursed .hero-media{height:272px;filter:drop-shadow(-6px 6px 10px #46352f24)}
.hero.hero-coursed .hero-img{object-position:66% 62%}
.hero.hero-coursed .photo-label{left:calc(var(--tooth) + 14px);bottom:14px}
}
