/**
 * Keep the asynchronous COFIS recommendation section from shifting the
 * homepage while its cards and Swiper instance are being built.
 */
body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed) {
    position: relative;
    min-height: 610px;
}

body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed)::before {
    content: "";
    position: absolute;
    inset: 18px 0 auto;
    height: 540px;
    border-radius: 8px;
    background: linear-gradient(100deg, #f3f3f3 20%, #fafafa 38%, #f3f3f3 56%);
    background-size: 200% 100%;
    animation: gk-cofis-placeholder 1.4s ease-in-out infinite;
}

body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed) > * {
    visibility: hidden;
}

body#index .cofiscz-recommendation-container.gk-cofis-ready > * {
    animation: gk-cofis-reveal 160ms ease-out both;
}

@media (min-width: 768px) {
    body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed) {
        min-height: 430px;
    }

    body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed)::before {
        height: 360px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body#index .cofiscz-recommendation-container:not(.gk-cofis-ready):not(.gk-cofis-failed)::before,
    body#index .cofiscz-recommendation-container.gk-cofis-ready > * {
        animation: none;
    }
}

@keyframes gk-cofis-placeholder {
    from { background-position: 100% 0; }
    to { background-position: -100% 0; }
}

@keyframes gk-cofis-reveal {
    from { opacity: 0; }
    to { opacity: 1; }
}
