// Preloaders
.loading-overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    transition: all 0.3s ease-in-out;
    background: var(--alpha-change-color-light-1);
    opacity: 1;
    visibility: visible;
    z-index: 999999;

    .loaded & {
        opacity: 0;
        visibility: hidden;
    }
}

.bounce-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    .loader {
        width: 100%;
        height: 100%;
        border-radius: 50%;
    }
}

.preloader-1 {
    .loader {
        background-color: var(--alpha-preloader-color);
        width: 20px;
        height: 20px;
        display: inline-block;
        animation: bounce-loader-1 1.4s ease-in-out 0s infinite both;
    }

    .loader-1 {
        animation-delay: -0.32s;
    }

    .loader-2 {
        animation-delay: -0.16s;
    }
}

.preloader-2 {
    .bounce-loader {
        width: 100px;
        height: 100px;
    }

    .loader {
        background-color: var(--alpha-preloader-color);
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        animation: bounce-loader-2 1.6s linear infinite;
    }

    .loader:last-child {
        animation-delay: -0.8s;
    }
}

.preloader-3 {
    .bounce-loader {
        width: 40px;
        height: 40px;
    }

    .loader {
        background-color: var(--alpha-preloader-color);
        opacity: 0.6;
        position: absolute;
        top: 0;
        left: 0;
        animation: bounce-loader-3 2s infinite ease-in-out;
    }

    .loader-2 {
        animation-delay: -1s;
    }
}

.preloader-4 {
    .bounce-loader {
        top: 50%;
        left: 50%;
        margin-left: -25px;
        margin-top: -25px;
        width: 50px;
        height: 50px;
        position: absolute;
        transform: rotateZ(45deg);
    }

    .loader {
        float: left;
        width: 50%;
        height: 50%;
        position: relative;
        transform: scale(1.1);

        &:before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            -webkit-animation: bounce-loader-4 2.4s infinite linear both;
            animation: bounce-loader-4 2.4s infinite linear both;
            -webkit-transform-origin: 100% 100%;
            -ms-transform-origin: 100% 100%;
            transform-origin: 100% 100%;
            background: var(--alpha-preloader-color);
        }
    }

    .loader-2 {
        transform: scale(1.1) rotateZ(90deg);

        &:before {
            animation-delay: 0.3s;
        }
    }

    .loader-3 {
        transform: scale(1.1) rotateZ(270deg);

        &:before {
            animation-delay: 0.9s;
        }
    }

    .loader-4 {
        transform: scale(1.1) rotateZ(180deg);

        &:before {
            animation-delay: 0.6s;
        }
    }
}

.preloader-5 {
    .bounce-loader {
        margin: auto;
        width: 60px;
        height: 60px;
        border-radius: 50%;
        perspective: 780px;
    }

    .loader {
        position: absolute;
        border-radius: 50%;
    }

    .loader-1 {
        left: 0;
        top: 0;
        animation: bounce-loader-51 1.15s linear infinite;
        border-bottom: 3px solid var(--alpha-preloader-color);
    }

    .loader-2 {
        right: 0;
        top: 0;
        animation: bounce-loader-52 1.15s linear infinite;
        border-right: 3px solid var(--alpha-preloader-color);
    }

    .loader-3 {
        right: 0;
        bottom: 0;
        animation: bounce-loader-53 1.15s linear infinite;
        border-top: 3px solid var(--alpha-preloader-color);
    }
}

@keyframes bounce-loader-1 {

    0%,
    80%,
    100% {
        transform: scale(0);
    }

    40% {
        transform: scale(1);
    }
}

@keyframes bounce-loader-2 {
    0% {
        transform: scale(0);
        opacity: 1;
    }

    to {
        transform: scale(1);
        opacity: 0;
    }
}

@keyframes bounce-loader-3 {

    0%,
    100% {
        transform: scale(0);
        -webkit-transform: scale(0);
    }

    50% {
        transform: scale(1);
        -webkit-transform: scale(1);
    }
}

@keyframes bounce-loader-4 {

    0%,
    10% {
        -webkit-transform: perspective(140px) rotateX(-180deg);
        transform: perspective(140px) rotateX(-180deg);
        opacity: 0;
    }

    25%,
    75% {
        -webkit-transform: perspective(140px) rotateX(0deg);
        transform: perspective(140px) rotateX(0deg);
        opacity: 1;
    }

    90%,
    100% {
        -webkit-transform: perspective(140px) rotateY(180deg);
        transform: perspective(140px) rotateY(180deg);
        opacity: 0;
    }
}

@keyframes bounce-loader-51 {
    0% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(0deg);
    }

    100% {
        transform: rotateX(35deg) rotateY(-45deg) rotateZ(360deg);
    }
}

@keyframes bounce-loader-52 {
    0% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(0deg);
    }

    100% {
        transform: rotateX(50deg) rotateY(10deg) rotateZ(360deg);
    }
}

@keyframes bounce-loader-53 {
    0% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(0deg);
    }

    100% {
        transform: rotateX(35deg) rotateY(55deg) rotateZ(360deg);
    }
}