body {
    overflow-x: hidden;
}

@keyframes aparecerDesdeAbajo {
    0% {
        opacity: 0;
        transform: translateY(60px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.efecto-aparecer {
    animation: aparecerDesdeAbajo 1s ease-out;
}
.efecto-aparecer-2 {
    animation: aparecerDesdeAbajo 1.3s ease-out;
}
.efecto-aparecer-3 {
    animation: aparecerDesdeAbajo 1.6s ease-out;
}
.efecto-aparecer-4 {
    animation: aparecerDesdeAbajo 1.9s ease-out;
}


@keyframes aparecerDesdeAbajo {
    0% {
        opacity: 0;
        transform: translateY(60px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}
.aparecer-animado {
    opacity: 0;
    transition: opacity 0.3s;
}
.aparecer-animado.visible {
    animation: aparecerDesdeAbajo 1s ease-out forwards;
    opacity: 1;
}
.aparecer-animado:hover {
    animation: aparecerDesdeAbajo 0.7s cubic-bezier(.68,-0.55,.27,1.55) forwards;
    opacity: 1;
}

.img-zoom-hover {
    transition: transform 0.4s cubic-bezier(.68,-0.55,.27,1.55), box-shadow 0.4s;
}
.img-zoom-hover:hover {
    transform: scale(1.08);
    box-shadow: 0 8px 32px rgba(0,0,0,0.18);
}