/**
 * Journey iframe modals (Fancybox) — info rows + main post roll.
 * Onboarding popup (#journey-popup) is styled separately in home.scss.
 */

.journey-iframe-modal-panel {
    box-sizing: border-box;
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: calc(90vh - 32px);
    overflow: hidden;
    border-radius: 8px;
    background: #ffffff;
}

/* Innogen-style control (playground / partnership modals): round target, white icon on tint */
.journey-iframe-modal__close {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 10;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    background-image: url('https://cdn-binusacid.azureedge.net/website-binus/assets/images/general/icon-close-white.svg');
    background-repeat: no-repeat;
    background-position: center;
    /* background-size: 14px 14px; */
    box-shadow: none;
}

.journey-iframe-modal__close:focus-visible {
    outline: 2px solid rgba(255, 255, 255, 0.95);
    outline-offset: 2px;
}

@media (min-width: 768px) {
    .journey-iframe-modal__close {
        top: 14px;
        right: 14px;
    }
}

.journey-iframe-modal__loader {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    background: #ffffff;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.journey-iframe-modal__loader-logo {
    display: block;
    max-width: 140px;
    width: auto;
    height: auto;
}

.journey-iframe-modal__loader-gif {
    display: block;
    max-width: 60px;
    width: auto;
    height: auto;
}

.journey-iframe-modal-panel.is-iframe-loaded .journey-iframe-modal__loader,
.journey-iframe-modal__loader[hidden] {
    opacity: 0;
    visibility: hidden;
    display: none !important;
    pointer-events: none;
}

.journey-iframe-modal__frame {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    position: relative;
    z-index: 1;
}

/*
 * Lenis (css/lenis.css) sets .lenis.lenis-smooth iframe { pointer-events: none } so the main
 * page keeps smooth scroll. That blocks wheel/touch inside modal embeds — restore only our iframe.
 */
.lenis.lenis-smooth iframe.journey-iframe-modal__frame {
    pointer-events: auto !important;
}

/* Fancybox v5 — shared shell (inline info modals + dynamic HTML post roll) */
.fancybox__container:has(.journey-iframe-modal-panel),
.fancybox__container.journey-iframe-fancybox {
    --fancybox-bg: rgba(30, 30, 30, 0.55);
}

.fancybox__container:has(.journey-iframe-modal-panel) .f-html,
.fancybox__container:has(.journey-iframe-modal-panel) .fancybox__html,
.fancybox__container.journey-iframe-fancybox .f-html,
.fancybox__container.journey-iframe-fancybox .fancybox__html {
    background: #ffffff;
}

.fancybox__container:has(.journey-iframe-modal-panel) .fancybox__viewport,
.fancybox__container.journey-iframe-fancybox .fancybox__viewport {
    max-height: 100dvh;
}

.fancybox__container .fancybox__content:has(.journey-iframe-modal-panel),
.fancybox__container.journey-iframe-fancybox .fancybox__content {
    box-sizing: border-box;
    width: min(800px, calc(100vw - 32px));
    max-width: 800px;
    max-height: 90vh;
    padding: 16px;
    margin: 0;
    border-radius: 12px;
    background: #ffffff;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

@media (min-width: 768px) {
    .journey-iframe-modal-panel {
        max-height: calc(min(90vh, 90dvh) - 32px);
    }
}

/* Fancybox v3 (jQuery) */
.journey-iframe-fancybox .fancybox-slide--html {
    padding: 16px;
}

.journey-iframe-fancybox .fancybox-content {
    width: min(800px, calc(100vw - 32px));
    max-width: 800px;
    max-height: 90vh;
    padding: 16px;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

@media (max-width: 767px) {
    .fancybox__container .fancybox__content:has(.journey-iframe-modal-panel),
    .fancybox__container.journey-iframe-fancybox .fancybox__content {
        width: calc(100vw - 32px);
        max-height: 80vh;
    }

    .journey-iframe-fancybox .fancybox-content {
        width: calc(100vw - 32px);
        max-height: 80vh;
    }

    .journey-iframe-modal-panel,
    .journey-iframe-fancybox .journey-iframe-modal-panel {
        max-height: calc(80vh - 32px);
    }
}
