/* ================================================================
   HEADER — Bio et Local
   ================================================================ */

/* ── Barre principale ─────────────────────────────────────────── */
.site-header {
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0);
    transition: box-shadow 0.2s ease;
    margin-bottom: 40px;
}

/* Exception pour la page blog */
.blog .site-header {
    margin-bottom: 0;
}


.site-header.is-scrolled {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.15);
}

/* Marges resserrées sur petits écrans pour laisser la place au burger
   (sinon logo + burger dépassent de la largeur visible) */
#main-nav {
    min-height: 70px;
    margin: 0 0.75rem;
}

#main-nav div.container-fluid{
    position:relative;
}

#main-nav div.container-fluid::before{
    content: "";
    height: 3px;
    width: calc(100% - 185px);
    display:block;
    background-color: var(--vert);
    bottom:-8px;
    left: 185px;
    position:absolute;
    transition: opacity 0.2s ease;
}

.blog .site-header #main-nav div.container-fluid::before,
.site-header.is-scrolled #main-nav div.container-fluid::before
 {
    opacity: 0;
}

/* justify-content:space-between dès la base (et non seulement <400px ou
   ≥576px) : logo et burger restent chacun à leur bord sur toute la
   plage mobile, plus de zone intermédiaire en flex-start qui pouvait
   pousser le burger hors écran. */
#main-nav div.container-fluid > div.container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
    padding: 0;
    position:relative;
}

@media (max-width: 992px) {
    #main-nav div.container-fluid > div.container::before{
        content: unset;
    }

}


/* ── Logo ─────────────────────────────────────────────────────── */
.site-logo {
    height: 100px;
    max-height: 100px;
    width: auto;
    display: block;
}

@media (min-width: 576px) {
    #main-nav {
        margin: 0 2rem;
    }

    .site-logo {
        height: 160px;
    }
}

@media (min-width: 992px) {
    .site-logo {
        height: 160px;
    }
}

/* ── Bouton burger custom ─────────────────────────────────────── */
.site-nav-toggler {
    background: none;
    border: none;
    padding: 6px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}

.site-nav-toggler:focus-visible {
    outline: 2px solid #009C50;
    outline-offset: 2px;
    border-radius: 4px;
}

/* ── Toggle show/hide du panneau menu ────────────────────────── */
.site-nav-menu {
    display: none;
    width: 100%;
}

.site-nav-menu.site-nav-open {
    display: flex;
}



.site-nav-list{
    margin-bottom: 0;
}

.site-nav-list .menu-item a {
    text-align: center;
    display:inline-block;
    line-height: 1.3;
}

/* ── Menu overlay (mobile/tablette) ──────────────────────────── */
@media (max-width: 991px) {
    .site-nav-menu {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: var(--vert);
        z-index: 9999;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        overflow: hidden;
    }

    /* Logo décoratif (logo-bioetlocal-blanc.svg) */
    .nav-menu-deco {
        position: absolute;
        top: 10px;
        left: -16px;
        width: 70px;
        height: auto;
        pointer-events: none;
        display: block;
    }

    .nav-menu-deco-img {
        width: 240px;
    }

    /* Plante décorative en bas du menu */
    .nav-menu-bottom-deco {
        position: absolute;
        bottom: 24px;
        left: 50%;
        transform: translateX(-50%);
        width: 300px;
        height: auto;
        pointer-events: none;
        display: block;
    }

    /* Bouton fermer */
    .nav-menu-close {
        position: absolute;
        top: 50px;
        right: 16px;
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: #fff;
        border: none;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #2D6B3E;
        line-height: 1;
    }

    .nav-menu-close:hover {
        background: #f0f0f0;
    }

    /* Liste principale */
    .site-nav-list {
        list-style: none;
        margin: 0;
        padding: 80px 24px 40px;
        text-align: center;
        width: 100%;
        max-width: 440px;
    }

    .site-nav-list > .menu-item {
        padding: 14px 0 0 0;    
    }

    /* Séparateur centré entre items de premier niveau */
    .site-nav-list > .menu-item + .menu-item::before {
        content: '';
        display: block;
        width: 124px;
        height: 2px;
        background: rgb(255, 255, 255);
        margin: 0 auto 14px;
    }

    .site-nav-list > .menu-item > a {
        color: #fff;
        font-size: 1.15rem;
        font-weight: 700;
        text-decoration: none;
        line-height: 1.3;
        display: block;
    }

    .site-nav-list > .menu-item > a:hover {
        color: rgba(255, 255, 255, 0.75);
    }


    /* Sous-menu */
    .site-nav-list .sub-menu {
        list-style: none;
        padding: 8px 0 0;
        margin: 0;
    }

    .site-nav-list .sub-menu .menu-item {
        padding: 4px 0;
    }

    .site-nav-list .sub-menu .menu-item a {
        color: rgba(255, 255, 255, 0.88);
        font-size: 0.9rem;
        font-weight: 400;
        text-decoration: none;
    }

    .site-nav-list .sub-menu .menu-item a:hover {
        color: #fff;
    }
}

/* ── Accessibilité : cacher le bouton fermer et la déco sur desktop ─ */
@media (min-width: 992px) {
    .nav-menu-close,
    .nav-menu-deco,
    .nav-menu-bottom-deco {
        display: none;
    }
}

/* ── Menu desktop (lg+ : liens horizontaux) ─────────────────── */
@media (min-width: 992px) {
    .site-nav-toggler {
        display: none;
    }

    .site-nav-menu {
        display: flex !important;
        width: auto;
        align-items: center;
    }

    .site-nav-list {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        justify-content: flex-end;
        align-items: center;
        gap: 4px;
        padding: 0;
        margin-left: auto;
        list-style: none;
    }

    .site-nav-list .menu-item {
        position: relative;
        border-top: none;
    }

    /* Padding/police resserrés entre 992-1199px (sinon les libellés
       longs débordent avant même que le burger ne prenne le relais) ;
       taille normale à partir de 1200px, voir plus bas. */
    .site-nav-list .menu-item a {
        padding: 8px 12px;
        border-radius: 6px;
        font-size: 16px;
        font-style: normal;
        font-weight: 600;
        white-space: normal;
        text-align: center;
        max-width: 180px;
        display: block;
    }

    .site-nav-list .menu-item a,
    .site-nav-list .menu-item.current-menu-item a {
        background: none;
        color: #000;
        text-decoration: none;
    }

    /* Icône "crête" : rentre en pop (léger rebond, comme une crête qui
       se dresse) et ressort simplement en un fondu rapide. */
    .site-nav-list .menu-item::before {
        content: '';
        position: absolute;
        top: -24px;
        right: 0;
        width: 36px;
        height: 36px;
        background: url('../images/icons/ornement1.svg') no-repeat center / contain;
        opacity: 0;
        transform: translateY(4px) scale(0.5) rotate(-8deg);
        transform-origin: bottom right;
        pointer-events: none;
        transition: opacity 0.2s ease, transform 0.2s ease;
    }

    .site-nav-list .menu-item.current-menu-item::before, 
    .site-nav-list .menu-item:hover::before{
        opacity: 1;
        transform: translateY(0) scale(1) rotate(0deg);
        transition: opacity 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
                    transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1);
    }

    .site-nav-list .menu-item a:hover,
    .site-nav-list .menu-item.current-menu-item a {
        background: none;
        color: var(--vert, #009C50);
        text-decoration: none;
    }
}

/* Assez de place à partir de 1200px : on repasse au padding/police confortables */
@media (min-width: 1200px) {
    .site-nav-list .menu-item a {
        padding: 8px 20px;
        font-size: 17px;
    }
}

