/* Menu de navigation — remplacement de la feuille `widget-nav-menu` d'Elementor Pro.
 *
 * Ne sert QUE lorsque Pro n'est plus la (ou que MI_NAVMENU_ASSETS_FORCES est vrai).
 *
 * ─────────────────────────────────────────────────────────────────────────────
 * 🚨 CE QUE CETTE FEUILLE NE DOIT SURTOUT PAS FAIRE
 *
 * Une premiere version posait des regles de POINT DE RUPTURE :
 *     .elementor-nav-menu--dropdown-all .elementor-nav-menu--main{display:none}
 * Resultat mesure le 08/08/2026 : les 9 pages HUB ont perdu TOUTE leur
 * navigation en desktop.
 *
 * La cause, relevee en demandant au navigateur quelles regles s'appliquent
 * vraiment : sur ce site, la bascule responsive ne vient PAS de Pro mais du CSS
 * INLINE de la page, scope au widget de l'accueil :
 *     @media(min-width:768px) .elementor-element-a18b626c .elementor-menu-toggle{display:none}
 *     @media(max-width:767px) .elementor-element-a18b626c .elementor-menu-toggle{display:flex}
 *     @media(max-width:767px) .elementor-element-a18b626c .elementor-nav-menu--main{display:none}
 *     @media(min-width:768px) .elementor-element-a18b626c .elementor-nav-menu--main{display:flex}
 * L'accueil survivait grace a ces regles a trois classes, qui battent les
 * miennes. Le hub, qui ne les a pas, tombait.
 *
 * De la, la regle de conduite : cette feuille apporte la STRUCTURE que la
 * feuille de Pro apportait, et RIEN de ce que la page decide deja — ni
 * couleurs, ni typographie, ni marges d'items, ni points de rupture. Le CSS
 * genere par Elementor (uploads/elementor/css/post-*.css) et les blocs inline
 * de la page survivent au retrait de Pro : les redoubler, c'est se battre avec
 * eux.
 * ─────────────────────────────────────────────────────────────────────────────
 */

/* ── Listes ─────────────────────────────────────────────────────────────── */
/* ⚠️ Le `li` DOIT etre remis a zero, pas seulement le `ul`. Une premiere
   version ne visait que les listes : le theme Printme laissait alors son
   `padding-bottom:10px` sur chaque entree, soit 58 px de rangee au lieu de 48,
   et une barre desktop de 116 px au lieu de 96. Mesure du 08/08/2026. */
/* La BORDURE aussi : le theme pose `border-width:3px 1px 1px` sur les listes
   de sous-menu. Sans remise a zero, le sous-menu desktop fait 306 px au lieu
   de 302 — 4 px qui ne se voient pas a l'oeil mais qui trahissent une regle
   qu'on n'a pas reprise. La feuille de Pro la remettait a zero. */
.elementor-nav-menu,
.elementor-nav-menu ul,
.elementor-nav-menu li {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}

.elementor-nav-menu li {
  position: relative;
}

.elementor-nav-menu a,
.elementor-nav-menu a:focus,
.elementor-nav-menu a:hover {
  display: flex;
  align-items: center;
  /* 6 px : l'ecart mesure entre le libelle et le chevron sous Pro. */
  gap: 6px;
  /* 20 px : valeur imposee par la feuille de Pro. Sans elle on herite du
     22,5 px du theme, et l'entree du deroulant passe de 36 a 39 px — soit
     417 px de deroulant au lieu de 320. */
  line-height: 20px;
  text-decoration: none;
  box-shadow: none;
}

/* ── Navigation principale ──────────────────────────────────────────────── */
.elementor-nav-menu--main.elementor-nav-menu__container {
  display: flex;
}

.elementor-nav-menu--layout-horizontal {
  display: flex;
}

.elementor-nav-menu--layout-horizontal > .elementor-nav-menu {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  width: 100%;
}

.elementor-nav-menu--layout-horizontal > .elementor-nav-menu > li {
  display: flex;
  align-items: center;
}

.elementor-nav-menu--layout-vertical > .elementor-nav-menu {
  display: block;
}

/* Alignement : pose par `prefix_class` sur le controle `align_items`. */
.elementor-nav-menu__align-center > .elementor-nav-menu--main > .elementor-nav-menu  { justify-content: center; }
.elementor-nav-menu__align-start > .elementor-nav-menu--main > .elementor-nav-menu   { justify-content: flex-start; }
.elementor-nav-menu__align-end > .elementor-nav-menu--main > .elementor-nav-menu     { justify-content: flex-end; }
.elementor-nav-menu__align-stretch > .elementor-nav-menu--main > .elementor-nav-menu { justify-content: space-between; }

.elementor-nav-menu__align-center .elementor-menu-toggle { margin: 0 auto; }
.elementor-nav-menu__align-end .elementor-menu-toggle    { margin-left: auto; }

/* ── Sous-menus du menu principal ───────────────────────────────────────── */
.elementor-nav-menu--main .elementor-nav-menu ul {
  position: absolute;
  visibility: hidden;
  opacity: 0;
  z-index: 9997;
  /* 280 px : largeur mesuree sous Pro (accueil et hub donnaient tous deux
     exactement 280, donc une min-width et non un ajustement au contenu). */
  min-width: 280px;
  transition: opacity .15s ease;
}

.elementor-nav-menu--main .elementor-nav-menu li:hover > ul,
.elementor-nav-menu--main .elementor-nav-menu li:focus-within > ul {
  visibility: visible;
  opacity: 1;
}

.elementor-nav-menu--main .elementor-nav-menu > li > ul { top: 100%; left: 0; }
.elementor-nav-menu--main .elementor-nav-menu ul ul     { top: 0; left: 100%; }
.elementor-nav-menu--main .elementor-nav-menu ul a      { white-space: nowrap; }

/* ── Chevron de sous-menu ───────────────────────────────────────────────── */
/* Injecte par mi-nav-menu.js, comme SmartMenus le faisait. Valeurs relevees
   sur le rendu de Pro : marge negative pour ne pas grandir la ligne. */
.elementor-nav-menu .sub-arrow {
  display: inline-flex;
  align-items: center;
  margin: -10px 0;
  padding: 10px 0 10px 10px;
  line-height: 1;
}

.elementor-nav-menu .sub-arrow svg {
  width: .7em;
  height: .7em;
  fill: currentColor;
}

/* ── Indicateurs (`pointer`) ────────────────────────────────────────────── */
.elementor-nav-menu--main .e--pointer-background .elementor-item:before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  opacity: 0;
  transition: opacity .2s ease;
}

.elementor-nav-menu--main .e--pointer-background .elementor-item:hover:before,
.elementor-nav-menu--main .e--pointer-background .elementor-item.elementor-item-active:before {
  opacity: 1;
}

.elementor-nav-menu--main .e--pointer-underline .elementor-item:after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  transform: scaleX(0);
  transition: transform .2s ease;
}

.elementor-nav-menu--main .e--pointer-underline .elementor-item:hover:after,
.elementor-nav-menu--main .e--pointer-underline .elementor-item.elementor-item-active:after {
  transform: scaleX(1);
}

/* ── Bouton ─────────────────────────────────────────────────────────────── */
/* ⚠️ `display:flex` en BASE seulement, comme la feuille de Pro. C'est la page
   qui decide a quelle largeur il apparait — s'en meler a fait disparaitre le
   menu des hubs. */
.elementor-menu-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 0 solid;
  line-height: 1;
}

.elementor-menu-toggle svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.elementor-menu-toggle .elementor-menu-toggle__icon--close,
.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--open {
  display: none;
}

.elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close {
  display: block;
}

/* ── Menu deroulant ─────────────────────────────────────────────────────── */
.elementor-nav-menu--dropdown {
  display: none;
}

.elementor-nav-menu--dropdown.elementor-nav-menu__container {
  overflow-y: auto;
  transform-origin: top;
}

.elementor-nav-menu--dropdown .elementor-nav-menu {
  display: block;
}

.elementor-nav-menu--dropdown .elementor-nav-menu ul {
  position: static;
  visibility: visible;
  opacity: 1;
  min-width: 0;
}

/* Ouverture : la classe `elementor-active` est posee par mi-nav-menu.js sur le
   BOUTON. C'est le contrat auquel `mi-fix-menu-mobile` s'accroche deja par un
   selecteur de frere adjacent — le changer casserait le menu mobile. */
.elementor-menu-toggle.elementor-active + .elementor-nav-menu--dropdown.elementor-nav-menu__container {
  display: block;
  width: 100%;
}

/* ── Accessibilite ──────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .elementor-nav-menu--main .elementor-nav-menu ul,
  .elementor-nav-menu--main .e--pointer-background .elementor-item:before,
  .elementor-nav-menu--main .e--pointer-underline .elementor-item:after {
    transition: none;
  }
}
