/*
Theme Name: Consultix Child (ERCA)
Template: consultix
Description: Child theme for ERCA/ARCC — custom header (menu) and footer from the erca_homepage template.
Version: 1.0
*/

/* ================= ADAPTATIONS ERCA (header/footer) ================= */

/* ================================================================
   EN-TETE DES PAGES INTERNES — reprise du design "entete.html"
   (carte arrondie + image de fond, menu centre, accents dorés).
   Tout est scope sous .erca-siteheader pour NE PAS toucher le hero
   de l'accueil, qui reutilise les memes classes (.gl-topbar/.gl-mlink…).
   NB : pas d'overflow:hidden sur .navbar (sinon le menu mobile,
   positionne en absolute sous la barre, serait rogne) — on arrondit
   plutot la couche image .nav-bg elle-meme.
   ================================================================ */
.erca-siteheader {
    background: transparent;
    position: relative;
    z-index: 30;
    margin-bottom: 0;
}
.erca-siteheader .eph-wrap {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}
.erca-siteheader .navbar {
    position: relative;
    border-radius: 22px;
    background: #23282f;
    margin-top: 22px;
}
.erca-siteheader .nav-bg {
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: 22px;
    overflow: hidden;
}
.erca-siteheader .nav-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center 70%;
    filter: brightness(.62) saturate(.85);
}
/* barre au-dessus de l'image */
.erca-siteheader .gl-topbar {
    position: relative;
    z-index: 3;
    margin: 0;
    padding: 10px 26px;
    gap: 24px;
    text-shadow: 0 1px 10px rgba(4, 40, 16, .25);
}
/* menu centre, texte blanc, soulignement doré sur l'actif */
.erca-siteheader .gl-mainmenu {
    overflow: visible;
    justify-content: center;
    gap: 26px;
    flex: 1 1 auto;
}
.erca-siteheader .gl-mlink {
    color: #fff;
    opacity: .92;
    font-size: 15.5px;
    font-weight: 600;
}
.erca-siteheader .gl-mlink:hover { opacity: 1; }
.erca-siteheader .gl-mlink .gl-plus { color: #f4cf1e; font-weight: 800; }
.erca-siteheader .gl-mlink.active { opacity: 1; }
.erca-siteheader .gl-mlink.active::after { background: #f4cf1e; }
/* bouton recherche : rond terracotta comme le template */
.erca-siteheader .gl-search {
    background: #AD4F2E;
    color: #fff;
}
.erca-siteheader .gl-search:hover { background: rgba(255, 255, 255, .3); }
.erca-siteheader .lang-pill { color: #fff; }
/* Marque : « ERCA / ARCC » + tagline alignés à GAUCHE (comme la home), mais le
   bloc texte reste centré verticalement à côté du logo (align-self seulement
   sur b/i, PAS sur le conteneur — sinon le texte remonte en haut). */
.erca-siteheader .gl-brand2-txt {
    text-align: left !important;
    align-items: flex-start !important;
}
.erca-siteheader .gl-brand2-txt b,
.erca-siteheader .gl-brand2-txt i {
    width: 100% !important;
    text-align: left !important;
    align-self: flex-start !important;
    margin: 0 !important;
}

/* espace sous l'en-tete avant le contenu de la page */
.erca-content { position: relative; }

/* Pages internes : un peu d'air en haut d'un bloc trop rapproché.
   WPBakery pose déjà `.vc_custom_1672224418569{padding-top:10px!important}` (CSS
   inline chargé après le nôtre) => on monte la spécificité pour passer devant. */
body .vc_custom_1672224418569 { padding-top: 45px !important; }

/* ------------------------------------------------------------------
   TEMPORAIRE — met en exergue le bouton « Conference Website » du rail :
   son infobulle (libellé) reste AFFICHÉE par défaut, pas seulement au survol.
   (Le libellé du rail est une infobulle absolue verte, cf. bloc « RAIL » plus
   bas ; on force donc son état "visible" — sélecteur #fabw pour la spécificité
   id, qui gagne quel que soit l'ordre.)
   Pour le désactiver quand la conférence sera finie : supprimer ce bloc,
   ou vider l'URL « Conference » (Personnaliser → ERCA → Réseaux sociaux),
   ce qui retire complètement l'icône.
   ------------------------------------------------------------------ */
/* Infobulle figée TANT QUE l'utilisateur n'a pas survolé une autre icône.
   Au 1er survol d'une autre icône, le JS ajoute `.conf-released` sur #fabw :
   l'infobulle Conference redevient alors normale (au survol uniquement) et ne
   se re-fige plus jusqu'au rechargement de la page. */
#fabw:not(.conf-released) .fab-soc-library .fab-lbl {
    opacity: 1 !important;
    pointer-events: auto !important;
    transform: translateY(-50%) translateX(0) !important;
}

/* Entre le breakpoint burger (1080px) et le plein desktop, le menu horizontal
   + la marque + les controles peuvent depasser : on resserre gaps/typo pour
   que tout tienne (evite un debordement horizontal ~1100-1300px). */
@media (min-width: 761px) and (max-width: 1300px) {
    .erca-siteheader .gl-topbar { gap: 14px; padding: 10px 18px; }
    .erca-siteheader .gl-mainmenu { gap: 15px; }
    .erca-siteheader .gl-mlink { font-size: 14px; }
    .erca-siteheader .gl-brand2-img { height: 64px; }
}

@media (max-width: 760px) {
    .erca-siteheader .eph-wrap { padding: 0 14px; }
    .erca-siteheader .gl-topbar { padding: 8px 16px; }
    .erca-siteheader .navbar { margin-top: 14px; }
}

/* ================================================================
   BANDEAU "SLIDE" DES PAGES INTERNES (Revolution Slider .sliderabm/…2)
   Objectif : MÊME largeur que la carte du menu (1400px centré,
   padding 0 24px) + coins arrondis + alignement gauche exact.
   Problème : RevSlider place rs-module-wrap en position:absolute avec
   un `left` négatif calculé (ex. -134px) → décalé. On le ré-ancre à
   gauche du conteneur, pleine largeur.
   ================================================================ */
[class*="sliderabm"] {
    padding-top: 14px; /* >= 10px d'air entre le menu et le slide */
    box-sizing: border-box;
}
[class*="sliderabm"] .wpb_wrapper > .vc_column-inner,
[class*="sliderabm"] > .vc_column-inner {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
/* La slide vit dans le conteneur de contenu du thème (~1200px) alors que le
   menu utilise un wrap de 1400px. Pour que la slide fasse la MÊME largeur que
   le menu : on sort le wrapper de son conteneur (full-bleed jusqu'à la largeur
   du body, scrollbar exclue via --erca-sbw) puis on recentre le slider sur la
   MÊME géométrie que .eph-wrap (max 1400px, gouttiere 24px). */
:root { --erca-sbw: 0px; }
/* filet de securite : aucun debordement horizontal du full-bleed (la barre
   sticky et le rail social sont rendus hors de #page => non impactes). */
#page { overflow-x: clip; }
[class*="sliderabm"] .wpb_wrapper {
    position: relative;
    margin-left: calc(50% - 50vw + (var(--erca-sbw) / 2));
    margin-right: calc(50% - 50vw + (var(--erca-sbw) / 2));
}
/* RevSlider place rs-module-wrap en absolute avec un left négatif calculé.
   On GARDE l'absolute (RevSlider réserve ainsi la hauteur du bandeau => pas
   de double espace en dessous) et on le recentre à la largeur du wrap du menu
   via left:50% + translateX(-50%). */
[class*="sliderabm"] rs-module-wrap {
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    width: min(1352px, calc(100vw - var(--erca-sbw) - 48px)) !important;
    max-width: none !important;
}
[class*="sliderabm"] rs-module {
    width: 100% !important;
    max-width: 100% !important;
}
/* coins arrondis sur le conteneur du slider ET l'image de fond */
[class*="sliderabm"] .wpb_wrapper,
[class*="sliderabm"] rs-module-wrap,
[class*="sliderabm"] rs-module,
[class*="sliderabm"] .rev_slider,
[class*="sliderabm"] .rev_slider_wrapper {
    border-radius: 22px !important;
    overflow: hidden !important;
}
[class*="sliderabm"] .rev-slidebg,
[class*="sliderabm"] .tp-bgimg,
[class*="sliderabm"] img.rev-slidebg {
    border-radius: 22px !important;
}
@media (max-width: 760px) {
    [class*="sliderabm"] { padding: 2px 14px 0; }
}

/* ============================================================
   CORRECTIF ANTI-CONSULTIX
   Consultix (ou le plugin mega-menu) force `display:block !important`
   sur les elements <nav> et <section>. On reaffirme les bons display
   pour nos composants (menu <nav>, footer <section>), avec !important
   car la regle de consultix est elle-meme !important.
   ============================================================ */

/* Menu (nav) : horizontal au-dessus de 1080px */
.erca-scope .gl-mainmenu {
    display: flex !important;
}
/* Menu (nav) : cache en mobile, visible seulement si .is-open (burger) */
@media (max-width: 1080px) {
    .erca-scope .gl-mainmenu {
        display: none !important;
    }
    .erca-scope .gl-mainmenu.is-open {
        display: flex !important;
    }
}

/* Footer (sections) */
.erca-scope .ftr {
    display: flex !important;
}
.erca-scope .p2-hero {
    display: grid !important;
}
/* p2-hero empile en une colonne sur petit ecran (comme le template) */
@media (max-width: 820px) {
    .erca-scope .p2-hero {
        grid-template-columns: 1fr !important;
    }
}

/* ============================================================
   HERO (accueil) : texte a gauche, aligne sous le logo
   ============================================================ */
.erca-hero-wrap .gl-text {
    align-items: flex-start !important;
    align-self: stretch !important;
    width: 100% !important;
    padding: 0 !important;
}
/* marge demandee : texte a 70px du bord gauche, 70px du bas, + marge droite */
.erca-hero-wrap .gl-text-main {
    margin: 0 90px 70px 70px !important;
    width: auto !important;
    align-self: flex-start !important;
}
/* vignettes a gauche (70px, meme que le texte), compteur TOUT a droite, 70px du bas */
.erca-hero-wrap .gl-controls {
    display: flex !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    align-self: stretch !important;
    margin: 0 !important;
    padding: 0 50px 70px 70px !important;
    justify-content: flex-start !important;
    align-items: center !important;
}
.erca-hero-wrap .gl-thumbs {
    margin: 0 !important;
    justify-content: flex-start !important;
}
/* pousse le compteur tout a droite */
.erca-hero-wrap .gl-count {
    margin: 0 0 0 auto !important;
}
/* marque : ERCA/ARCC ET tagline alignes a gauche */
.erca-hero-wrap .gl-brand2-txt b,
.erca-hero-wrap .gl-brand2-txt i {
    width: 100% !important;
    text-align: left !important;
    align-self: flex-start !important;
    margin: 0 !important;
}
/* marque ERCA/ARCC alignee a gauche */
.erca-hero-wrap .gl-brand2-txt,
.erca-hero-wrap .gl-brand2-txt b,
.erca-hero-wrap .gl-brand2-txt i {
    text-align: left !important;
    align-items: flex-start !important;
}
/* le date ne doit pas etre pousse a droite */
.erca-hero-wrap .gl-date {
    margin-left: 0 !important;
}
/* tout le contenu du hero aligne a gauche (consultix force text-align:center) */
.erca-hero-wrap .gl-text,
.erca-hero-wrap .gl-text-main,
.erca-hero-wrap .gl-title,
.erca-hero-wrap .gl-excerpt,
.erca-hero-wrap .gl-meta,
.erca-hero-wrap .gl-date {
    text-align: left !important;
}
.erca-hero-wrap .gl-meta {
    display: flex !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: .75rem !important;
    align-self: flex-start !important;
    width: auto !important;
}
.erca-hero-wrap .gl-meta > * {
    margin: 0 !important;
}
.erca-hero-wrap .gl-thumbs {
    justify-content: flex-start !important;
}

/* sous-menus (dropdowns) alignes a gauche (consultix les centre) */
.erca-scope .gl-submenu {
    text-align: left !important;
    align-items: flex-start !important;
}
.erca-scope .gl-submenu a {
    text-align: left !important;
    justify-content: flex-start !important;
    display: block !important;
    width: 100% !important;
}
.erca-scope .gl-sub-group,
.erca-scope .gl-sub-label {
    text-align: left !important;
}
/* le logo/menu s'aligne sur le meme retrait gauche que le titre */
.erca-hero-wrap .gl-topbar {
    margin-left: 40px !important;
    margin-right: 40px !important;
}
/* la barre du bouton "Read article" est un <a> : conserver l'aspect bouton */
.erca-hero-wrap .read-btn {
    text-decoration: none;
}

/* ============================================================
   RAIL STICKY (fabw) + icones FontAwesome
   ============================================================ */
.erca-scope .fab-ic i {
    font-size: 15px;
    line-height: 1;
    color: currentColor;
}
.erca-scope .fab-toggle i,
.erca-scope .fab-back i {
    font-size: 16px;
    line-height: 1;
}
/* icones dans le footer (adresse, email, socials) */
.erca-scope .p2-item i {
    font-size: 15px;
    margin-right: 4px;
}
.erca-scope .p2-socials a i {
    font-size: 15px;
}
/* logo du footer : plus petit */
.erca-scope .ftr .footer .brand .logo img,
.erca-sitefooter .brand .logo img {
    height: 70px !important;
    width: auto !important;
}

/* Le rail est deplace sous <html> (pour rester fixe) : il faut lui donner la police
   explicitement, sinon les libelles heritent d'une police par defaut. */
.erca-scope .fabw,
.erca-scope .fabw .fab-lbl {
    font-family: 'Source Sans 3', 'Poppins', system-ui, -apple-system, sans-serif !important;
}
/* Icones sociales + back-to-top : pas de transform (le toggle, lui, doit pouvoir pulser) */
.erca-scope .fabw .fab-soc,
.erca-scope .fabw .fab-back {
    transform: none !important;
    opacity: 1 !important;
}
.erca-scope .fabw .fab-back {
    pointer-events: auto !important;
}
/* Icone sociale = cercle de taille FIXE (ne change JAMAIS = l'icone ne bouge jamais) */
.erca-scope .fabw .fab-soc {
    position: relative !important;
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    max-width: 50px !important;
    border-radius: 50% !important;
    overflow: visible !important; /* pour laisser sortir l'infobulle */
}
.erca-scope .fabw .fab-soc .fab-ic {
    width: 50px !important;
    height: 50px !important;
    flex: 0 0 50px !important;
    border-radius: 50%;
    overflow: hidden;
}
/* Libelle = INFOBULLE verte flottante (position absolue, HORS du bouton) : n'affecte aucune taille */
.erca-scope .fabw .fab-soc .fab-lbl {
    position: absolute !important;
    right: calc(100% + 14px) !important;
    top: 50% !important;
    display: block !important;
    max-width: none !important;
    background: linear-gradient(135deg, #0a7f43 0%, #065f39 100%);
    color: #fff !important;
    padding: 8px 14px !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    letter-spacing: .01em;
    white-space: nowrap !important;
    opacity: 0 !important;
    pointer-events: none !important;
    box-shadow: 0 10px 24px rgba(4, 40, 16, .38);
    transform: translateY(-50%) translateX(6px) !important;
    transition: opacity .2s ease, transform .2s cubic-bezier(.22, .61, .36, 1) !important;
}
/* petite fleche verte qui pointe vers l'icone */
.erca-scope .fabw .fab-soc .fab-lbl::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 50%;
    transform: translateY(-50%);
    border: 6px solid transparent;
    border-left-color: #065f39;
}
.erca-scope .fabw .fab-soc:hover .fab-lbl {
    opacity: 1 !important;
    transform: translateY(-50%) translateX(0) !important;
}

/* ===== Couleur de marque par icone (infobulle + anneau qui rayonne) ===== */
.erca-scope .fabw .fab-soc      { --brand: #0a7f43; --brandrgb: 26, 162, 60; }
.erca-scope .fabw .fab-soc.fab-fb { --brand: #1877F2; --brandrgb: 24, 119, 242; }
.erca-scope .fabw .fab-soc.fab-li { --brand: #0A66C2; --brandrgb: 10, 102, 194; }
.erca-scope .fabw .fab-soc.fab-x  { --brand: #1a1a1a; --brandrgb: 40, 40, 40; }
.erca-scope .fabw .fab-soc.fab-yt { --brand: #FF0000; --brandrgb: 255, 0, 0; }
.erca-scope .fabw .fab-soc.fab-wa { --brand: #25D366; --brandrgb: 37, 211, 102; }
/* l'infobulle et sa fleche prennent la couleur du reseau */
.erca-scope .fabw .fab-soc .fab-lbl {
    background: var(--brand) !important;
}
.erca-scope .fabw .fab-soc .fab-lbl::after {
    border-left-color: var(--brand) !important;
}
/* anneau qui "sort" dans la couleur de marque, au survol */
@keyframes fabRingBrand {
    0%   { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 0 rgba(var(--brandrgb), .5); }
    70%  { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 14px rgba(var(--brandrgb), 0); }
    100% { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 0 rgba(var(--brandrgb), 0); }
}
.erca-scope .fabw .fab-soc:hover {
    animation: fabRingBrand 1.3s ease-out infinite;
}
/* Pendant le scroll : survol desactive => aucun libelle qui saute */
.erca-scope .fabw.is-scrolling {
    pointer-events: none !important;
}

/* Toggle (repli) : rond, "+" pivote en "x" quand ouvert, + clignotement d'attention */
.erca-scope .fabw .fab-toggle {
    width: 50px !important;
    height: 50px !important;
}
.erca-scope .fabw .fab-toggle svg {
    transition: transform .3s ease;
    transform: rotate(45deg);
}
.erca-scope .fabw.collapsed .fab-toggle svg {
    transform: rotate(0deg);
}
.erca-scope .fabw.collapsed .fab-soc {
    display: none !important;
}

/* clignotement du bouton toggle (pulse + anneau) — comme le template */
@keyframes fabBeat {
    0%, 100% { transform: scale(1); }
    12% { transform: scale(1.14); }
    24% { transform: scale(1); }
    36% { transform: scale(1.09); }
    50% { transform: scale(1); }
}
@keyframes fabRing {
    0% { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 0 rgba(237,192,6,.55); }
    70% { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 16px rgba(237,192,6,0); }
    100% { box-shadow: 0 8px 22px rgba(0,0,0,.25), 0 0 0 0 rgba(237,192,6,0); }
}

/* ------------------------------------------------------------------
 * RESPONSIVE — anti-débordement horizontal sur mobile/tablette.
 * Cause : le thème Consultix rend `.container` en box-sizing:content-box,
 * donc son padding (15px x2) s'AJOUTE à sa largeur (100%) => 30px de trop
 * => scroll horizontal. Idem pour les rangées pleine largeur WPBakery.
 * On force border-box + max-width:100% UNIQUEMENT sous 992px (le layout
 * desktop, où .container a une largeur fixe < viewport, n'est pas touché).
 * ------------------------------------------------------------------ */
@media (max-width: 991.98px) {
    .container,
    .container-fluid,
    .vc_row-full-width,
    .vc_row.wpb_row,
    .wpb_column > .vc_column-inner {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }
}

/* ==================================================================
 * BACK-TO-TOP natif du thème : désactivé (s'affichait à gauche).
 * On garde uniquement le back-to-top du rail social (.fab-back).
 * ================================================================== */
.scrollup { display: none !important; }

/* ==================================================================
 * BARRE DE NAVIGATION STICKY — apparaît au scroll (une fois le hero
 * dépassé), glisse depuis le haut. Sobre : fond blanc, liséré vert.
 * ================================================================== */
.erca-scope .erca-stickynav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 9990;
    background: #ffffff;
    border-bottom: 1px solid rgba(15, 26, 14, .08);
    box-shadow: 0 6px 24px rgba(15, 26, 14, .10);
    transform: translateY(-100%);
    transition: transform .38s cubic-bezier(.22, .61, .36, 1);
    will-change: transform;
}
.erca-scope .erca-stickynav.show { transform: translateY(0); }

.erca-scope .erca-stickynav .esn-inner {
    max-width: 1240px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 9px 26px;
}
.erca-scope .erca-stickynav .esn-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    text-decoration: none;
    flex: 0 0 auto;
}
.erca-scope .erca-stickynav .esn-brand img { height: 40px; width: auto; display: block; }
.erca-scope .erca-stickynav .esn-brand span {
    font-weight: 800;
    font-size: 15px;
    letter-spacing: .3px;
    color: #008244;
    white-space: nowrap;
}

/* menu : aligné à droite, liens foncés sur fond blanc */
.erca-scope .erca-stickynav .gl-mainmenu {
    flex: 1 1 auto;
    justify-content: flex-end;
    gap: 24px;
    overflow: visible;
}
.erca-scope .erca-stickynav .gl-mlink {
    color: #16281c;
    opacity: 1;
    font-size: 14.5px;
}
.erca-scope .erca-stickynav .gl-mlink:hover,
.erca-scope .erca-stickynav .gl-mlink.active { color: #008244; }
.erca-scope .erca-stickynav .gl-mlink.active::after { background: #008244; }

/* burger de la barre (caché en desktop) */
.erca-scope .erca-stickynav .esn-burger {
    display: none;
    margin-left: auto;
    flex: 0 0 auto;
    width: 40px; height: 40px;
    padding: 9px;
    background: transparent;
    border: 0;
    cursor: pointer;
    flex-direction: column;
    justify-content: space-between;
}
.erca-scope .erca-stickynav .esn-burger span {
    display: block; height: 2.5px; width: 100%;
    background: #16281c; border-radius: 2px;
    transition: transform .25s, opacity .25s;
}
.erca-scope .erca-stickynav .esn-burger.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.erca-scope .erca-stickynav .esn-burger.is-open span:nth-child(2) { opacity: 0; }
.erca-scope .erca-stickynav .esn-burger.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

/* ---- mobile / tablette : menu déroulant sous la barre ----
 * Breakpoint aligné sur menu.css (1080px) qui bascule le menu du hero en
 * burger ET met .gl-mainmenu en display:none. Comme la barre sticky réutilise
 * la classe .gl-mainmenu, on doit RÉTABLIR display:flex + neutraliser le style
 * "carte sombre" du menu hero (fond, radius, blur, padding). */
@media (max-width: 1080px) {
    .erca-scope .erca-stickynav .esn-inner { padding: 8px 18px; position: relative; }
    .erca-scope .erca-stickynav .esn-brand span { font-size: 14px; }
    .erca-scope .erca-stickynav .esn-burger { display: flex; }

    .erca-scope .erca-stickynav .gl-mainmenu {
        display: flex !important;      /* rétablit le display:none hérité de menu.css */
        position: absolute;
        top: 100%; left: 0; right: 0;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        background: #fff;
        border: 0;
        border-bottom: 3px solid #008244;
        border-radius: 0;
        box-shadow: 0 14px 26px rgba(15, 26, 14, .14);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        padding: 0;
        text-shadow: none;
        max-height: 0;
        overflow: hidden;
        opacity: 0;
        pointer-events: none;
        transition: max-height .32s ease, opacity .28s ease;
    }
    .erca-scope .erca-stickynav.esn-open .gl-mainmenu {
        max-height: 78vh;
        overflow-y: auto;
        opacity: 1;
        pointer-events: auto;
    }
    .erca-scope .erca-stickynav .gl-mitem {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
        border-top: 1px solid #eef0ec;
    }
    .erca-scope .erca-stickynav .gl-mlink {
        padding: 13px 20px;
        justify-content: space-between;
        color: #16281c;
        font-size: 15px;
        border-radius: 0;
    }
    .erca-scope .erca-stickynav .gl-mlink:hover { background: #f4f7f2; color: #008244; }
    /* sous-menu : accordéon (classe .open posée par erca-menu.js) */
    .erca-scope .erca-stickynav .gl-submenu {
        position: static;
        display: none;
        opacity: 1;
        transform: none;
        box-shadow: none;
        border: 0;
        background: #f6f8f5;
        padding: 4px 0;
        max-height: none;
    }
    .erca-scope .erca-stickynav .gl-submenu::before { display: none; }
    .erca-scope .erca-stickynav .gl-mitem.open .gl-submenu { display: block; }
    .erca-scope .erca-stickynav .gl-submenu a { padding: 11px 34px; color: #16281c; }
}
