:root{--interior-photo-shape:polygon(22% 0,100% 0,100% 100%,0 100%);--home-photo-shape:polygon(22.89% 0,100% 0,100% 38.4%,46.79% 100%,38.42% 100%,0 27.8%)}
.subhero-media{clip-path:var(--interior-photo-shape)}
.subhero-media img,.hero-media img,.project-detail-grid img{object-fit:cover;object-position:center;width:100%;height:100%}
.project-detail-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px}
.project-detail-grid figure{order:2;clip-path:var(--interior-photo-shape)}
.project-detail-copy{order:1;min-width:0}
.home-page .project-detail-grid figure{clip-path:var(--home-photo-shape)}
@media(min-width:901px){
 .subhero:not(.no-photo) .subhero-copy{width:52%;max-width:none;padding:86px calc(4vw + 24px) 76px clamp(32px,7vw,112px)}
 .subhero:not(.no-photo) .subhero-media{width:52%}
 .subhero-copy h1,.subhero-copy p{max-width:100%}
 .subhero .button{max-width:100%;white-space:normal;text-align:center}
 .subhero h1{font-size:clamp(46px,5.1vw,78px)}
}
@media(min-width:1441px){
 .subhero:not(.no-photo) .subhero-media{width:60%}
 .subhero:not(.no-photo) .subhero-copy{width:44%;padding-right:calc(4vw + 24px)}
 .subhero{min-height:clamp(580px,34vw,760px)}
 .project-detail-section .content-shell{width:min(1680px,100% - 96px)}
 .project-detail-grid{grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:0}
 .project-detail-copy{padding-right:40px;max-width:660px}
 .project-detail-grid figure{min-height:520px}
 .home-page .hero{--u:calc(min(100cqw,1920px) / 935);--photo-left:min(38%,760px);--photo-span:calc(100% - var(--photo-left))}
 .home-page .hero-media{clip-path:polygon(calc(var(--photo-left) + var(--photo-span)*.2289) 0,100% 0,100% 38.4%,calc(var(--photo-left) + var(--photo-span)*.4679) 100%,calc(var(--photo-left) + var(--photo-span)*.3842) 100%,var(--photo-left) 27.8%)}
 .home-page .hero-sky{clip-path:polygon(calc(var(--photo-left) - 170px) 0,calc(var(--photo-left) + var(--photo-span)*.2289) 0,var(--photo-left) 27.8%)}
 .home-page .hero-small-triangle{clip-path:polygon(calc(var(--photo-left) + var(--photo-span)*.1876) 67%,calc(var(--photo-left) + var(--photo-span)*.3632) 100%,calc(var(--photo-left) - 65px) 100%)}
 .home-page .hero-concrete{clip-path:polygon(100% 40.42%,100% 100%,calc(var(--photo-left) + var(--photo-span)*.4853) 100%)}
}
@media(max-width:900px){
 .subhero:not(.no-photo) .subhero-copy{max-width:none}
 .subhero:not(.no-photo) .subhero-media{clip-path:var(--interior-photo-shape)}
 .project-detail-grid{grid-template-columns:1fr;gap:28px}
 .project-detail-grid figure{clip-path:var(--interior-photo-shape);min-height:0;aspect-ratio:16/10}
 .home-page .project-detail-grid figure{clip-path:var(--home-photo-shape)}
 .project-detail-copy{padding:0;max-width:none}
}
.slider-autoplay{display:grid;place-items:center;width:44px;height:44px}
.slider-autoplay svg{width:18px;height:18px}

.hero-tags{color:#172e26;font-weight:600;text-shadow:0 1px 2px #ffffffb3}
.hero-tags i{background:#172e26}
.hero-concrete:after{display:none}
.hero-video{object-fit:cover;object-position:center}
@media(min-width:2001px){
 .home-page .hero{height:760px;min-height:760px;--u:calc(1600px / 935)}
 .home-page .hero-copy{padding-top:36px}
 .home-page .hero h1{font-size:74px}
 .home-page .hero .location-eyebrow{margin-bottom:42px}
 .home-page .hero .estimate{height:64px;min-width:320px}
}
@media(min-width:600px) and (max-width:1100px){
 :root{--tablet-photo-shape:polygon(18% 0,100% 0,100% 82%,82% 100%,18% 100%,0 50%)}
 .home-page .hero,.subhero:not(.no-photo){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:28px;padding:40px 24px;min-height:0;height:auto}
 .home-page .hero-copy,.subhero:not(.no-photo) .subhero-copy{width:auto;max-width:none;min-width:0;padding:0;grid-column:1}
 .home-page .hero-media,.subhero:not(.no-photo) .subhero-media{position:relative;inset:auto;grid-column:2;width:100%;height:auto;aspect-ratio:4/5;max-height:480px;align-self:center;clip-path:var(--tablet-photo-shape);z-index:0}
 .home-page .hero-media:after{display:none;content:none;background:none}
 .home-page .hero-sky,.home-page .hero-small-triangle,.home-page .hero-concrete,.home-page .hero-tags{display:none}
 .home-page .hero h1,.subhero h1{font-size:clamp(30px,4.3vw,48px);line-height:1.07;letter-spacing:-1px;max-width:100%;overflow-wrap:break-word}
 .home-page .hero-description,.subhero p:not(.eyebrow){max-width:100%;font-size:15px;line-height:1.65;margin-top:20px}
 .home-page .desktop-br{display:none}
 .home-page .hero-copy>.eyebrow,.home-page .location-eyebrow,.subhero-copy>.eyebrow{font-size:12px;letter-spacing:1.5px;max-width:100%}
 .home-page .hero-copy>.eyebrow{margin-bottom:12px}
 .home-page .location-eyebrow{margin-bottom:22px}
 .home-page .estimate,.subhero .button{min-width:0;max-width:100%;width:fit-content;height:auto;min-height:54px;font-size:12px;gap:12px;padding:15px 16px;white-space:normal;text-align:center;margin-top:24px}
 .home-page .hero-contact{font-size:13px;max-width:100%;display:flex;flex-wrap:wrap;gap:2px 6px;margin-top:18px}
 .home-page .hero-contact span{padding:0}
 .project-detail-grid figure,.home-page .project-detail-grid figure{clip-path:var(--tablet-photo-shape)}
}
@media(max-width:599px){
 .home-page .hero{display:flex;height:auto;min-height:0}
 .home-page .hero-copy{width:100%;max-width:520px;padding:32px 24px}
 .home-page .hero-media{position:relative;inset:auto;clip-path:var(--home-photo-shape);width:100%;height:auto;aspect-ratio:16/9;z-index:0}
 .home-page .hero-media:after{display:none}
}

/* Service areas and attributed customer review excerpts. */
.location-page .subhero h1{font-size:clamp(34px,4vw,60px);overflow-wrap:break-word}
.location-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}
.breadcrumbs{margin-bottom:32px;font-size:14px;line-height:1.8}
.location-page .company-info p{margin:18px 0}
.location-page .company-info .button{min-width:0;max-width:100%;white-space:normal}
.location-list a,.breadcrumbs a,.review-source a,.review-card a{text-decoration:underline;text-underline-offset:4px}
.footer-locations{max-width:960px;margin:24px auto 32px;padding:0 24px}
.footer-locations>p{font-weight:700;margin-bottom:12px}
.footer-locations ul{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 24px;list-style:none;padding:0}
.footer-locations a{display:inline-flex;align-items:center;min-height:44px;font-size:14px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.review-card{margin:0;padding:32px;background:#fff;border:1px solid var(--border);display:flex;flex-direction:column}
.review-stars{color:var(--accent-dark);font-size:22px;letter-spacing:3px}
.review-card blockquote{margin:22px 0 28px;font-size:20px;line-height:1.6;flex:1}
.review-card figcaption{display:flex;flex-direction:column;gap:6px;font-size:14px}
.review-card figcaption span,.review-date,.review-source{color:var(--muted);font-size:14px}
.review-card a{width:fit-content;min-height:44px;display:inline-flex;align-items:center}
.review-source{margin-top:26px;line-height:1.8}
@media(max-width:700px){.reviews-grid,.location-service-grid{grid-template-columns:1fr}.review-card{padding:26px}.footer-locations ul{gap:4px 16px}}

/* Compact location-page sections: content determines card height. */
.location-page .section-block{padding-block:56px}
.location-page .breadcrumbs{margin-bottom:24px}
.location-page .lead-grid{display:block}
.location-page .lead-grid>.lead-copy{max-width:920px}
.location-page .lead-copy h2{font-size:clamp(28px,3vw,38px)}
.location-page .lead-copy p:not(.eyebrow){margin-top:18px}
.location-page .location-contact-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:28px;align-items:center;padding:24px;margin-top:28px}
.location-page .location-contact-bar h3{font-size:22px;margin:0 0 10px}
.location-page .location-contact-bar p{font-size:15px;line-height:1.65;margin:0}
.location-page .location-contact-details>a{display:inline-block;font-weight:600;margin-bottom:8px}
.location-page .location-contact-details{white-space:nowrap}
.location-page .location-contact-bar .button{padding:16px 20px;font-size:13px}
body.location-page .section-heading{margin-bottom:26px}
.location-page .location-service-grid{gap:18px}
.location-page .location-service-grid .feature-card{min-height:0;padding:24px}
.location-page .location-service-grid .feature-card h3{font-size:22px;margin-bottom:10px}
@media(max-width:900px){
 .location-page .location-contact-bar{grid-template-columns:minmax(0,1fr) auto;gap:20px}
 .location-page .location-contact-bar>div:first-child{grid-column:1/-1}
}
@media(max-width:600px){
 .location-page .section-block{padding-block:40px}
 .location-page .location-contact-bar{grid-template-columns:1fr;padding:22px;gap:18px;margin-top:24px}
 .location-page .location-contact-bar .button{width:fit-content}
 .location-page .location-service-grid .feature-card{padding:22px}
 .location-page .location-service-grid{gap:14px}
}
