/* Optimización de las animaciones de fade */
@keyframes fadeIn {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

/* Optimización de las animaciones de slide */
@keyframes slideDown {
    0% {
        transform: translateY(-100%);
        opacity: 0;
    }

    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes slideUp {
    0% {
        transform: translateY(0);
        opacity: 1;
    }

    100% {
        transform: translateY(-100%);
        opacity: 0;
    }
}

/* Clases de animación */
.fadein {
    animation: fadeIn 0.3s ease-in-out forwards;
}

.fadeout {
    animation: fadeOut 0.3s ease-in-out forwards;
}

.slidedown {
    animation: slideDown 0.3s ease-in-out forwards;
}

.slideup {
    animation: slideUp 0.3s ease-in-out forwards;
}







/* Estilo para el div block-animate */
.block-animate {
    transition: opacity 0.3s ease-in-out;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.7); /* Fondo semi-transparente */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    opacity: 0;
}

    .block-animate.show {
        opacity: 1;
    }

    .block-animate.hide {
        opacity: 0;
    }

/* Estilo del loader */
.loader {
    position: absolute;
    top: 17px;
    right: 17px;
    border: 2px solid #f3f3f3; /* Borde gris claro */
    border-top: 2px solid #3498db; /* Borde azul */
    border-radius: 50%;
    width: 20px;
    height: 20px;
    animation: spin .6s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}
