/* Frontend navigation widget: behavior only, no default visual styling. */

/* Variables de base du widget.
   Elementor peut les remplacer via les controles PHP du widget. */
.nav-widget {
  --nav-mobile-panel-bg: #fff;
  --nav-submenu-icon-open-rotation: 0deg;
  --nav-submenu-icon-transition: none;
  --nav-menu-align: flex-start;
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: var(--nav-menu-align);
  font-family: inherit;
}

/* Le widget garde un calcul de taille previsible pour tous ses elements. */
.nav-widget,
.nav-widget *,
.nav-widget *::before,
.nav-widget *::after {
  box-sizing: border-box;
}

/* Barre qui contient le bouton burger. Elle est masquee hors mode burger. */
.nav-widget__bar {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex: 0 0 auto;
}

/* Bouton principal du burger.
   Il est cache par defaut et affiche seulement dans les modes burger. */
.nav-widget__toggle {
  display: none;
  position: relative;
  z-index: 1000;
  align-items: center;
  margin: 0;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  box-shadow: none;
}

/* Bouton de fermeture dans le panneau burger. */
.nav-widget__close {
  display: none;
  margin: 0;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  color: inherit;
  box-shadow: none;
}

/* Quand un burger est ouvert, le JS ajoute cette classe au body. */
body.nav-widget-menu-open {
  overflow: hidden;
}

/* Conteneurs des icones burger/fermeture.
   Les tailles restent basees sur em pour suivre la taille configuree. */
.nav-widget__close-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  font-size: 1rem;
  line-height: 1;
}

.nav-widget__toggle-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 1.15em;
  font-size: 1rem;
  line-height: 1;
}

.nav-widget__close-icon i,
.nav-widget__close-icon svg,
.nav-widget__toggle-icon i,
.nav-widget__toggle-icon svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* Neutralise les styles de bouton que le theme peut appliquer. */
.nav-widget .nav-widget__toggle,
.nav-widget .nav-widget__toggle:hover,
.nav-widget .nav-widget__toggle:focus,
.nav-widget .nav-widget__toggle:focus-visible,
.nav-widget .nav-widget__toggle:active,
.nav-widget .nav-widget__close,
.nav-widget .nav-widget__close:hover,
.nav-widget .nav-widget__close:focus,
.nav-widget .nav-widget__close:focus-visible,
.nav-widget .nav-widget__close:active,
.nav-widget .nav-widget__toggle-icon,
.nav-widget .nav-widget__toggle-icon *,
.nav-widget .nav-widget__close-icon,
.nav-widget .nav-widget__close-icon * {
  background: transparent !important;
  background-color: transparent !important;
}

/* Couleur de secours pour garder les boutons visibles sans reglage Elementor. */
.nav-widget__toggle,
.nav-widget__toggle:hover,
.nav-widget__toggle:focus,
.nav-widget__toggle:focus-visible,
.nav-widget__toggle:active,
.nav-widget__close,
.nav-widget__close:hover,
.nav-widget__close:focus,
.nav-widget__close:focus-visible,
.nav-widget__close:active {
  color: #000;
}

/* Panneau qui contient la liste du menu.
   En desktop non-burger, il reste dans le flux normal. */
.nav-widget__panel {
  flex: 0 1 auto;
  min-width: 0;
  position: relative;
}

/* Liste principale du menu. L'alignement vient de --nav-menu-align. */
.nav-widget__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: var(--nav-menu-align);
  list-style: none;
  margin: 0;
  padding: 0;
}

/* Chaque item sert de reference de position pour son sous-menu absolu. */
.nav-widget__item {
  position: relative;
  margin: 0;
}

/* Ligne qui regroupe le lien et le bouton de sous-menu. */
.nav-widget__link-row {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
}

/* Le widget ne force pas d'apparence de texte par defaut. */
.nav-widget__link,
.nav-widget__submenu-link {
  text-decoration: none;
}

/* Focus clavier de secours.
   Les controles Elementor peuvent modifier couleur, epaisseur et rayon. */
.nav-widget__link:focus-visible,
.nav-widget__submenu-link:focus-visible,
.nav-widget__submenu-toggle:focus-visible,
.nav-widget__toggle:focus-visible,
.nav-widget__close:focus-visible {
  background: transparent;
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

/* Un item sans URL est rendu comme texte simple. */
.nav-widget__link--text {
  cursor: default;
}

/* Bouton qui ouvre ou ferme un sous-menu. */
.nav-widget__submenu-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  border: 0;
  appearance: none;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: 1;
  box-shadow: none;
}

/* Icone du bouton de sous-menu.
   La rotation reste pilotee par des variables pour eviter de casser les styles. */
.nav-widget__submenu-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  margin: 0;
  padding: 0;
  line-height: 1;
  transform-origin: center;
  transition: var(--nav-submenu-icon-transition);
}

/* Normalise les icones Font Awesome et SVG rendues par Elementor. */
.nav-widget__submenu-icon > *,
.nav-widget__submenu-icon i,
.nav-widget__submenu-icon svg {
  margin: 0;
  padding: 0;
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* Etat ouvert d'un item: l'icone peut tourner si la variable le demande. */
.nav-widget__item.is-open > .nav-widget__link-row .nav-widget__submenu-icon,
.nav-widget__item.is-open > .nav-widget__submenu-link-row .nav-widget__submenu-icon {
  transform: rotate(var(--nav-submenu-icon-open-rotation));
}

/* Sous-menu desktop: cache par defaut, positionne sous son parent. */
.nav-widget__submenu {
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 12rem;
  list-style: none;
  margin: 0;
  padding: 0;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 20;
}

.nav-widget__submenu-item {
  margin: 0;
}

/* Ligne d'un lien de sous-menu. */
.nav-widget__submenu-link-row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.nav-widget__submenu-link {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
}

/* Texte cache visuellement mais lu par les lecteurs d'ecran. */
.nav-widget__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Le JS ajoute is-open pour rendre le sous-menu visible. */
.nav-widget__item.is-open > .nav-widget__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* Sous-menu imbrique: il s'ouvre a droite du sous-menu parent. */
.nav-widget__submenu .nav-widget__submenu {
  top: 0;
  left: 100%;
}

/* Desktop: le mode vient de data-menu-orientation. */
@media (min-width: 1025px) {
  /* En horizontal/vertical, le bouton burger n'a pas lieu d'etre. */
  .nav-widget:not([data-menu-orientation="burger"]) .nav-widget__bar {
    display: none !important;
  }

  .nav-widget:not([data-menu-orientation="burger"]) .nav-widget__toggle {
    display: none !important;
  }

  .nav-widget:not([data-menu-orientation="burger"]) .nav-widget__panel {
    display: block;
    visibility: visible;
    pointer-events: auto;
  }

  /* Mode vertical desktop: la liste principale passe en colonne. */
  .nav-widget[data-menu-orientation="vertical"] .nav-widget__list {
    flex-direction: column;
    align-items: var(--nav-menu-align);
    flex-wrap: nowrap;
  }

  .nav-widget[data-menu-orientation="vertical"] .nav-widget__submenu {
    top: 0;
    left: 100%;
  }

  /* Mode burger meme sur desktop, si Elementor l'a choisi. */
  .nav-widget[data-menu-orientation="burger"] {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .nav-widget[data-menu-orientation="burger"] .nav-widget__bar {
    align-items: center;
    justify-content: flex-end;
    width: 100%;
  }

  /* Position du bouton burger selon le controle Elementor. */
  .nav-widget[data-menu-orientation="burger"][data-toggle-position="left"] .nav-widget__bar {
    justify-content: flex-start;
  }

  .nav-widget[data-menu-orientation="burger"][data-toggle-position="center"] .nav-widget__bar {
    justify-content: center;
  }

  .nav-widget[data-menu-orientation="burger"][data-toggle-position="right"] .nav-widget__bar {
    justify-content: flex-end;
  }

  .nav-widget[data-menu-orientation="burger"] .nav-widget__toggle,
  .nav-widget[data-menu-orientation="burger"].nav-widget--enhanced .nav-widget__toggle {
    display: inline-flex;
  }

  /* En burger, seul l'icone est affichee: le texte reste accessible via aria-label. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__toggle-label {
    display: none;
  }

  /* Le bouton burger disparait pendant que le panneau est ouvert. */
  .nav-widget[data-menu-orientation="burger"].nav-widget--open .nav-widget__toggle {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  /* Overlay plein ecran derriere le panneau burger. */
  .nav-widget[data-menu-orientation="burger"]::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 998;
    background: var(--nav-mobile-overlay-bg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .nav-widget[data-menu-orientation="burger"].nav-widget--open::before {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Panneau lateral du burger desktop. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__panel,
  .nav-widget[data-menu-orientation="burger"].nav-widget--enhanced .nav-widget__panel {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 999;
    display: block;
    width: min(var(--nav-mobile-panel-width, 86vw), calc(100vw - 1rem), 420px);
    max-width: calc(100vw - 1rem);
    max-height: 100vh;
    margin: 0;
    padding: var(--nav-mobile-panel-padding);
    border-radius: var(--nav-mobile-panel-radius);
    background: var(--nav-mobile-panel-bg);
    color: var(--nav-mobile-panel-text);
    overscroll-behavior: contain;
    overflow-x: hidden;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
  }

  /* Utilise les unites dynamiques si le navigateur les supporte. */
  @supports (width: 100dvw) {
    .nav-widget[data-menu-orientation="burger"] .nav-widget__panel,
    .nav-widget[data-menu-orientation="burger"].nav-widget--enhanced .nav-widget__panel {
      width: min(var(--nav-mobile-panel-width, 86vw), calc(100dvw - 1rem), 420px);
      max-width: calc(100dvw - 1rem);
      max-height: 100dvh;
    }
  }

  /* Direction d'ouverture du panneau burger. */
  .nav-widget[data-menu-orientation="burger"][data-mobile-panel-position="left"] .nav-widget__panel {
    left: 0;
    right: auto;
    transform: translateX(-100%);
  }

  .nav-widget[data-menu-orientation="burger"][data-mobile-panel-position="right"] .nav-widget__panel {
    right: 0;
    left: auto;
    transform: translateX(100%);
  }

  /* Panneau visible quand le JS ajoute nav-widget--open. */
  .nav-widget[data-menu-orientation="burger"].nav-widget--open .nav-widget__panel {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
  }

  /* Bouton de fermeture place dans le panneau burger. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    cursor: pointer;
    font: inherit;
  }

  /* En burger, les liens deviennent une colonne pleine largeur. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__list {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
  }

  /* Couleurs du panneau burger pilotees par variables Elementor. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__link-row,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-link-row {
    max-width: 100%;
    width: 100%;
    justify-content: flex-start;
    background: var(--nav-mobile-panel-link-bg);
    color: var(--nav-mobile-panel-text);
  }

  .nav-widget[data-menu-orientation="burger"] .nav-widget__link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-link {
    min-width: 0;
    color: var(--nav-mobile-panel-text);
    overflow-wrap: anywhere;
  }

  .nav-widget[data-menu-orientation="burger"] .nav-widget__link-row:hover,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__item:focus-within > .nav-widget__link-row,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__item.is-open > .nav-widget__link-row,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-link-row:hover,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-item:focus-within > .nav-widget__submenu-link-row,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-item.is-open > .nav-widget__submenu-link-row {
    background: var(--nav-mobile-panel-link-hover-bg);
  }

  .nav-widget[data-menu-orientation="burger"] .nav-widget__link-row:hover .nav-widget__link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__item:focus-within > .nav-widget__link-row .nav-widget__link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__item.is-open > .nav-widget__link-row .nav-widget__link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-link-row:hover .nav-widget__submenu-link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-item:focus-within > .nav-widget__submenu-link-row .nav-widget__submenu-link,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu-item.is-open > .nav-widget__submenu-link-row .nav-widget__submenu-link {
    color: var(--nav-mobile-panel-link-hover-text, var(--nav-mobile-panel-text));
  }

  /* En burger, les sous-menus sont dans le flux et s'ouvrent au clic. */
  .nav-widget[data-menu-orientation="burger"] .nav-widget__submenu {
    position: static;
    min-width: 0;
    display: none;
  }

  /* Sans JS, les sous-menus restent visibles pour ne pas bloquer la navigation. */
  .nav-widget[data-menu-orientation="burger"]:not(.nav-widget--enhanced) .nav-widget__submenu,
  .nav-widget[data-menu-orientation="burger"] .nav-widget__item.is-open > .nav-widget__submenu {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Tablette et mobile par defaut: comportement burger. */
@media (max-width: 1024px) {
  /* Le widget place le bouton burger selon data-toggle-position. */
  .nav-widget {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .nav-widget__bar {
    align-items: center;
    justify-content: flex-end;
    width: 100%;
  }

  .nav-widget[data-toggle-position="left"] .nav-widget__bar {
    justify-content: flex-start;
  }

  .nav-widget[data-toggle-position="center"] .nav-widget__bar {
    justify-content: center;
  }

  .nav-widget[data-toggle-position="right"] .nav-widget__bar {
    justify-content: flex-end;
  }

  .nav-widget__toggle,
  .nav-widget.nav-widget--enhanced .nav-widget__toggle {
    display: inline-flex;
  }

  .nav-widget__toggle-label {
    display: none;
  }

  .nav-widget.nav-widget--open .nav-widget__toggle {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  /* Overlay mobile derriere le panneau. */
  .nav-widget::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 998;
    background: var(--nav-mobile-overlay-bg);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .nav-widget.nav-widget--open::before {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  /* Panneau burger mobile. */
  .nav-widget__panel,
  .nav-widget.nav-widget--enhanced .nav-widget__panel {
    position: fixed;
    top: 0;
    bottom: 0;
    z-index: 999;
    display: block;
    width: min(var(--nav-mobile-panel-width, 86vw), calc(100vw - 1rem), 420px);
    max-width: calc(100vw - 1rem);
    max-height: 100vh;
    margin: 0;
    padding: var(--nav-mobile-panel-padding);
    border-radius: var(--nav-mobile-panel-radius);
    background: var(--nav-mobile-panel-bg);
    color: var(--nav-mobile-panel-text);
    overscroll-behavior: contain;
    overflow-x: hidden;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
  }

  /* Unites dynamiques pour les navigateurs mobiles modernes. */
  @supports (width: 100dvw) {
    .nav-widget__panel,
    .nav-widget.nav-widget--enhanced .nav-widget__panel {
      width: min(var(--nav-mobile-panel-width, 86vw), calc(100dvw - 1rem), 420px);
      max-width: calc(100dvw - 1rem);
      max-height: 100dvh;
    }
  }

  /* Direction d'ouverture du panneau mobile. */
  .nav-widget[data-mobile-panel-position="left"] .nav-widget__panel {
    left: 0;
    right: auto;
    transform: translateX(-100%);
  }

  .nav-widget[data-mobile-panel-position="right"] .nav-widget__panel {
    right: 0;
    left: auto;
    transform: translateX(100%);
  }

  .nav-widget.nav-widget--open .nav-widget__panel {
    transform: translateX(0);
    visibility: visible;
    pointer-events: auto;
  }

  .nav-widget__close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    cursor: pointer;
    font: inherit;
  }

  .nav-widget__list {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
  }

  /* Alignement des liens dans le panneau burger. */
  .nav-widget[data-mobile-menu-align="left"] .nav-widget__panel,
  .nav-widget[data-mobile-menu-align="left"] .nav-widget__list {
    align-items: flex-start;
  }

  .nav-widget[data-mobile-menu-align="center"] .nav-widget__panel,
  .nav-widget[data-mobile-menu-align="center"] .nav-widget__list {
    align-items: center;
  }

  .nav-widget[data-mobile-menu-align="right"] .nav-widget__panel,
  .nav-widget[data-mobile-menu-align="right"] .nav-widget__list {
    align-items: flex-end;
  }

  .nav-widget[data-mobile-menu-align="stretch"] .nav-widget__panel,
  .nav-widget[data-mobile-menu-align="stretch"] .nav-widget__list {
    align-items: stretch;
  }

  /* Liens du panneau burger: largeur complete et couleurs via variables. */
  .nav-widget__link-row,
  .nav-widget__submenu-link-row {
    max-width: 100%;
    width: 100%;
    justify-content: flex-start;
    background: var(--nav-mobile-panel-link-bg);
    color: var(--nav-mobile-panel-text);
  }

  .nav-widget__link-row:hover,
  .nav-widget__item:focus-within > .nav-widget__link-row,
  .nav-widget__item.is-open > .nav-widget__link-row,
  .nav-widget__submenu-link-row:hover,
  .nav-widget__submenu-item:focus-within > .nav-widget__submenu-link-row,
  .nav-widget__submenu-item.is-open > .nav-widget__submenu-link-row {
    background: var(--nav-mobile-panel-link-hover-bg);
  }

  .nav-widget__link-row:hover .nav-widget__link,
  .nav-widget__item:focus-within > .nav-widget__link-row .nav-widget__link,
  .nav-widget__item.is-open > .nav-widget__link-row .nav-widget__link,
  .nav-widget__submenu-link-row:hover .nav-widget__submenu-link,
  .nav-widget__submenu-item:focus-within > .nav-widget__submenu-link-row .nav-widget__submenu-link,
  .nav-widget__submenu-item.is-open > .nav-widget__submenu-link-row .nav-widget__submenu-link {
    color: var(--nav-mobile-panel-link-hover-text, var(--nav-mobile-panel-text));
  }

  .nav-widget__item,
  .nav-widget__submenu,
  .nav-widget__submenu-item {
    max-width: 100%;
  }

  /* Les longs textes ne doivent pas deborder du panneau mobile. */
  .nav-widget__link,
  .nav-widget__submenu-link {
    min-width: 0;
    color: var(--nav-mobile-panel-text);
    overflow-wrap: anywhere;
  }

  /* En burger, les sous-menus sont caches puis affiches dans le flux. */
  .nav-widget__submenu {
    position: static;
    min-width: 0;
    display: none;
  }

  .nav-widget:not(.nav-widget--enhanced) .nav-widget__submenu,
  .nav-widget__item.is-open > .nav-widget__submenu {
    display: block;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Tablette: si Elementor force horizontal ou vertical, on annule le burger. */
@media (min-width: 768px) and (max-width: 1024px) {
  /* Cache les boutons burger pour les modes non-burger. */
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__bar,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__bar,
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__toggle,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__toggle,
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__close,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__close {
    display: none !important;
  }

  .nav-widget[data-menu-orientation-tablet="horizontal"]::before,
  .nav-widget[data-menu-orientation-tablet="vertical"]::before {
    display: none;
  }

  /* Repositionne le panneau comme un menu normal. */
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__panel,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__panel,
  .nav-widget[data-menu-orientation-tablet="horizontal"].nav-widget--enhanced .nav-widget__panel,
  .nav-widget[data-menu-orientation-tablet="vertical"].nav-widget--enhanced .nav-widget__panel {
    position: relative;
    inset: auto;
    z-index: auto;
    display: block;
    width: auto;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__list,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__list {
    align-items: center;
    justify-content: var(--nav-menu-align);
    width: auto;
    max-width: none;
  }

  /* Applique la direction choisie pour la liste tablette. */
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__list {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__list {
    flex-direction: column;
    align-items: var(--nav-menu-align);
    flex-wrap: nowrap;
  }

  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__link-row,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__link-row,
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__submenu-link-row,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__submenu-link-row {
    width: auto;
    max-width: none;
    background: transparent;
    color: inherit;
  }

  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__link,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__link,
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__submenu-link,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__submenu-link {
    color: inherit;
  }

  /* Les sous-menus redeviennent des panneaux absolus. */
  .nav-widget[data-menu-orientation-tablet="horizontal"] .nav-widget__submenu,
  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__submenu {
    position: absolute;
    display: block;
    min-width: 12rem;
  }

  .nav-widget[data-menu-orientation-tablet="vertical"] .nav-widget__submenu {
    top: 0;
    left: 100%;
  }
}

/* Mobile: si Elementor force horizontal ou vertical, on annule aussi le burger. */
@media (max-width: 767px) {
  /* Cache les boutons burger pour les modes non-burger. */
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__bar,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__bar,
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__toggle,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__toggle,
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__close,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__close {
    display: none !important;
  }

  .nav-widget[data-menu-orientation-mobile="horizontal"]::before,
  .nav-widget[data-menu-orientation-mobile="vertical"]::before {
    display: none;
  }

  /* Repositionne le panneau comme un menu normal. */
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__panel,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__panel,
  .nav-widget[data-menu-orientation-mobile="horizontal"].nav-widget--enhanced .nav-widget__panel,
  .nav-widget[data-menu-orientation-mobile="vertical"].nav-widget--enhanced .nav-widget__panel {
    position: relative;
    inset: auto;
    z-index: auto;
    display: block;
    width: auto;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    overflow: visible;
    visibility: visible;
    pointer-events: auto;
    transform: none;
  }

  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__list,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__list {
    align-items: center;
    justify-content: var(--nav-menu-align);
    width: auto;
    max-width: none;
  }

  /* Applique la direction choisie pour la liste mobile. */
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__list {
    flex-direction: row;
    flex-wrap: wrap;
  }

  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__list {
    flex-direction: column;
    align-items: var(--nav-menu-align);
    flex-wrap: nowrap;
  }

  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__link-row,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__link-row,
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__submenu-link-row,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__submenu-link-row {
    width: auto;
    max-width: none;
    background: transparent;
    color: inherit;
  }

  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__link,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__link,
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__submenu-link,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__submenu-link {
    color: inherit;
  }

  /* Les sous-menus redeviennent des panneaux absolus. */
  .nav-widget[data-menu-orientation-mobile="horizontal"] .nav-widget__submenu,
  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__submenu {
    position: absolute;
    display: block;
    min-width: 12rem;
  }

  .nav-widget[data-menu-orientation-mobile="vertical"] .nav-widget__submenu {
    top: 0;
    left: 100%;
  }
}
