/**
 * NEXT FOOD AFRICA — CORE ANIMATIONS & TRANSITIONS
 * Moteur graphique CSS haute performance optimisé pour le GPU (60 FPS).
 */

/* --- SYSTEM REVEAL STATES (INITIAL STATUS FOR SCRIPT TRIPPERS) --- */
.reveal-slide-up,
.reveal-fade,
.reveal-slide-left,
.reveal-slide-right {
    opacity: 0;
    will-change: transform, opacity;
    transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), 
                opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-slide-up {
    transform: translateY(40px);
}

.reveal-slide-left {
    transform: translateX(-40px);
}

.reveal-slide-right {
    transform: translateX(40px);
}

/* --- ACTIVE STATES (TRIGGERED VIA JAVASCRIPT INTERSECTION OBSERVER) --- */
.reveal-active {
    opacity: 1 !important;
    transform: translate(0) !important;
}

/* --- KINETIC HOVER & LIFT ACTIONS (PREMIUM CARDS) --- */
.card-premium,
.glass-card-premium,
.card-service-grid,
.card-partner-box {
    will-change: transform, box-shadow, border-color;
}

/* Effet Lift Architectural */
.card-premium:hover,
.card-service-grid:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: var(--shadow-lg), var(--shadow-premium-glow);
    border-color: rgba(16, 185, 129, 0.25) !important;
}

/* Variante de Lift pour les offres phares avec lueur orange */
.card-premium.border-highlight-green:hover {
    box-shadow: var(--shadow-lg), 0 0 60px rgba(16, 185, 129, 0.3);
}

.feature-highlight:hover {
    transform: translateY(-6px) scale(1.01);
    box-shadow: var(--shadow-lg), var(--shadow-orange-glow);
    border-color: rgba(249, 115, 22, 0.25) !important;
}

/* --- BUTTONS & MICRO-INTERACTIONS --- */
.btn-premium-primary,
.btn-premium-secondary,
.btn-slider-control {
    will-change: transform, box-shadow;
}

/* Effet Ripple & Rétroaction Tactile */
.btn-premium-primary:active,
.btn-premium-secondary:active {
    transform: translateY(-1px) scale(0.98);
}

/* --- HERO VISUAL BACKGROUND GLOW ANIMATION --- */
.cta-gradient-glow {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(16, 185, 129, 0.12) 0%, transparent 70%);
    top: -20%,
    left: -20%;
    z-index: var(--z-index-back);
    animation: pulse-glow 8s ease-in-out infinite alternate;
}

/* --- ACCORDION SHIFT TRANSITIONS --- */
.accordion-collapse {
    transition: var(--transition-smooth) !important;
}

/* --- MARQUEE INFINITE CAROUSEL (PARTNERS LOGOS) --- */
.logo-marquee-wrapper::before,
.logo-marquee-wrapper::after {
    content: "";
    position: absolute;
    top: 0;
    width: 150px;
    height: 100%;
    z-index: var(--z-index-above);
    pointer-events: none;
}

.logo-marquee-wrapper::before {
    left: 0;
    background: linear-gradient(90deg, var(--brand-black-pure) 0%, transparent 100%);
}

.logo-marquee-wrapper::after {
    right: 0;
    background: linear-gradient(270deg, var(--brand-black-pure) 0%, transparent 100%);
}

.logo-marquee-track {
    animation: marquee-infinite 25s linear infinite;
    will-change: transform;
}

.logo-marquee-track:hover {
    animation-play-state: paused;
}

/* --- KEYFRAMES ENGINE --- */
@keyframes pulse-glow {
    0% {
        transform: scale(1) translate(0, 0);
        opacity: 0.8;
    }
    100% {
        transform: scale(1.2) translate(5%, 8%);
        opacity: 1;
    }
}

@keyframes marquee-infinite {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}

/* Smooth Scrolling Natif au niveau système */
@media (prefers-reduced-motion: no-preference) {
    html {
        scroll-behavior: smooth;
    }
}