/* Reserve each image frame independently of the uploaded file's proportions. */
.hero-images,.story-portrait,.program-photo,.gallery-main,.gallery-side{min-width:0;isolation:isolate}
.hero-photo,.story-portrait img,.program-photo img,.gallery-main>img,.contact-bg{display:block;width:100%;height:100%;object-fit:cover}
.hero-photo,.contact-bg{position:absolute;inset:0}
.story-portrait{position:relative;overflow:hidden}
.story-portrait img{position:absolute;inset:0}
.gallery-main>img{position:absolute;inset:0}
.program-photo{position:relative}
.program-photo img{position:absolute;inset:0}
.gallery-thumbs img{display:block;width:100%;height:100%;object-fit:cover}
#full-photo{width:100%;max-width:100%;object-fit:contain}
body.admin-bar header{top:32px}
body.admin-bar .intro{top:32px;height:calc(100dvh - 32px)}
body.admin-bar .hero-content{padding-top:157px}
h1,h2,h3,p,.program-key,.bio-facts,.timeline,.result-status{overflow-wrap:anywhere}
.program{min-width:0;grid-template-columns:minmax(0,1fr) auto}
.program .price{white-space:nowrap}
#gallery-caption{min-width:0;overflow-wrap:anywhere}
.gallery-bottom .slider-tools{flex-shrink:0}
dialog{max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overscroll-behavior:contain}
html:has(dialog[open]){overflow:hidden}
#results-dialog .result-row>div{min-width:0}
@media(max-width:782px){body.admin-bar header{top:46px}body.admin-bar .intro{top:46px;height:calc(100dvh - 46px)}body.admin-bar .hero-content{padding-top:176px}}
@media(max-width:760px){
 .program h3{font-size:clamp(22px,6.8vw,29px)}
 .program .price{font-size:clamp(22px,6.6vw,28px)}
 .gallery-bottom{flex-wrap:wrap}
 .gallery-bottom>p{max-width:none;flex:1 1 130px}
 .gallery-thumbs button{min-height:44px}
 .contact-buttons,.contact-buttons .button{max-width:100%}
 #full-photo{height:60svh}
}
@media(max-width:360px){header{gap:4px;padding-left:5%;padding-right:5%}.nav-cta{padding:12px 10px}.gallery-heading{gap:12px}.gallery-count{font-size:36px}.gallery-count small{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}
@media(max-height:480px){.result-row p{display:block}.gallery-stage{min-height:300px}.hero-footer>a{display:block}}
