/* Estilos de animación personalizados para Elementor */

/* Preparar elementos */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-image img,
.elementor-widget-button .elementor-button {
    opacity: 0;
    visibility: hidden;
}

/* Animaciones */
.elementor-widget-heading.is-visible-d7077b2f .elementor-heading-title {
    visibility: visible;
    animation: customBounceInDown-d7077b2f 1s cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
}

.elementor-widget-image.is-visible-d7077b2f img {
    visibility: visible;
    animation: customZoomIn-d7077b2f 0.8s ease-out forwards;
}

.elementor-widget-button.is-visible-d7077b2f .elementor-button {
    visibility: visible;
    animation: customBounceInUp-d7077b2f 1s cubic-bezier(0.215, 0.610, 0.355, 1.000) forwards;
}

/* Keyframes */
@keyframes customBounceInDown-d7077b2f {
    0% { opacity: 0; transform: translateY(-50px); }
    60% { opacity: 1; transform: translateY(15px); }
    80% { transform: translateY(-10px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes customBounceInUp-d7077b2f {
    0% { opacity: 0; transform: translateY(50px); }
    60% { opacity: 1; transform: translateY(-15px); }
    80% { transform: translateY(10px); }
    100% { opacity: 1; transform: translateY(0); }
}

@keyframes customZoomIn-d7077b2f {
    0% { opacity: 0; transform: scale(0.8); }
    100% { opacity: 1; transform: scale(1); }
}

/* Fallback para el editor */
body.elementor-editor-active .elementor-widget-heading .elementor-heading-title,
body.elementor-editor-active .elementor-widget-image img,
body.elementor-editor-active .elementor-widget-button .elementor-button {
    opacity: 1;
    visibility: visible;
}
