/**
 * Transitions de page fluides
 * Fade out avant navigation, fade in après chargement
 */

/* Container principal avec transition */
.page-transition {
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

/* État fade out (avant navigation) */
.page-transition.fade-out {
    opacity: 0;
    pointer-events: none;
}

/* État fade in (après chargement) */
.page-transition.fade-in {
    animation: fadeIn 0.4s ease-in-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Animation slide pour certaines pages */
.page-transition.slide-in-right {
    animation: slideInRight 0.4s ease-out;
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.page-transition.slide-in-left {
    animation: slideInLeft 0.4s ease-out;
}

@keyframes slideInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Animation pour le contenu principal */
.main-content {
    opacity: 1;
    transition: opacity 0.3s ease-in-out;
}

.main-content.loading {
    opacity: 0.5;
    pointer-events: none;
}

/* Respect des préférences de réduction des animations */
@media (prefers-reduced-motion: reduce) {
    .page-transition,
    .main-content {
        transition: none;
        animation: none;
    }
}

/* Smooth scroll behavior (améliore les transitions) - Désactivé pour éviter les problèmes de reload */
/* html {
    scroll-behavior: smooth;
} */

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

