/* Les mêmes styles exacts que pour les Mentions Légales pour garder la cohérence */
        :root { --primary: #5a4636; --accent: #d2ad53; --soft-peach: #fff6ea; --white: #ffffff; }

html, body {
    overflow-x: hidden !important;
    width: 100%;
    max-width: 100%;
}

        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: 'Plus Jakarta Sans', sans-serif; background: linear-gradient(135deg, #fffcf9 0%, #f9f0e5 100%); color: var(--primary); line-height: 1.7; -webkit-font-smoothing: antialiased; min-height: 100vh; }
        .container { max-width: 800px; margin: 60px auto; padding: 40px; background: var(--white); border-radius: 25px; box-shadow: 0 15px 40px rgba(0,0,0,0.04); border: 1px solid rgba(210, 173, 83, 0.1); }
        .back-link { display: inline-block; margin-bottom: 30px; color: var(--accent); text-decoration: none; font-weight: 600; font-size: 0.95rem; transition: opacity 0.3s; }
        .back-link:hover { opacity: 0.7; }
        h1 { font-family: 'Lora', serif; font-size: 2.5rem; margin-bottom: 40px; text-align: center; }
        h2 { font-family: 'Lora', serif; font-size: 1.5rem; margin-top: 35px; margin-bottom: 15px; color: var(--accent); }
        p, ul { margin-bottom: 20px; font-size: 1rem; opacity: 0.9; }
        ul { padding-left: 20px; }
        a { color: var(--accent); text-decoration: none; }
        a:hover { text-decoration: underline; }
        footer { text-align: center; padding: 40px 20px 0px 20px; font-size: 0.8rem; opacity: 0.5; letter-spacing: 1px; }
        footer a { color: var(--primary); text-decoration: none; margin: 0 10px; font-weight: 600; }
        footer a:hover { color: var(--accent); text-decoration: underline; }
        @media (max-width: 768px) { .container { margin: 20px; padding: 30px 20px; } h1 { font-size: 2rem; } }
        /* --- SIDE DECORATIONS (IMAGES FLOTTANTES) --- */
        .side-decorations {
            position: absolute; top: 0; left: 0; width: 100%; height: 100%;
            pointer-events: none; z-index: -1; overflow: hidden;
        }
        .decor-img {
            position: absolute;
            opacity: 0.15;
            animation: floatAnim ease-in-out infinite alternate;
        }
        @keyframes floatAnim {
            0% { transform: translateY(0) rotate(0deg); }
            100% { transform: translateY(-30px) rotate(5deg); }
        }
        .decor-left-1 { top: 10%; left: -2%; width: 180px; height: auto; animation-duration: 8s; }
        .decor-right-1 { top: 30%; right: 2%; width: 220px; height: auto; animation-duration: 11s; animation-delay: -2s; scale: -1 1; }
        .decor-left-2 { top: 55%; left: 3%; width: 150px; height: auto; animation-duration: 9s; animation-delay: -1s; }
        .decor-right-2 { top: 75%; right: 4%; width: 190px; height: auto; animation-duration: 10s; animation-delay: -1s; scale: -1 1; }
        .decor-left-3 { top: 92%; left: 5%; width: 200px; height: auto; animation-duration: 12s; animation-delay: -3s; }
        @media (max-width: 900px) { .side-decorations { display: none; } }

/* --- TRANSITION DE PAGE --- */
body { animation: fadeInPage 0.6s ease-in-out forwards; }
@keyframes fadeInPage { 0% { opacity: 0; } 100% { opacity: 1; } }
body.page-exit { animation: fadeOutPage 0.5s ease-in-out forwards !important; }
@keyframes fadeOutPage { 0% { opacity: 1; } 100% { opacity: 0; } }


/* --- OVERRIDES MOBILES POUR REDUIRE L'EFFET "ZOOM" --- */
@media (max-width: 900px) {
    body { font-size: 0.95rem !important; }
    h1 { font-size: 1.8rem !important; margin-bottom: 15px !important; }
    h2 { font-size: 1.4rem !important; }
    h3 { font-size: 1.2rem !important; }
    p, ul, li { font-size: 0.95rem !important; line-height: 1.6 !important; }
    .hero, .hero-faq { padding: 30px 15px !important; min-height: auto !important; }
    .btn-main, .btn-outline { padding: 12px 24px !important; font-size: 0.9rem !important; }
    .cta-box { padding: 25px 15px !important; margin: 20px 15px !important; }
    .cta-box p { font-size: 1.4rem !important; }
    .grid-about { padding: 25px 15px !important; }
    .features { gap: 20px !important; padding: 30px 15px !important; }
    .social-sidebar { padding: 8px !important; bottom: 0 !important; }
    .social-link { height: 40px !important; width: 40px !important; border-radius: 40px !important; }
    .social-link i { min-width: 40px !important; font-size: 1rem !important; }
    .social-link:hover { width: 40px !important; min-width: 40px !important; padding-right: 0px !important; }
    .countdown-container { padding: 10px !important; }
    .count-number { font-size: 1.2rem !important; }
    .count-label { font-size: 0.55rem !important; }
    .cookie-banner { padding: 15px !important; bottom: 65px !important; left: 15px !important; right: 15px !important; }
    .cookie-banner p { font-size: 0.8rem !important; margin-bottom: 15px !important; }
    summary { padding: 15px 20px !important; font-size: 0.95rem !important; }
    .faq-section { margin-bottom: 60px !important; padding: 10px !important; }
    .container { padding: 25px 15px !important; margin: 15px !important; }
    .modal-box { padding: 25px 15px !important; }
    .tag { font-size: 0.7rem !important; padding: 6px 16px !important; margin-bottom: 15px !important; }
}


@media (max-width: 900px) {
    footer { 
        padding-top: 20px !important; 
        font-size: 0.7rem !important; 
    }
    footer + div { 
        padding-bottom: 20px !important; 
        padding-top: 5px !important;
        font-size: 0.75rem !important;
    }
    footer + div img {
        height: 28px !important;
    }
}


@media (max-width: 900px) {
    footer p, footer a {
        font-size: 0.65rem !important;
    }
}


/* --- CHROME BUG FIXES FOR ANIMATIONS --- */
body {
    animation: none !important; /* Disable body animation to prevent stacking context bug */
}
body.page-exit {
    animation: none !important;
}

/* Nouveau système de transition de page via un pseudo-élément overlay (évite le bug des éléments fixed/sticky) */
body::after {
    content: '';
    position: fixed;
    inset: 0;
    background: #fffcf9;
    z-index: 999999;
    pointer-events: none;
    animation: overlayFadeOut 0.6s ease-in-out forwards;
}
body.page-exit::after {
    animation: overlayFadeIn 0.5s ease-in-out forwards !important;
}
@keyframes overlayFadeOut {
    0% { opacity: 1; }
    100% { opacity: 0; visibility: hidden; }
}
@keyframes overlayFadeIn {
    0% { opacity: 0; visibility: visible; }
    100% { opacity: 1; }
}

/* Force l'accélération matérielle (GPU) pour éviter les clignotements sur Chrome */
.reveal, .global-animate, .decor-img, .faq-content {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
}

.decor-img {
    will-change: transform;
}
.reveal {
    will-change: transform, opacity;
}
