/*
 * En-tête Xpro (« En-tête principal ») habillé comme la maquette.
 * Le menu vient de Apparence › Menus › « Menu principal » : widget xpro-horizontal-menu.
 * Ce fichier ne fait que l'habillage ; l'ouverture des sous-menus et le panneau mobile
 * restent ceux de Xpro (bascule à 1024 px, la maquette basculait à 1020 px).
 */

/* Collage : porté par l'enveloppe de Xpro, sinon il ne peut pas voyager. */
.xpro-theme-builder-header {
	position: sticky;
	top: 0;
	z-index: 50;
}
.admin-bar .xpro-theme-builder-header { top: var(--wp-admin--admin-bar--height, 32px); }
@media (max-width: 600px) { .admin-bar .xpro-theme-builder-header { top: 0; } }
.xpro-theme-builder-header .site-header { position: relative; }
.xpro-theme-builder-header .main-title { display: none; }

/* ---------------------------------------------------------------- bureau */
body .elementor.elementor.elementor.elementor .fqi-nav.elementor-widget { margin-left: auto; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav {
	display: flex;
	align-items: center;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li { position: relative; margin: 0; padding: 0; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu::before,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu::after { display: none; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li > a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 44px;
	padding: 0;
	margin: 0;
	font-family: Manrope, sans-serif;
	font-size: .96rem;
	font-weight: 400;
	line-height: 1.6;
	color: var(--ink);
	white-space: nowrap;
	background: none;
	text-decoration: none;
	transition: color 180ms var(--ease);
}
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li > a::before { display: none; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li:not(.nav-dropdown):not(.fqi-nav-contact) > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 2px;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 250ms var(--ease);
}
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li > a:hover,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li.current-menu-ancestor > a,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li.current_page_item > a { color: var(--blue); }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li:hover > a::after,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li.current-menu-item > a::after { transform: scaleX(1); }

/* Entrées à sous-menu : chevron de la maquette */
body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown > a { font-size: .94rem; font-weight: 600; line-height: 1.4; padding: 10px 0; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-dropdown-menu-toggle { display: none; }
body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown > a::after {
	content: '';
	position: static;
	inset: auto;
	background: none;
	width: 6px;
	height: 6px;
	flex: 0 0 6px;
	margin: 0 0 3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform 200ms var(--ease);
}
body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown:hover > a::after,
body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown:focus-within > a::after { margin: 3px 0 0; transform: rotate(225deg); }

/* Panneau des sous-menus */
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu {
	top: 100%;
	left: -18px;
	min-width: 270px;
	margin: 0;
	padding: 10px;
	list-style: none;
	border: 1px solid var(--line);
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 16px 40px #2547651a;
}
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu li { margin: 0; padding: 0; border: 0; }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu a.xpro-elementor-dropdown-item {
	display: block;
	padding: 12px;
	min-height: 44px;
	font-family: Manrope, sans-serif;
	font-size: .91rem;
	line-height: 1.4;
	color: var(--ink);
	border-radius: 4px;
	background: none;
	text-decoration: none;
	white-space: nowrap;
}
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu a.xpro-elementor-dropdown-item:hover,
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu a.xpro-elementor-dropdown-item:focus-visible { background: var(--blue-wash); color: var(--blue); }
body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu .current-menu-item > a.xpro-elementor-dropdown-item { background: var(--blue-wash); color: var(--blue); font-weight: 600; }

/* Bouton Contact */
body .elementor.elementor.elementor.elementor .fqi-nav li.fqi-nav-contact > a {
	padding: 10px 18px;
	font-size: .9rem;
	line-height: 1.5;
	font-weight: 600;
	color: #fff;
	background: var(--blue);
	border-radius: 6px;
}
body .elementor.elementor.elementor.elementor .fqi-nav li.fqi-nav-contact > a:hover,
body .elementor.elementor.elementor.elementor .fqi-nav li.fqi-nav-contact.current-menu-item > a { color: #fff; background: var(--blue-hover); }

body .elementor.elementor.elementor.elementor .fqi-nav a:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }

/* ---------------------------------------------------------------- mobile (panneau Xpro) */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar { background: #fff; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav { display: grid; gap: 6px; padding: 16px 24px 24px; align-items: stretch; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li > a { font-size: 1.05rem; min-height: 48px; padding: 10px 0; justify-content: space-between; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li:not(.nav-dropdown):not(.fqi-nav-contact) > a::after { right: auto; width: 40px; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu {
		position: static;
		min-width: 0;
		margin: 6px 0 14px;
		padding: 0 0 0 12px;
		border: 0;
		border-left: 2px solid #c5d7e9;
		border-radius: 0;
		box-shadow: none;
	}
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-dropdown-menu a.xpro-elementor-dropdown-item { font-size: .95rem; white-space: normal; }
	body .elementor.elementor.elementor.elementor .fqi-nav li.fqi-nav-contact > a { width: fit-content; margin-top: 10px; justify-content: flex-start; }
	/* Bouton d'ouverture : couleur de la maquette (Xpro le rend gris anthracite). */
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler,
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-close { color: var(--ink); background: transparent; border: 0; min-width: 44px; min-height: 44px; }
}

/* Bouton « Menu » de la maquette à la place de l'icône Font Awesome de Xpro */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler {
		display: flex; align-items: center; gap: 15px; padding: 10px; font: 400 1rem/1.6 Manrope, sans-serif; color: var(--ink);
	}
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler i { display: none; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler::before { content: 'Menu'; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler::after {
		content: ''; width: 22px; height: 14px; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
	}
}

/* Un seul lien d'évitement : celui de la maquette (« Aller au contenu » → #contenu),
   posé dans l'en-tête Xpro. Celui du thème vise #main, absent avec les gabarits Xpro. */
a.skip-link.screen-reader-text[href="#main"] { display: none !important; }

/* ---------------------------------------------------------------- mobile : panneau déroulant
   La maquette déroule le menu sous l'en-tête, pleine largeur, sans voile ni bouton fermer :
   le bouton « Menu » bascule (script fqi-header.js). */
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-wrapper.xpro-push-right {
		position: fixed;
		top: calc(var(--header, 88px) + var(--fqi-admin-bar, 0px));
		left: 0;
		right: 0;
		bottom: auto;
		width: auto;
		height: auto;
		max-height: calc(100svh - var(--header, 88px));
		overflow: auto;
		background: #fff;
		box-shadow: 0 16px 24px #26476515;
		transform: none;
		visibility: hidden;
		opacity: 0;
		transition: opacity 200ms var(--ease), visibility 0s linear 200ms;
	}
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-wrapper.xpro-push-right.active {
		visibility: visible;
		opacity: 1;
		transition: opacity 200ms var(--ease);
	}
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-overlay,
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-close { display: none; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar { width: 100%; max-width: none; margin: 0; padding: 0; background: #fff; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav { justify-items: stretch; text-align: left; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li { border: 0; width: 100%; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li.fqi-nav-contact > a {
		width: fit-content;
		margin-top: 10px;
		padding: 10px 18px;
		min-height: 44px;
		font-size: .9rem;
	}
	/* Le déclencheur de sous-menu de Xpro couvre toute l'entrée : le chevron reste celui de la maquette. */
	body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown > a .xpro-dropdown-menu-toggle {
		display: block;
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		margin: 0;
		opacity: 0;
		cursor: pointer;
	}
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li:not(.fqi-nav-contact) > a { width: 100%; }
	body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown > a.active::after { margin: 3px 0 0; transform: rotate(225deg); }
	body .elementor.elementor.elementor.elementor .fqi-nav li.nav-dropdown:not(:has(> a.active)):hover > a::after { margin: 0 0 3px; transform: rotate(45deg); }
	/* Bouton ouvert : croix de la maquette */
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler.is-open::after {
		height: 14px;
		border: 0;
		background:
			linear-gradient(45deg, transparent calc(50% - .75px), currentColor calc(50% - .75px), currentColor calc(50% + .75px), transparent calc(50% + .75px)),
			linear-gradient(-45deg, transparent calc(50% - .75px), currentColor calc(50% - .75px), currentColor calc(50% + .75px), transparent calc(50% + .75px));
	}
}
.admin-bar { --fqi-admin-bar: 32px; }
@media (max-width: 782px) { .admin-bar { --fqi-admin-bar: 46px; } }
@media (max-width: 1024px) {
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-wrapper.xpro-push-right { padding: 0; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav { grid-template-columns: minmax(0, 1fr); }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav > li { justify-self: stretch; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-navbar-nav li > a { border: 0; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler { width: auto; height: auto; }
	body .elementor.elementor.elementor.elementor .fqi-nav .xpro-elementor-horizontal-menu-toggler::after { flex: 0 0 22px; }
}

/* Voile et croix roses de Xpro : jamais affichés. Entre 1025 et ~1040 px, le script de Xpro
   (largeur sans barre de défilement) se croit en mobile alors que la feuille est en bureau :
   un clic sur « Le groupe » ouvrait alors le voile gris et la croix rose en bas à gauche.
   Le menu mobile s'ouvre et se ferme par le bouton « Menu » (fqi-header.js). */
.fqi-nav .xpro-elementor-horizontal-menu-overlay,
.fqi-nav .xpro-elementor-horizontal-menu-close { display: none !important; }

/* Accès à l'espace de gestion (CRM Suivi), réservé aux comptes autorisés. */
.fqi-acces-crm {
	position: fixed;
	left: 24px;
	bottom: 24px;
	z-index: 60;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 48px;
	padding: 12px 18px;
	border-radius: 8px;
	background: #275f98;
	color: #fff !important;
	font: 600 .9rem/1.2 Manrope, sans-serif;
	text-decoration: none !important;
	box-shadow: 0 12px 30px #1b3f6a40;
	transition: background 180ms ease, transform 180ms ease;
}
.fqi-acces-crm:hover { background: #174c80; transform: translateY(-2px); }
.fqi-acces-crm:focus-visible { outline: 3px solid #275f98; outline-offset: 4px; }
.fqi-acces-crm svg { width: 20px; height: 20px; flex: 0 0 20px; }
@media (max-width: 600px) {
	.fqi-acces-crm { left: 16px; bottom: 16px; padding: 12px; }
	.fqi-acces-crm span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
}
@media print { .fqi-acces-crm { display: none; } }
