/* Controls occupy their own row, outside the photograph at every viewport. */
.hero-media{min-width:0;display:grid;grid-template-rows:minmax(0,1fr) auto;align-self:stretch;background:#fff}
.hero-media .hero-photo{min-height:560px;height:100%;width:100%;isolation:isolate}
.hero-media .hero-photo:after{display:none}
.hero-slideshow .hero-slide{opacity:0;transition:opacity 900ms ease;object-position:center;pointer-events:none}
.hero-slideshow .hero-slide.is-active{opacity:1}
.hero-slideshow-controls{position:static;display:flex;justify-content:center;align-items:center;gap:0;min-width:0;padding:2px 8px;background:#fff;border-bottom:1px solid #e5e7e9}
.hero-slideshow-controls button{border:0;background:transparent;color:#231f20;cursor:pointer;min-width:44px;min-height:44px;padding:0 8px;flex-shrink:0}
.hero-slide-dot span{display:block;width:7px;height:7px;margin:auto;border-radius:50%;border:1px solid #707579}
.hero-slide-dot[aria-pressed=true] span{background:#0072ce;border-color:#0072ce}
.hero-slideshow-controls .hero-slide-pause{font:inherit;font-size:14px;min-width:88px;padding:0 12px;border-left:1px solid #d7dade;margin-left:4px}
.hero-slideshow-controls button:focus-visible{outline:2px solid #0072ce;outline-offset:-3px}
@media(max-width:1100px){.hero-media .hero-photo{min-height:500px}}
@media(max-width:800px){.hero-media .hero-photo{height:clamp(340px,100vw,520px);min-height:0}}
@media(max-width:350px){.hero-slideshow-controls{padding-inline:0}.hero-slideshow-controls button{min-width:40px}.hero-slideshow-controls .hero-slide-pause{min-width:80px;padding-inline:8px}}
@media(prefers-reduced-motion:reduce){.hero-slideshow .hero-slide{transition:none}}
/* Seven photographs: keep all controls in one compact row on small screens. */
@media(max-width:600px){.hero-slideshow-controls{padding:2px 4px}.hero-slideshow-controls .hero-slide-dot{min-width:0;flex:1 1 0;max-width:44px}.hero-slideshow-controls .hero-slide-pause{min-width:72px;padding:0 8px;margin-left:2px}}

/* Work information stays below the photograph, synchronized with the active slide. */
.hero-caption{background:#fff;color:#231f20;border-bottom:1px solid #e5e7e9;padding:16px 5vw;min-height:100px;display:grid;align-items:center}
.hero-caption-item{margin:0;display:grid;grid-template-columns:minmax(105px,.5fr) minmax(0,2fr) minmax(160px,1fr);align-items:center;gap:10px 24px;line-height:1.35}
.hero-caption-item[hidden]{display:none!important}.hero-caption-location{font-size:13px;font-weight:600;color:#006cac}.hero-caption-project{font-size:18px;font-weight:600}.hero-caption-client{font-size:15px;color:#555}
@media(max-width:800px){.hero-caption{min-height:154px;padding:14px 6vw}.hero-caption-item{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.hero-caption-project{font-size:17px}.hero-caption-client{font-size:14px}}
@media(max-width:600px){.hero-slideshow-controls .hero-slide-dot{min-width:0;flex:1 1 0;max-width:44px}.hero-slideshow-controls .hero-slide-pause{min-width:68px;padding:0 6px}}
