/* Home stage photographs and the on-page photo viewer. */
.showcase [hidden], .media-gallery [hidden], .gallery-controls [hidden], .stage-lightbox [hidden] { display: none !important; }
.hero.showcase { background: #191919; isolation: isolate; }
.showcase__page-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.showcase__slides { width: 100%; min-height: inherit; display: grid; }
.showcase__slide { grid-area: 1 / 1; min-height: inherit; position: relative; display: flex; align-items: flex-end; }
.showcase__slide:not([hidden]) { animation: showcase-reveal .45s ease-out; }
.showcase__photo, .showcase__shade { position: absolute; inset: 0; }
.showcase__photo picture { display: block; width: 100%; height: 100%; }
.showcase__photo img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.showcase__shade { background: linear-gradient(90deg, rgba(0,0,0,.7), rgba(0,0,0,.08) 85%), linear-gradient(0deg, rgba(0,0,0,.8), transparent 75%); pointer-events: none; }
.showcase__content { position: relative; z-index: 1; width: min(100% - 2.75rem, var(--container-wide)); margin-inline: auto; padding: 4rem 0 6.75rem; }
.showcase__content h2 { max-width: 18ch; font-family: var(--serif); font-size: clamp(2.1rem, 5.2vw, 4.4rem); font-weight: 700; line-height: 1.05; letter-spacing: -.035em; overflow-wrap: break-word; }
.showcase__content .hero__eyebrow { color: rgba(255,255,255,.8); }
.showcase__facts { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1.5rem; font-size: .95rem; color: rgba(255,255,255,.86); }
.showcase__facts time { font-weight: 600; }
.showcase__facts .age-badge { color: inherit; }
.showcase__content .hero__actions { margin-top: 1.6rem; }
.showcase__controls { position: absolute; z-index: 2; bottom: 1.25rem; left: 50%; transform: translateX(-50%); width: min(100% - 2.75rem, var(--container-wide)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.showcase__dots, .showcase__navigation { display: flex; align-items: center; gap: .35rem; }
.showcase__dots button { display: grid; place-items: center; width: 32px; height: 44px; color: #fff; }
.showcase__dots span { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.45); }
.showcase__dots [aria-current] span { width: 20px; border-radius: 5px; background: #fff; }
.showcase__counter { min-width: 3rem; font-size: .8rem; font-variant-numeric: tabular-nums; text-align: center; margin-right: .3rem; }
.showcase__arrow, .showcase__pause { display: grid; place-items: center; width: 44px; height: 44px; color: #fff; border: 1px solid rgba(255,255,255,.4); background: rgba(0,0,0,.15); font-size: 1.15rem; }
.showcase__pause { display: flex; justify-content: center; gap: .4rem; width: auto; min-width: 76px; padding-inline: .75rem; font-size: .8rem; }
.showcase__controls button:hover { background: rgba(255,255,255,.16); }
.showcase__controls button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@keyframes showcase-reveal { from { opacity: .3; } to { opacity: 1; } }

.media-gallery.is-gallery-ready { display: block; touch-action: pan-y; }
.media-gallery.is-gallery-ready > figure { margin: 0; }
.media-gallery.is-gallery-ready figure > a { display: flex; width: 100%; aspect-ratio: 3 / 2; align-items: center; justify-content: center; background: #191919; cursor: zoom-in; }
.media-gallery.is-gallery-ready picture { display: block; width: 100%; height: 100%; }
.media-gallery.is-gallery-ready img { display: block; width: 100%; height: 100%; object-fit: contain; }
.media-gallery.is-gallery-ready:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; }
.gallery-controls { display: flex; justify-content: space-between; align-items: center; gap: .75rem; margin-top: .75rem; }
.gallery-controls__navigation { display: flex; align-items: center; gap: .5rem; }
.gallery-controls__navigation button { width: 44px; height: 44px; border: 1px solid var(--line-dark); font-size: 1.2rem; }
.gallery-controls output { min-width: 4rem; text-align: center; font-size: .85rem; font-variant-numeric: tabular-nums; }
.gallery-controls__expand { min-height: 44px; font-size: .83rem; padding: .5rem 0 .5rem .5rem; text-decoration: underline; text-underline-offset: .2em; }
.gallery-controls button:hover { color: var(--brand); }
.gallery-controls button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.has-stage-lightbox { overflow: hidden; }
.stage-lightbox { width: calc(100vw - 2rem); height: calc(100vh - 2rem); height: calc(100dvh - 2rem); max-width: 1500px; max-height: none; margin: auto; border: 0; padding: .75rem; background: #111; color: #fff; }
.stage-lightbox[open] { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: .75rem; }
.stage-lightbox::backdrop { background: rgba(0,0,0,.88); }
.stage-lightbox__bar { display: flex; justify-content: space-between; align-items: center; padding-left: .5rem; font-variant-numeric: tabular-nums; }
.stage-lightbox button { display: grid; place-items: center; width: 44px; height: 44px; color: #fff; background: rgba(20,20,20,.7); border: 1px solid rgba(255,255,255,.4); font-size: 1.35rem; }
.stage-lightbox button:hover { background: #444; }
.stage-lightbox button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.stage-lightbox__stage { position: relative; display: flex; align-items: center; justify-content: center; min-height: 0; touch-action: pan-y; }
.stage-lightbox__stage img { width: 100%; height: 100%; object-fit: contain; }
.stage-lightbox__stage button { position: absolute; top: 50%; transform: translateY(-50%); z-index: 1; }
.stage-lightbox [data-lightbox-prev] { left: .25rem; }
.stage-lightbox [data-lightbox-next] { right: .25rem; }
.stage-lightbox__caption { font-size: .85rem; text-align: center; line-height: 1.5; color: rgba(255,255,255,.8); }
.stage-lightbox__caption:empty { display: none; }

.people-group > .h2 { font-size: 1.75rem; margin-bottom: 1.25rem; }
.course-leaders { margin-bottom: 2.5rem; padding-bottom: 2.5rem; border-bottom: 1px solid var(--line); }

@media (max-width: 560px) {
    .hero.showcase { min-height: 540px; min-height: clamp(500px, 78svh, 680px); }
    .showcase__content { padding: 3rem 0 6.25rem; }
    .showcase__content h2 { font-size: clamp(2rem, 8vw, 2.8rem); }
    .showcase__facts { gap: .5rem .75rem; margin-top: 1rem; font-size: .85rem; }
    .showcase__controls { justify-content: flex-end; }
    .showcase__dots { display: none; }
    .gallery-controls { gap: .25rem; }
    .gallery-controls__navigation { gap: .15rem; }
    .gallery-controls output { min-width: 3rem; }
    .gallery-controls__expand { font-size: .75rem; }
    .stage-lightbox { width: 100vw; height: 100vh; height: 100dvh; padding: .5rem; }
    .people-group > .h2 { font-size: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) { .showcase__slide:not([hidden]) { animation: none; } }
