/* Photo-led first view: copy stays above the people; mobile preserves the full width. */
.photo-hero{position:relative;isolation:isolate;--p:var(--q,1);height:calc(100svh - 88px);min-height:max(740px,40vw);background:#f3f7f0}
.photo-hero-media{position:absolute;inset:0;z-index:-1;overflow:hidden}
.photo-hero-media img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center bottom}
.photo-hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#f3f7f0f5 0%,#f3f7f0cc 27%,#f3f7f050 45%,transparent 60%);pointer-events:none}
.photo-hero-inner{width:min(1120px,89%);margin:auto;padding:36px 0 0}
.photo-hero .hero-copy{width:min(730px,70%)}
.photo-hero .hero-copy>p:not(.fv-photo-caption){max-width:38em}
.photo-hero .fv-photo-caption{font-size:.875rem;color:#365d58;margin:16px 0 0;line-height:1.6}
.fv-photo-caption span{font-size:.8rem;margin-left:10px;letter-spacing:.08em}
@media(max-width:760px){
 .photo-hero{height:auto;min-height:0;padding-bottom:calc(100vw * 1225 / 1600)}
 .photo-hero-inner{padding:30px 0 22px}
 .photo-hero .hero-copy{width:100%}
 .photo-hero-media{inset:auto 0 0;height:calc(100vw * 1225 / 1600)}
 .photo-hero-media img{height:auto;top:auto;bottom:0;object-fit:contain}
 .photo-hero-media::after{background:linear-gradient(180deg,#f3f7f0 0,transparent 60px)}
 .photo-hero .fv-photo-caption{font-size:.8rem}
 .fv-photo-caption span{font-size:.72rem}
}
.large-text .photo-hero{height:auto;min-height:0;padding-bottom:calc(100vw * 1225 / 1600)}
.large-text .photo-hero-inner{padding:30px 0 22px}
.large-text .photo-hero .hero-copy{width:100%}
.large-text .photo-hero-media{inset:auto 0 0;height:calc(100vw * 1225 / 1600)}
.large-text .photo-hero-media img{height:auto;top:auto;bottom:0;object-fit:contain}
.large-text .photo-hero-media::after{background:linear-gradient(180deg,#f3f7f0 0,transparent 60px)}
@media(prefers-reduced-motion:reduce){.photo-hero .hero-dx{background-position:100% 0}}

/* A quiet, opaque reading surface keeps the introduction legible over the photograph. */
.photo-hero .hero-copy>p{color:#173f46;background:#f3f7f0;padding:16px 20px;border-radius:4px;line-height:1.9}
@media(max-width:760px){.photo-hero .hero-copy>p{padding:12px 14px}}

/* One image layer changes at a time. No canvas, blur or continuous zoom. */
.fv-slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease;pointer-events:none}
.fv-slide.is-current{opacity:1}
.fv-slide img{object-position:center 65%}
.fv-slide:first-child img{object-position:center bottom}
.home-service-logos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;align-items:center;padding-block:32px;border-bottom:1px solid #c2d8cf}
.home-service-logos a{display:flex;align-items:center;justify-content:center;min-height:76px;padding:10px;background:#fff;color:#174f55}
.home-service-logos a.logo-on-dark{background:#174f55}
.home-service-logos img{width:100%;height:60px;object-fit:contain}
.home-service-logos a:focus-visible{outline:3px solid #176a73;outline-offset:3px}
.motion-stopped .fv-slide,.motion-reduced .fv-slide{transition:none}
@media(prefers-reduced-motion:reduce){.fv-slide{transition:none}}
@media(max-width:760px){
 .photo-hero{padding-bottom:calc(100vw * 1225 / 1600)}
 .photo-hero-media{bottom:0}
 .fv-slide img{height:100%;object-fit:cover;top:0;bottom:auto}
 .home-service-logos{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-block:20px}
 .home-service-logos a{padding:8px;min-height:66px}
 .home-service-logos img{height:48px}
}
.large-text .home-service-logos{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Enlarged text uses normal flow: copy, then the reserved photo area. */
.large-text .photo-hero{display:flex;flex-direction:column;padding-bottom:0}
.large-text .photo-hero-inner{order:1}
.large-text .photo-hero-media{position:relative;inset:auto;order:2;width:100%;height:auto;aspect-ratio:1600/1225;z-index:0;flex:none}
.large-text .photo-hero-media img{inset:0;width:100%;height:100%;object-fit:cover}

.home-service-logos a.logo-emblem{background:#202664;padding:0}.home-service-logos .logo-emblem img{height:96px;object-fit:contain}@media(max-width:760px){.home-service-logos .logo-emblem img{height:84px}}
/* Quiet white veil preserves legibility across the changing photographs. */
.photo-hero-media::after{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(255,255,255,.70) 28%,rgba(255,255,255,.16) 65%)}
.service-logo-strip{position:relative;padding:22px 0 32px;border-bottom:1px solid #c2d8cf;overflow:hidden}
.service-logo-strip .home-service-logos{display:block;width:100%;padding:0;border:0;overflow-x:auto;scrollbar-width:none}
.service-logo-strip.is-ready:not(.is-keyboard-focus) .home-service-logos{overflow-x:clip}
.service-logo-strip.is-keyboard-focus .service-logo-track{animation:none;transform:none}
.service-logo-track{display:flex;width:max-content;animation:service-logo-drift 38s linear infinite;animation-play-state:paused}
.service-logo-strip.is-visible:not(.is-paused) .service-logo-track{animation-play-state:running}
.service-logo-group{display:flex;flex:none;align-items:center;gap:24px;padding-right:24px}
.service-logo-strip .home-service-logos a{width:160px;height:100px;min-height:0;box-sizing:border-box;flex:none;border-radius:8px}
.service-logo-strip .home-service-logos img{width:100%;height:76px;object-fit:contain}
.service-logo-strip .home-service-logos .logo-emblem img{height:100px}
.service-logo-pause{display:block;margin:12px 5.5% 0 auto;background:transparent;border:0;color:#45645f;font:inherit;font-size:.72rem;cursor:pointer;padding:6px 0}
.service-logo-pause[hidden]{display:none}
.service-logo-strip:hover .service-logo-track,.service-logo-strip:focus-within .service-logo-track,.motion-stopped .service-logo-track{animation-play-state:paused!important}
@keyframes service-logo-drift{to{transform:translateX(var(--logo-loop-distance,-50%))}}
@media(max-width:760px){
 .photo-hero-media::after{background:linear-gradient(180deg,#f3f7f0 0,rgba(255,255,255,.12) 24%)}
 .service-logo-group{gap:16px;padding-right:16px}
 .service-logo-strip .home-service-logos a{width:124px;height:84px}
 .service-logo-strip .home-service-logos img{height:64px}
 .service-logo-strip .home-service-logos .logo-emblem img{height:84px}
}
@media(prefers-reduced-motion:reduce){
 .service-logo-track{animation:none}
 .service-logo-group[aria-hidden]{display:none}
 .service-logo-strip.is-ready:not(.is-keyboard-focus) .home-service-logos{overflow-x:auto}
 .service-logo-pause{display:none}
}

/* Contact action takes the former photo-caption position. */
.photo-hero .hero-actions{position:absolute;left:5.5%;right:5.5%;bottom:24px;z-index:2;display:flex;justify-content:flex-start}
.photo-hero .hero-actions .button{margin:0;max-width:100%;white-space:normal;line-height:1.65}
@media(max-width:760px){
 .photo-hero{padding-bottom:calc(100vw * 1225 / 1600 + 88px)}
 .photo-hero-media{bottom:88px}
 .photo-hero .hero-actions{bottom:18px}
 .photo-hero .hero-actions .button{padding:14px 22px}
}
.large-text .photo-hero .hero-actions{position:relative;inset:auto;order:3;padding:18px 5.5%;width:100%;box-sizing:border-box}
.large-text .photo-hero{padding-bottom:0}
.large-text .photo-hero-media{inset:auto}

/* Prominent first-view contact link; flow layout reserves room on small screens. */
.photo-hero .hero-actions .button{font-size:calc(var(--hero-heading-size) * .85);font-weight:700;line-height:1.45;letter-spacing:.015em;padding:16px 26px;border-radius:6px}
@media(max-width:760px){
 .photo-hero{display:flex;flex-direction:column;padding-bottom:0}
 .photo-hero-inner{order:1}
 .photo-hero-media{position:relative;inset:auto;order:2;z-index:0;aspect-ratio:1600/1225;height:auto;width:100%}
 .photo-hero .hero-actions{position:relative;inset:auto;order:3;padding:18px 5.5%;box-sizing:border-box;width:100%}
 .photo-hero .hero-actions .button{padding:14px 12px;letter-spacing:0;width:100%;text-align:center}
}

/* Shared heading scale; the contact label is slightly smaller. */
.photo-hero{--hero-heading-size:clamp(1.5rem,3.2vw,3rem)}
.photo-hero .hero-copy h1{font-size:var(--hero-heading-size)}
@media(min-width:701px) and (max-width:1050px){.photo-hero{--hero-heading-size:clamp(2rem,4vw,2.6rem)}}
@media(max-width:700px){.photo-hero{--hero-heading-size:clamp(1.35rem,5.9vw,2rem)}}

/* Desktop composition shares the CTA's left edge; mobile keeps its existing layout. */
@media(min-width:761px){
 .photo-hero-inner{width:89%;max-width:none;margin-inline:5.5%;padding-top:clamp(36px,3.4vw,70px)}
 .photo-hero .hero-copy{width:min(1200px,100%)}
 .photo-hero{--hero-heading-size:clamp(36px,4vw,80px)}
 .photo-hero .hero-copy h1{line-height:1.4;letter-spacing:.015em;margin-bottom:28px;text-wrap:initial}
 .photo-hero .hero-copy>p:not(.fv-photo-caption){max-width:42em;font-size:clamp(15px,1.05vw,17px);line-height:1.95}
 .photo-hero .hero-actions .button{font-size:clamp(24px,2.4vw,40px)}
}
