/**
 * Widget « Menu burger » (générique, préfixe neutre « alt- »).
 *
 * Bouton à 3 lignes qui ouvre un popup Elementor (menu). Il ne fait QUE déclencher l'ouverture : la fermeture
 * est assurée par un widget dédié « Fermeture de modale » (croix) posé DANS le popup, qui vit alors dans le
 * contexte d'empilement du popup — plus de transformation burger→croix, plus de portage JS ni de bataille de
 * z-index. Dimensions et couleur sont pilotées par des variables CSS posées en inline par le widget.
 */

.alt-burger {
	--alt-burger-w: 36px;
	--alt-burger-th: 3px;
	--alt-burger-gap: 7px;
	--alt-burger-h: 23px;
	--alt-burger-color: #123347;
	--alt-burger-trans: 0.35s;

	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	line-height: 0;
	-webkit-appearance: none;
	appearance: none;
}

/* Boîte des lignes : largeur réglée, hauteur dérivée (3 épaisseurs + 2 interlignes). */
.alt-burger__box {
	position: relative;
	display: block;
	width: var(--alt-burger-w);
	height: var(--alt-burger-h);
}

/* Les 3 lignes : positionnées en haut / centre / bas de la boîte. */
.alt-burger__line {
	position: absolute;
	left: 0;
	width: 100%;
	height: var(--alt-burger-th);
	border-radius: var(--alt-burger-th);
	background: var(--alt-burger-color);
	transition: background-color var(--alt-burger-trans) ease;
}

.alt-burger__line:nth-child(1) {
	top: 0;
}

.alt-burger__line:nth-child(2) {
	top: calc(50% - (var(--alt-burger-th) / 2));
}

.alt-burger__line:nth-child(3) {
	top: calc(100% - var(--alt-burger-th));
}

/* Focus clavier visible (politique de focus commune). */
.alt-burger:focus-visible {
	outline: 2px solid var(--alt-burger-color);
	outline-offset: 4px;
	border-radius: 2px;
}

/*
 * Popup de menu : overlay fixe plein écran, épinglé en haut (classe posée sur le modal par le script).
 * Le `!important` garantit l'overlay même connecté (barre d'admin WordPress qui modifie le contexte).
 */
.elementor-popup-modal.alt-menu-modal {
	position: fixed !important;
	inset: 0 !important;
	align-items: flex-start !important;
}

/*
 * La fermeture se fait par le burger (croix) : on masque le bouton de fermeture natif d'Elementor, qui
 * resterait présent dans le DOM et pourrait capter le focus.
 */
.alt-menu-modal .dialog-close-button {
	display: none !important;
}

/*
 * Pas d'anneau de focus au focus souris dans le menu (le focus automatique à l'ouverture est retiré par le
 * script) ; le focus clavier (`:focus-visible`) reste visible pour l'accessibilité.
 */
.alt-menu-modal a:focus:not(:focus-visible),
.alt-menu-modal button:focus:not(:focus-visible) {
	outline: none !important;
	box-shadow: none !important;
}

/*
 * Focus clavier (`:focus-visible`) : anneau net sur les items du menu, en currentColor pour rester lisible
 * quel que soit le fond du popup. Garantit la navigation clavier même si le thème ne fournit aucun style.
 */
.alt-menu-modal a:focus-visible,
.alt-menu-modal button:focus-visible {
	outline: 2px solid currentColor !important;
	outline-offset: 3px;
	border-radius: 2px;
}

/* Verrou de défilement de la page tant qu'un menu burger est ouvert (classe posée sur <html> par le script). */
html.alt-menu-open,
html.alt-menu-open body {
	overflow: hidden !important;
}

/*
 * Menus = panneaux FIXES, sans défilement interne. Les liens légaux ne sont plus épinglés en bas (conteneur
 * en alignement « Début » dans Elementor, pas « Espacer entre ») : ils suivent le menu et tiennent dans
 * l'écran. On interdit donc le scroll de la modale et on borne le contenu au « petit » viewport (svh, qui
 * exclut la barre de Safari ; repli 100vh pour les anciens navigateurs) afin qu'il reste toujours dans la
 * zone visible, barre du navigateur comprise. Petite marge basse = safe-area (home indicator) avec un
 * plancher de 16px (env() n'agit que si le meta viewport passe en « viewport-fit=cover »).
 */
.alt-menu-modal .dialog-message {
	max-height: 100vh;
	max-height: 100svh;
	overflow: hidden !important; /* panneau fixe : pas de défilement interne (ni rebond iOS). */
	overscroll-behavior: contain;
}

.alt-menu-modal .elementor-location-popup > .e-con {
	max-height: 100vh;
	max-height: 100svh;
	padding-bottom: max(16px, env(safe-area-inset-bottom));
	box-sizing: border-box;
}

/* Accessibilité : réduction des animations. */
@media (prefers-reduced-motion: reduce) {

	.alt-burger__line {
		transition: none;
	}
}
