/* E2 - /gallery (clinic tour). Colours come from tokens only; only transform animates (and not under reduced motion). */
.nd-gallery { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); }
.nd-gitem { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--nd-r); background: var(--nd-surface-alt); color: var(--nd-white); text-decoration: none; box-shadow: var(--nd-shadow-1); }
.nd-gitem img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s var(--nd-ease); }
.nd-gitem:hover img { transform: scale(1.05); }
.nd-gitem:focus-visible { outline: 3px solid var(--nd-blue); outline-offset: 3px; }
.nd-gitem__cap { position: absolute; inset: auto 0 0 0; padding: 2.25rem .9rem .8rem; background: linear-gradient(to top, rgba(var(--nd-navy-rgb), .9), transparent); font-weight: 600; font-size: .9rem; line-height: 1.4; }
.nd-gitem__play, .nd-lightbox__play { position: absolute; top: 50%; left: 50%; translate: -50% -50%; display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--nd-cta); color: var(--nd-white); font-size: 1.75rem; box-shadow: var(--nd-shadow-2); }
@media (prefers-reduced-motion: reduce) { .nd-gitem img { transition: none; } .nd-gitem:hover img { transform: none; } }

.nd-lightbox { width: min(94vw, 64rem); max-width: none; padding: 0; border: 0; border-radius: var(--nd-r-lg); background: var(--nd-navy); color: var(--nd-white); overflow: hidden; }
.nd-lightbox::backdrop { background: rgba(var(--nd-navy-rgb), .88); }
.nd-lightbox[open] { display: grid; grid-template-rows: auto 1fr auto auto; max-height: 94vh; }
.nd-lightbox__bar { display: flex; justify-content: space-between; align-items: center; padding: .5rem .75rem; }
.nd-lightbox__count { font-weight: 600; font-size: .9rem; color: var(--nd-on-navy); }
.nd-lightbox__btn { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(var(--nd-surface-rgb), .4); background: transparent; color: var(--nd-white); font-size: 1.2rem; cursor: pointer; }
.nd-lightbox__btn:hover { background: rgba(var(--nd-surface-rgb), .16); }
.nd-lightbox__btn:focus-visible { outline: 3px solid var(--nd-sky); outline-offset: 2px; }
.nd-lightbox__stage { position: relative; display: grid; place-items: center; min-height: 12rem; padding: 0 .75rem; overflow: hidden; }
.nd-lightbox__stage img { display: block; width: min(100%, 56rem); height: auto; max-height: 66vh; object-fit: contain; border-radius: var(--nd-r-sm); }
.nd-lightbox__poster { position: relative; display: block; width: min(100%, 56rem); padding: 0; border: 0; background: none; cursor: pointer; }
.nd-lightbox__poster:focus-visible { outline: 3px solid var(--nd-sky); outline-offset: 3px; }
.nd-lightbox__frame { width: min(100%, 56rem); aspect-ratio: 16 / 9; border: 0; border-radius: var(--nd-r-sm); background: var(--nd-ink); }
.nd-lightbox__cap { margin: 0; padding: .75rem 1rem 0; text-align: center; font-weight: 600; }
.nd-lightbox__nav { display: flex; justify-content: center; gap: 1rem; padding: .75rem 1rem 1rem; }
