:root{--wine:#790a2d;--wine-bright:#a01040;--ink:#191b20;--muted:#62666d;--line:#dce0e4;--paper:#f3f5f6;--white:#fff;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:120px}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);font-size:16px;line-height:1.65}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.04em}h1{font-size:clamp(2.6rem,5.1vw,4.7rem);font-weight:800}h2{font-size:clamp(2rem,3.5vw,3.25rem);font-weight:800}h3{font-size:1.5rem}p{color:var(--muted);margin-bottom:1.4rem}a{color:inherit;text-decoration:none}a:hover{color:var(--wine-bright)}img{max-width:100%;height:auto;display:block}button,input,select,textarea{font:inherit}button,a,input,summary,select{ -webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #c26b8a;outline-offset:5px}input:focus,select:focus,textarea:focus{outline:2px solid var(--wine);outline-offset:1px}.wrap{width:min(var(--max),calc(100% - 64px));margin-inline:auto}.utility{background:var(--ink);color:white;font-size:.875rem;padding:9px 0}.utility .wrap,.utility .wrap>div{display:flex;justify-content:space-between;gap:28px}.utility a{color:white}.site-header{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 1px 0 #dce0e4}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:28px;padding-block:12px}.brand{width:196px;flex-shrink:0}.brand img{height:106px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:23px;font-size:.92rem;font-weight:700}.site-header a[aria-current]{color:var(--wine)}.nav-drop{position:relative}.nav-drop summary{list-style:none;white-space:nowrap}.nav-drop summary:after{content:'⌄';margin-left:7px}.dropdown{position:absolute;top:calc(100% + 20px);left:-20px;width:265px;max-height:65vh;overflow:auto;padding:15px;background:white;box-shadow:0 10px 35px #0002;border-top:3px solid var(--wine)}.dropdown a{display:block;padding:8px 10px;font-weight:500}.dropdown a:hover{background:var(--paper)}.menu-toggle{display:none}.license{background:var(--paper);font-size:.78rem;border-bottom:1px solid var(--line);padding:9px 0}.license .wrap{display:flex;justify-content:space-between;gap:20px}.license strong{color:var(--wine)}.button{display:inline-flex;align-items:center;justify-content:center;gap:25px;padding:16px 24px;background:var(--wine);color:#fff!important;border:1px solid var(--wine);font-weight:700;font-size:.95rem;line-height:1.5;min-height:48px;transition:background .2s,transform .2s}.button:hover{background:var(--wine-bright);transform:translateY(-1px)}.button.small{padding:11px 18px;white-space:nowrap}.button.white{background:white;color:var(--wine)!important;border-color:white}.button.outline{background:transparent;border-color:currentColor;color:inherit!important}.hero{position:relative;isolation:isolate;background:#20272b;overflow:hidden}.hero-video,.hero-poster,.hero:after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero:after{content:'';z-index:-1;background:linear-gradient(90deg,rgba(13,18,23,.91) 0%,rgba(13,18,23,.69) 50%,rgba(13,18,23,.32) 100%)}.hero-grid{display:grid;grid-template-columns:1.18fr 1fr;align-items:center;gap:80px;padding-block:65px 75px}.hero-copy{color:#fff}.eyebrow{font-size:.8rem;letter-spacing:.15em;font-weight:800;color:var(--wine);display:block;margin-bottom:16px}.hero .eyebrow{color:#efbccb}.hero h1{margin-bottom:23px}.hero h1 em{font-style:normal;color:#edbecd}.hero-copy>p{color:#e1e2e4;font-size:1.12rem;max-width:520px}.hero-rating{display:flex;gap:10px;align-items:center;font-size:.9rem;margin-top:28px;flex-wrap:wrap}.stars{color:#b27100;letter-spacing:2px;white-space:nowrap}.hero .stars{color:#ffd276}.hero-tags{display:flex;gap:20px;font-size:.875rem;margin-top:28px;flex-wrap:wrap}.hero-tags span{border-left:2px solid #c67e98;padding-left:12px}.video-control{position:absolute;bottom:16px;left:32px;background:#17191dbd;color:white;border:1px solid #ffffff70;font-size:.8rem;padding:5px 12px}.estimate-box{background:white;box-shadow:0 12px 40px #0002;padding:30px 34px;border-top:5px solid var(--wine)}.estimate-box h2{font-size:2rem;line-height:1.1;margin-bottom:10px}.form-heading .eyebrow{font-size:.72rem;margin-bottom:10px;color:var(--wine)}.form-heading p{font-size:.875rem;margin-bottom:22px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.estimate-form label{display:block;font-size:.8rem;font-weight:700;margin-bottom:13px}.estimate-form input,.estimate-form select{display:block;width:100%;border:1px solid #cfd3d8;background:#fafbfc;padding:10px;margin-top:5px;border-radius:0;color:var(--ink);min-height:44px}.estimate-form .consent{display:flex;align-items:flex-start;gap:9px;font-size:.75rem;font-weight:400;line-height:1.45}.estimate-form .consent input{width:16px;height:16px;min-height:16px;flex-shrink:0;margin-top:2px;accent-color:var(--wine)}.consent a{text-decoration:underline}.estimate-form .button{width:100%}.form-note{font-size:.75rem;text-align:center;margin:12px 0 0}.preview-note{font-size:.75rem;background:#f4f5f6;padding:8px;margin-top:10px;margin-bottom:0}.preview-note a{text-decoration:underline}.form-status:empty{display:none}.form-status{font-size:.85rem;padding-top:12px;color:var(--wine);margin:0}.honeypot{position:absolute!important;left:-10000px!important}.trust-band{background:white;border-bottom:1px solid var(--line)}.trust-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;align-items:center;padding-block:30px;gap:35px}.trust-intro{font-size:.9rem;line-height:1.4}.trust-intro strong{display:block;font-size:1.15rem;color:var(--wine);margin-bottom:6px}.trust-logo{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-size:.75rem;line-height:1.3}.trust-logo img{height:75px;width:auto;max-width:210px;object-fit:contain}.trust-logo.award img{height:85px}.section{padding:90px 0}.soft{background:var(--paper)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:45px;margin-bottom:38px}.section-head h2{max-width:610px;margin-bottom:0}.text-link{font-weight:700;border-bottom:1px solid var(--wine);padding-bottom:5px;white-space:nowrap;color:var(--wine)}.split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px}.split-photo{position:relative}.split-photo>img{width:100%;aspect-ratio:1.15;object-fit:cover}.photo-caption{background:var(--wine);color:white;position:absolute;bottom:0;left:0;right:15%;padding:20px 24px;font-weight:700;font-size:1.1rem;line-height:1.35}.big-statement{font-size:1.25rem;color:var(--ink);font-weight:700;line-height:1.5;border-left:3px solid var(--wine);padding-left:20px}.check-list{padding:0;list-style:none;margin:25px 0}.check-list li{padding:8px 0 8px 28px;position:relative}.check-list li:before{content:'✓';color:var(--wine);position:absolute;left:0;font-weight:800}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.service-card{background:white;border:1px solid var(--line);display:flex;flex-direction:column}.service-card>img{width:100%;aspect-ratio:1.6;object-fit:cover}.service-card>div{padding:27px;display:flex;flex-direction:column;flex:1}.service-card h3{font-size:1.5rem}.service-card p{font-size:.95rem}.service-card a{margin-top:auto;color:var(--wine);font-weight:700}.service-list{display:grid;grid-template-columns:repeat(3,1fr);gap:0 26px;margin-top:30px}.service-list a{border-bottom:1px solid #cbd0d5;padding:14px 0;display:flex;justify-content:space-between;font-size:.95rem}.service-list a:after{content:'↗';color:var(--wine)}.dark{background:var(--ink);color:#fff}.dark p{color:#cdd0d4}.dark .eyebrow{color:#e5a5bb}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:45px}.step{border-top:1px solid #51545a;padding-top:24px}.step>span{color:#e6a8bd;font-size:2.5rem;font-weight:700}.step h3{font-size:1.3rem;margin-top:15px}.vendor-row{display:flex;gap:35px;flex-wrap:wrap;align-items:center;margin:30px 0}.vendor-row a{display:flex;flex-direction:column;align-items:center;gap:12px;font-size:.85rem;color:var(--wine);font-weight:700}.vendor-row img{height:95px;max-width:200px;object-fit:contain}.review-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:75px}.review-score{display:flex;align-items:center;gap:18px;margin-bottom:24px}.review-score>strong{font-size:4rem;line-height:1}.review-score .stars{font-size:1.5rem}.review-score small{display:block;font-size:.85rem}.review-card{background:white;border:1px solid var(--line);padding:30px;border-top:3px solid var(--wine)}.review-card blockquote{margin:20px 0;font-size:1.12rem;color:#30343a;line-height:1.65}.review-author{font-weight:700}.review-date{color:var(--muted);font-size:.8rem}.review-card a{font-size:.8rem;text-decoration:underline}.carousel-track{display:flex;overflow:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.carousel-track .review-card{min-width:100%;scroll-snap-align:start}.carousel-controls{display:flex;gap:10px;align-items:center;margin-top:16px}.carousel-controls button{border:1px solid #9ba0a8;background:white;width:46px;height:42px;font-size:1.2rem}.carousel-controls span{font-size:.85rem;margin-left:8px}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.review-grid .review-card blockquote{font-size:1rem}.area-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.area-card{padding:30px;border:1px solid #52555b}.area-card:first-child{background:var(--wine);border-color:var(--wine)}.area-card .number{font-size:.8rem;letter-spacing:.1em;color:#e4c3ce}.area-card h3{margin:30px 0 15px}.area-card a{display:inline-block;border-bottom:1px solid #ffffff70}.city-links{display:flex;gap:12px 22px;flex-wrap:wrap;margin-top:28px;font-size:.9rem}.city-links a{text-decoration:underline}.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.faq-item{border-bottom:1px solid var(--line)}.faq-item summary{font-weight:700;list-style:none;padding:20px 35px 20px 0;position:relative;line-height:1.5}.faq-item summary:after{content:'+';position:absolute;right:5px;font-size:1.3rem;color:var(--wine)}.faq-item[open] summary:after{content:'−'}.faq-item p{font-size:1rem;margin-bottom:22px}.cta{background:var(--wine);color:#fff;padding:48px 0}.cta .wrap{display:flex;align-items:center;justify-content:space-between;gap:30px}.cta h2{font-size:2.4rem;margin:0 0 10px}.cta p{color:#f3dce4;margin:0}.cta-actions{display:flex;gap:12px;flex-wrap:wrap}.site-footer{background:#121419;color:#e8eaed;padding:65px 0 20px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:50px}.footer-brand{max-width:220px;background:white;padding:12px;margin-bottom:22px}.site-footer h3{font-size:1rem;letter-spacing:.01em;margin-bottom:20px}.site-footer p,.site-footer a{font-size:.9rem;color:#c7cbd2}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-badges{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #363940;margin-top:40px;padding-block:25px;gap:25px}.footer-badges img{max-width:180px;max-height:80px;object-fit:contain}.footer-badges .ai-badge{max-height:110px;max-width:110px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #363940;padding-top:20px;font-size:.75rem;color:#abb0b9}.footer-bottom a{font-size:inherit}.subhero{background:var(--ink);color:white;padding:55px 0 60px;position:relative;overflow:hidden}.subhero:after{content:'';position:absolute;inset:0 0 0 55%;background:linear-gradient(90deg,var(--ink),#191b2050),url('roofing-hero.jpg') center/cover;opacity:.55;pointer-events:none}.subhero .wrap{position:relative;z-index:1}.subhero .eyebrow{color:#e4a7bb}.subhero h1{font-size:clamp(2.3rem,4vw,3.65rem);max-width:900px;margin-bottom:20px}.subhero p{color:#d7d9dd;max-width:740px;font-size:1.1rem;margin:0}.breadcrumb{font-size:.8rem;margin-bottom:25px;color:#c5c9cf}.breadcrumb a{text-decoration:underline}.page-layout{display:grid;grid-template-columns:1.5fr .8fr;gap:75px;align-items:start}.page-content h2{font-size:2rem;margin-top:35px}.page-content h2:first-child{margin-top:0}.page-content h3{font-size:1.3rem}.page-content p{max-width:780px}.sidebar{position:sticky;top:165px;background:var(--paper);padding:30px;border-top:4px solid var(--wine)}.sidebar h2{font-size:1.7rem}.sidebar .button{width:100%;margin-bottom:12px}.sidebar a.phone{display:block;text-align:center;color:var(--wine);font-weight:700}.small-note{font-size:.85rem}.faq-category{margin:0 0 35px}.faq-category h2{margin-bottom:10px}.review-toolbar{display:flex;gap:18px;justify-content:space-between;align-items:center;margin:30px 0;flex-wrap:wrap}.review-toolbar label{font-size:.9rem}.review-toolbar input{border:1px solid var(--line);padding:10px;margin-left:8px;max-width:100%}.empty-message{padding:30px;background:var(--paper)}.skip{position:fixed;top:-100px;left:10px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.mobile-cta{display:none}[hidden]{display:none!important}
@media(min-width:1500px){.hero-grid{padding-block:90px}.hero h1{font-size:5rem}}
@media(max-width:1150px){.site-header nav{gap:15px;font-size:.83rem}.brand{width:165px}.brand img{height:88px}.hero-grid{gap:35px}.split,.faq-grid{gap:45px}.license .wrap{font-size:.72rem}.footer-grid{gap:30px}}
@media(max-width:1150px){.menu-toggle{display:flex;gap:15px;align-items:center;background:white;border:1px solid var(--line);padding:10px 14px;font-weight:700}.site-header nav{display:none;position:absolute;top:100%;left:0;width:100%;background:#fff;max-height:75vh;overflow:auto;padding:20px 32px;box-shadow:0 15px 30px #0002;align-items:stretch;font-size:1rem}.site-header nav.is-open{display:flex;flex-direction:column;gap:0}.site-header nav>a,.nav-drop summary{padding:13px 0}.dropdown{position:static;box-shadow:none;max-height:none;width:100%;border:0;padding:5px 0 10px 15px}.site-header nav .button{margin-top:10px}.license .wrap{display:block;text-align:center}.license span{display:block}.hero-grid{grid-template-columns:1fr 1fr;gap:25px}.hero h1{font-size:3.1rem}.estimate-box{padding:24px}.form-grid{grid-template-columns:1fr;gap:0}.hero-tags{gap:10px}.trust-grid{gap:15px}.trust-logo img{max-width:155px}.trust-intro{font-size:.8rem}.review-layout{gap:35px}.review-grid{grid-template-columns:repeat(2,1fr)}.page-layout{gap:35px;grid-template-columns:1.3fr .8fr}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.wrap{width:calc(100% - 36px)}.utility .wrap>span{display:none}.utility .wrap>div{width:100%;justify-content:space-between;gap:10px;font-size:.75rem}.brand{width:148px}.brand img{height:80px}.license{font-size:.7rem}.hero-grid{grid-template-columns:1fr;padding:45px 0 65px;gap:35px}.hero h1{font-size:3.4rem}.hero-copy>p{font-size:1rem}.hero-rating{margin-top:20px}.hero-tags{margin-top:20px}.hero:after{background:linear-gradient(180deg,#10151ad9,#10151abf)}.estimate-box{padding:25px}.form-grid{grid-template-columns:1fr 1fr;gap:12px}.trust-grid{grid-template-columns:repeat(3,1fr);gap:15px;padding-block:22px}.trust-intro{grid-column:1/-1;text-align:center}.trust-intro strong{display:inline}.trust-logo img{max-width:95px;height:52px}.trust-logo.award img{height:65px}.trust-logo{font-size:.65rem}.section{padding:55px 0}.section-head{display:block}.section-head h2{margin-bottom:20px}.split,.review-layout,.faq-grid,.page-layout{grid-template-columns:1fr;gap:35px}.service-grid{grid-template-columns:1fr}.service-card>img{aspect-ratio:1.85}.service-list{grid-template-columns:1fr 1fr;gap:0 18px}.service-list a{font-size:.85rem}.steps,.area-grid{grid-template-columns:1fr;gap:22px}.step>span{font-size:2rem}.step p{margin-bottom:0}.area-card h3{margin-top:15px}.review-grid{grid-template-columns:1fr}.review-card{padding:24px}.cta .wrap{display:block}.cta h2{font-size:2rem}.cta-actions{margin-top:24px}.footer-grid{gap:35px 25px}.footer-badges{display:grid;grid-template-columns:1fr 1fr}.footer-badges img{max-width:145px}.footer-bottom{display:block;padding-bottom:50px}.footer-bottom>div{margin-top:10px}.mobile-cta{display:grid;grid-template-columns:1fr 1fr;position:fixed;bottom:0;left:0;right:0;z-index:25;box-shadow:0 -4px 20px #0002}.mobile-cta a{text-align:center;background:white;color:var(--wine);font-size:.85rem;font-weight:700;padding:13px}.mobile-cta a:last-child{background:var(--wine);color:white}.sidebar{position:static}.subhero{padding:35px 0}.subhero h1{font-size:2.5rem}.photo-caption{right:0}.review-toolbar input{display:block;margin:5px 0}.vendor-row{justify-content:center}.vendor-row img{max-width:140px;height:75px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.hero-video{display:none}}

/* Keep the requested three-line heading within its actual grid column. */
.hero-copy{min-width:0;container-type:inline-size}.hero h1{font-size:clamp(1rem,4.5vw,4rem)}.hero h1>span{display:block;white-space:nowrap}@supports(font-size:1cqw){.hero h1{font-size:clamp(1rem,10.5cqw,4.7rem)}}

.hero-slogan{font-weight:700;color:#edbecd!important}.inline-link{color:var(--wine);text-decoration:underline}.related-services{margin-top:30px;padding-top:20px;border-top:1px solid var(--line)}

/* September 10: estimate CTA, upload form and review video. */
.site-header nav{gap:14px}.site-header nav .small{padding:11px 14px;white-space:nowrap}
.review-layout{grid-template-columns:minmax(0,.85fr) minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.review-layout>div{min-width:0}.review-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#191b20;border-radius:8px}.review-video p{font-size:.9rem;margin-top:14px}.review-layout h2{font-size:clamp(2rem,3vw,2.8rem)}
.online-estimate-form textarea{width:100%;min-height:140px;padding:12px;border:1px solid var(--line);border-radius:4px;font:inherit;resize:vertical}.online-estimate-form input[type=file]{max-width:100%;padding:12px 0;border:0}.online-estimate-form .form-note{margin-top:4px}.online-estimate-form label{min-width:0}.online-estimate-form input{max-width:100%}
@media(max-width:1150px){.review-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.review-video{grid-column:1/-1;max-width:640px;width:100%}.site-header nav .small{padding:13px 16px}}
@media(max-width:700px){.review-layout{grid-template-columns:minmax(0,1fr)}.review-video{grid-column:auto}.online-estimate-form .form-grid{grid-template-columns:1fr}}

.company-intro{padding:42px 0}.company-intro p{margin:0;font-size:1.08rem;line-height:1.8}.service-card>img{width:100%;object-fit:cover}.service-card:nth-child(6)>img{object-position:center 28%}

.why-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:32px 0}.why-grid h3{font-size:1.35rem;letter-spacing:-.02em}.why-grid p{margin:0}.why-grid>div{border-top:2px solid #b65d7b;padding-top:22px}@media(max-width:950px){.why-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.why-grid{grid-template-columns:1fr}}

.siding-project-photo{display:block;width:100%;height:auto;border-radius:8px;margin:24px 0}

/* Metal roofing: close view of the commercial project roof. */
.subhero.subhero-metal:after{background-image:linear-gradient(90deg,var(--ink),#191b2030),url('commercial-metal-roof.jpg');background-size:100% 100%,150% auto;background-position:center,50% 35%;background-repeat:no-repeat;opacity:.8}
@media(max-width:700px){.subhero.subhero-metal:after{inset:0 0 0 35%;background-size:100% 100%,auto 135%;background-position:center,50% 35%;opacity:.5}}

/* Siding page decorative hero image; client project photo stays in the content. */
.subhero.subhero-siding:after{background-image:linear-gradient(90deg,var(--ink),#191b2020),url('siding-hero.jpg');background-size:100% 100%,cover;background-position:center,65% 45%;background-repeat:no-repeat;opacity:.85}
@media(max-width:700px){.subhero.subhero-siding:after{inset:0 0 0 35%;background-position:center,65% 45%;opacity:.5}}

/* Gutters page: white gutter, fascia, soffit and downspout detail. */
.subhero.subhero-gutters:after{background-image:linear-gradient(90deg,var(--ink),#191b2020),url('gutters-hero.jpg');background-size:100% 100%,cover;background-position:center,75% 45%;background-repeat:no-repeat;opacity:.85}
@media(max-width:700px){.subhero.subhero-gutters:after{inset:0 0 0 35%;background-position:center,75% 45%;opacity:.5}}

.subhero.subhero-tile:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('tile-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

.subhero.subhero-residential:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('residential-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

.subhero.subhero-coating:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('coating-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

.subhero.subhero-repair:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('repair-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

.subhero.subhero-skylight:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('skylight-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

.subhero.subhero-seamless:after{background-image:linear-gradient(90deg,var(--ink),#191b2040),url('seamless-hero.jpg');background-size:100% 100%,cover;background-position:center,60% 50%;background-repeat:no-repeat;opacity:.8}

/* Accessibility refinements: readable fields, visible focus and scroll clearance. */
.estimate-form input,.estimate-form select,.estimate-form textarea{font-size:1rem}
:focus-visible{outline:3px solid #b34b70;outline-offset:4px}
.dark :focus-visible,.subhero :focus-visible,.site-footer :focus-visible{outline-color:#ffd276}
[id],a,button,input,select,textarea,summary{scroll-margin-top:180px;scroll-margin-bottom:80px}
@media(max-width:700px){.subhero:after{opacity:.45!important}.form-grid{grid-template-columns:minmax(0,1fr)}.utility .wrap>div{flex-wrap:wrap}}

/* Project gallery */
.gallery-intro{max-width:760px;margin-bottom:48px}.gallery-intro h2{margin-bottom:18px}.gallery-intro p{font-size:1.08rem}.gallery-heading{font-size:clamp(1.65rem,2.8vw,2.35rem);margin:48px 0 24px}.gallery-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-video-grid figure,.gallery-photo-grid figure{margin:0;background:var(--paper);border:1px solid var(--line)}.gallery-video-grid video{display:block;width:100%;aspect-ratio:16/9;background:var(--ink);object-fit:cover}.gallery-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-photo-grid a{display:block;overflow:hidden;background:var(--ink)}.gallery-photo-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;transition:transform .25s ease}.gallery-photo-grid a:hover img{transform:scale(1.025)}.gallery-video-grid figcaption,.gallery-photo-grid figcaption{padding:14px 16px;color:var(--muted);font-size:.88rem;line-height:1.45}.gallery-photo-grid a:focus-visible{outline-offset:3px}@media(max-width:950px){.gallery-video-grid,.gallery-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.gallery-video-grid,.gallery-photo-grid{grid-template-columns:1fr}.gallery-intro{margin-bottom:34px}.gallery-heading{margin-top:38px}}

/* WCAG 2.2 AA refinements: contrast, zoom reflow, and disabled feedback. */
.stars{color:#805000}
.text-link{white-space:normal}
.estimate-form[aria-busy="true"]{cursor:progress}
.estimate-form button:disabled{opacity:.72;cursor:wait}
.estimate-form input,.estimate-form select,.estimate-form textarea,.review-toolbar input{border-color:#747980}
@media(max-width:700px){.hero h1>span{white-space:normal}}
