/* Elementor owns the trigger and animated classes. Only marked targets change. */
.eep-target.animated {
    animation-duration: var(--eep-duration, 550ms);
    animation-timing-function: cubic-bezier(.22,1,.36,1);
    animation-fill-mode: both;
}
/* Individual translate/scale preserve an author's ordinary transform matrix. */
.eep-target.fadeIn { animation-name: eep-fade; }
.eep-target.fadeInUp { animation-name: eep-fade-up; }
.eep-target.fadeInDown { animation-name: eep-fade-down; }
.eep-target.zoomIn { animation-name: eep-zoom-in; }
@keyframes eep-fade {
    from { opacity: 0; }
    to { opacity: var(--eep-opacity, 1); }
}
@keyframes eep-fade-up {
    from { opacity: 0; translate: 0 16px; }
    to { opacity: var(--eep-opacity, 1); translate: 0 0; }
}
@keyframes eep-zoom-in {
    from { opacity: 0; scale: .96; }
    to { opacity: var(--eep-opacity, 1); scale: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .eep-target.elementor-invisible { visibility: visible !important; }
    .eep-target.animated { animation: none !important; }
}
/* Inner blocks are gated by their own card's native CSS animationstart. */
.eep-target.elementor-invisible .eep-sequence-wait,
.eep-target.animated .eep-sequence-wait { visibility: hidden; }
.eep-sequence-part.animated.fadeIn {
    animation-name: var(--eep-child-animation, eep-child-fade);
    animation-duration: var(--eep-child-duration, 300ms);
    animation-delay: var(--eep-child-delay, 0ms);
    animation-timing-function: ease-out;
    animation-fill-mode: both;
}
@keyframes eep-child-fade {
    from { opacity: 0; }
    to { opacity: var(--eep-child-opacity, 1); }
}
@media (prefers-reduced-motion: reduce) {
    .eep-sequence-wait { visibility: visible !important; }
    .eep-sequence-part.animated { animation: none !important; }
}

@keyframes eep-child-fade-up {
    from { opacity: 0; translate: 0 16px; }
    to { opacity: var(--eep-child-opacity, 1); translate: 0 0; }
}
@keyframes eep-child-zoom-in {
    from { opacity: 0; scale: .96; }
    to { opacity: var(--eep-child-opacity, 1); scale: 1; }
}

@keyframes eep-fade-down {
    from { opacity: 0; translate: 0 -16px; }
    to { opacity: var(--eep-opacity, 1); translate: 0 0; }
}
@keyframes eep-child-fade-down {
    from { opacity: 0; translate: 0 -16px; }
    to { opacity: var(--eep-child-opacity, 1); translate: 0 0; }
}
