

/* En-tête collant */
.et-l--header {
    position: sticky;
    top: 0;
    z-index: 999;
}
.admin-bar .et-l--header {
    top: 32px;
}
@media (max-width: 782px) {
    .admin-bar .et-l--header {
        top: 0;
    }
}

.et-l--header .vc-header.et_pb_section {
    position: relative;
    padding: 0;
    background-color: var(--vc-blanc);
    box-shadow: 0 1px 0 var(--vc-bordure), 0 4px 18px rgba(24, 59, 35, .05);
}

.vc-header .vc-header__row.et_pb_row {
    display: flex;
    align-items: center;
    column-gap: 24px;
    width: 92%;
    max-width: 1320px;
    padding: 0;
}
.vc-header .vc-header__row > .et_pb_column {
    margin: 0;
}

/* --------------------------------------------------------------------------
   Logo
   -------------------------------------------------------------------------- */
.vc-header .vc-header__logo.et_pb_column {
    flex: 0 0 auto;
    width: auto;
}
.vc-header .vc-header__logo .et_pb_image {
    margin: 0;
}
.vc-header .vc-header__logo img {
    display: block;
    height: 52px;
    width: auto;
    max-width: none;
}

/* --------------------------------------------------------------------------
   Navigation — premier niveau
   -------------------------------------------------------------------------- */
.vc-header .vc-header__nav.et_pb_column {
    flex: 1 1 auto;
    width: auto;
}
.vc-header .vc-header__nav .et_pb_menu {
    background-color: transparent;
}
.vc-header .vc-header__nav .et_pb_menu__wrap {
    justify-content: flex-end;
}

.vc-header .vc-header__nav .et-menu-nav > .et-menu > li {
    display: flex;
    align-items: center;
    padding: 0 14px;
}

/* Le padding vertical de l'entrée fait la hauteur du header
   et éloigne le sous-menu du libellé. */
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > li > a {
    padding: 30px 0;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--vc-vert-fonce);
    opacity: 1;
    transition: color var(--vc-transition);
}
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > .menu-item-has-children > a {
    padding-right: 18px;
}
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > li > a:hover,
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > li.current-menu-item > a,
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > li.current-menu-ancestor > a,
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav > .et-menu > li.current-page-ancestor > a {
    color: var(--vc-vert);
    opacity: 1;
}

/* Flèche des entrées à sous-menu */
.vc-header .vc-header__nav .et-menu .menu-item-has-children > a::after {
    top: 50%;
    margin-top: -.5em;
    font-size: 14px;
    line-height: 1;
    color: var(--vc-orange);
}

/* --------------------------------------------------------------------------
   Navigation — sous-menus : une colonne, entrées sur toute la largeur
   -------------------------------------------------------------------------- */
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav li ul.sub-menu {
    top: 100%;
    left: 0;
    width: 280px;
    padding: 8px 0;
    background-color: var(--vc-blanc);
    border: 0;
    border-radius: 0 0 var(--vc-radius-s) var(--vc-radius-s);
    box-shadow: var(--vc-shadow-hover);
}
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav li ul.sub-menu li {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    line-height: 1.35;
}
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav li ul.sub-menu li a {
    display: block;
    width: auto;
    padding: 10px 22px;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    color: var(--vc-texte);
    border-radius: 0;
    opacity: 1;
}
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav li ul.sub-menu li a:hover,
.vc-header .vc-header__nav .et_pb_menu .et-menu-nav li ul.sub-menu li.current-menu-item > a {
    background-color: var(--vc-vert-clair);
    color: var(--vc-vert);
    opacity: 1;
}

/* --------------------------------------------------------------------------
   Recherche
   -------------------------------------------------------------------------- */
.vc-header .vc-header__nav .et_pb_menu .et_pb_menu__search-button,
.vc-header .vc-header__nav .et_pb_menu .et_pb_menu__close-search-button {
    margin-left: 18px;
    font-size: 20px;
    color: var(--vc-orange);
}
.vc-header .vc-header__nav .et_pb_menu .et_pb_menu__search-input {
    font-size: 18px;
    color: var(--vc-vert-fonce);
}

/* --------------------------------------------------------------------------
   Bouton « Nous soutenir »
   -------------------------------------------------------------------------- */
.vc-header .vc-header__cta.et_pb_column {
    flex: 0 0 auto;
    width: auto;
}
.vc-header .vc-header__cta .et_pb_button_module_wrapper {
    margin: 0;
}

/* --------------------------------------------------------------------------
   Tablette / mobile (menu hamburger Divi)
   -------------------------------------------------------------------------- */
@media (max-width: 980px) {
    .vc-header .vc-header__row.et_pb_row {
        min-height: 68px;
        column-gap: 12px;
    }
    .vc-header .vc-header__logo img {
        height: 42px;
    }

    /* Ordre mobile (maquette) : logo à gauche ; cœur, loupe et hamburger
       regroupés à droite, la loupe juste avant le hamburger. */
    .vc-header .vc-header__logo.et_pb_column {
        order: 1;
        margin-right: auto;
    }
    .vc-header .vc-header__cta.et_pb_column {
        order: 2;
    }
    .vc-header .vc-header__nav.et_pb_column {
        order: 3;
        flex: 0 0 auto;
    }

    /* Recherche ouverte : le champ recouvre tout l'en-tête sur fond blanc
       (au lieu de se superposer au logo et au cœur). */
    .vc-header .vc-header__nav.et_pb_column {
        z-index: 5;
    }
    .vc-header .vc-header__nav .et_pb_menu .et_pb_menu__search-container {
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        height: auto;
        padding: 0 5%;
        background-color: var(--vc-blanc);
        z-index: 1000;
    }

    /* Loupe et hamburger côte à côte */
    .vc-header .vc-header__nav .et_pb_menu .et_pb_menu__wrap {
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 10px;
    }
    .vc-header .vc-header__nav .et_pb_menu .et_pb_menu__search-button {
        margin: 0;
        font-size: 22px;
    }
    .vc-header .vc-header__nav .et_pb_menu .mobile_menu_bar::before {
        font-size: 34px;
        color: var(--vc-vert);
    }

    /* Le menu mobile se positionne par rapport à la section d'en-tête
       pour occuper toute la largeur de l'écran. */
    .vc-header .vc-header__row,
    .vc-header .vc-header__nav,
    .vc-header .vc-header__nav .et_pb_menu,
    .vc-header .vc-header__nav .et_pb_menu_inner_container,
    .vc-header .vc-header__nav .et_pb_menu__wrap,
    .vc-header .vc-header__nav .et_pb_menu__menu,
    .vc-header .vc-header__nav .et_mobile_nav_menu,
    .vc-header .vc-header__nav .mobile_nav {
        position: static;
    }
    .vc-header .vc-header__nav .et_pb_menu .et_mobile_menu {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        width: 100%;
        max-height: calc(100vh - 90px);
        margin: 0;
        padding: 8px 6% 24px;
        overflow-y: auto;
        background-color: var(--vc-blanc);
        border-top: 3px solid var(--vc-vert);
        box-shadow: var(--vc-shadow-hover);
    }
    .vc-header .vc-header__nav .et_pb_menu .et_mobile_menu li a {
        padding: 12px 4px;
        font-size: 16px;
        font-weight: 700;
        color: var(--vc-vert-fonce);
        border-bottom: 1px solid var(--vc-bordure);
        opacity: 1;
    }
    .vc-header .vc-header__nav .et_pb_menu .et_mobile_menu li li a {
        padding-left: 18px;
        font-weight: 600;
        color: var(--vc-texte);
    }
    .vc-header .vc-header__nav .et_pb_menu .et_mobile_menu li a:hover {
        background-color: var(--vc-vert-clair);
    }
}

@media (max-width: 600px) {
    /* Le bouton « Nous soutenir » se réduit à son cœur sur petit écran */
    .vc-header .vc-header__cta .et_pb_module.et_pb_button.vc-btn,
    .vc-header .vc-header__cta .et_pb_module.et_pb_button.vc-btn:hover {
        gap: 0;
        padding: .6em;
        font-size: 0;
    }
}
