/* Every public opening uses the same photographic hero component, with or without slides. */
.hero-carousel .hero-title-line{white-space:normal;text-wrap:balance;overflow-wrap:normal}
#page-content{scroll-margin-top:132px}
#page-content>.photo-grid{padding-block:64px}
.article-meta-below{padding-block:40px 12px;color:#79545d}
main img{max-width:100%}
.photo-grid figure{min-width:0;margin:0}
.photo-grid figure>a{display:block;overflow:hidden;border-radius:22px}
.photo-grid img{width:100%;height:clamp(220px,24vw,360px);object-fit:cover;object-position:center 38%;border-radius:22px}
.photo-grid figcaption{overflow-wrap:anywhere;line-height:1.65;padding-top:14px}
.story-card>a>img{width:100%;height:clamp(260px,24vw,390px);object-fit:cover;object-position:center 38%}
.split>img{width:100%;max-width:100%;object-fit:cover;object-position:var(--image-position,center)}
.full-image>img{width:100%;height:100%;border-radius:0;object-fit:cover;object-position:var(--image-position,center)}
@media(max-width:760px){#page-content{scroll-margin-top:162px}#page-content>.photo-grid{padding-block:38px}.photo-grid img{height:clamp(180px,56vw,270px)}.story-card>a>img{height:clamp(250px,76vw,360px)}.article-meta-below{padding-top:30px;font-size:14px}}
#page-content>.listing{padding-block:64px}
@media(max-width:760px){#page-content>.listing{padding-block:40px}}
@media(max-width:760px){
 .hero.layout-immersive.hero-carousel .hero-image{height:clamp(490px,130vw,660px)!important;min-height:0;object-position:center top!important;mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 60%,transparent 100%)}
}
.hero.layout-immersive.hero-carousel:not(:has(.hero-controls)) .hero-copy :is(h1,h2),.hero.layout-immersive.hero-carousel:not(:has(.hero-controls)) .hero-copy p{min-height:0}

/* Mobile photo treatment is tied to the photo band, never to the length of a headline. */
.location-directions{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.location-directions .button{white-space:nowrap}
@media(max-width:760px){
 .hero.layout-immersive.hero-carousel{--mobile-photo-height:clamp(490px,130vw,660px);overflow:hidden;isolation:isolate}
 .hero.layout-immersive.hero-carousel .hero-image{top:-48px;height:var(--mobile-photo-height)!important;object-position:center 38%!important;animation:none;transform:none;mask-image:linear-gradient(180deg,#000 0%,#000 66%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 66%,transparent 100%)}
 .hero.layout-immersive.hero-carousel .hero-shade{inset:0 0 auto;height:calc(var(--mobile-photo-height) - 48px);background:linear-gradient(180deg,#25060708 0%,#25060712 45%,#25060770 70%,#250607 100%);pointer-events:none}
 /* Keep every action label intact; use another row instead of shrinking the type. */
 .menu-enhanced .site-header,.menu-enhanced .site-header.is-scrolled{height:186px;min-height:186px;grid-template-rows:44px 100px;padding-block:12px;gap:12px 16px}
 .site-header .header-actions,.menu-enhanced .site-header .header-actions{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:46px 46px;gap:8px}
 .site-header .header-actions .header-portal,.menu-enhanced .site-header .header-actions .header-cta{height:46px;min-height:46px;font-size:12px;white-space:nowrap;text-wrap:nowrap;padding:10px 8px;border-radius:15px}
 .menu-enhanced .site-header .header-actions .header-cta{grid-column:1/-1;font-size:14px}
 .site-header .header-portal-label{max-width:none;white-space:nowrap;text-wrap:nowrap}
 main :is(.button,.hero-portals a),.school-footer .button,.menu-cta,.cookie-actions button,.map-load{white-space:nowrap;overflow-wrap:normal;word-break:normal;text-wrap:nowrap}
 main .button,.school-footer .button{max-width:100%;min-width:0;font-size:14px;padding-inline:18px;gap:12px}
 .hero-carousel .hero-community-bar .hero-portals>div{flex-wrap:wrap}
 .hero-carousel .hero-community-bar .hero-portals a{flex:1 1 180px;white-space:nowrap}
 .location-directions .button{flex:1 1 120px}
 .quick-links .quick-links-grid{grid-template-columns:minmax(0,1fr)}
 .quick-links .quick-link{display:flex;flex-direction:row;align-items:center;gap:12px;padding:18px 14px;min-height:108px;text-align:left}
 .quick-links .quick-link-icon{width:48px;height:48px;flex:0 0 48px;margin:0}
 .quick-links .quick-link-copy{min-width:0;flex:1}
 .quick-links .quick-link-copy strong{font-size:clamp(17px,4.8vw,21px);white-space:nowrap}
 .quick-links .quick-link-copy>span{font-size:13px}
 .quick-links .quick-link-arrow{display:none}
 #page-content{scroll-margin-top:202px}
}

@media(max-width:760px){.location-directions .button{flex-basis:150px}}

/* Mobile quick access: the artwork must scale with its own circular badge. */
@media(max-width:760px){
 .quick-links .quick-link{gap:14px}
 .quick-links .quick-link-icon{width:56px;height:56px;flex:0 0 56px;aspect-ratio:1;border-radius:50%;overflow:hidden;align-self:center;place-items:center}
 .quick-links .quick-link-icon .school-icon{display:block;width:56px;height:56px;max-width:none;flex:none;transform-origin:center}
 .quick-links .quick-link-icon:has(use[href$="#camera"]) .school-icon{width:28px;height:28px}
 .quick-links .quick-link-copy{align-self:center}
 .quick-links .quick-link-copy strong{font-size:clamp(16px,4.6vw,21px);line-height:1.2;margin-bottom:5px}
}
