/* =========================================================
   ST. AMBROSE SCHOOLS
   CLEAN RESPONSIVE PRELOADER
========================================================= */

:root {
    --preloader-bg: #ffffff;
    --preloader-z: 2147483647;
    --spinner-size: 90px;
}


/* =========================================================
   FULLSCREEN PRELOADER
========================================================= */

#preloader {

    position: fixed !important;

    inset: 0 !important;

    width: 100% !important;
    height: 100% !important;

    min-width: 100vw;
    min-height: 100vh;

    background: var(--preloader-bg) !important;

    z-index: var(--preloader-z) !important;

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    opacity: 1;
    visibility: visible;

    transition:
        opacity .4s ease,
        visibility .4s ease;
}


/* =========================================================
   MOBILE VIEWPORT FIX
========================================================= */

@supports (height: 100dvh) {

    #preloader {

        width: 100vw !important;
        height: 100dvh !important;

        min-height: 100dvh;

    }

}


/* =========================================================
   PRELOADER CENTER
========================================================= */

#preloader .preloader-center {

    position: relative !important;

    width: var(--spinner-size);
    height: var(--spinner-size);

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    left: auto !important;
    top: auto !important;

    transform: none !important;

}


/* =========================================================
   COMPATIBILITY WITH #status
========================================================= */

#preloader #status {

    position: relative !important;

    width: var(--spinner-size);
    height: var(--spinner-size);

    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    left: auto !important;
    top: auto !important;

    transform: none !important;

}


/* =========================================================
   SPINNER LOGO
========================================================= */

#spinner-logo {

    display: block !important;

    width: var(--spinner-size) !important;
    height: var(--spinner-size) !important;

    max-width: none !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain;

    animation: preloader-spin 1.2s linear infinite;

}


/* =========================================================
   LOGO ROTATION
========================================================= */

@keyframes preloader-spin {

    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }

}


/* =========================================================
   HIDDEN STATE
========================================================= */

#preloader.is-hidden {

    opacity: 0 !important;

    visibility: hidden !important;

    pointer-events: none !important;

}


/* =========================================================
   LOCK PAGE WHILE LOADING
========================================================= */

html.preloading,
body.preloading {

    overflow: hidden !important;

    height: 100% !important;

    margin: 0 !important;

    padding: 0 !important;

}


/* =========================================================
   IMPORTANT
   DO NOT USE:

   html.preloading * {
       transform: none !important;
   }

   It breaks centered elements and animations.
========================================================= */


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    :root {
        --spinner-size: 75px;
    }

    #preloader {

        width: 100vw !important;

        height: 100dvh !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

    }

}


/* =========================================================
   VERY SMALL PHONES
========================================================= */

@media (max-width: 350px) {

    :root {
        --spinner-size: 65px;
    }

}


