/**
 * Admin-uploaded banner rotator — content-sized panels (no vh viewport fill).
 * Hero context (Batch 1 S01): slot geometry only — no floating poster in oversized box.
 */

.fi-admin-banner-rotator {
    position: relative;
    width: 100%;
    min-height: clamp(220px, 28vw, 400px);
    max-height: clamp(280px, 32vw, 480px);
    margin-inline: auto;
}

.fi-admin-banner-rotator__stage {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: inherit;
    max-height: inherit;
}

.fi-admin-banner-rotator__link,
.fi-admin-banner-rotator__img[data-hero-visual-item] {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    margin: 0;
    opacity: 0;
    transition: opacity 650ms ease;
    pointer-events: none;
}

.fi-admin-banner-rotator__link {
    text-decoration: none;
}

.fi-admin-banner-rotator__img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: clamp(280px, 32vw, 480px);
    object-fit: contain;
    object-position: center;
    filter: drop-shadow(0 12px 28px rgba(40, 30, 10, 0.08));
}

.fi-admin-banner-rotator__link.is-active,
.fi-admin-banner-rotator__img.is-active {
    opacity: 1;
    pointer-events: auto;
    z-index: 1;
}

.fi-hero-visual--admin-banner {
    width: 100%;
    max-width: 100%;
    aspect-ratio: var(--fd-slot-banner-ratio, 4 / 3);
    min-height: 0;
}

.fi-hero__visual-wrap .fi-admin-banner-rotator,
.fi-hero__visual-wrap .fi-hero-visual--admin-banner {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-height: 0;
    max-height: none;
    aspect-ratio: var(--fd-slot-banner-ratio, 4 / 3);
}

.fi-hero__visual-wrap .fi-admin-banner-rotator__stage {
    position: absolute;
    inset: 0;
    min-height: 0;
    max-height: none;
    height: auto;
}

.fi-hero__visual-wrap .fi-admin-banner-rotator__link,
.fi-hero__visual-wrap .fi-admin-banner-rotator__img[data-hero-visual-item] {
    place-items: end center;
}

.fi-hero__visual-wrap .fi-admin-banner-rotator__img {
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    object-position: center bottom;
}

.fi-home-dd__poster {
    overflow: visible;
    background: transparent;
    border: none;
    box-shadow: none;
}

.fi-home-dd__poster .fi-admin-banner-rotator {
    min-height: clamp(220px, 28vw, 340px);
    max-height: clamp(280px, 32vw, 400px);
}

.fi-home-dd__poster .fi-admin-banner-rotator__img {
    max-height: clamp(280px, 32vw, 400px);
}

@media (max-width: 1023px) {
    .fi-admin-banner-rotator {
        min-height: clamp(200px, 36vw, 320px);
        max-height: clamp(240px, 40vw, 360px);
    }

    .fi-hero__visual-wrap .fi-admin-banner-rotator {
        min-height: 0;
        max-height: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fi-admin-banner-rotator__link,
    .fi-admin-banner-rotator__img {
        transition: none;
    }
}
