/* menu-principal — plugin « Fonctions personnalisées » (menu WordPress + méga-menu des catégories) */
.bmp {
	--bmp-accent: var(--bgs-accent, var(--bde-brand-primary-color, #c8102e));
	--bmp-texte: var(--bgs-texte, var(--bde-body-text-color, #1c1917));
	--bmp-gris: var(--bgs-gris, #78716c);
	--bmp-bord: var(--bgs-bord, #e7e5e4);
	--bmp-fond: var(--bgs-fond, #f5f5f4);
	--bmp-carte: var(--bgs-carte, #fff);
	--bmp-decalage: 0px;
	position: relative;
	display: flex;
	align-items: center;
	min-width: 0;
	color: var(--bmp-lien, var(--bmp-texte));
	font-family: var(--bmp-police, inherit);
	font-size: var(--bmp-taille, 15px);
	line-height: 1.3;
}
.bmp--gauche { justify-content: flex-start; }
.bmp--centre { justify-content: center; }
.bmp--droite { justify-content: flex-end; }
.bmp *, .bmp *::before, .bmp *::after { box-sizing: border-box; }
.bmp ul { margin: 0; padding: 0; list-style: none; }
.bmp li { margin: 0; padding: 0; }
.bmp li::before { display: none; }
.bmp .bmp__sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Barre (ordinateur) */
.bmp .bmp__burger, .bmp .bmp__voile, .bmp .bmp__panneau-entete { display: none; }
.bmp .bmp__panneau { display: block; min-width: 0; }
.bmp .bmp__liste { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bmp-ecart, 4px); }
.bmp .bmp__item { position: static; }
.bmp .bmp__ligne { display: flex; align-items: center; }
.bmp .bmp__lien { position: relative; display: inline-flex; align-items: center; padding: var(--bmp-hauteur, 10px) 12px; border-radius: 10px; color: var(--bmp-lien, inherit) !important; font-family: inherit; font-size: inherit; font-weight: var(--bmp-graisse, 600); letter-spacing: var(--bmp-lettres, normal); text-transform: var(--bmp-casse, none); text-decoration: none !important; white-space: nowrap; transition: color .2s, background .2s; }
.bmp .bmp__lien:hover, .bmp .bmp__item:hover > .bmp__ligne .bmp__lien { color: var(--bmp-survol, var(--bmp-accent)) !important; }
.bmp .bmp__lien.is-actif { color: var(--bmp-actif, var(--bmp-survol, var(--bmp-accent))) !important; }
.bmp .bmp__bascule { display: grid; place-items: center; width: 28px; height: 28px; margin: 0 0 0 -8px; padding: 0; border: 0; border-radius: 8px; background: none; color: var(--bmp-lien, inherit); cursor: pointer; }
.bmp .bmp__bascule svg { transition: transform .2s; }
.bmp .is-ouvert > .bmp__ligne .bmp__bascule svg, .bmp .bmp__item:hover > .bmp__ligne .bmp__bascule svg { transform: rotate(180deg); }

/* Sous-menus déroulants */
.bmp .bmp__item.has-sous:not(.has-mega) { position: relative; }
.bmp .bmp__sous { position: absolute; top: 100%; left: 0; z-index: 1000; min-width: 240px; padding: 8px; border: 1px solid var(--bmp-sous-bord, var(--bmp-bord)); border-radius: 14px; background: var(--bmp-sous-fond, var(--bmp-carte)); box-shadow: 0 2px 4px rgba(28,25,23,.05), 0 16px 40px rgba(28,25,23,.14); opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity .18s, transform .18s, visibility .18s; }
.bmp .bmp__sous .bmp__sous { top: -9px; left: 100%; margin-left: 6px; }
.bmp .bmp__sous-item { position: relative; }
.bmp .bmp__sous-lien { display: block; flex: 1; padding: 9px 12px; border-radius: 9px; color: var(--bmp-sous-texte, var(--bmp-texte)) !important; font-family: inherit; font-weight: 500; text-decoration: none !important; transition: background .2s, color .2s; }
.bmp .bmp__sous-lien:hover, .bmp .bmp__sous-lien.is-actif { background: var(--bmp-sous-teinte, var(--bmp-fond)); color: var(--bmp-sous-survol, var(--bmp-accent)) !important; }
.bmp .bmp__sous .bmp__bascule { color: var(--bmp-sous-texte, var(--bmp-texte)); }
.bmp .bmp__sous .bmp__bascule { transform: rotate(-90deg); }
.bmp .is-a-droite > .bmp__sous { left: auto; right: 0; }
.bmp .is-a-droite .bmp__sous .bmp__sous { left: auto; right: 100%; margin: 0 6px 0 0; }
.bmp .is-a-droite .bmp__sous .bmp__bascule { transform: rotate(90deg); }

/* Méga-menu des catégories */
.bmp .bmp__mega { position: absolute; top: 100%; left: calc(50% + var(--bmp-decalage)); z-index: 1000; width: min(1100px, calc(100vw - 32px)); padding: 28px; border: 1px solid var(--bmp-sous-bord, var(--bmp-bord)); border-radius: 20px; background: var(--bmp-sous-fond, var(--bmp-carte)); box-shadow: 0 2px 4px rgba(28,25,23,.05), 0 24px 60px rgba(28,25,23,.16); opacity: 0; visibility: hidden; transform: translate(-50%, 6px); transition: opacity .18s, transform .18s, visibility .18s; }
.bmp .bmp__mega .bsm-menu { --bsm-accent: var(--bmp-sous-survol, var(--bmp-accent)); --bsm-texte: var(--bmp-sous-texte, var(--bmp-texte)); --bsm-titre: var(--bmp-sous-texte, var(--bgs-titre, var(--bde-headings-color, var(--bmp-texte)))); --bsm-gris: var(--bmp-sous-gris, var(--bmp-gris)); --bsm-bord: var(--bmp-sous-bord, var(--bmp-bord)); --bsm-fond: var(--bmp-sous-teinte, var(--bmp-fond)); font-family: var(--bmp-police, inherit); }

/* Ouverture : survol, focus clavier, ou clic (écrans tactiles) */
.bmp .bmp__item:hover > .bmp__sous, .bmp .bmp__item:focus-within > .bmp__sous, .bmp .is-ouvert > .bmp__sous,
.bmp .bmp__sous-item:hover > .bmp__sous, .bmp .bmp__sous-item:focus-within > .bmp__sous { opacity: 1; visibility: visible; transform: none; }
.bmp .bmp__item:hover > .bmp__mega, .bmp .bmp__item:focus-within > .bmp__mega, .bmp .is-ouvert > .bmp__mega { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
/* Pont invisible entre le lien et le panneau (le survol ne se perd pas) */
.bmp .bmp__sous::before, .bmp .bmp__mega::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }

/* Panneau mobile (règles générées par le plugin selon la largeur choisie) */
.bmp .bmp__burger { align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0; padding: 0; border: 0; border-radius: 12px; background: none; color: var(--bmp-burger, var(--bmp-lien, inherit)); cursor: pointer; }
.bmp .bmp__burger-icone { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.bmp .bmp__burger-icone span { display: block; height: 2px; border-radius: 2px; background: currentColor; }
.bmp .bmp__panneau-entete { align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--bmp-bord); margin-bottom: 8px; }
.bmp .bmp__panneau-titre { font-size: 18px; font-weight: 800; }
.bmp .bmp__fermer { display: grid; place-items: center; width: 40px; height: 40px; margin: 0; padding: 0; border: 0; border-radius: 10px; background: var(--bmp-fond); color: var(--bmp-texte); font-size: 16px; cursor: pointer; }
html.bmp-sans-defilement { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .bmp *, .bmp *::before { transition: none !important; } }

/* Icônes des éléments de menu */
.bmp .has-icone { gap: .45em; }
.bmp .bmp__sous-lien.has-icone { display: flex; align-items: center; }
.bmp .bmp__icone { display: inline-grid; place-items: center; flex: none; width: var(--bmp-icone, 1.15em); height: var(--bmp-icone, 1.15em); line-height: 0; }
.bmp .bmp__icone svg { display: block; width: 100%; height: 100%; fill: currentColor; }
.bmp .is-icone-seule .bmp__texte { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
