/* /css/nav-mod.css — Overrides à placer EN DERNIER dans <head>
   - Force l’affichage desktop du menu
   - Burger actif en mobile
   - Gère sous-menus génériques: li > ul (sans classe), .submenu, .sub-menu, .dropdown-menu, .mega-menu-content
*/

/* Masquer correctement [hidden] (JS ouvre/ferme en mobile et pour sous-menus) */
[data-nav-menu][hidden],
.submenu[hidden],
.sub-menu[hidden],
.dropdown-menu[hidden],
.mega-menu-content[hidden],
/* sous-menus sans classe */
li > ul[hidden] { display: none !important; }

/* Header collant + sous-menus non coupés */
#site-header, .site-header, #header { position: sticky; top: 0; z-index: 1100; background: #fff; }
#site-header, .site-header, #header, .header-wrap, .container, .container-fluid { overflow: visible !important; }
#site-header.is-scrolled, .site-header.is-scrolled, #header.is-scrolled { box-shadow: 0 4px 16px rgba(0,0,0,.08); }

/* ----- Desktop >= 992px : menu TOUJOURS visible, burger caché ----- */
@media (min-width: 992px) {
  #primary-menu-trigger, .menu-trigger, .primary-menu-trigger { display: none !important; }

  /* Si hidden restait sur le nav en desktop, neutraliser */
  [data-nav-menu][hidden] { display: flex !important; }

  /* Conteneur du menu (+ racine UL) en flex */
  [data-nav-menu] { display: flex !important; align-items: center; gap: 16px; }
  #primary-menu, #primary-menu > ul, [data-nav-menu] > ul, .primary-menu {
    display: flex !important; align-items: center; gap: 16px;
    margin: 0; padding: 0; list-style: none;
  }

  /* Les <li> racine doivent être position:relative pour les dropdowns */
  #primary-menu > ul > li,
  [data-nav-menu] > ul > li,
  .primary-menu > li { position: relative; }

  /* Sous-menus (y compris UL sans classe) */
  .submenu, .sub-menu, .dropdown-menu, .mega-menu-content,
  li > ul {
    position: absolute; left: 0; top: 100%;
    min-width: 220px; background: #fff;
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px 0;
    display: none;
    box-shadow: 0 10px 24px rgba(0,0,0,.08); z-index: 1200;
    margin: 0; list-style: none;
  }

  /* Affichage au survol/ouverture JS */
  .menu > li.is-open > .submenu,
  .menu > li.is-open > .sub-menu,
  .menu > li.is-open > .dropdown-menu,
  .menu > li.is-open > .mega-menu-content,
  .primary-menu > li.is-open > .submenu,
  .primary-menu > li.is-open > .sub-menu,
  .primary-menu > li.is-open > .dropdown-menu,
  .primary-menu > li.is-open > .mega-menu-content,
  /* générique */
  li.is-open > ul { display: block !important; }
}

/* ----- Mobile < 992px : burger visible, menu replié ----- */
@media (max-width: 991.98px) {
  #primary-menu-trigger, .menu-trigger, .primary-menu-trigger {
    display: flex !important; align-items: center; justify-content: center;
    width: 44px; height: 44px; cursor: pointer;
  }

  [data-nav-menu] {
    display: none !important; flex-direction: column;
    padding: 8px 16px; border-top: 1px solid #f0f2f5; background: #fff;
  }
  [data-nav-menu].is-open { display: block !important; }
  /* Si la classe est posée sur le <nav id="primary-menu"> lui-même */
  #primary-menu.is-open > ul { display: block !important; }


  #primary-menu > ul, [data-nav-menu] > ul, .primary-menu {
    flex-direction: column; gap: 0; margin: 0; padding: 0; list-style: none;
  }

  /* Sous-menus empilés (UL sans classe inclus) */
  .submenu, .sub-menu, .dropdown-menu, .mega-menu-content,
  li > ul {
    position: static; display: none;
    border: 0; border-radius: 0; box-shadow: none; padding: 0; margin-left: 12px;
  }
  li.is-open > .submenu,
  li.is-open > .sub-menu,
  li.is-open > .dropdown-menu,
  li.is-open > .mega-menu-content,
  li.is-open > ul { display: block !important; }
}

/* États actifs */
a.is-active, a[aria-current="page"] { font-weight: 600; }


/* --- Square corners for desktop dropdowns --- */
@media (min-width: 992px) {
  .submenu, .sub-menu, .dropdown-menu, .mega-menu-content, li > ul {
    border-radius: 0 !important;
  }
}


/* --- Carets visuels pour items avec sous-menu --- */
[data-nav-menu] .has-sub > a { position: relative; }

/* Desktop: caret à droite du texte (▼ qui pivote) */
@media (min-width: 992px) {
  [data-nav-menu] .has-sub > a::after {
    content: "▾";
    display: inline-block;
    margin-left: 0.35rem;
    font-size: 0.8em;
    line-height: 1;
    opacity: 0.85;
    transform: translateY(-0.05em) rotate(0deg);
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  [data-nav-menu] .has-sub.is-open > a::after {
    transform: translateY(-0.05em) rotate(180deg);
    opacity: 1;
  }
}

/* Mobile: caret aligné à droite (▸ qui pivote vers le bas) */
@media (max-width: 991.98px) {
  [data-nav-menu] .has-sub > a { padding-right: 1.25rem; }
  [data-nav-menu] .has-sub > a::after {
    content: "▸";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    font-size: 0.95em;
    line-height: 1;
    opacity: 0.9;
    transition: transform 0.2s ease, opacity 0.2s ease;
    pointer-events: none;
  }
  [data-nav-menu] .has-sub.is-open > a::after {
    transform: translateY(-50%) rotate(90deg);
    opacity: 1;
  }
}


/* --- Remove caret on desktop only (keep mobile) --- */
@media (min-width: 992px) {
  [data-nav-menu] .has-sub > a::after {
    content: none !important;
    display: none !important;
  }
}
