.jbfm-banner-slot {
    --banner-width: 1000;
    --banner-height: 216;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}

.jbfm-banner-slot__stage {
    position: relative;
    width: min(calc(var(--banner-width) * 1px), 100%);
    aspect-ratio: var(--banner-width) / var(--banner-height);
    overflow: hidden;
}

.jbfm-banner-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .45s ease, visibility .45s ease;
}

.jbfm-banner-slide.is-active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.jbfm-banner-slide__link {
    display: block;
    width: 100%;
    height: 100%;
}

.jbfm-banner-slide img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.home-ad.jbfm-banner-slot img {
    max-width: 100%;
}

@media (prefers-reduced-motion: reduce) {
    .jbfm-banner-slide { transition: none; }
}
