/* =========================================================================
   Divi Burger Menu — panneau off-canvas accessible pour le module Menu Divi 5
   RGAA 4.1 / WCAG 2.1 AA

   Réglage par site : surcharger ces variables dans
   Divi → Options du thème → CSS personnalisé, par ex.
     :root{ --dbm-side:left; --dbm-bg:#0e1a20; --dbm-accent:#e4b95b; }

   Point de rupture : si tu modifies --dbm-breakpoint, modifie AUSSI la ligne
   @media plus bas (et, idéalement, le breakpoint mobile de ton module Menu).
   ========================================================================= */

:root {
	--dbm-side: right;                 /* right | left */
	--dbm-width: min(86vw, 360px);
	--dbm-bg: #1b1b1b;
	--dbm-color: #ffffff;
	--dbm-color-muted: rgba(255, 255, 255, 0.72);
	--dbm-border: rgba(255, 255, 255, 0.16);
	--dbm-accent: #d8b45a;             /* rail actif + chevron (décoratif) */
	--dbm-focus: currentColor;         /* indicateur de focus — garder un contraste ≥ 3:1 */
	--dbm-backdrop: rgba(0, 0, 0, 0.55);
	--dbm-cta-radius: 8px;
	--dbm-fs-size: 2.4rem;             /* taille des liens en plein écran / cercle */
	--dbm-duration: 0.32s;
	--dbm-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--dbm-breakpoint: 980px;
	--dbm-z: 100000;
}

/* Hors du point de rupture : rien ne s'affiche (le panneau vit dans <body>). */
.dbm-panel,
.dbm-backdrop {
	display: none;
}

/* Verrou de défilement de la page quand un panneau est ouvert. */
html.dbm-lock,
html.dbm-lock body {
	overflow: hidden !important;
}
html.dbm-lock body {
	position: fixed;
	width: 100%;
	left: 0;
	padding-right: var(--dbm-scrollbar, 0px);
}

@media (max-width: 980px) {

	/* --------------------------------------------------------------------- */
	/* Anti-flash : avant que le JS ne pose notre bouton, on masque l'icône  */
	/* native de Divi et on dessine un burger identique sur le <span>.       */
	/* Le clic natif Divi reste actif en secours si le JS ne charge pas.     */
	/* --------------------------------------------------------------------- */
	.et_pb_menu .et_mobile_nav_menu .mobile_menu_bar::before,
	.mobile_nav .mobile_menu_bar::before,
	#et_mobile_nav_menu .mobile_menu_bar::before,
	#et-top-navigation .mobile_menu_bar::before {
		opacity: 0 !important;
	}
	.et_pb_menu .et_mobile_nav_menu .mobile_menu_bar,
	.mobile_nav .mobile_menu_bar,
	#et_mobile_nav_menu .mobile_menu_bar,
	#et-top-navigation .mobile_menu_bar {
		position: relative;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-width: 44px;
		min-height: 44px;
	}
	.et_pb_menu .et_mobile_nav_menu .mobile_menu_bar::after,
	.mobile_nav .mobile_menu_bar::after,
	#et_mobile_nav_menu .mobile_menu_bar::after,
	#et-top-navigation .mobile_menu_bar::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 22px;
		height: 2px;
		margin: -1px 0 0 -11px;
		border-radius: 2px;
		background: var(--dbm-burger-color, currentColor);
		box-shadow: 0 -7px 0 var(--dbm-burger-color, currentColor),
			0 7px 0 var(--dbm-burger-color, currentColor);
	}

	/* --------------------------------------------------------------------- */
	/* Bouton burger (remplace le <span> .mobile_menu_bar de Divi)          */
	/* --------------------------------------------------------------------- */
	.dbm-toggle {
		-webkit-appearance: none;
		appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 9px;
		min-width: 44px;
		min-height: 44px;
		margin: 0;
		padding: 0;
		background: none;
		border: 0;
		color: var(--dbm-burger-color, inherit);   /* vide = couleur du texte de l'en-tête */
		cursor: pointer;
		align-self: center;
		line-height: 0;
	}
	.dbm-toggle__word {
		font-size: 13px;
		font-weight: 600;
		line-height: 1;
		letter-spacing: 0.02em;
	}
	.dbm-toggle__box {
		position: relative;
		flex: 0 0 auto;
		width: 22px;
		height: 16px;
	}
	.dbm-toggle__box i {
		position: absolute;
		left: 0;
		width: 100%;
		height: 2px;
		border-radius: 2px;
		background: currentColor;
		transition: translate var(--dbm-duration) var(--dbm-ease),
			rotate var(--dbm-duration) var(--dbm-ease),
			opacity calc(var(--dbm-duration) * 0.6) var(--dbm-ease),
			width var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-toggle__box i:nth-child(1) { top: 0; }
	.dbm-toggle__box i:nth-child(2) { top: 7px; }
	.dbm-toggle__box i:nth-child(3) { top: 14px; }

	/* Croix quand le menu est ouvert (identique pour tous les styles de burger) */
	.dbm-toggle[aria-expanded="true"] .dbm-toggle__box i:nth-child(1) {
		translate: 0 7px;
		rotate: 45deg;
	}
	.dbm-toggle[aria-expanded="true"] .dbm-toggle__box i:nth-child(2) {
		opacity: 0;
	}
	.dbm-toggle[aria-expanded="true"] .dbm-toggle__box i:nth-child(3) {
		translate: 0 -7px;
		rotate: -45deg;
	}

	/* ---- Styles de burger (dessin au repos) ---- */
	.dbm-burger-tapered .dbm-toggle__box i:nth-child(2) { width: 62%; }

	.dbm-burger-labelled {
		padding: 8px 14px;
		border: 1.5px solid currentColor;
		border-radius: 12px;
		background: var(--dbm-burger-bg, transparent);
	}

	.dbm-burger-circle {
		width: 46px;
		height: 46px;
		border-radius: 50%;
		background: var(--dbm-burger-bg, currentColor);
	}
	.dbm-burger-circle .dbm-toggle__box { width: 18px; }
	.dbm-burger-circle .dbm-toggle__box i { background: var(--dbm-burger-fg, #fff); }
	.dbm-burger-circle:focus-visible { outline-color: var(--dbm-burger-fg, #fff); }

	.dbm-burger-squircle {
		width: 44px;
		height: 44px;
		border: 1.5px solid currentColor;
		border-radius: 14px;
		background: var(--dbm-burger-bg, transparent);
	}
	.dbm-burger-squircle .dbm-toggle__box { width: 18px; }

	.dbm-burger-editorial { gap: 12px; }
	.dbm-burger-editorial .dbm-toggle__word { letter-spacing: 0.22em; font-size: 12px; }
	.dbm-burger-editorial .dbm-toggle__box { width: 24px; height: 6px; }
	.dbm-burger-editorial .dbm-toggle__box i:nth-child(2) { display: none; }
	.dbm-burger-editorial .dbm-toggle__box i:nth-child(3) { top: 6px; }
	.dbm-burger-editorial[aria-expanded="true"] .dbm-toggle__box i:nth-child(1) { translate: 0 3px; }
	.dbm-burger-editorial[aria-expanded="true"] .dbm-toggle__box i:nth-child(3) { translate: 0 -3px; }

	/* Aligne le burger avec le logo dans le module Menu. */
	.et_pb_menu .et_pb_menu_inner_container {
		align-items: center;
	}

	/* --------------------------------------------------------------------- */
	/* Voile                                                                */
	/* --------------------------------------------------------------------- */
	.dbm-backdrop {
		display: block;
		position: fixed;
		inset: 0;
		margin: 0;
		padding: 0;
		border: 0;
		background: var(--dbm-backdrop);
		opacity: 0;
		z-index: var(--dbm-z);
		transition: opacity var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-backdrop.is-open {
		opacity: 1;
	}
	.dbm-backdrop[hidden] {
		display: none;
	}

	/* --------------------------------------------------------------------- */
	/* Panneau off-canvas                                                   */
	/* --------------------------------------------------------------------- */
	.dbm-panel.dbm-panel {
		display: flex;
		flex-direction: column;
		position: fixed;
		top: 0;
		bottom: 0;
		inset-inline-start: auto;     /* neutralise un left:0 éventuel hérité de Divi */
		inset-inline-end: 0;
		width: var(--dbm-width);
		max-width: 100%;
		margin: 0;
		padding: 0;
		border: 0;                    /* Divi pose un border-top coloré sur .et_mobile_menu */
		box-shadow: none;
		background: var(--dbm-bg);
		background-image: none;
		color: var(--dbm-color);
		list-style: none;
		overflow-y: auto;
		overscroll-behavior: contain;
		-webkit-overflow-scrolling: touch;
		z-index: calc(var(--dbm-z) + 1);
		visibility: hidden;
		transform: translateX(100%);
		transition: transform var(--dbm-duration) var(--dbm-ease),
			visibility 0s linear var(--dbm-duration);
	}
	.dbm-panel[data-side="left"] {
		inset-inline-end: auto;
		inset-inline-start: 0;
		transform: translateX(-100%);
	}
	.dbm-panel.is-open {
		visibility: visible;
		transform: none;
		transition: transform var(--dbm-duration) var(--dbm-ease),
			visibility 0s linear 0s;
	}

	.dbm-panel.dbm-panel ul {
		list-style: none;
		margin: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
		border: 0;
	}
	.dbm-panel.dbm-panel li {
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
	}
	/* Divi ajoute une marge/bordure sur le 1er item mobile. */
	.dbm-panel.dbm-panel .et_first_mobile_item {
		margin-top: 0;
		padding-top: 0;
		border-top: 0;
	}

	/* En-tête du panneau : logo (optionnel) + bouton fermer */
	.dbm-panel__head {
		position: sticky;
		top: 0;
		z-index: 1;
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: 1rem;
		min-height: 60px;
		padding: 0.75rem 1.25rem;      /* aligné sur le retrait des items */
		background: var(--dbm-bg);
		border-bottom: 1px solid var(--dbm-border);
	}
	.dbm-panel__head--with-logo {
		justify-content: space-between;
	}
	/* Le lien/logo ne doit pas hériter des styles des liens du menu. */
	.dbm-panel.dbm-panel .dbm-panel__head a,
	.dbm-panel.dbm-panel .dbm-panel__head a:hover,
	.dbm-panel.dbm-panel .dbm-panel__head a:focus-visible {
		display: inline-flex;
		align-items: center;
		padding: 0;
		border: 0;
		background: none;
		box-shadow: none;
	}
	.dbm-panel__logo {
		display: block;
		width: auto;
		height: auto;
		max-width: 100%;
		object-fit: contain;
		/* hauteur max fixée en ligne par le JS depuis le réglage */
	}
	.dbm-close {
		-webkit-appearance: none;
		appearance: none;
		position: relative;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		background: none;
		border: 0;
		color: inherit;
		cursor: pointer;
	}
	.dbm-close__icon,
	.dbm-close__icon::before {
		position: absolute;
		top: 50%;
		left: 50%;
		width: 20px;
		height: 2px;
		margin: -1px 0 0 -10px;
		border-radius: 2px;
		background: currentColor;
	}
	.dbm-close__icon {
		transform: rotate(45deg);
	}
	.dbm-close__icon::before {
		content: "";
		transform: rotate(90deg);
	}

	/* Liens de niveau 1 — double classe pour battre `.et_mobile_menu li a` de Divi */
	.dbm-panel.dbm-panel a {
		display: block;
		padding: 0.85rem 1.25rem;
		color: var(--dbm-color);
		font-size: 1rem;
		line-height: 1.35;
		text-decoration: none;
		border-bottom: 1px solid var(--dbm-border);
		box-shadow: inset 0 0 0 var(--dbm-accent);
		opacity: 1;
		transition: background var(--dbm-duration) var(--dbm-ease),
			box-shadow var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-panel.dbm-panel a:hover,
	.dbm-panel.dbm-panel a:focus-visible {
		background: rgba(127, 127, 127, 0.12);
		color: var(--dbm-color);
		box-shadow: inset 3px 0 0 var(--dbm-accent);
	}
	/* Page courante — pilotée par data-dbm-current (tiroir / déroulant) */
	.dbm-panel.dbm-panel a[aria-current="page"] {
		font-weight: 600;
		box-shadow: none;
		background: none;
	}
	.dbm-panel[data-dbm-current="bar"] a[aria-current="page"],
	.dbm-panel[data-dbm-current="both"] a[aria-current="page"] {
		box-shadow: inset 4px 0 0 var(--dbm-accent);
	}
	.dbm-panel[data-dbm-current="fill"] a[aria-current="page"],
	.dbm-panel[data-dbm-current="both"] a[aria-current="page"] {
		background: rgba(127, 127, 127, 0.16);
		background: color-mix(in srgb, var(--dbm-accent) 20%, transparent);
	}

	/* Élément parent : lien + bouton d'accordéon sur la même ligne */
	.dbm-panel .menu-item-has-children {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
	}
	.dbm-panel .menu-item-has-children > a {
		flex: 1;
	}
	/* Pas de fond sur la ligne parente d'un sous-menu (tous styles).
	   !important : bat une règle de fond que Divi applique parfois à ces items. */
	.dbm-panel.dbm-panel .menu-item-has-children > a,
	.dbm-panel.dbm-panel .menu-item-has-children > a:hover,
	.dbm-panel.dbm-panel .menu-item-has-children > a:focus-visible {
		background: none !important;
	}
	.dbm-panel.dbm-panel .menu-item-has-children,
	.dbm-panel.dbm-panel .menu-item-has-children > .dbm-sub-toggle {
		background: none !important;
	}
	.dbm-sub-toggle {
		-webkit-appearance: none;
		appearance: none;
		flex: 0 0 auto;
		width: 3.5rem;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0;
		padding: 0;
		font: inherit;
		color: var(--dbm-color);
		background: none;
		border: 0;
		border-bottom: 1px solid var(--dbm-border);
		cursor: pointer;
	}
	.dbm-sub-toggle__icon {
		flex: 0 0 auto;
		width: 11px;
		height: 11px;
		border-inline-end: 2px solid var(--dbm-accent);
		border-bottom: 2px solid var(--dbm-accent);
		transform: rotate(45deg);
		transition: transform var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-sub-toggle[aria-expanded="true"] .dbm-sub-toggle__icon,
	.dbm-sub-parent[aria-expanded="true"] .dbm-sub-toggle__icon {
		transform: rotate(-135deg);
	}

	/* Parent sans lien : toute la ligne est le déclencheur du sous-menu */
	.dbm-panel.dbm-panel a.dbm-sub-parent {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 0.75rem;
		cursor: pointer;
		flex-basis: 100%;
	}

	/* Sous-menu — accordéon à hauteur automatique (grid-template-rows 0fr→1fr) */
	.dbm-submenu {
		flex: 1 1 100%;
		display: grid;
		grid-template-rows: 0fr;
		transition: grid-template-rows var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-submenu > ul {
		overflow: hidden;
		min-height: 0;
		background: rgba(0, 0, 0, 0.14);
	}
	.dbm-submenu.is-open {
		grid-template-rows: 1fr;
	}
	.dbm-panel.dbm-panel .dbm-submenu a {
		padding-inline-start: 2.5rem;
		font-size: 0.9375rem;
		color: var(--dbm-color-muted);
	}
	.dbm-panel.dbm-panel .dbm-submenu .dbm-submenu a {
		padding-inline-start: 3.75rem;
	}

	/* --------------------------------------------------------------------- */
	/* Boutons CTA sous les items                                           */
	/* --------------------------------------------------------------------- */
	.dbm-panel__cta {
		display: flex;
		flex-direction: column;
		gap: 0.625rem;
		margin-top: auto;             /* colle les CTA en bas quand il reste de la place */
		padding: 1rem 1.25rem 1.5rem;
	}
	.dbm-panel.dbm-panel .dbm-cta {
		display: block;
		padding: 0.8rem 1rem;
		border: 2px solid transparent;
		border-radius: var(--dbm-cta-radius, 8px);
		font-size: 0.9375rem;
		font-weight: 600;
		line-height: 1.2;
		text-align: center;
		text-decoration: none;
		box-shadow: none;
		transition: filter var(--dbm-duration, .3s) var(--dbm-ease, ease);
	}
	.dbm-panel.dbm-panel .dbm-cta:hover {
		filter: brightness(1.08);
		box-shadow: none;
	}
	.dbm-panel.dbm-panel .dbm-cta:focus-visible {
		outline: 2px solid var(--dbm-focus, #fff);
		outline-offset: 2px;
	}

	/* --------------------------------------------------------------------- */
	/* Cascade des items (--i posé par le JS), tiroir et plein écran        */
	/* --------------------------------------------------------------------- */
	.dbm-panel[data-dbm-stagger] > li {
		transition: opacity var(--dbm-duration) var(--dbm-ease),
			translate var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-panel[data-dbm-stagger]:not(.is-open) > li {
		opacity: 0;
		translate: 1rem 0;
	}
	.dbm-panel[data-dbm-stagger][data-dbm-style="fullscreen"]:not(.is-open) > li,
	.dbm-panel[data-dbm-stagger][data-dbm-style="circle"]:not(.is-open) > li {
		translate: 0 1.25rem;
	}
	.dbm-panel[data-dbm-stagger].is-open > li {
		transition-delay: calc(0.06s + var(--i, 0) * 0.05s);
	}

	/* --------------------------------------------------------------------- */
	/* Style « Plein écran »                                                */
	/* --------------------------------------------------------------------- */
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] {
		inset: 0;
		width: 100%;
		max-width: 100%;
		transform: none;
		justify-content: safe center;   /* recentre si court, aligne en haut si ça déborde */
		padding-block: 7rem 2.5rem;
		padding-inline: clamp(1.75rem, 8vw, 4rem);
		opacity: 0;
		visibility: hidden;
		transition: opacity var(--dbm-duration) var(--dbm-ease),
			visibility 0s linear var(--dbm-duration);
	}
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"].is-open {
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: opacity var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-panel__head {
		position: absolute;
		inset: 0 0 auto 0;
		padding: 1.6rem 1.75rem;
		border-bottom: 0;
		background: transparent;
	}
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] > li > a {
		font-size: var(--dbm-fs-size, 2.4rem);
		font-weight: 700;
		letter-spacing: -0.02em;
		text-transform: uppercase;
		line-height: 1.15;
		padding: 0.34em 0;
		border-bottom: 0;
		background: none;
		box-shadow: none;
	}
	/* Plein écran / cercle : jamais de marqueur ni de fond — la page courante
	   (y compris les sous-items) est indiquée par la seule couleur d'accent. */
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] > li:hover > a,
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] > li > a:focus-visible,
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] .menu-item-has-children > a,
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] a[aria-current="page"],
	.dbm-panel.dbm-panel[data-dbm-style="circle"] a[aria-current="page"] {
		background: none;
		box-shadow: none;
	}
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] > li:hover > a,
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] > li > a:focus-visible,
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] a[aria-current="page"],
	.dbm-panel.dbm-panel[data-dbm-style="circle"] a[aria-current="page"] {
		color: var(--dbm-accent);
	}
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-submenu > ul {
		background: none;
	}

	/* Sous-menu au style « grand » : chevron en bout de ligne, à l'échelle du lien */
	.dbm-panel[data-dbm-style="fullscreen"] .menu-item-has-children,
	.dbm-panel[data-dbm-style="circle"] .menu-item-has-children {
		justify-content: flex-start;
		align-items: center;
		gap: 0.3em;
	}
	.dbm-panel[data-dbm-style="fullscreen"] .menu-item-has-children > a,
	.dbm-panel[data-dbm-style="circle"] .menu-item-has-children > a {
		flex: 0 1 auto;
	}
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-sub-toggle,
	.dbm-panel[data-dbm-style="circle"] .dbm-sub-toggle {
		width: auto;
		min-height: 0;
		border: 0;
		padding: 0.3em;
		color: var(--dbm-accent);
	}
	/* le chevron suit la taille du lien voisin */
	.dbm-panel[data-dbm-style="fullscreen"] .menu-item-has-children > .dbm-sub-toggle,
	.dbm-panel[data-dbm-style="circle"] .menu-item-has-children > .dbm-sub-toggle {
		font-size: calc(var(--dbm-fs-size, 2.4rem) * 0.85);
	}
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-sub-toggle__icon,
	.dbm-panel[data-dbm-style="circle"] .dbm-sub-toggle__icon {
		width: 0.45em;
		height: 0.45em;
		border-width: 0.12em;
	}
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-submenu a,
	.dbm-panel[data-dbm-style="circle"] .dbm-submenu a {
		text-transform: none;
		font-weight: 500;
		letter-spacing: 0;
	}
	/* Retrait porté par le <ul> : le séparateur (bord du <a>) démarre au niveau du texte */
	.dbm-panel[data-dbm-style="fullscreen"] .dbm-submenu > ul,
	.dbm-panel[data-dbm-style="circle"] .dbm-submenu > ul {
		padding-inline-start: 1.5rem;
	}
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] .dbm-submenu a,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] .dbm-submenu a {
		padding-inline: 0;
	}
	.dbm-panel.dbm-panel[data-dbm-style="fullscreen"] .dbm-submenu a {
		font-size: 1.05rem;
	}

	/* Révélation « masque » : le libellé remonte de sous sa propre fenêtre (.dbm-label).
	   La fenêtre est sur le span, pas sur le <a> → le chevron n'est jamais rogné. */
	.dbm-panel[data-dbm-style="fullscreen"][data-dbm-reveal="mask"] > li > a > .dbm-label {
		display: inline-block;
		overflow: hidden;
		max-width: 100%;
		vertical-align: bottom;
	}
	.dbm-panel[data-dbm-style="fullscreen"][data-dbm-reveal="mask"] > li > a > .dbm-label > .dbm-label__inner {
		display: inline-block;
		translate: 0 110%;
		transition: translate calc(var(--dbm-duration) * 1.6) var(--dbm-ease);
	}
	.dbm-panel[data-dbm-style="fullscreen"][data-dbm-reveal="mask"].is-open > li > a > .dbm-label > .dbm-label__inner {
		translate: 0 0;
		transition-delay: calc(0.1s + var(--i, 0) * 0.06s);
	}
	/* En mode masque, l'item lui-même ne bouge pas (c'est le libellé qui glisse) */
	.dbm-panel[data-dbm-style="fullscreen"][data-dbm-reveal="mask"][data-dbm-stagger] > li {
		opacity: 1;
		translate: 0 0;
	}

	/* --------------------------------------------------------------------- */
	/* Style « Cercle » (clip-path depuis le bouton)                        */
	/* --------------------------------------------------------------------- */
	.dbm-panel.dbm-panel[data-dbm-style="circle"] {
		inset: 0;
		width: 100%;
		max-width: 100%;
		transform: none;
		justify-content: safe center;
		padding-block: 7rem 2.5rem;
		padding-inline: clamp(1.75rem, 8vw, 4rem);
		clip-path: circle(0 at var(--dbm-origin-x, 100%) var(--dbm-origin-y, 0px));
		visibility: hidden;
		transition: clip-path calc(var(--dbm-duration) * 2) cubic-bezier(0.65, 0, 0.35, 1),
			visibility 0s linear calc(var(--dbm-duration) * 2);
	}
	.dbm-panel.dbm-panel[data-dbm-style="circle"].is-open {
		clip-path: circle(150% at var(--dbm-origin-x, 100%) var(--dbm-origin-y, 0px));
		visibility: visible;
		transition: clip-path calc(var(--dbm-duration) * 2) cubic-bezier(0.65, 0, 0.35, 1);
	}
	.dbm-panel[data-dbm-style="circle"] .dbm-panel__head {
		position: absolute;
		inset: 0 0 auto 0;
		padding: 1.6rem 1.75rem;
		border-bottom: 0;
		background: transparent;
	}
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li > a {
		font-size: calc(var(--dbm-fs-size, 2.4rem) * 0.85);
		font-weight: 700;
		letter-spacing: -0.01em;
		padding: 0.28em 0;
		border-bottom: 0;
		background: none;
		box-shadow: none;
	}
	/* Pas de marqueur ni de fond (comme le plein écran) : juste un changement de couleur */
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li:hover > a,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li > a:focus-visible,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] .menu-item-has-children > a,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li > a[aria-current="page"] {
		background: none;
		box-shadow: none;
	}
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li:hover > a,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li > a:focus-visible,
	.dbm-panel.dbm-panel[data-dbm-style="circle"] > li > a[aria-current="page"] {
		color: var(--dbm-accent);
	}
	.dbm-panel[data-dbm-style="circle"] .dbm-submenu > ul {
		background: none;
	}

	/* --------------------------------------------------------------------- */
	/* Style « Déroulant compact » (non-modal, sous l'en-tête)              */
	/* --------------------------------------------------------------------- */
	.dbm-panel.dbm-panel[data-dbm-style="dropdown"] {
		position: fixed;
		inset: auto;                  /* top / left / right posés par le JS */
		width: auto;
		max-width: 100%;
		max-height: 72vh;
		transform: none;
		overflow-y: auto;
		background: var(--dbm-bg);
		color: var(--dbm-color);
		box-shadow: 0 24px 48px -28px rgba(0, 0, 0, 0.45);
		clip-path: inset(0 0 100% 0);
		visibility: hidden;
		transition: clip-path var(--dbm-duration) var(--dbm-ease),
			visibility 0s linear var(--dbm-duration);
	}
	.dbm-panel.dbm-panel[data-dbm-style="dropdown"].is-open {
		clip-path: inset(0 0 0 0);
		visibility: visible;
		transition: clip-path var(--dbm-duration) var(--dbm-ease);
	}
	.dbm-panel[data-dbm-style="dropdown"] .dbm-panel__head {
		display: none;
	}
	.dbm-panel.dbm-panel[data-dbm-style="dropdown"] > li > a,
	.dbm-panel[data-dbm-style="dropdown"] .dbm-sub-toggle {
		padding-block: 0.7rem;
		font-size: 0.95rem;
	}
	.dbm-panel[data-dbm-style="dropdown"] .dbm-panel__cta {
		margin-top: 0;
		padding: 0.75rem 1rem 1rem;
	}
	/* Pas de cascade horizontale sur le déroulant : elle vient du haut. */
	.dbm-panel[data-dbm-stagger][data-dbm-style="dropdown"]:not(.is-open) > li {
		translate: 0 -0.4rem;
	}

	/* --------------------------------------------------------------------- */
	/* Focus visible (RGAA 10.7 / WCAG 2.4.7)                               */
	/* --------------------------------------------------------------------- */
	/* Le burger est sur l'en-tête (fond clair variable) : focus en currentColor. */
	.dbm-toggle:focus-visible {
		outline: 2px solid currentColor;
		outline-offset: 2px;
	}
	/* Dans le panneau (fond maîtrisé) : couleur de focus paramétrable. */
	.dbm-close:focus-visible,
	.dbm-sub-toggle:focus-visible,
	.dbm-panel.dbm-panel a:focus-visible {
		outline: 2px solid var(--dbm-focus, #fff);
		outline-offset: 2px;
	}

	/* --------------------------------------------------------------------- */
	/* Mouvement réduit (WCAG 2.3.3)                                        */
	/* --------------------------------------------------------------------- */
	@media (prefers-reduced-motion: reduce) {
		.dbm-panel.dbm-panel,
		.dbm-panel.is-open,
		.dbm-panel[data-dbm-stagger] > li,
		.dbm-panel[data-dbm-style="fullscreen"] .dbm-label__inner,
		.dbm-backdrop,
		.dbm-submenu,
		.dbm-toggle__box,
		.dbm-toggle__box i,
		.dbm-sub-toggle__icon,
		.dbm-cta {
			transition-duration: 0.001ms !important;
			transition-delay: 0s !important;
		}
	}
}

/* Sécurité : au-dessus du point de rupture, pas de bouton résiduel. */
@media (min-width: 981px) {
	.dbm-toggle {
		display: none !important;
	}
}
