/* ==========================================================
   GP CUSTOM ANIMATIONS - FLUID / EDITORIAL MOTION
   ========================================================== */

/* 1. MICROINTERACCIONES EN BOTONES (Elevación suave y elástica) */
a.elementor-button,
button.elementor-button,
.elementor-button {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.elementor-button:hover {
    transform: translateY(-3px) scale(1.01);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.12);
}

/* 2. SCROLL REVEAL FLUIDO (Curva de aceleración orgánica + micro-desenfoque) */
.gp-reveal {
    opacity: 0;
    transform: translateY(28px);
    filter: blur(4px);
    transition: opacity 0.85s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.85s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.85s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, transform, filter;
}

/* Estado visible al entrar en viewport */
.gp-reveal.is-visible {
    opacity: 1 !important;
    transform: translateY(0) !important;
    filter: blur(0px) !important;
}

/* Retrasos secuenciales dinámicos (stagger) para cuando hay varios widgets seguidos */
.gp-reveal.gp-delay-1 { transition-delay: 0.08s; }
.gp-reveal.gp-delay-2 { transition-delay: 0.16s; }
.gp-reveal.gp-delay-3 { transition-delay: 0.24s; }
.gp-reveal.gp-delay-4 { transition-delay: 0.32s; }

/* 3. ACCESIBILIDAD */
@media (prefers-reduced-motion: reduce) {
    .gp-reveal {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }
}