/* Elementor Fullpage Parallax - Frontend Styles */

/* Reset and base styles for fullpage container */
.efp-fullpage-container {
    position: relative;
    height: 100vh;
    overflow: hidden;
    scroll-behavior: smooth;
    background: transparent; /* Prevent black background during transitions */
}

.efp-fullpage-container.efp-transitioning {
    pointer-events: none;
}

/* Individual fullpage sections */
.efp-fullpage-section {
    position: relative;
    height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    will-change: transform, opacity;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0); /* Force GPU acceleration to prevent brightness shift */
    -webkit-transform: translateZ(0);
}

/* Parallax transform styles */
.efp-fullpage-section.efp-current {
    z-index: 2;
    transform: translateY(0) translateZ(0);
}

.efp-fullpage-section.efp-next {
    z-index: 1;
    transform: translateY(100vh) translateZ(0);
}

.efp-fullpage-section.efp-prev {
    z-index: 1;
    transform: translateY(-100vh) translateZ(0);
}

/* Smooth transitions */
.efp-fullpage-section.efp-animating {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transition-duration: 800ms;
}

/* Cross-fade transition mode */
.efp-fullpage-section[data-efp-transition-mode="cross-fade"] {
    transform: translateY(0) translateZ(0) !important;
    opacity: 0;
    transition-property: opacity;
    background: transparent; /* Prevent black background */
}

.efp-fullpage-section[data-efp-transition-mode="cross-fade"].efp-current {
    opacity: 1;
    z-index: 2;
}

.efp-fullpage-section[data-efp-transition-mode="cross-fade"]:first-child {
    opacity: 1; /* First section should be visible immediately */
}

.efp-fullpage-section[data-efp-transition-mode="cross-fade"].efp-animating {
    transition-property: opacity;
}

/* Fade + Slide mode */
.efp-fullpage-section[data-efp-transition-mode="fade-slide"].efp-animating {
    transition-property: transform, opacity;
}

.efp-fullpage-section[data-efp-transition-mode="fade-slide"]:not(.efp-current) {
    opacity: 0;
}

.efp-fullpage-section[data-efp-transition-mode="fade-slide"].efp-current {
    opacity: 1;
}

/* Ensure smooth cross-fade without black flash */
.efp-fullpage-container .efp-fullpage-section[data-efp-transition-mode="cross-fade"] {
    will-change: opacity;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

/* Prevent black flash by ensuring proper background handling */
.efp-fullpage-section[data-efp-transition-mode="cross-fade"]:not(.demo-section) {
    background-color: inherit;
}

/* Ensure body/html background shows through during transitions */
.efp-fullpage-container {
    background: inherit;
}

/* Navigation indicators */
.efp-navigation {
    position: fixed;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.efp-nav-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    border: 2px solid rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
}

.efp-nav-dot:hover {
    background: rgba(255, 255, 255, 0.8);
    transform: scale(1.2);
}

.efp-nav-dot.efp-active {
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

/* Hidden dot for current section - Multiple selectors for maximum specificity */
.efp-navigation .efp-nav-dot.efp-hidden,
.efp-nav-dot.efp-hidden,
div.efp-nav-dot.efp-hidden,
[data-section].efp-nav-dot.efp-hidden {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
}

/* Glow effect for previous dot */
.efp-nav-dot.efp-glow {
    background: #ffffff;
    border-color: #ffffff;
    box-shadow: 0 0 15px rgba(255, 255, 255, 0.8);
    animation: efp-glow-pulse 2s ease-in-out infinite;
}

@keyframes efp-glow-pulse {
    0%, 100% {
        box-shadow: 0 0 15px rgba(255, 255, 255, 0.8);
    }
    50% {
        box-shadow: 0 0 25px rgba(255, 255, 255, 1);
    }
}

.efp-nav-dot::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 6px;
    height: 6px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.efp-nav-dot.efp-active::after {
    opacity: 1;
}

/* Keyboard navigation hints */
.efp-keyboard-hint {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    display: flex;
    gap: 20px;
    opacity: 0.7;
    transition: opacity 0.3s ease;
}

.efp-keyboard-hint:hover {
    opacity: 1;
}

.efp-key-indicator {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    background: rgba(0, 0, 0, 0.7);
    color: white;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 500;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.efp-key-icon {
    width: 20px;
    height: 20px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: bold;
}

/* Parallax background elements */
.efp-parallax-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 120%;
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
    will-change: transform;
    z-index: -1;
}

/* Content wrapper for parallax sections */
.efp-content-wrapper {
    position: relative;
    z-index: 1;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

/* Scroll indicators */
.efp-scroll-indicator {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    opacity: 0.8;
    animation: efp-bounce 2s infinite;
}

.efp-scroll-arrow {
    width: 30px;
    height: 30px;
    border: 2px solid white;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}

@keyframes efp-bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateX(-50%) translateY(0);
    }
    40% {
        transform: translateX(-50%) translateY(-10px);
    }
    60% {
        transform: translateX(-50%) translateY(-5px);
    }
}

/* Mobile responsiveness */
@media (max-width: 768px) {
    .efp-navigation {
        display: none; /* Hide navigation dots on mobile */
    }
    
    .efp-keyboard-hint {
        bottom: 20px;
        flex-direction: column;
        gap: 10px;
    }
    
    .efp-key-indicator {
        padding: 6px 10px;
        font-size: 11px;
    }
    
    .efp-key-icon {
        width: 18px;
        height: 18px;
        font-size: 9px;
    }
}

/* Disable on touch devices for better mobile experience */
@media (hover: none) and (pointer: coarse) {
    .efp-keyboard-hint {
        display: none;
    }
}

/* Loading state */
.efp-loading {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.efp-loaded {
    opacity: 1;
}

/* Smooth scrolling enhancement */
html.efp-active {
    overflow: hidden;
    height: 100vh;
}

body.efp-active {
    overflow: hidden;
    height: 100vh;
}

/* Performance optimizations */
.efp-fullpage-section * {
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
}

/* Fade-in content effects - Start visible, animate to final position */
.efp-fullpage-section[data-efp-fade-effect] > * {
    opacity: 1; /* Start visible to prevent flash */
    transition-property: transform;
    transition-timing-function: ease-out;
    transition-duration: 600ms;
    transition-delay: 200ms;
}

.efp-fullpage-section.efp-current[data-efp-fade-effect] > * {
    opacity: 1 !important; /* Ensure full brightness when active */
    transform: none !important;
}

/* Fade in basic - just a subtle opacity change */
.efp-fullpage-section[data-efp-fade-effect="fade-in"] > * {
    opacity: 0.7;
    transition-property: opacity;
}

.efp-fullpage-section.efp-current[data-efp-fade-effect="fade-in"] > * {
    opacity: 1 !important;
}

/* Fade in up - start slightly below */
.efp-fullpage-section[data-efp-fade-effect="fade-in-up"] > * {
    transform: translateY(30px);
}

/* Fade in down - start slightly above */
.efp-fullpage-section[data-efp-fade-effect="fade-in-down"] > * {
    transform: translateY(-30px);
}

/* Fade in left - start slightly to the left */
.efp-fullpage-section[data-efp-fade-effect="fade-in-left"] > * {
    transform: translateX(-30px);
}

/* Fade in right - start slightly to the right */
.efp-fullpage-section[data-efp-fade-effect="fade-in-right"] > * {
    transform: translateX(30px);
}

/* Fade in scale - start slightly smaller */
.efp-fullpage-section[data-efp-fade-effect="fade-in-scale"] > * {
    transform: scale(0.95);
}

/* Fade in rotate - start slightly rotated */
.efp-fullpage-section[data-efp-fade-effect="fade-in-rotate"] > * {
    transform: rotate(-3deg) scale(0.98);
}

/* Staggered animation for multiple elements */
.efp-fullpage-section[data-efp-fade-effect] > *:nth-child(1) { transition-delay: 200ms; }
.efp-fullpage-section[data-efp-fade-effect] > *:nth-child(2) { transition-delay: 300ms; }
.efp-fullpage-section[data-efp-fade-effect] > *:nth-child(3) { transition-delay: 400ms; }
.efp-fullpage-section[data-efp-fade-effect] > *:nth-child(4) { transition-delay: 500ms; }
.efp-fullpage-section[data-efp-fade-effect] > *:nth-child(5) { transition-delay: 600ms; }

/* Elementor specific selectors for better compatibility */
.efp-fullpage-section[data-efp-fade-effect] .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget,
.efp-fullpage-section[data-efp-fade-effect] .elementor-section-wrap > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget {
    opacity: 1; /* Start visible */
    transition-property: transform;
    transition-timing-function: ease-out;
    transition-duration: 600ms;
    transition-delay: 200ms;
}

.efp-fullpage-section.efp-current[data-efp-fade-effect] .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget,
.efp-fullpage-section.efp-current[data-efp-fade-effect] .elementor-section-wrap > .elementor-section > .elementor-container > .elementor-column > .elementor-widget-wrap > .elementor-widget {
    opacity: 1 !important; /* Ensure full brightness when active */
    transform: none !important;
}

/* Apply transforms to Elementor widgets */
.efp-fullpage-section[data-efp-fade-effect="fade-in"] .elementor-widget {
    opacity: 0.7;
    transition-property: opacity;
}

.efp-fullpage-section.efp-current[data-efp-fade-effect="fade-in"] .elementor-widget {
    opacity: 1 !important;
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-up"] .elementor-widget {
    transform: translateY(30px);
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-down"] .elementor-widget {
    transform: translateY(-30px);
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-left"] .elementor-widget {
    transform: translateX(-30px);
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-right"] .elementor-widget {
    transform: translateX(30px);
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-scale"] .elementor-widget {
    transform: scale(0.95);
}

.efp-fullpage-section[data-efp-fade-effect="fade-in-rotate"] .elementor-widget {
    transform: rotate(-3deg) scale(0.98);
}

/* Advanced Element Animations - Force higher specificity for Elementor */
.efp-animate-element,
.elementor-widget.efp-animate-element,
.elementor-element.efp-animate-element {
    will-change: transform, opacity, filter !important;
    backface-visibility: hidden !important;
    -webkit-backface-visibility: hidden !important;
}

/* Ensure brightness stays at 100% for fade effects - highest priority */
.efp-animate-element:not([data-efp-secondary-animation="blur-in"]),
.elementor-widget.efp-animate-element:not([data-efp-secondary-animation="blur-in"]),
.elementor-element.efp-animate-element:not([data-efp-secondary-animation="blur-in"]) {
    filter: brightness(1) !important;
}

/* Override Elementor's default transforms and animations */
.elementor-widget.efp-animate-element,
.elementor-element.efp-animate-element {
    animation: none !important;
    -webkit-animation: none !important;
}

/* Ensure Elementor motion effects don't interfere */
.elementor-widget.efp-animate-element .elementor-widget-container,
.elementor-element.efp-animate-element .elementor-widget-container {
    transform: none !important;
    opacity: inherit !important;
    filter: brightness(1) !important;
}

/* Apply transitions only when ready to animate */
.efp-animate-element.efp-ready-to-animate {
    transition-property: transform, opacity, filter;
    transition-duration: var(--efp-duration, 800ms);
    transition-timing-function: var(--efp-easing, ease-out);
    transition-delay: var(--efp-delay, 0ms);
}

/* Primary Animation Initial States - Elementor Override */
.efp-animate-element[data-efp-primary-animation="fade-in"],
.elementor-widget.efp-animate-element[data-efp-primary-animation="fade-in"],
.elementor-element.efp-animate-element[data-efp-primary-animation="fade-in"] {
    opacity: 0 !important;
}

.efp-animate-element[data-efp-primary-animation="slide-in-up"],
.elementor-widget.efp-animate-element[data-efp-primary-animation="slide-in-up"],
.elementor-element.efp-animate-element[data-efp-primary-animation="slide-in-up"] {
    transform: translateY(var(--efp-distance, 50px)) !important;
}

.efp-animate-element[data-efp-primary-animation="slide-in-down"],
.elementor-widget.efp-animate-element[data-efp-primary-animation="slide-in-down"],
.elementor-element.efp-animate-element[data-efp-primary-animation="slide-in-down"] {
    transform: translateY(calc(-1 * var(--efp-distance, 50px))) !important;
}

.efp-animate-element[data-efp-primary-animation="slide-in-left"],
.elementor-widget.efp-animate-element[data-efp-primary-animation="slide-in-left"],
.elementor-element.efp-animate-element[data-efp-primary-animation="slide-in-left"] {
    transform: translateX(calc(-1 * var(--efp-distance, 50px))) !important;
}

.efp-animate-element[data-efp-primary-animation="slide-in-right"],
.elementor-widget.efp-animate-element[data-efp-primary-animation="slide-in-right"],
.elementor-element.efp-animate-element[data-efp-primary-animation="slide-in-right"] {
    transform: translateX(var(--efp-distance, 50px)) !important;
}

.efp-animate-element[data-efp-primary-animation="scale-in"] {
    transform: scale(calc(1 - var(--efp-distance, 50) / 100));
}

.efp-animate-element[data-efp-primary-animation="rotate-in"] {
    transform: rotate(var(--efp-distance, 50deg));
}

.efp-animate-element[data-efp-primary-animation="flip-in-x"] {
    transform: rotateX(var(--efp-distance, 90deg));
}

.efp-animate-element[data-efp-primary-animation="flip-in-y"] {
    transform: rotateY(var(--efp-distance, 90deg));
}

.efp-animate-element[data-efp-primary-animation="bounce-in"] {
    opacity: 0;
    transform: scale(0.3);
}

.efp-animate-element[data-efp-primary-animation="elastic-in"] {
    opacity: 0;
    transform: scale(0.1);
}

/* Combined Primary + Secondary Animation Initial States */
.efp-animate-element[data-efp-secondary-animation="fade-in"] {
    opacity: 0;
}

.efp-animate-element[data-efp-secondary-animation="scale-in"] {
    transform: var(--efp-primary-transform, none) scale(0.8);
}

.efp-animate-element[data-efp-secondary-animation="rotate-in"] {
    transform: var(--efp-primary-transform, none) rotate(180deg);
}

.efp-animate-element[data-efp-secondary-animation="blur-in"] {
    filter: brightness(1) blur(10px) !important;
}

.efp-animate-element[data-efp-secondary-animation="skew-in"] {
    transform: var(--efp-primary-transform, none) skew(15deg, 15deg);
}

/* Final States - When Animation is Triggered */
.efp-animate-element.efp-animated {
    opacity: 1;
    transform: none;
    filter: none;
}

/* Special handling for bounce and elastic animations */
.efp-animate-element[data-efp-primary-animation="bounce-in"].efp-animated {
    animation: efp-bounce-in var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

.efp-animate-element[data-efp-primary-animation="elastic-in"].efp-animated {
    animation: efp-elastic-in var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

/* Keyframe Animations */
@keyframes efp-bounce-in {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        opacity: 1;
        transform: scale(1.05);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes efp-elastic-in {
    0% {
        opacity: 0;
        transform: scale(0.1);
    }
    20% {
        opacity: 1;
        transform: scale(1.1);
    }
    40% {
        transform: scale(0.9);
    }
    60% {
        transform: scale(1.03);
    }
    80% {
        transform: scale(0.97);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}



/* Fadeout Animation Initial States - Elementor Override */
.efp-animate-element[data-efp-primary-fadeout="fade-out"],
.elementor-widget.efp-animate-element[data-efp-primary-fadeout="fade-out"],
.elementor-element.efp-animate-element[data-efp-primary-fadeout="fade-out"] {
    opacity: 1 !important;
}

.efp-animate-element[data-efp-primary-fadeout="slide-out-up"],
.elementor-widget.efp-animate-element[data-efp-primary-fadeout="slide-out-up"],
.elementor-element.efp-animate-element[data-efp-primary-fadeout="slide-out-up"] {
    transform: translateY(0) !important;
}

.efp-animate-element[data-efp-primary-fadeout="slide-out-down"],
.elementor-widget.efp-animate-element[data-efp-primary-fadeout="slide-out-down"],
.elementor-element.efp-animate-element[data-efp-primary-fadeout="slide-out-down"] {
    transform: translateY(0) !important;
}

.efp-animate-element[data-efp-primary-fadeout="slide-out-left"],
.elementor-widget.efp-animate-element[data-efp-primary-fadeout="slide-out-left"],
.elementor-element.efp-animate-element[data-efp-primary-fadeout="slide-out-left"] {
    transform: translateX(0) !important;
}

.efp-animate-element[data-efp-primary-fadeout="slide-out-right"],
.elementor-widget.efp-animate-element[data-efp-primary-fadeout="slide-out-right"],
.elementor-element.efp-animate-element[data-efp-primary-fadeout="slide-out-right"] {
    transform: translateX(0) !important;
}

.efp-animate-element[data-efp-primary-fadeout="scale-out"] {
    transform: scale(1) !important;
}

.efp-animate-element[data-efp-primary-fadeout="rotate-out"] {
    transform: rotate(0deg) !important;
}

.efp-animate-element[data-efp-primary-fadeout="flip-out-x"] {
    transform: rotateX(0deg) !important;
}

.efp-animate-element[data-efp-primary-fadeout="flip-out-y"] {
    transform: rotateY(0deg) !important;
}

.efp-animate-element[data-efp-primary-fadeout="bounce-out"] {
    opacity: 1 !important;
    transform: scale(1) !important;
}

.efp-animate-element[data-efp-primary-fadeout="elastic-out"] {
    opacity: 1 !important;
    transform: scale(1) !important;
}

/* Secondary Fadeout Animation Initial States */
.efp-animate-element[data-efp-secondary-fadeout="fade-out"] {
    opacity: 1 !important;
}

.efp-animate-element[data-efp-secondary-fadeout="scale-out"] {
    transform: var(--efp-primary-transform, none) scale(1) !important;
}

.efp-animate-element[data-efp-secondary-fadeout="rotate-out"] {
    transform: var(--efp-primary-transform, none) rotate(0deg) !important;
}

.efp-animate-element[data-efp-secondary-fadeout="blur-out"] {
    filter: brightness(1) blur(0px) !important;
}

.efp-animate-element[data-efp-secondary-fadeout="skew-out"] {
    transform: var(--efp-primary-transform, none) skew(0deg, 0deg) !important;
}

/* Fadeout Animation Final States - When Animation is Triggered */
.efp-animate-element.efp-fadeout-animated {
    opacity: 0 !important;
    transform: none !important;
    filter: none !important;
}

/* Special handling for bounce and elastic fadeout animations */
.efp-animate-element[data-efp-primary-fadeout="bounce-out"].efp-fadeout-animated {
    animation: efp-bounce-out var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

.efp-animate-element[data-efp-primary-fadeout="elastic-out"].efp-fadeout-animated {
    animation: efp-elastic-out var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

/* Keyframe Animations for Fadeout */
@keyframes efp-bounce-out {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    20% {
        transform: scale(1.1);
    }
    50% {
        opacity: 0.8;
        transform: scale(0.9);
    }
    100% {
        opacity: 0;
        transform: scale(0.3);
    }
}

@keyframes efp-elastic-out {
    0% {
        opacity: 1;
        transform: scale(1);
    }
    20% {
        transform: scale(0.9);
    }
    40% {
        opacity: 0.8;
        transform: scale(1.03);
    }
    60% {
        transform: scale(0.97);
    }
    80% {
        opacity: 0.4;
        transform: scale(0.6);
    }
    100% {
        opacity: 0;
        transform: scale(0.1);
    }
}

/* Post-Exit Animation Initial States - Elementor Override */
.efp-animate-element[data-efp-post-exit-animation],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation],
.elementor-element.efp-animate-element[data-efp-post-exit-animation] {
    opacity: 0 !important;
}

.efp-animate-element[data-efp-post-exit-animation="fade-in"],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation="fade-in"],
.elementor-element.efp-animate-element[data-efp-post-exit-animation="fade-in"] {
    opacity: 0 !important;
}

.efp-animate-element[data-efp-post-exit-animation="slide-in-up"],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation="slide-in-up"],
.elementor-element.efp-animate-element[data-efp-post-exit-animation="slide-in-up"] {
    transform: translateY(var(--efp-distance, 50px)) !important;
}

.efp-animate-element[data-efp-post-exit-animation="slide-in-down"],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation="slide-in-down"],
.elementor-element.efp-animate-element[data-efp-post-exit-animation="slide-in-down"] {
    transform: translateY(calc(-1 * var(--efp-distance, 50px))) !important;
}

.efp-animate-element[data-efp-post-exit-animation="slide-in-left"],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation="slide-in-left"],
.elementor-element.efp-animate-element[data-efp-post-exit-animation="slide-in-left"] {
    transform: translateX(calc(-1 * var(--efp-distance, 50px))) !important;
}

.efp-animate-element[data-efp-post-exit-animation="slide-in-right"],
.elementor-widget.efp-animate-element[data-efp-post-exit-animation="slide-in-right"],
.elementor-element.efp-animate-element[data-efp-post-exit-animation="slide-in-right"] {
    transform: translateX(var(--efp-distance, 50px)) !important;
}

.efp-animate-element[data-efp-post-exit-animation="scale-in"] {
    transform: scale(calc(1 - var(--efp-distance, 50) / 100)) !important;
}

.efp-animate-element[data-efp-post-exit-animation="rotate-in"] {
    transform: rotate(var(--efp-distance, 50deg)) !important;
}

.efp-animate-element[data-efp-post-exit-animation="bounce-in"] {
    opacity: 0 !important;
    transform: scale(0.3) !important;
}

.efp-animate-element[data-efp-post-exit-animation="elastic-in"] {
    opacity: 0 !important;
    transform: scale(0.1) !important;
}

/* Post-Exit Animation Final States - When Animation is Triggered */
.efp-animate-element.efp-post-exit-animated {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
}

/* Special handling for bounce and elastic post-exit animations */
.efp-animate-element[data-efp-post-exit-animation="bounce-in"].efp-post-exit-animated {
    animation: efp-bounce-in var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

.efp-animate-element[data-efp-post-exit-animation="elastic-in"].efp-post-exit-animated {
    animation: efp-elastic-in var(--efp-duration, 800ms) var(--efp-easing, ease-out) var(--efp-delay, 0ms) forwards;
}

/* Hide current dot functionality */
.efp-nav-dot.efp-hidden {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Glow effect for previous dot */
.efp-nav-dot.efp-glow {
    box-shadow: 0 0 10px rgba(255, 255, 255, 0.8) !important;
    transform: scale(1.2) !important;
    transition: all 0.3s ease !important;
}

/* Custom easing classes */
.efp-ease-linear { transition-timing-function: linear !important; }
.efp-ease { transition-timing-function: ease !important; }
.efp-ease-in { transition-timing-function: ease-in !important; }
.efp-ease-out { transition-timing-function: ease-out !important; }
.efp-ease-in-out { transition-timing-function: ease-in-out !important; }
.efp-ease-smooth { transition-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94) !important; }
.efp-ease-bounce { transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55) !important; }
