/**
 * MENU MOBILE — Hamburger CSS only
 * Stylisé footer : vert forêt #162d1e + accent #97C20C
 *
 * Intégration :
 * 1. Coller le PHP juste après <body> (wp_body_open hook ou header.php)
 * 2. Enregistrer ce CSS dans functions.php ou l'ajouter dans navbar.css
 * 3. La classe .navbar masque la Bootstrap navbar sur mobile via CSS
 */

/* ════════════════════════════════════════════
   MOBILE UNIQUEMENT — masque navbar Bootstrap
════════════════════════════════════════════ */
@media (max-width: 991px) {
    #wrapper-navbar {
        display: none !important;
    }
}

/* ════════════════════════════════════════════
   HAMBURGER INPUT — caché hors écran
════════════════════════════════════════════ */
.mob-toggle {
    position: absolute;
    left: -100vw;
    opacity: 0;
    pointer-events: none;
}

/* ════════════════════════════════════════════
   LOGO FIXE EN HAUT — mobile only
════════════════════════════════════════════ */
.mob-logo {
    display: none;
}
@media (max-width: 991px) {
    .mob-logo {
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 0; left: 0; right: 0;
        height: 64px;
        background: #fff;
        z-index: 900;
        border-bottom: 2px solid #97C20C;
        box-shadow: 0 2px 16px rgba(0,0,0,0.08);
    }
    .mob-logo a {
        display: flex;
        align-items: center;
    }
    .mob-logo img {
        height: 44px;
        width: auto;
    }
}

/* ════════════════════════════════════════════
   BOUTON HAMBURGER — fixe haut droite
════════════════════════════════════════════ */
.mob-toggle + label {
    display: none;
}
@media (max-width: 991px) {
    .mob-toggle + label {
        cursor: pointer;
        width: 48px;
        height: 48px;
        display: flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 8px;
        right: 1rem;
        z-index: 1100;
        background: #162d1e;
        border-radius: 4px;
        box-shadow: 0 2px 12px rgba(22,45,30,0.35);
        transition: background 0.25s ease;
    }
    .mob-toggle:checked + label {
        background: #97C20C;
    }
}

/* Les 3 barres */
.mob-toggle + label span {
    background: #97C20C;
    width: 22px;
    height: 2px;
    position: relative;
    display: block;
    transition: background 10ms 300ms;
}
.mob-toggle + label span::before,
.mob-toggle + label span::after {
    position: absolute;
    background: #97C20C;
    width: inherit;
    height: inherit;
    content: "";
}
.mob-toggle + label span::before { top: -7px; }
.mob-toggle + label span::after  { top:  7px; }

/* État checked — croix */
.mob-toggle:checked + label span {
    background: transparent;
}
.mob-toggle:checked + label span::before,
.mob-toggle:checked + label span::after {
    top: 0;
    background: #162d1e;
}
.mob-toggle:checked + label span::before { transform: rotate(45deg); }
.mob-toggle:checked + label span::after  { transform: rotate(-45deg); }

/* ════════════════════════════════════════════
   PANNEAU NAV — slide depuis la gauche
════════════════════════════════════════════ */
.mob-nav {
    display: none;
}
@media (max-width: 991px) {
    .mob-nav {
        display: block;
        position: fixed;
        left: 0; top: 0;
        height: 100%;
        width: min(75%, 320px);
        background: #162d1e;
        transform: translateX(-100%);
        will-change: transform;
        z-index: 1000;
        overflow-y: auto;
        border-right: 1px solid rgba(151,194,12,0.2);
    }

    /* En-tête panneau */
    .mob-nav-header {
        padding: 80px 2rem 2rem;
        border-bottom: 1px solid rgba(255,255,255,0.06);
        margin-bottom: 0.5rem;
    }
    .mob-nav-header span {
        font-family: 'Raleway', sans-serif;
        font-size: 0.55rem; font-weight: 900;
        letter-spacing: 0.4em; text-transform: uppercase;
        color: #97C20C;
        display: block;
    }

    /* Liste */
    .mob-nav ul {
        list-style: none;
        padding: 0; margin: 0;
    }
    .mob-nav ul li {
        border-bottom: 1px solid rgba(255,255,255,0.05);
    }
    .mob-nav ul li a {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 1.1rem 2rem;
        font-family: 'Raleway', sans-serif;
        font-size: 1rem; font-weight: 400;
        color: rgba(255,255,255,0.55) !important;
        text-decoration: none !important;
        letter-spacing: 0.03em;
        opacity: 0;
        visibility: hidden;
        transition: color 0.2s ease, padding-left 0.2s ease;
    }
    .mob-nav ul li a::after {
        content: '→';
        font-size: 0.75rem;
        color: #97C20C;
        opacity: 0;
        transition: opacity 0.2s ease;
    }
    .mob-nav ul li a:hover {
        color: #fff !important;
        padding-left: 2.4rem;
    }
    .mob-nav ul li a:hover::after { opacity: 1; }

    /* CTA en bas du panneau */
    .mob-nav-cta {
        padding: 2rem;
        display: flex;
        flex-direction: column;
        gap: 0.75rem;
        margin-top: 0.5rem;
    }
    .mob-nav-cta a {
        display: block;
        text-align: center;
        padding: 0.9rem 1.5rem;
        font-family: 'Raleway', sans-serif;
        font-size: 0.65rem; font-weight: 900;
        letter-spacing: 0.2em; text-transform: uppercase;
        text-decoration: none !important;
        border: 1px solid;
        transition: all 0.25s ease;
    }
    .mob-nav-cta .mob-cta-primary {
        background: #E82951;
        border-color: #E82951;
        color: #fff !important;
    }
    .mob-nav-cta .mob-cta-primary:hover {
        background: transparent;
        color: #E82951 !important;
    }
    .mob-nav-cta .mob-cta-secondary {
        background: transparent;
        border-color: rgba(151,194,12,0.5);
        color: #97C20C !important;
    }
    .mob-nav-cta .mob-cta-secondary:hover {
        background: #97C20C;
        color: #162d1e !important;
        border-color: #97C20C;
    }

    /* Overlay sombre derrière le panneau */
    .mob-nav::before {
        content: '';
        position: fixed;
        inset: 0;
        background: rgba(0,0,0,0.5);
        z-index: -1;
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.4s ease;
        width: 100vw;
    }

    /* ── État ouvert ── */
    .mob-toggle:checked + label ~ .mob-nav {
        transform: translateX(0);
    }
    .mob-toggle:checked + label ~ .mob-nav::before {
        opacity: 1;
        pointer-events: auto;
    }
    .mob-toggle:checked + label ~ .mob-nav ul li a {
        visibility: visible;
        opacity: 1;
    }
}

/* ════════════════════════════════════════════
   ANIMATIONS (respecte prefers-reduced-motion)
════════════════════════════════════════════ */
@media (prefers-reduced-motion: no-preference) and (max-width: 991px) {
    .mob-toggle + label span         { transition: background 10ms 300ms; }
    .mob-toggle + label span::before,
    .mob-toggle + label span::after  { transition: top 300ms 350ms, transform 300ms 50ms; }
    .mob-toggle:checked + label span::before,
    .mob-toggle:checked + label span::after { transition: top 300ms 50ms, transform 300ms 350ms; }

    .mob-nav                          { transition: transform 0.45s cubic-bezier(0.4, 0, 0.2, 1); }
    .mob-nav ul li a                  { transition: visibility 400ms, opacity 400ms 250ms, color 0.2s ease, padding-left 0.2s ease; }
}

/* ════════════════════════════════════════════
   ACCESSIBILITÉ
════════════════════════════════════════════ */
.mob-toggle:focus-visible ~ label,
.mob-nav a:focus-visible {
    outline: 2px solid #97C20C;
    outline-offset: 4px;
}