/*
 * DBFI - Menu, feuille de style.
 * Tout est scope sous #dbfi-menu : aucune regle ne peut toucher le reste de la
 * page. Flexbox uniquement, aucune grille CSS, conformement a la regle du site.
 * Valeurs relevees sur le rendu de Max Mega Menu le 17 octobre 2026.
 *
 * Version 1.0.1 : le panneau prend la largeur de ses colonnes au lieu d une
 * largeur fixe. Defaut trouve au controle, les quatre colonnes de Particuliers
 * demandaient 1120 px et s empilaient dans un panneau de 320 px.
 */

#dbfi-menu {
	--dbfi-noir: #000000;
	--dbfi-lime: #b3bc00;
	--dbfi-blanc: #ffffff;
	--dbfi-hauteur: 46px;
	position: relative;
	background: var(--dbfi-noir);
	font-size: 15px;
	line-height: 1.4;
}

#dbfi-menu * { box-sizing: border-box; }

/*
 * Neutralisation des regles de GeneratePress sur les sous-listes de
 * navigation. Le theme pose position absolute sur .main-navigation ul ul :
 * les listes sortaient du flux et le panneau, qui prend la largeur de son
 * contenu, ne mesurait plus que son propre remplissage, 44 px. Defaut trouve
 * au controle du 17 octobre 2026 sur Les Hubs et Qui sommes-nous.
 * La portee reste limitee a l identifiant dbfi-menu.
 */
#dbfi-menu .dbfi-menu-panneau,
#dbfi-menu .dbfi-menu-colonnes,
#dbfi-menu .dbfi-menu-colonne,
#dbfi-menu .dbfi-menu-liste,
#dbfi-menu .dbfi-menu-liste li {
	float: none;
	width: auto;
	height: auto;
	opacity: 1;
	visibility: visible;
	transform: none;
	transition: none;
}

#dbfi-menu .dbfi-menu-colonnes,
#dbfi-menu .dbfi-menu-colonne,
#dbfi-menu .dbfi-menu-liste,
#dbfi-menu .dbfi-menu-liste li {
	position: static;
	top: auto;
	left: auto;
	right: auto;
	background: none;
	box-shadow: none;
	border: 0;
}

#dbfi-menu .dbfi-menu-lecture {
	position: absolute; width: 1px; height: 1px; overflow: hidden;
	clip: rect(0 0 0 0); white-space: nowrap;
}

/* La barre */
#dbfi-menu .dbfi-menu-barre {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
	background: var(--dbfi-noir);
}

#dbfi-menu .dbfi-menu-entree {
	position: relative;
	margin: 0;
	padding: 0;
	list-style: none;
}

#dbfi-menu .dbfi-menu-lien {
	display: block;
	padding: 0 16px;
	color: var(--dbfi-blanc);
	font-size: 15px;
	font-weight: 600;
	line-height: var(--dbfi-hauteur);
	text-decoration: none;
	white-space: nowrap;
}

#dbfi-menu .dbfi-menu-entree:hover > .dbfi-menu-lien,
#dbfi-menu .dbfi-menu-lien:focus-visible {
	color: var(--dbfi-lime);
}

/* Le bouton d ouverture d un panneau, discret en bureau, il sert au clavier */
#dbfi-menu .dbfi-menu-ouvrir {
	position: absolute;
	top: 0; right: 0;
	width: 14px; height: var(--dbfi-hauteur);
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

#dbfi-menu .dbfi-a-panneau > .dbfi-menu-lien { padding-right: 26px; }

#dbfi-menu .dbfi-menu-fleche {
	position: absolute;
	top: 50%; right: 4px;
	width: 7px; height: 7px;
	margin-top: -5px;
	border-right: 2px solid var(--dbfi-blanc);
	border-bottom: 2px solid var(--dbfi-blanc);
	transform: rotate(45deg);
	transition: transform .15s ease, border-color .15s ease;
}

#dbfi-menu .dbfi-menu-entree:hover .dbfi-menu-fleche { border-color: var(--dbfi-lime); }

/* Le panneau. Il prend la largeur de son contenu, sans jamais sortir de l ecran. */
#dbfi-menu .dbfi-menu-panneau {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 999;
	display: none;
	width: max-content;
	max-width: 92vw;
	padding: 22px 22px 26px;
	background: var(--dbfi-noir);
	box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .35);
}

/* Les deux dernieres entrees ouvrent vers la gauche, pour ne pas deborder. */
#dbfi-menu .dbfi-menu-entree:nth-last-child(-n+3) > .dbfi-menu-panneau {
	left: auto;
	right: 0;
}

#dbfi-menu .dbfi-menu-entree:hover > .dbfi-menu-panneau,
#dbfi-menu .dbfi-menu-entree:focus-within > .dbfi-menu-panneau,
#dbfi-menu .dbfi-menu-entree.dbfi-ouvert > .dbfi-menu-panneau {
	display: block;
}

/* Les colonnes, en flexbox, sur une seule rangee en bureau */
#dbfi-menu .dbfi-menu-colonnes {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	margin: 0 -14px;
}

#dbfi-menu .dbfi-menu-colonne {
	flex: 0 1 auto;
	min-width: 180px;
	max-width: 250px;
	padding: 0 14px;
}

#dbfi-menu .dbfi-menu-colonne-titre {
	display: block;
	padding-bottom: 6px;
	margin-bottom: 8px;
	color: var(--dbfi-blanc);
	font-size: 15px;
	font-weight: 700;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid rgba(255, 255, 255, .18);
}

#dbfi-menu .dbfi-menu-colonne-titre:hover,
#dbfi-menu .dbfi-menu-colonne-titre:focus-visible { color: var(--dbfi-lime); }

/* Les liens d une colonne ou d une liste */
#dbfi-menu .dbfi-menu-liste { margin: 0; padding: 0; list-style: none; }
#dbfi-menu .dbfi-menu-liste li { margin: 0; padding: 0; list-style: none; }

#dbfi-menu .dbfi-menu-liste a {
	display: block;
	padding: 5px 0;
	color: rgba(255, 255, 255, .88);
	font-size: 14px;
	font-weight: 400;
	text-decoration: none;
}

#dbfi-menu .dbfi-menu-liste a:hover,
#dbfi-menu .dbfi-menu-liste a:focus-visible { color: var(--dbfi-lime); }

#dbfi-menu .dbfi-menu-liste-seule { min-width: 230px; }

/* Le bouton mobile, cache en bureau */
#dbfi-menu .dbfi-menu-bouton { display: none; }

/* Mobile, en dessous de 861 px, seuil du theme */
@media (max-width: 860px) {

	#dbfi-menu { --dbfi-hauteur: 44px; }

	/*
	 * GeneratePress masque la navigation en dessous de 768 px, par la regle
	 * .main-navigation ul, .has-inline-mobile-toggle ... display none.
	 * Elle existait parce que Max Mega Menu prenait la main sur le mobile.
	 * Ce menu la reprend, il doit donc se reafficher. La portee est limitee a
	 * l identifiant dbfi-menu, aucune autre partie de la page n est touchee.
	 */
	#dbfi-menu,
	.main-navigation #dbfi-menu,
	.has-inline-mobile-toggle #dbfi-menu {
		display: block !important;
	}

	#dbfi-menu .dbfi-menu-bouton {
		display: flex;
		align-items: center;
		width: 100%;
		height: var(--dbfi-hauteur);
		padding: 0 16px;
		border: 0;
		background: var(--dbfi-noir);
		color: var(--dbfi-blanc);
		font-size: 15px;
		font-weight: 600;
		cursor: pointer;
	}

	#dbfi-menu .dbfi-menu-trait {
		position: relative;
		display: inline-block;
		width: 20px; height: 2px;
		margin-right: 10px;
		background: currentColor;
	}
	#dbfi-menu .dbfi-menu-trait::before,
	#dbfi-menu .dbfi-menu-trait::after {
		content: ""; position: absolute; left: 0;
		width: 20px; height: 2px; background: currentColor;
	}
	#dbfi-menu .dbfi-menu-trait::before { top: -6px; }
	#dbfi-menu .dbfi-menu-trait::after  { top: 6px; }

	#dbfi-menu .dbfi-menu-barre { display: none; flex-direction: column; }
	#dbfi-menu.dbfi-ouvert .dbfi-menu-barre { display: flex; }

	#dbfi-menu .dbfi-menu-entree { border-top: 1px solid rgba(255, 255, 255, .12); }

	#dbfi-menu .dbfi-menu-lien { line-height: 1.4; padding: 13px 16px; }
	#dbfi-menu .dbfi-a-panneau > .dbfi-menu-lien { padding-right: 56px; }

	#dbfi-menu .dbfi-menu-ouvrir { width: 48px; height: 44px; }
	#dbfi-menu .dbfi-menu-fleche { right: 20px; transform: rotate(45deg); }
	#dbfi-menu .dbfi-ouvert > .dbfi-menu-ouvrir .dbfi-menu-fleche { transform: rotate(-135deg); }

	/* En mobile le panneau ne flotte pas, il se deplie */
	#dbfi-menu .dbfi-menu-panneau,
	#dbfi-menu .dbfi-menu-entree:nth-last-child(-n+3) > .dbfi-menu-panneau {
		position: static;
		left: auto;
		right: auto;
		width: auto;
		max-width: none;
		padding: 4px 16px 14px;
		box-shadow: none;
	}
	#dbfi-menu .dbfi-menu-entree:hover > .dbfi-menu-panneau,
	#dbfi-menu .dbfi-menu-entree:focus-within > .dbfi-menu-panneau { display: none; }
	#dbfi-menu .dbfi-menu-entree.dbfi-ouvert > .dbfi-menu-panneau { display: block; }

	#dbfi-menu .dbfi-menu-colonnes { flex-wrap: wrap; flex-direction: column; margin: 0; }
	#dbfi-menu .dbfi-menu-colonne { max-width: none; min-width: 0; padding: 8px 0 0; }
}
