/* ── Navigation mobile ─────────────────────────────────────────────────── */

.wp-block-navigation__responsive-container.is-menu-open {
	padding: 28px 32px !important;
	background-color: var(--wp--preset--color--primary) !important;
	color: var(--wp--preset--color--base) !important;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	justify-content: center;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item>a {
	color: var(--wp--preset--color--base) !important;
	font-size: 24px;
	font-weight: 500;
	padding: 12px 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: var(--wp--custom--spacing--gap);
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-wrap: nowrap;
}

/* Custom Menu Icon */
.wp-block-navigation__responsive-container-open {
	border: none !important;
	padding: 0 !important;
	background-color: transparent !important;
	width: 44px;
	height: 44px;
	display: none;
	/* Masqué par défaut sur desktop */
	align-items: center;
	justify-content: center;
	background-image: url('../../images/icon-menu.svg') !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
	background-size: 28px !important;
}

@media (max-width: 960px) {
	.wp-block-navigation__responsive-container-open {
		display: flex !important;
	}
}

.wp-block-navigation__responsive-container-open svg {
	display: none !important;
}

.wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--base) !important;
	border: 1px solid currentColor !important;
	padding: 4px;
	top: 0 !important;
	right: 0 !important;
}

@media (max-width: 960px) {
	.header-desktop-buttons {
		display: none !important;
	}

	/* Force le masquage des items horizontaux jusqu'à 960px */
	.wp-block-navigation__responsive-container:not(.is-menu-open) {
		display: none !important;
	}

	/* Boutons clonés dans le menu burger */
	.header-mobile-cta-clone {
		display: flex !important;
		flex-direction: column;
		width: 100%;
		gap: 12px;
		margin-top: 32px;
		align-items: center;
	}

	.header-mobile-cta-clone .wp-block-button,
	.header-mobile-cta-clone .wp-block-button__link {
		width: 100%;
		max-width: 300px;
		text-align: center;
	}

	.header-mobile-cta-clone .wp-block-button.is-style-outline-white .wp-block-button__link {
		color: var(--wp--preset--color--base) !important;
		border-color: var(--wp--preset--color--base) !important;
	}

	.header-mobile-cta-clone .wp-block-button.is-style-white .wp-block-button__link {
		background-color: var(--wp--preset--color--base) !important;
		color: var(--wp--preset--color--primary) !important;
		border-color: var(--wp--preset--color--base) !important;
	}
}

.has-background .wp-block-navigation__responsive-container-open:focus,
.has-background .wp-block-navigation__responsive-container-open:hover {
	color: var(--wp--preset--color--base);
}

/* ── Navigation Desktop & Sous-menus ─────────────────────────────────────── */

@media (min-width: 961px) {

	/* Boutons CTA desktop : droite, largeur contenu uniquement */
	.header-desktop-buttons {
		margin-left: auto;
		flex-shrink: 1;
		align-self: center;
		justify-content: flex-end;
		flex-wrap: wrap !important;
		order: 1;
	}

	/* Navigation ne rétrécit pas — force le wrap des boutons */
	.delforno-navigation {
		flex-shrink: 0;
	}

	/* Items du menu toujours sur une ligne */
	.delforno-navigation .wp-block-navigation__container {
		flex-wrap: nowrap !important;
	}

	.site-header .custom-logo {
		min-width: 150px;
	}

	/* 1. Éléments de premier niveau : pont invisible pour garder le hover */
	.site-header .wp-block-navigation-item {
		position: static !important;
		height: 70px;
		margin-top: -24px;
		margin-bottom: -24px;
		padding-top: 24px;
		padding-bottom: 24px;
		font-size: var(--wp--preset--font-size--medium);
		box-sizing: border-box;
		display: flex;
		align-items: center;
	}

	.site-header .wp-block-navigation-item>a {
		position: relative;
		display: flex;
		align-items: center;
		height: 100%;
	}

	/* Bordure blanche au hover placée exactement en bas du header */
	.site-header .wp-block-navigation-item>a::after {
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 1px;
		background-color: var(--wp--preset--color--base);
		transform: scaleX(0);
		transform-origin: right;
		transition: transform 0.2s cubic-bezier(0.77, 0, 0.175, 1);
	}

	.site-header .wp-block-navigation-item:hover>a::after,
	.site-header .wp-block-navigation-item.current-menu-item>a::after,
	.site-header .wp-block-navigation-item.current-menu-ancestor>a::after,
	.site-header .wp-block-navigation-item.current_page_item>a::after,
	.site-header .wp-block-navigation-item.current_page_ancestor>a::after {
		transform: scaleX(1);
		transform-origin: left;
	}

	/* 2. Désactiver le comportement JS natif de WP pour les sous-menus */
	.wp-block-navigation-submenu__toggle {
		display: none !important;
	}

	.site-header {
		position: sticky !important;
	}

	/* Neutraliser TOUS les conteneurs relatifs intermédiaires de WordPress */
	.site-header .wp-block-group.alignfull,
	.site-header .wp-block-navigation,
	.site-header .wp-block-navigation__responsive-container,
	.site-header .wp-block-navigation__responsive-dialog,
	.site-header .wp-block-navigation__container {
		position: static !important;
	}

	/* 3. Sous-menu: pleine largeur, fond primary, horizontal, caché par défaut */
	.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
		display: flex !important;
		position: absolute !important;
		top: calc(100% - 8px) !important;
		left: 0 !important;
		width: 100% !important;
		transform: none;
		background-color: var(--wp--preset--color--primary) !important;
		border: none !important;
		padding: 24px 32px !important;

		/* Alignement horizontal centré */
		flex-direction: row !important;
		justify-content: center;
		align-items: center;
		gap: 32px;

		/* Caché par défaut */
		opacity: 0;
		visibility: hidden;
		transition: opacity 0.2s ease, visibility 0.2s ease;
		z-index: 100;

		/* Évite le glitch d'effondrement instantané des dimensions/padding lors de la transition */
		height: auto !important;
		min-height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/* Affichage au hover sur l'élément parent */
	.wp-block-navigation__container>.wp-block-navigation-item.has-child:hover>.wp-block-navigation__submenu-container,
	.wp-block-navigation__container>.wp-block-navigation-item.has-child:has(:focus-visible)>.wp-block-navigation__submenu-container,
	.wp-block-navigation__container>.wp-block-navigation-item.has-child.is-touched>.wp-block-navigation__submenu-container {
		opacity: 1;
		visibility: visible;
	}

	/* Éléments du sous-menu: pas de bordure hover, liens normaux */
	.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item {
		border-bottom: none;
		display: flex;
		height: auto;
		margin: 0;
		padding: 0;
		width: auto;
	}

	.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item>a {
		padding: 8px 0 !important;
		white-space: nowrap;
		position: relative;
	}

	.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item>a::after {
		bottom: 6px;
	}

	.site-header .wp-block-navigation__submenu-container .wp-block-navigation-item:hover>a::after {
		transform: scaleX(1);
		transform-origin: left;
	}
}

/* ── Sticky Header (Desktop & Mobile) ─────────────────────────────────── */
.site-header {
	position: sticky !important;
	top: 0;
	z-index: 9999;
}

/* Ajustement si la barre d'administration WP est présente */
.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header {
		top: 0;
	}
}

/* ── Intermediate Responsive Layout (Desktop Menu wrapping) ──────────────── */
@media (min-width: 961px) and (max-width: 1090px) {

	/* Force the logo container to be 100% on the top row */
	.site-header .wp-block-group.alignwide>.wp-block-group:first-child {
		flex: 0 0 100% !important;
		width: 100% !important;
		max-width: 100% !important;
		margin-bottom: 16px !important;
		justify-content: flex-start !important;
	}

	/* Ensure container wraps items and aligns navigation and buttons */
	.site-header .wp-block-group.alignwide {
		flex-wrap: wrap !important;
		justify-content: space-between !important;
		gap: 16px 0 !important;
	}

	.delforno-navigation {
		margin-left: 0 !important;
		flex: 1 1 auto !important;
	}

	.header-desktop-buttons {
		margin-left: auto !important;
		flex: 0 0 auto !important;
	}
}

/* Ensure the inline SVG logo inherits base color (white) by default */
/* display: block + line-height: 0 évite que le lien <a> inline ajoute un
   espace vertical fantôme autour du SVG logo et modifie la hauteur du header. */
.custom-logo-link {
	display: block;
	line-height: 0;
	color: var(--wp--preset--color--base, #FFFFFF) !important;
}