.elementor-invisible {
    visibility: hidden;
}

.animated {
    animation-duration: 1.25s;
    animation-fill-mode: both;
}

.animated.animated-slow {
    animation-duration: 2s;
}

.animated.animated-fast {
    animation-duration: .75s;
}

.animated.infinite {
    animation-iteration-count: infinite;
}

.animated.reverse {
    animation-direction: reverse;
    animation-fill-mode: forwards;
}

@media (prefers-reduced-motion:reduce) {
    .animated {
        animation: none;
    }
}

@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }
    to {
        opacity: 1;
        transform: none;
    }
}

.fadeIn { animation-name: fadeIn; }
.fadeInUp { animation-name: fadeInUp; }
.fadeInDown { animation-name: fadeInDown; }
.fadeInLeft { animation-name: fadeInLeft; }
.fadeInRight { animation-name: fadeInRight; }

.elementor-screen-only {
    position: absolute;
    top: -10000em;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* Motion Effects */
.elementor-motion-effects-element,
.elementor-motion-effects-layer {
    transition-duration: 1s;
    transition-property: transform, opacity;
    transition-timing-function: cubic-bezier(0, .33, .07, 1.03);
}

.elementor-motion-effects-container {
    height: 100%;
    left: 0;
    overflow: hidden;
    position: absolute;
    top: 0;
    transform-origin: var(--e-transform-origin-y) var(--e-transform-origin-x);
    width: 100%;
}

.elementor-motion-effects-layer {
    background-repeat: no-repeat;
    background-size: cover;
    left: 0;
    position: absolute;
    top: 0;
}

.elementor-motion-effects-perspective {
    perspective: 1200px;
}

/* Advanced Menu Styles */
.pp-advanced-menu .sub-arrow {
    font-size: 16px;
    margin-left: 5px;
    cursor: pointer;
}

.pp-advanced-menu .sub-arrow.--wp-meteor {
    display: inline-block;
    transition: transform 0.3s;
}

.pp-advanced-menu .sub-arrow.--wp-meteor.active {
    transform: rotate(180deg);
}