/* ══════════════════════════════════════════════════
   Chamber Preloader — Pixel-Perfect Match
   es.chamber.org.sa
   ══════════════════════════════════════════════════ */

/* Fullscreen white overlay */
.loading-spinner {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0, 0, 0, 0.7);
    z-index: 3000;
    transition: opacity 0.5s ease, visibility 0.5s ease;
}

/* Fade-out state */
.loading-spinner.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Centered container for logo + pulse */
.loading-spinner__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40rem;
    height: 40rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-user-select: none;
    user-select: none;
}

.loading-spinner__logo img {
    -webkit-user-select: none;
    user-select: none;
}

/* ── The Pulsing Gradient Circles ── */
.splash-loader,
.splash-loader::before,
.splash-loader::after {
    left: 50%;
    top: 50%;
    margin-left: -90px;
    margin-top: -90px;
    position: absolute;
    vertical-align: middle;
    background: linear-gradient(130deg, #4062AD 20.17%, #0A925D 77.86%, #0A925D 77.93%);
    width: 180px;
    height: 180px;
    border-radius: 50%;
    z-index: 1;
}

.splash-loader {
    background: transparent;
}

.splash-loader::before {
    content: "";
    animation: chamberBounce 1.5s infinite;
}

.splash-loader::after {
    content: "";
    animation: chamberBounce 1.5s -0.4s infinite;
}

/* ── Centered Logo ── */
.splash-logo {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    position: absolute;
    width: 160px;
}

/* ── Bounce Keyframes ── */
@keyframes chamberBounce {
    0% {
        transform: scale(0.3);
        -webkit-transform: scale(0.3);
        opacity: 1;
    }

    100% {
        transform: scale(2);
        -webkit-transform: scale(2);
        opacity: 0;
    }
}

/* ── Responsive ── */
@media all and (max-width: 1440px) {
    .loading-spinner__logo {
        width: 30rem;
        height: 30rem;
    }
}

@media all and (max-width: 767px) {
    .loading-spinner__logo {
        width: 20rem;
        height: 20rem;
    }

    .splash-logo {
        width: 100px;
    }

    .splash-loader,
    .splash-loader::before,
    .splash-loader::after {
        width: 120px;
        height: 120px;
        margin-left: -60px;
        margin-top: -60px;
    }
}