/* ================================================================
   narendramodi.in Style Scroll-Driven Sliding Animations
   Ultra-smooth physical easing cubic-bezier(0.16, 1, 0.3, 1)
   Supports Left, Right, Center (Up/Down) entry for cards & headings
   ================================================================ */

.plp-public-ui {
    --plp-motion-duration: 900ms;
    --plp-motion-easing: cubic-bezier(0.16, 1, 0.3, 1);
}

/* Compatibility with existing CMS/partial animation classes */
.plp-public-ui :is(.modi-enter-left, .modi-enter-right, .modi-enter-up, .modi-enter-down,
    .modi-title-reveal, .modi-heading-reveal, .modi-kicker-reveal, .plp-scroll-reveal, .namo-slide-reveal) {
    opacity: 1;
    transform: none;
    filter: none;
}

/* Base transition setup for scroll-reveal ready elements */
.plp-public-ui.plp-motion-ready [data-plp-reveal-ready] {
    transition: opacity var(--plp-motion-duration) var(--plp-motion-easing) var(--plp-motion-delay, 0ms),
                transform var(--plp-motion-duration) var(--plp-motion-easing) var(--plp-motion-delay, 0ms);
    will-change: opacity, transform;
}

/* Specialized header & title animation timing */
.plp-public-ui.plp-motion-ready [data-plp-reveal-ready="heading"] {
    --plp-motion-duration: 750ms;
    --plp-motion-delay: 50ms;
}

/* Default pending state (slides from bottom) */
.plp-public-ui.plp-motion-ready .plp-reveal-pending {
    opacity: 0;
    transform: translate3d(0, 44px, 0);
}

/* Multi-Directional Entry Logic: Left, Right, Up, Down */
.plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="left"],
.plp-public-ui.plp-motion-ready .plp-reveal-pending.modi-enter-left {
    opacity: 0;
    transform: translate3d(-52px, 0, 0);
}

.plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="right"],
.plp-public-ui.plp-motion-ready .plp-reveal-pending.modi-enter-right {
    opacity: 0;
    transform: translate3d(52px, 0, 0);
}

.plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="up"],
.plp-public-ui.plp-motion-ready .plp-reveal-pending.modi-enter-up {
    opacity: 0;
    transform: translate3d(0, 48px, 0);
}

.plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="down"],
.plp-public-ui.plp-motion-ready .plp-reveal-pending.modi-enter-down {
    opacity: 0;
    transform: translate3d(0, -48px, 0);
}

/* Title reveal initial state */
.plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-ready="heading"] {
    opacity: 0;
    transform: translate3d(0, 32px, 0);
}

/* Visible active state */
.plp-public-ui.plp-motion-ready .plp-reveal-visible,
.plp-public-ui.plp-motion-ready .plp-reveal-pending:focus-within {
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
    will-change: auto;
}

.plp-public-ui.plp-motion-ready .plp-reveal-instant {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
}

/* Mobile responsive motion adjustments */
@media (max-width: 767.98px) {
    .plp-public-ui {
        --plp-motion-duration: 650ms;
    }
    .plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="left"] {
        transform: translate3d(-24px, 0, 0);
    }
    .plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="right"] {
        transform: translate3d(24px, 0, 0);
    }
    .plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-direction="up"],
    .plp-public-ui.plp-motion-ready .plp-reveal-pending[data-plp-reveal-ready="heading"] {
        transform: translate3d(0, 20px, 0);
    }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce), print {
    .plp-public-ui.plp-motion-ready [data-plp-reveal-ready] {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        animation: none !important;
        will-change: auto;
    }
}
