/* Keep related copy and photographs together within a desktop viewport. */
@media(min-width:900px){
:root{--section-image-height:clamp(180px,calc(100svh - 370px),560px)}
.section,.block.service-detail,.service-detail{padding-block:clamp(32px,5svh,64px)}
.section-top,.project-section-heading,.expertise-heading,.sustain-section-heading{margin-bottom:clamp(16px,2.5svh,28px);gap:clamp(24px,4vw,60px)}
.section-top h2,.project-section-heading h2{font-size:clamp(30px,4.5svh,46px);line-height:1.12;margin-top:0;margin-bottom:12px}
.eyebrow{margin-bottom:14px}.page-intro{padding-block:clamp(28px,4svh,48px)}.page-intro .crumb{margin-bottom:24px}.page-intro h1{font-size:clamp(40px,7svh,70px)}
.case-study{padding-block:clamp(32px,5svh,64px)}.case-study+.case-study{padding-top:clamp(40px,6svh,72px)}.case-study__section,.case-study.project-case>.section{margin-top:clamp(24px,4svh,40px);padding-top:0}.case-study__section>p{margin-bottom:16px;line-height:1.55}.case-study__intro-copy{padding:clamp(24px,3svh,36px)}.case-study__intro h2{font-size:clamp(30px,4.5svh,44px)}.case-study__intro-copy p{margin-bottom:14px;line-height:1.55}.case-study__hero img{max-height:calc(100svh - 180px);object-fit:contain;background:#153b58}
.case-study__pair img{height:var(--section-image-height);max-height:none;aspect-ratio:auto;object-fit:contain;background:#e9eff3}.project-photo.portrait,.project-photo.landscape{height:var(--section-image-height);aspect-ratio:auto}.project-photo img{height:100%;width:100%;object-fit:contain;object-position:center;transform:none!important;background:#e9eff3}
.project-slideshow__open img{height:var(--section-image-height);max-height:none;object-fit:contain}.project-slideshow__bar{padding:.7rem 0}.project-slideshow__figure figcaption{padding:.7rem 1rem}
.feature-image img,.case-cover img,.case-hero .case-cover img,.sorting-gallery img,.service-photo img,.wide-figure img,.hero-visual>img,.image-stage{height:var(--section-image-height);max-height:none;min-height:0;aspect-ratio:auto}.sorting-gallery img,.service-photo img,.wide-figure img{object-fit:contain;background:#e9eff3}.hero-visual{min-height:0}.feature-image>img,.case-cover>img,.wide-figure>img{animation:none;transform:none}.case-label h3{font-size:clamp(26px,4svh,38px)}
.blue-hero{min-height:0}.blue-hero .hero-layout{padding-block:clamp(28px,5svh,56px)}.blue-hero .hero-copy h1{font-size:clamp(36px,6.5svh,66px)}.blue-hero .hero-topline{padding-top:20px;padding-bottom:16px}.blue-hero .hero-copy .lede{font-size:17px;line-height:1.55}.hero-actions{margin-top:22px}.blue-hero .hero-bottom{padding-bottom:18px}
.homeowner-intro,.sustain-intro{padding-block:clamp(32px,5svh,56px)}.homeowner-intro h1,.sustain-intro h1{font-size:clamp(40px,6.5svh,66px)}.contact-banner{padding-block:clamp(32px,5svh,60px)}.footer{padding-top:clamp(32px,5svh,55px)}.expertise,.private-services,.homeowner-services{padding-block:clamp(32px,5svh,64px)}
}

/* A close-fitting photograph frame: consistent height, no grey side panels or cropping. */
.project-slideshow__figure{width:min(100%,calc(var(--section-image-height,460px) * var(--photo-ratio,1.33333)));margin-inline:auto!important;background:transparent;border:0;border-radius:.7rem}
.project-slideshow__open{background:transparent}
.case-study .project-slideshow__open img{display:block;width:100%;height:auto;aspect-ratio:var(--photo-ratio,1.33333);max-height:var(--section-image-height,460px);object-fit:contain;background:transparent}
.project-slideshow__figure figcaption{min-height:3rem;text-align:center}
@media(max-width:899px){.project-slideshow{--section-image-height:440px}.project-slideshow__figure{max-width:100%}}
@media(max-width:560px){.project-slideshow{--section-image-height:380px}}

.service-sorting__gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.service-sorting__gallery figure{margin:0;overflow:hidden;border-radius:12px;background:#fff}.service-sorting__gallery img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.service-sorting__gallery figcaption{padding:16px;line-height:1.55;color:var(--muted)}.service-sorting__gallery strong{color:var(--navy)}.service-sorting__note{font-size:.8rem;color:var(--muted);margin-top:16px}@media(max-width:700px){.service-sorting__gallery{grid-template-columns:1fr}}

/* Consistent, larger project images; crop the view, never stretch the photograph. */
.project-slideshow__figure{width:min(100%,960px);border-radius:12px;background:#153b58}
.case-study .project-slideshow__open img{width:100%;height:clamp(300px,55svh,560px);max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center}
.project-slideshow__figure figcaption{height:3.2rem;min-height:0;display:flex;align-items:center;justify-content:center;padding:.5rem 1rem}
.case-study .project-comparison{gap:24px}
.case-study .project-comparison figure{position:relative;background:white}
.case-study .project-comparison img{width:100%;height:clamp(250px,43svh,440px);max-height:none;aspect-ratio:4/3;object-fit:cover;object-position:50% 15%;background:transparent}
.case-study .project-comparison .project-comparison__before{object-position:50% 0%}
.project-comparison .case-study__label{display:inline-block;background:#153b58;color:white;font-size:1rem;font-weight:800;padding:.45rem .9rem;margin-right:.6rem}
.project-comparison .case-study__label--after{background:#176b3b}
@media(min-width:900px){.case-study .project-slideshow__open img{height:max(300px,var(--section-image-height,500px))}}
@media(max-width:700px){.case-study .project-comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.case-study .project-comparison img{height:220px}.project-comparison figcaption{font-size:.8rem}.project-comparison .case-study__label{display:block;width:fit-content;margin-bottom:.5rem}}
@media(max-width:480px){.case-study .project-slideshow__open img{height:340px}.case-study .project-comparison img{height:180px}}
