/* Full photographs, not enlarged fragments of the design reference. */
.hero { height:clamp(580px,42vw,730px); min-height:0; background:#111110; }
.hero .hero-image { display:block; inset:0 0 auto auto; width:auto; height:100%; aspect-ratio:1672/941; max-width:none; background:none; mask-image:linear-gradient(90deg,transparent,#000 12%); opacity:1; }
.hero-image img { display:block; width:100%; height:100%; object-fit:contain; object-position:right top; filter:none; }
.hero-shade { background:linear-gradient(90deg,#111110 0%,#111110 23%,#111110ed 32%,#11111086 44%,#11111000 63%); }
.hero-content { padding-top:clamp(46px,4.5vw,85px); }
.service-photo, .service-photo.gates, .service-dialog #service-visual { background:none; }
.service-photo { aspect-ratio:1/1; overflow:hidden; }
.service-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:none; opacity:1; }
.service-photo.canopy img { object-position:center top; }
.service-body { min-height:140px; }
.project img { filter:none; opacity:1; }
.projects-track { max-width:1500px; width:95.7%; margin-inline:auto; }
.project { height:auto; max-height:none; aspect-ratio:4/3; flex-basis:calc((100% - 30px)/4); }
.project:first-child { margin-left:0; }
.project img { object-position:center top; }
.video-card>img { filter:none; }
.video-card:hover>img { filter:none; }
@media(min-width:1920px) {
 .hero .hero-image { right:max(0px,calc((100vw - 2400px)/2)); }
}
@media(max-width:960px) {
 .hero { height:auto; display:flex; flex-direction:column; }
 .hero .hero-image { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:1672/941; order:0; mask-image:none; }
 .hero-image img { width:100%; height:auto; object-fit:contain; }
 .hero-shade { display:none; }
 .hero-content { order:1; padding-top:28px; padding-bottom:42px; }
 .hero-curve { display:none; }
 .hero h1 { margin-top:18px; }
 .hero-description { max-width:660px; }
 .hero-benefits { max-width:620px; }
 .services { margin-top:0; padding-top:14px; }
 .service-photo { aspect-ratio:1/1; }
 .project { flex-basis:calc((100% - 20px)/3); }
}
@media(max-width:600px) {
 .hero-content { padding-top:24px; padding-bottom:32px; }
 .hero .eyebrow { font-size:7px; }
 .hero h1 { margin-top:16px; }
 .hero-description { margin-top:16px; }
 .hero-benefits { margin-top:25px; }
 .service-body { min-height:150px; }
 .projects-track { width:100%; }
 .project { flex-basis:76%; aspect-ratio:4/3; }
 .project:first-child { margin-left:15px; }
}
