/* V9 — unified responsive photographic cards, title drawn ONCE as accessible HTML. */
/* Photos approved in V8 have large labels embedded along bottom quarter.
   The image window shows the top ~58% only, without resampling/editing approved assets. */
.homepage-v3 .v3-featured-service>img,
.services-v3 .sv3-featured>img,
.services-v3 .v9-side-photo>img,
.services-v3 .sv3-image-holder>img,
.v6-photo-page .v4-hero-photo>img {
    object-fit:cover!important;
    object-position:50% 0!important;
}
/* These large, wide image areas retain a stable image composition. */
.homepage-v3 .v3-featured-service>img,
.services-v3 .sv3-featured>img,
.services-v3 .sv3-image-holder>img{
    position:absolute!important;
    inset:0 auto auto 0!important;
    height:168%!important;
    width:100%!important;
    transform-origin:50% 0;
}
.homepage-v3 .v3-featured-service:hover>img,
.services-v3 .sv3-featured:hover>img,
.services-v3 .sv3-photo-card:hover .sv3-image-holder>img{
    transform:none!important;
}
/* Side cards: image is direct child of the link; use full box as clipping window. */
.services-v3 .sv3-side-card{position:relative;isolation:isolate}
.services-v3 .v9-side-photo{grid-column:1;align-self:stretch;display:block;position:relative;overflow:hidden;min-height:0;min-width:0;}
.services-v3 .v9-side-photo>img{position:absolute!important;top:0;left:0;width:100%;height:170%!important;object-fit:cover!important;object-position:50% 0!important;}
.services-v3 .sv3-side-card-text{position:relative;z-index:2;background:#fff;}
/* Services article hero: keep the service picture on right, show top half without embedded caption. */
.v6-photo-page .v4-hero-photo>img{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:172%!important;object-fit:cover!important;object-position:73% 0!important;}
/* No double headline over visible photo labels. One clear, contrast-tested HTML title. */
.homepage-v3 .v3-featured-service:after{background:linear-gradient(0deg,#10252b 0%,#10252bf2 24%,#10252b80 50%,transparent 76%)!important}
.services-v3 .sv3-featured-shade{background:linear-gradient(0deg,#122631 0%,#122631f5 26%,#12263191 48%,transparent 75%)!important}
.homepage-v3 .v3-featured-content strong{font-size:clamp(25px,3vw,35px);line-height:1.14!important}
.services-v3 .sv3-featured-content strong{font-size:clamp(28px,3.2vw,37px);line-height:1.15!important}
.services-v3 .sv3-photo-card .sv3-card-body>strong{font-size:clamp(19px,2vw,23px);line-height:1.32;}
.services-v3 .sv3-side-card-text strong{font-size:clamp(16px,1.8vw,19px)}
.services-v3 .sv3-photo-card:focus-visible,.homepage-v3 .v3-featured-service:focus-visible{outline:3px solid #eb602e;outline-offset:4px}
/* Don't duplicate image captions and title on very narrow screens. */
@media(max-width:760px){
 .homepage-v3 .v3-featured-service>img,.services-v3 .sv3-featured>img,.services-v3 .sv3-image-holder>img{height:165%!important;}
 .services-v3 .v9-side-photo>img{height:170%!important;}
 .v6-photo-page .v4-hero-photo>img{height:180%!important;}
}
@media(max-width:540px){
 .services-v3 .sv3-featured-content{left:22px;right:20px;bottom:22px;}
 .services-v3 .v9-side-photo>img{height:166%!important;}
 .services-v3 .sv3-image-holder{height:220px;}
 .services-v3 .sv3-photo-card .sv3-card-body{padding:20px 23px 25px;}
 .homepage-v3 .v3-featured-service{height:320px;}
 .v6-photo-page .v4-hero-photo>img{height:175%!important;}
}
@media(prefers-reduced-motion:reduce){.homepage-v3 .v3-featured-service>img,.services-v3 .sv3-featured>img,.services-v3 .sv3-image-holder>img{transition:none!important}}
