/* =========================================================
   Konclav : en-tête, méga-menus Fonctionnalités et Solutions,
   déroulant Ressources, tiroir mobile.
   Couleurs : variables Astra (slots 0 à 8), aucun hex en dur
   hors pictos (tracé blanc dans un SVG en data URI).
   ========================================================= */

/* ---------- Mise en page des pages ----------
   Astra pose 60 px de marge en haut et en bas de #primary (conteneur « plain ») :
   les sections Spectra pleine largeur portent leur propre rythme, la marge
   créait un vide sous l'en-tête et une bande blanche avant le pied de page. */
body.page.ast-plain-container #primary {
	margin-top: 0;
	margin-bottom: 0;
}

:root {
	--kx-ink: var(--ast-global-color-2);
	--kx-text: var(--ast-global-color-3);
	--kx-ivoire: var(--ast-global-color-5);
	--kx-violet: var(--ast-global-color-1);
	--kx-line: rgba(25, 40, 71, 0.1);
	--kx-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Lien Connexion (composant HTML 1) ---------- */
#masthead .ast-header-html-1 a.mx-connexion {
	color: var(--kx-ink);
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
	white-space: nowrap;
}
#masthead .ast-header-html-1 a.mx-connexion:hover,
#masthead .ast-header-html-1 a.mx-connexion:focus-visible {
	text-decoration: underline;
	text-underline-offset: 5px;
}

/* ---------- Boutons : transitions et léger soulèvement ---------- */
.wp-block-spectra-button,
.ast-custom-button,
.menu-toggle {
	transition: background-color 0.3s var(--kx-ease), color 0.3s var(--kx-ease), border-color 0.3s var(--kx-ease), transform 0.3s var(--kx-ease), box-shadow 0.3s var(--kx-ease);
}
.wp-block-spectra-button:hover,
.wp-block-spectra-button:focus-visible,
.ast-custom-button:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 24px -12px rgba(25, 40, 71, 0.5);
}

/* ---------- Apparitions au défilement (assets/js/reveal.js, socle MATRYS) ---------- */
.mx-rv {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.9s var(--kx-ease), transform 0.9s var(--kx-ease);
	transition-delay: calc(var(--mx-rv-i, 0) * 90ms);
}
.mx-rv.is-in { opacity: 1; transform: none; }

/* ---------- En-tête collant : voile flouté ---------- */
#ast-desktop-header .main-header-bar,
#ast-mobile-header .main-header-bar {
	transition: background-color 0.35s var(--kx-ease), box-shadow 0.35s var(--kx-ease);
}
.ast-header-sticked,
#ast-desktop-header .ast-sticky-active,
#ast-mobile-header .ast-sticky-active {
	-webkit-backdrop-filter: saturate(1.4) blur(14px);
	backdrop-filter: saturate(1.4) blur(14px);
	box-shadow: 0 1px 0 var(--kx-line);
}

/* ---------- En-tête collant : logo SVG ----------
   Astra Pro (rétrécissement à l'accroche) passe le logo en width:auto ;
   un SVG sans dimensions intrinsèques tombe alors à 0 px. */
body.ast-sticky-main-shrink #masthead .ast-sticky-shrunk .site-logo-img img.custom-logo,
body #masthead .ast-header-sticked .site-logo-img img.custom-logo {
	width: 120px;
	height: auto;
}

@media (min-width: 1201px) {

	/* ---------- Premier niveau : pilule au survol ---------- */
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link {
		position: relative;
	}
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link::before {
		content: "";
		position: absolute;
		left: 2px;
		right: 2px;
		top: 50%;
		height: 40px;
		transform: translateY(-50%);
		border-radius: 999px;
		background: transparent;
		transition: background-color 0.2s var(--kx-ease);
	}
	#ast-desktop-header .main-header-menu > .menu-item > .menu-link > * {
		position: relative;
	}
	#ast-desktop-header .main-header-menu > .menu-item:hover > .menu-link::before,
	#ast-desktop-header .main-header-menu > .menu-item:focus-within > .menu-link::before,
	#ast-desktop-header .main-header-menu > .current-menu-item > .menu-link::before {
		background: var(--kx-ivoire);
	}

	/* ---------- Panneaux : méga-menus et déroulant Ressources ---------- */
	#ast-desktop-header .main-header-menu .astra-megamenu,
	#ast-desktop-header .main-header-menu > .menu-item:not(.astra-megamenu-li) > .sub-menu {
		margin-top: 8px;
		padding: 24px;
		background: #fff;
		border: 1px solid var(--kx-line);
		border-top-width: 1px;
		border-radius: 20px;
		box-shadow: 0 40px 80px -30px rgba(25, 40, 71, 0.35);
	}
	#ast-desktop-header .main-header-menu > .menu-item:not(.astra-megamenu-li) > .sub-menu {
		padding: 8px;
		width: 300px;
		border-radius: 18px;
	}
	#ast-desktop-header .main-header-menu > .menu-item:not(.astra-megamenu-li) > .sub-menu .menu-link {
		padding: 10px 14px;
		border-radius: 12px;
		font-size: 15.5px;
	}
	#ast-desktop-header .main-header-menu > .menu-item:not(.astra-megamenu-li) > .sub-menu .menu-link:hover {
		background: var(--kx-ivoire);
	}

	/* Ouverture au survol : Astra n'utilise que :hover en CSS. Les panneaux sont
	   décalés de 8 px sous l'en-tête : sans pont, ils se masquent dans l'écart. */
	#ast-desktop-header .main-header-menu .astra-megamenu::after,
	#ast-desktop-header .main-header-menu > .menu-item:not(.astra-megamenu-li) > .sub-menu::after {
		content: "";
		position: absolute;
		left: 0;
		right: 0;
		bottom: 100%;
		height: 14px;
	}
	/* Délai de grâce à la fermeture : un écart de trajectoire (diagonale vers
	   une carte, passage sur Tarifs) ne referme plus le panneau. */
	#ast-desktop-header .main-header-menu > .menu-item > .sub-menu {
		transition: opacity 0.18s ease 0.15s, visibility 0s linear 0.35s;
	}
	#ast-desktop-header .main-header-menu > .menu-item:hover > .sub-menu,
	#ast-desktop-header .main-header-menu > .menu-item.focus > .sub-menu,
	#ast-desktop-header .main-header-menu > .menu-item:focus-within > .sub-menu {
		transition: opacity 0.18s ease 0s, visibility 0s linear 0s;
	}
	/* Ouverture : le panneau glisse en fondu, ses colonnes suivent en cascade.
	   Animation (et non transition) : Astra passe le méga-menu de display:none à
	   affiché au survol, ce qui annulerait une transition. */
	#ast-desktop-header .main-header-menu > .menu-item:hover > .sub-menu,
	#ast-desktop-header .main-header-menu > .menu-item:focus-within > .sub-menu {
		animation: kx-panneau 0.32s var(--kx-ease) both;
	}
	#ast-desktop-header .main-header-menu > .menu-item:hover > .astra-megamenu > .menu-item,
	#ast-desktop-header .main-header-menu > .menu-item:focus-within > .astra-megamenu > .menu-item {
		animation: kx-colonne 0.42s var(--kx-ease) both;
	}
	#ast-desktop-header .astra-megamenu > .menu-item:nth-child(2) { animation-delay: 0.05s; }
	#ast-desktop-header .astra-megamenu > .menu-item:nth-child(3) { animation-delay: 0.1s; }
	#ast-desktop-header .astra-megamenu > .menu-item:nth-child(4) { animation-delay: 0.13s; }
	#ast-desktop-header .astra-megamenu > .menu-item:nth-child(5) { animation-delay: 0.16s; }
	/* Entrées : picto qui s'avance, cartes qui se soulèvent */
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link::before { transition: transform 0.3s var(--kx-ease), background-color 0.3s var(--kx-ease); }
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link:hover::before { transform: scale(1.08); background-color: var(--ast-global-color-1); }
	#ast-desktop-header .astra-megamenu .mx-carte > .menu-link { transition: box-shadow 0.3s var(--kx-ease), transform 0.3s var(--kx-ease); }
	#ast-desktop-header .astra-megamenu .mx-carte > .menu-link:hover { transform: translateY(-2px); }

	/* Mais passer d'un panneau à l'autre ferme l'ancien tout de suite. */
	#ast-desktop-header .main-header-menu:has(> .menu-item-has-children:hover) > .menu-item:not(:hover) > .sub-menu {
		transition: none;
	}

	/* Flèches injectées par Astra : inutiles dans les panneaux */
	#ast-desktop-header .astra-megamenu .ast-icon,
	#ast-desktop-header .astra-megamenu .dropdown-menu-toggle,
	#ast-desktop-header .astra-megamenu .ast-menu-toggle {
		display: none;
	}

	/* Intitulés de colonne (lien # retiré en PHP) */
	#ast-desktop-header .astra-megamenu > .mx-mega-col > .menu-link {
		display: block;
		padding: 0 12px 12px;
		font-size: 12.5px;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
		color: var(--kx-text);
		pointer-events: none;
		cursor: default;
		background: none;
	}
	#ast-desktop-header .astra-megamenu .sub-menu {
		position: static;
		display: block;
		width: auto;
		padding: 0;
		margin: 0;
		border: 0;
		box-shadow: none;
		background: none;
		opacity: 1;
		visibility: visible;
	}
	#ast-desktop-header .astra-megamenu > .menu-item {
		width: auto;
		padding: 0;
		border: 0;
	}

	/* Entrées avec picto */
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link {
		display: grid;
		grid-template-columns: 28px minmax(0, 1fr);
		column-gap: 12px;
		align-items: center;
		padding: 8px 12px;
		border-radius: 12px;
		font-size: 15.5px;
		font-weight: 600;
		line-height: 1.3;
		color: var(--kx-ink);
		transition: background-color 0.2s var(--kx-ease);
	}
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link::before {
		content: "";
		grid-row: 1 / span 2;
		width: 28px;
		height: 28px;
		border-radius: 8px;
		background-color: var(--kx-ink);
		background-repeat: no-repeat;
		background-position: center;
		background-size: 16px 16px;
	}
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link:hover,
	#ast-desktop-header .astra-megamenu .mx-ico > .menu-link:focus-visible {
		background: var(--kx-ivoire);
	}

	/* Descriptions injectées en PHP (span.mx-desc) */
	#ast-desktop-header .astra-megamenu .mx-desc {
		display: block;
		margin-top: 2px;
		font-size: 14px;
		font-weight: 400;
		line-height: 1.35;
		color: var(--kx-text);
	}

	/* Cartes : Pour aller plus loin, Grands comptes */
	#ast-desktop-header .astra-megamenu .mx-carte > .menu-link {
		display: block;
		padding: 14px 16px;
		margin-bottom: 10px;
		border-radius: 14px;
		background: var(--kx-ivoire);
		font-size: 16px;
		font-weight: 600;
		line-height: 1.3;
		color: var(--kx-ink);
		transition: box-shadow 0.2s var(--kx-ease);
	}
	#ast-desktop-header .astra-megamenu .mx-carte > .menu-link:hover,
	#ast-desktop-header .astra-megamenu .mx-carte > .menu-link:focus-visible {
		box-shadow: 0 0 0 1.5px var(--kx-ink);
	}

	/* ---------- Fonctionnalités : domaines sur deux colonnes, cartes, rangée du bas ---------- */
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu:not(.ast-hidden) {
		display: grid;
		grid-template-columns: auto auto minmax(0, 1fr) 340px;
		grid-template-rows: auto auto;
		column-gap: 0;
	}
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu::before {
		content: "";
		grid-column: 1 / -1;
		grid-row: 2;
		align-self: start;
		margin-top: 18px;
		border-top: 1px solid var(--kx-line);
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-col--domaines {
		grid-column: 1 / 4;
		grid-row: 1;
		padding-right: 32px;
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-col--domaines > .sub-menu {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		grid-template-rows: repeat(6, auto);
		grid-auto-flow: column;
		column-gap: 8px;
		row-gap: 2px;
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-col--cartes {
		grid-column: 4;
		grid-row: 1;
	}
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu > .mx-mega-pied {
		grid-row: 2;
		align-self: start;
		padding-top: 30px;
	}
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu > .mx-mega-pied:nth-of-type(3) { grid-column: 1; }
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu > .mx-mega-pied:nth-of-type(4) { grid-column: 2; }
	#ast-desktop-header .mx-mega--fonc > .astra-megamenu > .mx-mega-pied:nth-of-type(5) { grid-column: 3; }
	#ast-desktop-header .mx-mega--fonc .mx-mega-pied > .menu-link {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		padding: 0 12px;
		font-size: 15px;
		font-weight: 600;
		color: var(--kx-text);
		background: none;
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-pied > .menu-link:hover { color: var(--kx-ink); text-decoration: underline; text-underline-offset: 4px; }
	#ast-desktop-header .mx-mega--fonc .mx-mega-pied:not(.mx-mega-pied--fort) > .menu-link::after {
		content: "\00B7";
		margin-left: 12px;
		color: var(--kx-text);
		text-decoration: none;
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-pied--fort > .menu-link {
		color: var(--kx-ink);
		font-weight: 700;
	}
	#ast-desktop-header .mx-mega--fonc .mx-mega-pied--fort > .menu-link::after {
		content: "";
		width: 7px;
		height: 12px;
		background: var(--kx-violet);
		-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2020.5%2034.45%22%3E%3Cpolygon%20points=%220%2029.57%207.02%2034.45%2020.48%2017.21%207.08%200%200.22%204.89%209.75%2017.14%22%20fill=%22%23000%22/%3E%3C/svg%3E") center / contain no-repeat;
		mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2020.5%2034.45%22%3E%3Cpolygon%20points=%220%2029.57%207.02%2034.45%2020.48%2017.21%207.08%200%200.22%204.89%209.75%2017.14%22%20fill=%22%23000%22/%3E%3C/svg%3E") center / contain no-repeat;
	}

	/* ---------- Solutions : trois colonnes ---------- */
	#ast-desktop-header .mx-mega--sol > .astra-megamenu:not(.ast-hidden) {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr)) 340px;
		column-gap: 24px;
	}
	#ast-desktop-header .mx-mega--sol .mx-ico > .menu-link {
		align-items: start;
	}
	#ast-desktop-header .mx-mega--sol .mx-ico > .menu-link::before {
		margin-top: 2px;
	}
}

@keyframes kx-panneau {
	from { opacity: 0; transform: translateY(10px); }
	to { opacity: 1; transform: none; }
}
@keyframes kx-colonne {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

/* ---------- Tiroir mobile ---------- */
@media (max-width: 1200px) {
	#ast-mobile-popup .main-header-menu > .menu-item > .menu-link {
		font-family: 'Be Vietnam Pro', sans-serif;
		font-weight: 700;
		font-size: 19px;
		color: var(--kx-ink);
		padding-top: 14px;
		padding-bottom: 14px;
	}
	#ast-mobile-popup .main-header-menu .sub-menu .menu-link {
		font-size: 16.5px;
		font-weight: 400;
		color: var(--kx-text);
	}
	#ast-mobile-popup .main-header-menu .mx-mob-fort > .menu-link {
		font-weight: 700;
		color: var(--kx-ink);
	}
	#ast-mobile-popup .main-header-menu .mx-mob-connexion > .menu-link {
		font-family: inherit;
		font-weight: 600;
		font-size: 17px;
	}
	/* Bouton « Demander une démo » fixé en bas du panneau (v2) */
	#ast-mobile-popup .ast-mobile-popup-inner {
		flex-direction: column;
	}
	/* Astra pose display:block en style inline à l'ouverture : !important obligatoire */
	#ast-mobile-popup-wrapper #ast-mobile-popup .ast-mobile-popup-content {
		flex: 1 0 auto;
		display: flex !important;
		flex-direction: column;
	}
	#ast-mobile-popup .ast-mobile-popup-content > .ast-builder-layout-element.ast-header-button-1 {
		position: sticky;
		bottom: 0;
		z-index: 100000; /* les sous-menus d'Astra sont à 99999 */
		margin-top: auto;
		padding: 16px 20px;
		background: #fff;
		border-top: 1px solid var(--kx-line);
	}
	#ast-mobile-popup .ast-header-button-1 .ast-builder-button-wrap,
	#ast-mobile-popup .ast-header-button-1 .ast-custom-button-link,
	#ast-mobile-popup .ast-header-button-1 .ast-custom-button {
		display: block;
		width: 100%;
		text-align: center;
	}
}

/* ---------- Pictos du méga-menu ---------- */
#ast-desktop-header .mx-ico--pilotage > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M8.3%2012.2l2.5%202.5%204.9-5%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--tests > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Crect%20x=%223.5%22%20y=%224%22%20width=%224%22%20height=%224%22%20rx=%221%22/%3E%3Cpath%20d=%22M10.5%206h10%22/%3E%3Crect%20x=%223.5%22%20y=%2210%22%20width=%224%22%20height=%224%22%20rx=%221%22/%3E%3Cpath%20d=%22M10.5%2012h10%22/%3E%3Crect%20x=%223.5%22%20y=%2216%22%20width=%224%22%20height=%224%22%20rx=%221%22/%3E%3Cpath%20d=%22M10.5%2018h7%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--auto > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M19.5%2012a7.5%207.5%200%201%201-2.2-5.3%22/%3E%3Cpath%20d=%22M19.8%203.8v3.4h-3.4%22/%3E%3Cpath%20d=%22M10%209.2v5.6l4.6-2.8z%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--api > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M8.5%204.5c-2%200-2.6%201-2.6%202.6v2.2c0%201.3-.7%202.2-2%202.7%201.3.5%202%201.4%202%202.7v2.2c0%201.6.6%202.6%202.6%202.6%22/%3E%3Cpath%20d=%22M15.5%204.5c2%200%202.6%201%202.6%202.6v2.2c0%201.3.7%202.2%202%202.7-1.3.5-2%201.4-2%202.7v2.2c0%201.6-.6%202.6-2.6%202.6%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--perf > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M4%2017.5a8.5%208.5%200%201%201%2016%200%22/%3E%3Cpath%20d=%22M12%2016.5l4.2-5.6%22/%3E%3Ccircle%20cx=%2212%22%20cy=%2216.8%22%20r=%221.4%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--secu > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%203.5l7%202.8v5.2c0%204.4-3%207.8-7%209-4-1.2-7-4.6-7-9V6.3z%22/%3E%3Cpath%20d=%22M8.8%2012.2l2.2%202.2%204.3-4.4%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--a11y > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Ccircle%20cx=%2212%22%20cy=%227.8%22%20r=%221.3%22/%3E%3Cpath%20d=%22M7.8%2010.2l4.2%201%204.2-1%22/%3E%3Cpath%20d=%22M12%2011.2v3l-2.2%203.6M12%2014.2l2.2%203.6%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--visu > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Crect%20x=%223.5%22%20y=%225%22%20width=%2212%22%20height=%229%22%20rx=%221.5%22/%3E%3Crect%20x=%228.5%22%20y=%2210%22%20width=%2212%22%20height=%229%22%20rx=%221.5%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--explo > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%228.5%22/%3E%3Cpath%20d=%22M15.4%208.6l-2%204.8-4.8%202%202-4.8z%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--data > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cellipse%20cx=%2212%22%20cy=%226%22%20rx=%227%22%20ry=%222.6%22/%3E%3Cpath%20d=%22M5%206v6c0%201.4%203.1%202.6%207%202.6s7-1.2%207-2.6V6%22/%3E%3Cpath%20d=%22M5%2012v6c0%201.4%203.1%202.6%207%202.6s7-1.2%207-2.6v-6%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-ico--obs > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M3%2012.5h4l2.2-5%203.6%2010%202.4-6.2%201.4%201.2H21%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(1) > .sub-menu > .menu-item:nth-child(1) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M4%207.5h11v9H4z%22/%3E%3Cpath%20d=%22M15%2010.5h3.2l2.3%202.7v3.3H15%22/%3E%3Ccircle%20cx=%227.5%22%20cy=%2217.5%22%20r=%221.6%22/%3E%3Ccircle%20cx=%2217%22%20cy=%2217.5%22%20r=%221.6%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(1) > .sub-menu > .menu-item:nth-child(2) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%204l8%204-8%204-8-4z%22/%3E%3Cpath%20d=%22M4%2012l8%204%208-4%22/%3E%3Cpath%20d=%22M4%2016l8%204%208-4%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(1) > .sub-menu > .menu-item:nth-child(3) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%204v10%22/%3E%3Cpath%20d=%22M8%2010.5l4%204%204-4%22/%3E%3Cpath%20d=%22M5%2017v2.5h14V17%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(2) > .sub-menu > .menu-item:nth-child(1) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M4%209.5L12%205l8%204.5%22/%3E%3Cpath%20d=%22M6%2010v6M10%2010v6M14%2010v6M18%2010v6%22/%3E%3Cpath%20d=%22M4%2019h16%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(2) > .sub-menu > .menu-item:nth-child(2) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%204l7%203.5H5z%22/%3E%3Cpath%20d=%22M6.5%2010h11%22/%3E%3Cpath%20d=%22M8%2010v7M12%2010v7M16%2010v7%22/%3E%3Cpath%20d=%22M5%2019.5h14%22/%3E%3C/svg%3E"); }
#ast-desktop-header .mx-mega--sol .mx-mega-col:nth-child(2) > .sub-menu > .menu-item:nth-child(3) > .menu-link::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23fff%22%20stroke-width=%221.8%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Crect%20x=%223.5%22%20y=%225%22%20width=%2217%22%20height=%2214%22%20rx=%222%22/%3E%3Cpath%20d=%22M3.5%209h17%22/%3E%3Cpath%20d=%22M10%2013l-2%201.8%202%201.8M14%2013l2%201.8-2%201.8%22/%3E%3C/svg%3E"); }

/* =========================================================
   Pied de page (footer builder Astra)
   Rangée du haut : un seul composant HTML (logo + Connexion), parce que le
   customizer retire tout composant HTML au-delà du deuxième à l'enregistrement.
   ========================================================= */

#colophon .ast-footer-html-2,
#colophon .ast-footer-html-2 .ast-header-html,
#colophon .ast-footer-html-2 .ast-builder-html-element {
	width: 100%;
}
#colophon .ast-footer-html-2 .ast-builder-html-element > p {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	margin: 0;
}
#colophon .mx-ft-logo img {
	display: block;
	height: 40px;
	width: auto;
}
/* Les couleurs de lien des composants HTML d'Astra sont inertes : posées ici. */
#colophon a.mx-ft-connexion {
	color: var(--ast-global-color-4);
	font-weight: 600;
	font-size: 16px;
	text-decoration: none;
}
#colophon a.mx-ft-connexion:hover,
#colophon a.mx-ft-connexion:focus-visible {
	text-decoration: underline;
	text-underline-offset: 5px;
}

/* Rangée du milieu : titres des quatre colonnes (widgets Menu de navigation) */
#colophon .footer-widget-area .widget_nav_menu .widget-title {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.3;
	letter-spacing: 0;
}
#colophon .footer-widget-area .widget_nav_menu ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
#colophon .footer-widget-area .widget_nav_menu li {
	margin: 0 0 8px;
	padding: 0;
	line-height: 1.4;
}
#colophon .footer-widget-area .widget_nav_menu a {
	font-size: 16px;
	text-decoration: none;
}
#colophon .footer-widget-area .widget_nav_menu a:hover,
#colophon .footer-widget-area .widget_nav_menu a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* Rangée du bas (3 colonnes du socle) : menu légal compact, sans retrait */
#colophon .site-below-footer-wrap .ast-footer-copyright p {
	margin: 0;
}
#colophon .site-below-footer-wrap .footer-nav-wrap > ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 20px;
	margin: 0;
	padding: 0;
}
#colophon .site-below-footer-wrap .footer-nav-wrap > ul > li {
	margin: 0;
	padding: 0;
}
#colophon .site-below-footer-wrap .footer-nav-wrap .menu-link {
	padding: 0;
	font-size: 15px;
}

/* ---------- Pied de page : liens en fondu ---------- */
#colophon a { transition: color 0.25s var(--kx-ease), opacity 0.25s var(--kx-ease); }

/* ---------- Mouvement réduit : tout ce qui bouge s'arrête ---------- */
@media (prefers-reduced-motion: reduce) {
	.mx-rv { opacity: 1; transform: none; transition: none; }
	#ast-desktop-header .main-header-menu .sub-menu,
	#ast-desktop-header .astra-megamenu > .menu-item { animation: none !important; }
	.wp-block-spectra-button:hover, .ast-custom-button:hover { transform: none; }
}

/* =========================================================
   Logo en SVG dans la page (inc/konclav-header.php)
   Le dessin reste celui de la charte : les chevrons partent de leur place et y reviennent.
   ========================================================= */
.custom-logo-link .kx-logo {
	display: block;
	width: 120px;
	height: auto;
	overflow: visible;
}
.kx-logo .kx-logo-k,
.kx-logo .kx-logo-go {
	transform-box: fill-box;
	transform-origin: center;
}
/* Survol : le chevron jade, le « Go » de la charte, avance puis revient */
@keyframes kx-logo-go {
	0% { transform: none; }
	40% { transform: translateX(32%); }
	100% { transform: none; }
}
.custom-logo-link:hover .kx-logo-go,
.custom-logo-link:focus-visible .kx-logo-go {
	animation: kx-logo-go 0.6s var(--kx-ease);
}
/* Accueil seulement : les deux chevrons, face à face au centre (« <> »), s'ouvrent
   et découvrent « onclav », puis la barre du « k » se dresse : konclav>.
   --kx-ouv (posée par le thème sur le <svg>) ramène chaque chevron au centre. */
@keyframes kx-logo-k-ouvre {
	0% { opacity: 0; transform: translateX(var(--kx-ouv, 0px)) scale(0.6); }
	22% { opacity: 1; transform: translateX(var(--kx-ouv, 0px)); }
	34% { transform: translateX(var(--kx-ouv, 0px)); }
	100% { opacity: 1; transform: none; }
}
@keyframes kx-logo-go-ouvre {
	0% { opacity: 0; transform: translateX(calc(var(--kx-ouv, 0px) * -1)) scale(0.6); }
	22% { opacity: 1; transform: translateX(calc(var(--kx-ouv, 0px) * -1)); }
	34% { transform: translateX(calc(var(--kx-ouv, 0px) * -1)); }
	100% { opacity: 1; transform: none; }
}
@keyframes kx-logo-mot {
	0%, 34% { clip-path: inset(0 50% 0 50%); }
	100% { clip-path: inset(0 0 0 0); }
}
@keyframes kx-logo-barre {
	from { opacity: 0; transform: scaleY(0); }
	to { opacity: 1; transform: none; }
}
.kx-logo .kx-logo-barre { transform-box: fill-box; transform-origin: center bottom; }
body.home .kx-logo .kx-logo-k { animation: kx-logo-k-ouvre 1.15s var(--kx-ease) 0.1s both; }
body.home .kx-logo .kx-logo-go { animation: kx-logo-go-ouvre 1.15s var(--kx-ease) 0.1s both; }
body.home .kx-logo .kx-logo-mot { animation: kx-logo-mot 1.15s var(--kx-ease) 0.1s both; }
body.home .kx-logo .kx-logo-barre { animation: kx-logo-barre 0.4s var(--kx-ease) 1.15s both; }
/* Sur l'accueil, l'entrée reste dans la liste : sinon la quitter relancerait l'entrée au survol */
body.home .custom-logo-link:hover .kx-logo-go,
body.home .custom-logo-link:focus-visible .kx-logo-go {
	animation: kx-logo-go-ouvre 1.15s var(--kx-ease) 0.1s both, kx-logo-go 0.6s var(--kx-ease);
}
@media (prefers-reduced-motion: reduce) {
	.kx-logo *,
	body.home .kx-logo * { animation: none !important; }
}

/* =========================================================
   Retour en haut : l'élément d'Astra (#ast-scroll-top) restylé.
   Rond blanc dépoli, chevron du logo tourné vers le haut, anneau jade de
   progression (--kx-p, posé par assets/js/retour-haut.js). Astra garde la
   main sur l'affichage (display en style inline) et sur le défilement.
   Le socle pose bottom/right en !important : on passe devant de la même façon.
   ========================================================= */
#ast-scroll-top.ast-scroll-top-icon {
	--kx-p: 0;
	position: fixed;
	right: max(24px, env(safe-area-inset-right, 0px)) !important;
	bottom: max(24px, env(safe-area-inset-bottom, 0px)) !important;
	z-index: 99;
	width: 52px;
	height: 52px;
	padding: 0;
	border: 0 !important;
	border-radius: 50% !important;
	background: rgba(255, 255, 255, 0.92) !important;
	-webkit-backdrop-filter: saturate(1.4) blur(10px);
	backdrop-filter: saturate(1.4) blur(10px);
	color: var(--ast-global-color-2) !important;
	box-shadow: 0 0 0 1px var(--kx-line), 0 16px 32px -14px rgba(25, 40, 71, 0.5);
	cursor: pointer;
	transition: background-color 0.3s var(--kx-ease), color 0.3s var(--kx-ease), transform 0.35s var(--kx-ease), box-shadow 0.35s var(--kx-ease);
	/* rejouée à chaque fois qu'Astra le réaffiche (display none vers block) */
	animation: kx-haut-entree 0.45s var(--kx-ease) backwards;
}
#ast-scroll-top.ast-scroll-top-icon .ast-icon { display: none !important; }
/* Anneau de progression dans la page */
#ast-scroll-top.ast-scroll-top-icon::before {
	content: "";
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: conic-gradient(var(--ast-global-color-0) calc(var(--kx-p) * 360deg), rgba(25, 40, 71, 0.1) 0);
	-webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
	mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 2.5px));
}
/* Chevron de la marque, tourné vers le haut */
#ast-scroll-top.ast-scroll-top-icon::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 11px;
	height: 18px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2020.5%2034.45%22%3E%3Cpolygon%20points=%220%2029.57%207.02%2034.45%2020.48%2017.21%207.08%200%200.22%204.89%209.75%2017.14%22%20fill=%22%23000%22/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2020.5%2034.45%22%3E%3Cpolygon%20points=%220%2029.57%207.02%2034.45%2020.48%2017.21%207.08%200%200.22%204.89%209.75%2017.14%22%20fill=%22%23000%22/%3E%3C/svg%3E") center / contain no-repeat;
	transform: translate(-50%, -50%) rotate(-90deg);
	transition: transform 0.35s var(--kx-ease);
}
#ast-scroll-top.ast-scroll-top-icon:hover,
#ast-scroll-top.ast-scroll-top-icon:focus-visible {
	background: var(--ast-global-color-2) !important;
	color: #fff !important;
	transform: translateY(-3px);
	box-shadow: 0 0 0 1px rgba(25, 40, 71, 0.2), 0 20px 36px -14px rgba(25, 40, 71, 0.6);
}
#ast-scroll-top.ast-scroll-top-icon:hover::after,
#ast-scroll-top.ast-scroll-top-icon:focus-visible::after { transform: translate(-50%, -68%) rotate(-90deg); }
#ast-scroll-top.ast-scroll-top-icon:hover::before,
#ast-scroll-top.ast-scroll-top-icon:focus-visible::before {
	background: conic-gradient(var(--ast-global-color-0) calc(var(--kx-p) * 360deg), rgba(255, 255, 255, 0.18) 0);
}
#ast-scroll-top.ast-scroll-top-icon:focus-visible { outline: 2px solid var(--ast-global-color-1); outline-offset: 3px; }
@keyframes kx-haut-entree {
	from { opacity: 0; transform: translateY(14px) scale(0.9); }
	to { opacity: 1; transform: none; }
}
@media (max-width: 767px) {
	#ast-scroll-top.ast-scroll-top-icon {
		right: max(16px, env(safe-area-inset-right, 0px)) !important;
		bottom: max(16px, env(safe-area-inset-bottom, 0px)) !important;
		width: 46px;
		height: 46px;
	}
}
@media (prefers-reduced-motion: reduce) {
	#ast-scroll-top.ast-scroll-top-icon,
	#ast-scroll-top.ast-scroll-top-icon::after { animation: none; transition: none; }
	#ast-scroll-top.ast-scroll-top-icon:hover { transform: none; }
}
