.nsa-overview .hero .nsa-carousel { min-height: 0; display: block; background: transparent; width: 100%; }
.nsa-carousel::before { display: none; }
.nsa-carousel-viewport { position: relative; width: 100%; aspect-ratio: 1; }
.nsa-overview .hero .nsa-carousel [data-slide] { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 18px; box-sizing: border-box; opacity: 0; transition: opacity 850ms ease; filter: drop-shadow(0 18px 32px #0006); }
.nsa-overview .hero .nsa-carousel [data-slide].is-active { opacity: 1; }
.nsa-carousel-controls { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 16px; }
.nsa-carousel-controls button { display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 0; background: transparent; cursor: pointer; }
.nsa-carousel-controls button::after { content: ""; display: block; width: 32px; height: 3px; background: var(--red, #e0002a); opacity: .4; transition: opacity .2s; }
.nsa-carousel-controls button[aria-pressed="true"]::after, .nsa-carousel-controls button:hover::after { opacity: 1; }
.nsa-carousel-controls button:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
@media(prefers-reduced-motion:reduce) { .nsa-overview .hero .nsa-carousel [data-slide] { transition: none; } }

/* Cap the hero carousel and preserve each photo aspect ratio. */
.nsa-overview .hero .nsa-carousel { width: 100%; max-width: 640px; margin-inline: auto; justify-self: center; }
