:root {
    --motion-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal] {
    opacity: 0;
    transform: translate3d(0, 28px, 0);
    transition:
        opacity 0.75s var(--motion-ease),
        transform 0.75s var(--motion-ease);
    transition-delay: var(--reveal-delay, 0ms);
    will-change: opacity, transform;
}

[data-reveal="fade-left"] {
    transform: translate3d(34px, 0, 0);
}

[data-reveal="fade-right"] {
    transform: translate3d(-34px, 0, 0);
}

[data-reveal="zoom-in"] {
    transform: scale(0.96);
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.hero-orb {
    animation: orbFloat 9s ease-in-out infinite;
}

.hero-orb-two {
    animation-delay: -2.2s;
}

.whatsapp-float,
.chatbot-trigger {
    animation: dockPulse 3.2s ease-in-out infinite;
}

.feature-highlight-icon i,
.why-card-icon i,
.contact-strip-icon i,
.footer-social-icon i {
    transition: transform 0.25s ease;
}

.feature-highlight-card:hover .feature-highlight-icon i,
.why-card:hover .why-card-icon i,
.contact-strip-card:hover .contact-strip-icon i,
.footer-social-icon:hover i {
    transform: translateY(-2px) scale(1.06);
}

.btn,
.navbar-nav .nav-link,
.dropdown-item,
.brand-card,
.product-card,
.premium-category-card,
.why-card,
.testimonial-card-premium,
.contact-strip-card {
    transition-timing-function: var(--motion-ease);
}

@keyframes orbFloat {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -16px, 0);
    }
}

@keyframes dockPulse {
    0%,
    100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -3px, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation: none !important;
        transition-duration: 0.01ms !important;
        transition-delay: 0ms !important;
        scroll-behavior: auto !important;
    }

    [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }
}
