/* ============================================================
   iTunes-style Coverflow — JS-driven, absolute-positioned
   ============================================================ */

.coverflow {
    position: relative;
    /* clip-not-hide: clips side-card overflow without creating a scroll container
       (overflow-x:hidden would force overflow-y:auto → scrollbar) */
    overflow-x: clip;
}

/* ── Stage ─────────────────────────────────────────────── */

.coverflow__stage {
    --cover-size: 18rem;
    --stage-height: 30rem;

    position: relative;
    width: 100%;
    height: var(--stage-height);
    list-style: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    perspective: 80em;
    perspective-origin: 50% 50%;
    outline: none;
}

/* ── Cards ─────────────────────────────────────────────── */

.coverflow__item {
    position: absolute;
    top: 50%;
    left: 50%;
    width: var(--cover-size);
    /* height: auto — card expands to natural content height;
       centering via translate(-50%,-50%) works off the item's own height */
    height: auto;

    transform: translate(-50%, -50%) scale(0);
    opacity: 0;
    pointer-events: none;

    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                opacity 0.5s ease;
    will-change: transform, opacity;
}

/* Disable transitions during initial JS render to avoid flash */
.coverflow__stage.coverflow--no-transition .coverflow__item {
    transition: none !important;
}

/* Let compiled.min.css drive the card's natural height (min-height: 21.875rem) */
.coverflow__item .webinar__card {
    height: auto;
}

/* Links inside non-focused cards are non-interactive */
.coverflow__item:not(.cf-0) a,
.coverflow__item:not(.cf-0) button {
    pointer-events: none;
}

/* ── Position classes (desktop: 3 on each side) ─────────── */

.coverflow__item.cf-0 {
    transform: translate(-50%, -50%) translateZ(4rem) scale(1);
    opacity: 1;
    z-index: 10;
    pointer-events: auto;
}

.coverflow__item.cf-n1 {
    transform: translate(calc(-50% - 12rem), -50%) translateZ(1rem) rotateY(-45deg) scale(0.9);
    opacity: 0.85;
    z-index: 7;
    pointer-events: auto;
    cursor: pointer;
}
.coverflow__item.cf-1 {
    transform: translate(calc(-50% + 12rem), -50%) translateZ(1rem) rotateY(45deg) scale(0.9);
    opacity: 0.85;
    z-index: 7;
    pointer-events: auto;
    cursor: pointer;
}

.coverflow__item.cf-n2 {
    transform: translate(calc(-50% - 22rem), -50%) translateZ(-2rem) rotateY(-55deg) scale(0.75);
    opacity: 0.6;
    z-index: 5;
    pointer-events: auto;
    cursor: pointer;
}
.coverflow__item.cf-2 {
    transform: translate(calc(-50% + 22rem), -50%) translateZ(-2rem) rotateY(55deg) scale(0.75);
    opacity: 0.6;
    z-index: 5;
    pointer-events: auto;
    cursor: pointer;
}

.coverflow__item.cf-n3 {
    transform: translate(calc(-50% - 30rem), -50%) translateZ(-5rem) rotateY(-65deg) scale(0.6);
    opacity: 0.35;
    z-index: 3;
    pointer-events: auto;
    cursor: pointer;
}
.coverflow__item.cf-3 {
    transform: translate(calc(-50% + 30rem), -50%) translateZ(-5rem) rotateY(65deg) scale(0.6);
    opacity: 0.35;
    z-index: 3;
    pointer-events: auto;
    cursor: pointer;
}

/* ── Controls (placed in HTML after .coverflow, no overlap possible) ── */

.coverflow__controls {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    padding-block: 2rem 3rem;
}

.coverflow__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 50%;
    border: 0.125rem solid var(--clr-primary-500);
    background-color: transparent;
    color: var(--clr-primary-500);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    flex-shrink: 0;
}

.coverflow__btn:hover,
.coverflow__btn:focus-visible {
    background-color: var(--clr-primary-500);
    color: var(--clr-white);
    outline: none;
}

.coverflow__btn::after {
    content: '';
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    background-color: currentColor;
    mask-repeat: no-repeat;
    mask-position: center;
    mask-size: contain;
}

.coverflow__btn--prev::after { mask-image: url(/icons/chevron-left.svg); }
.coverflow__btn--next::after { mask-image: url(/icons/chevron-right.svg); }

@supports not (mask-image: url()) {
    .coverflow__btn--prev::after { background-image: url(/icons/chevron-left.svg); }
    .coverflow__btn--next::after { background-image: url(/icons/chevron-right.svg); }
}

/* ── Mobile: 1 card on each side ───────────────────────── */

@media only screen and (max-width: 62em) {
    .coverflow__stage {
        --cover-size: 16rem;
        --stage-height: 28rem;
    }

    .coverflow__item.cf-n2,
    .coverflow__item.cf-2,
    .coverflow__item.cf-n3,
    .coverflow__item.cf-3 {
        opacity: 0;
        pointer-events: none;
    }

    .coverflow__item.cf-n1 {
        transform: translate(calc(-50% - 10rem), -50%) translateZ(0) rotateY(-45deg) scale(0.82);
        opacity: 0.7;
    }
    .coverflow__item.cf-1 {
        transform: translate(calc(-50% + 10rem), -50%) translateZ(0) rotateY(45deg) scale(0.82);
        opacity: 0.7;
    }
}

@media only screen and (max-width: 30em) {
    .coverflow__stage {
        --cover-size: 14rem;
        --stage-height: 26rem;
    }

    .coverflow__item.cf-n1 {
        transform: translate(calc(-50% - 8rem), -50%) translateZ(0) rotateY(-45deg) scale(0.78);
    }
    .coverflow__item.cf-1 {
        transform: translate(calc(-50% + 8rem), -50%) translateZ(0) rotateY(45deg) scale(0.78);
    }
}
