/* Menu responsive commun Krea3: base propre inspiree des themes valides. */
:root {
	--krea-menu-bg: var(--couleur-principale, #222);
	--krea-menu-text: var(--couleur-texte-sur-principale, var(--couleur-blanc, #fff));
	--krea-menu-dark: var(--couleur-noir, #000);
	--krea-menu-accent: var(--couleur-secondaire, var(--couleur-citykomi, #f26b42));
	--krea-menu-top: 102px;
}

.visually-hidden,
.screen-reader-text {
	border: 0 !important;
	clip: rect(1px, 1px, 1px, 1px) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

.toggleMenu {
	align-items: center !important;
	background:
		linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center 24px / 34px 4px no-repeat,
		linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center center / 34px 4px no-repeat,
		linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center 46px / 34px 4px no-repeat,
		#fff !important;
	border: 2px solid var(--krea-menu-dark) !important;
	box-sizing: border-box !important;
	color: transparent !important;
	cursor: pointer !important;
	display: none !important;
	font-size: 0 !important;
	height: 72px !important;
	justify-content: center !important;
	line-height: 1 !important;
	margin: 0 !important;
	padding: 0 !important;
	position: absolute !important;
	right: 20px !important;
	text-decoration: none !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	width: 72px !important;
	z-index: 30020 !important;
}

.toggleMenu::before,
.toggleMenu::after,
.toggleMenu span:not(.visually-hidden):not(.screen-reader-text) {
	background: var(--krea-menu-dark) !important;
	content: "" !important;
	display: block !important;
	height: 4px !important;
	left: 18px !important;
	position: absolute !important;
	width: 34px !important;
}

.toggleMenu::before {
	top: 22px !important;
}

.toggleMenu span:not(.visually-hidden):not(.screen-reader-text) {
	top: 34px !important;
}

.toggleMenu::after {
	top: 46px !important;
}

.toggleMenu.active::before {
	top: 34px !important;
	transform: rotate(45deg) !important;
}

.toggleMenu.active span:not(.visually-hidden):not(.screen-reader-text) {
	opacity: 0 !important;
}

.toggleMenu.active::after {
	top: 34px !important;
	transform: rotate(-45deg) !important;
}

.toggleMenu.active {
	background: #fff !important;
}

#menu #nav,
#menu-principal #nav {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

#nav,
#nav ul {
	list-style: none !important;
}

#nav li {
	box-sizing: border-box !important;
	position: relative !important;
}

#nav a,
#nav button.menu-item {
	box-sizing: border-box !important;
	cursor: pointer !important;
	text-decoration: none !important;
}

#nav button.menu-item {
	appearance: none !important;
	background: transparent !important;
	border: 0 !important;
	font: inherit !important;
}

#nav ul[hidden],
#nav[hidden] {
	display: none !important;
}

#header,
#header #menu,
#menu-principal,
#nav {
	z-index: 30000 !important;
}

@media screen and (min-width: 1217px) {
	.toggleMenu {
		display: none !important;
	}

	#header #menu,
	#top-bandeau #menu,
	#menu-principal {
		align-items: center !important;
		display: flex !important;
		justify-content: flex-end !important;
	}

	#header #menu #nav,
	#top-bandeau #menu #nav,
	#menu-principal #nav {
		align-items: center !important;
		background: transparent !important;
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 0 !important;
		justify-content: flex-end !important;
		margin: 0 !important;
		padding: 0 !important;
		position: static !important;
		width: auto !important;
	}

	#nav > li {
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		position: relative !important;
	}

	#nav > li::before {
		background: rgba(0, 0, 0, 0.12) !important;
		content: "" !important;
		height: 78px !important;
		left: 0 !important;
		position: absolute !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 1px !important;
	}

	#nav > li:last-child::after {
		background: rgba(0, 0, 0, 0.12) !important;
		content: "" !important;
		height: 78px !important;
		position: absolute !important;
		right: 0 !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 1px !important;
	}

	#nav > li > a,
	#nav > li > button.menu-item {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		border-left: 0 !important;
		color: var(--krea-menu-dark) !important;
		display: flex !important;
		font-family: var(--police-secondaire, var(--police, sans-serif)) !important;
		font-size: clamp(1rem, 1.15vw, 1.28rem) !important;
		font-weight: 800 !important;
		height: 82px !important;
		line-height: 1.1 !important;
		padding: 0 clamp(18px, 1.7vw, 34px) !important;
		position: relative !important;
		text-align: center !important;
		text-transform: uppercase !important;
		white-space: nowrap !important;
	}

	#nav > li:last-child > a,
	#nav > li:last-child > button.menu-item {
		border-right: 0 !important;
	}

	#nav > li > a::after,
	#nav > li > button.menu-item::after {
		background: var(--krea-menu-accent) !important;
		bottom: 12px !important;
		content: "" !important;
		height: 3px !important;
		left: 24px !important;
		position: absolute !important;
		transform: scaleX(0) !important;
		transform-origin: left center !important;
		transition: transform 0.18s ease !important;
		width: calc(100% - 48px) !important;
	}

	#nav > li.current-menu-item > a::after,
	#nav > li.current_page_item > a::after,
	#nav > li.current-menu-ancestor > a::after,
	#nav > li.current_page_ancestor > a::after,
	#nav > li > a:hover::after,
	#nav > li > a:focus::after,
	#nav > li > button.menu-item:hover::after,
	#nav > li > button.menu-item:focus::after {
		transform: scaleX(1) !important;
	}

	#nav > li > ul {
		background: var(--krea-menu-bg) !important;
		box-sizing: border-box !important;
		display: block !important;
		height: calc(100vh - var(--krea-menu-top)) !important;
		left: 0 !important;
		margin: 0 !important;
		max-width: none !important;
		min-height: 520px !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: clamp(54px, 8vh, 90px) clamp(70px, 8vw, 150px) !important;
		position: fixed !important;
		top: var(--krea-menu-top) !important;
		opacity: 0 !important;
		pointer-events: none !important;
		transform: translateY(-8px) !important;
		transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease !important;
		visibility: hidden !important;
		width: 100vw !important;
		z-index: 7600 !important;
	}

	#nav > li.open > ul,
	#nav > li.active > ul,
	#nav > li > a[aria-expanded="true"] + ul,
	#nav > li > button.menu-item[aria-expanded="true"] + ul {
		opacity: 1 !important;
		pointer-events: auto !important;
		transform: translateY(0) !important;
		visibility: visible !important;
	}

	#nav > li > ul > li,
	#nav li li {
		background: transparent !important;
		border: 0 !important;
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		position: relative !important;
		width: 100% !important;
	}

	#nav > li > ul > li > a,
	#nav > li > ul > li > button.menu-item {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.18) !important;
		color: var(--krea-menu-text) !important;
		display: flex !important;
		font-family: var(--police-secondaire, var(--police, sans-serif)) !important;
		font-size: clamp(1.15rem, 1.45vw, 1.55rem) !important;
		font-weight: 800 !important;
		justify-content: space-between !important;
		line-height: 1.15 !important;
		margin: 0 !important;
		min-height: 80px !important;
		padding: 20px 28px 20px 42px !important;
		position: relative !important;
		text-align: left !important;
		text-transform: none !important;
		width: min(36vw, 560px) !important;
	}

	#nav > li > ul > li > a::before,
	#nav > li > ul > li > button.menu-item::before {
		background: var(--couleur-blanc, #fff) !important;
		content: "" !important;
		height: 38px !important;
		left: 0 !important;
		position: absolute !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 5px !important;
	}

	#nav li li > button.menu-item::after {
		color: var(--krea-menu-accent) !important;
		content: ">" !important;
		font-size: 1.45rem !important;
		line-height: 1 !important;
		margin-left: 20px !important;
		position: static !important;
		transform: none !important;
	}

	#nav li li > ul {
		background: transparent !important;
		border: 0 !important;
		box-sizing: border-box !important;
		display: block !important;
		left: clamp(390px, 40vw, 650px) !important;
		margin: 0 !important;
		max-width: 760px !important;
		opacity: 0 !important;
		padding: 0 !important;
		pointer-events: none !important;
		position: absolute !important;
		top: 0 !important;
		visibility: hidden !important;
		width: min(42vw, 760px) !important;
		z-index: 3 !important;
	}

	#nav li li.open > ul,
	#nav li li.active > ul,
	#nav li li > a[aria-expanded="true"] + ul,
	#nav li li > button.menu-item[aria-expanded="true"] + ul {
		opacity: 1 !important;
		pointer-events: auto !important;
		visibility: visible !important;
	}

	#nav li li > ul[hidden] {
		display: none !important;
	}

	#nav li li li a,
	#nav li li li button.menu-item {
		background: transparent !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
		color: rgba(255, 255, 255, 0.94) !important;
		display: block !important;
		font-family: var(--police-secondaire, var(--police, sans-serif)) !important;
		font-size: clamp(1rem, 1.15vw, 1.18rem) !important;
		font-weight: 750 !important;
		line-height: 1.25 !important;
		margin: 0 !important;
		min-height: 64px !important;
		padding: 19px 24px !important;
		text-align: left !important;
		width: 100% !important;
	}

	#nav a:hover,
	#nav a:focus,
	#nav button.menu-item:hover,
	#nav button.menu-item:focus {
		background: rgba(255, 255, 255, 0.08) !important;
		color: var(--krea-menu-text) !important;
		outline: 0 !important;
	}
}

@media screen and (max-width: 1216px) {
	body.menu-open {
		overflow: hidden !important;
	}

	#header,
	#top-bandeau {
		position: sticky !important;
		top: 0 !important;
		z-index: 30000 !important;
	}

	.toggleMenu {
		display: flex !important;
	}

	#header #menu #nav,
	#top-bandeau #menu #nav,
	#menu-principal #nav {
		background: var(--krea-menu-bg) !important;
		box-sizing: border-box !important;
		color: var(--krea-menu-text) !important;
		height: calc(100vh - 96px) !important;
		left: 0 !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: 34px 26px 52px !important;
		position: fixed !important;
		top: 96px !important;
		width: 100vw !important;
		z-index: 30010 !important;
	}

	#nav > li,
	#nav li li {
		background: transparent !important;
		border: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		width: 100% !important;
	}

	#nav a,
	#nav button.menu-item {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.16) !important;
		color: var(--krea-menu-text) !important;
		display: flex !important;
		font-family: var(--police-secondaire, var(--police, sans-serif)) !important;
		font-size: 1.12rem !important;
		font-weight: 800 !important;
		justify-content: space-between !important;
		line-height: 1.2 !important;
		margin: 0 !important;
		min-height: 56px !important;
		padding: 16px 18px !important;
		text-align: left !important;
		text-transform: none !important;
		width: 100% !important;
	}

	#nav > li > a,
	#nav > li > button.menu-item {
		font-size: 1.35rem !important;
		text-transform: uppercase !important;
	}

	#nav li > ul {
		background: rgba(255, 255, 255, 0.06) !important;
		border: 0 !important;
		display: block !important;
		left: auto !important;
		margin: 0 0 8px !important;
		padding: 0 !important;
		position: static !important;
		width: 100% !important;
	}

	#nav li ul[hidden] {
		display: none !important;
	}

	#nav li li li a,
	#nav li li li button.menu-item {
		padding-left: 34px !important;
	}

	#nav button.menu-item::after {
		color: var(--krea-menu-accent) !important;
		content: ">" !important;
		font-size: 1.25rem !important;
		position: static !important;
		transform: none !important;
	}

	#nav button.menu-item[aria-expanded="true"]::after {
		content: "^" !important;
	}
}

@media screen and (max-width: 560px) {
	:root {
		--krea-menu-top: 86px;
	}

	.toggleMenu {
		height: 58px !important;
		right: 14px !important;
		width: 58px !important;
		background:
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center 19px / 28px 4px no-repeat,
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center center / 28px 4px no-repeat,
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center 39px / 28px 4px no-repeat,
			#fff !important;
	}

	.toggleMenu.active {
		background: #fff !important;
	}

	.toggleMenu::before,
	.toggleMenu::after,
	.toggleMenu span:not(.visually-hidden):not(.screen-reader-text) {
		left: 14px !important;
		width: 28px !important;
	}

	.toggleMenu::before {
		top: 17px !important;
	}

	.toggleMenu span:not(.visually-hidden):not(.screen-reader-text) {
		top: 27px !important;
	}

	.toggleMenu::after {
		top: 37px !important;
	}

	.toggleMenu.active::before,
	.toggleMenu.active::after {
		top: 27px !important;
	}

	#header #menu #nav,
	#top-bandeau #menu #nav,
	#menu-principal #nav {
		height: calc(100vh - 86px) !important;
		padding: 28px 18px 46px !important;
		top: 86px !important;
	}
}

@media screen and (min-width: 1217px) {
	#header #menu #nav > li > ul,
	#top-bandeau #menu #nav > li > ul,
	#menu-principal #nav > li > ul {
		height: calc(100vh - 150px) !important;
		min-height: calc(100vh - 150px) !important;
		top: 150px !important;
	}

	#header.menu-reduit #menu #nav > li > ul,
	#header.menu-reduit #menu-principal #nav > li > ul,
	#header.menu-reduit + #menu-principal #nav > li > ul,
	.menu-reduit #menu-principal #nav > li > ul {
		height: calc(100vh - 100px) !important;
		min-height: calc(100vh - 100px) !important;
		top: 100px !important;
	}

	#nav > li > a:hover,
	#nav > li > a:focus,
	#nav > li > button.menu-item:hover,
	#nav > li > button.menu-item:focus {
		background: transparent !important;
		color: var(--krea-menu-dark) !important;
	}

	#nav li li > button.menu-item::after {
		color: var(--krea-menu-text, #fff) !important;
	}
}

@media screen and (max-width: 1216px) {
	#header #menu {
		inset: auto !important;
		position: static !important;
	}

	#header .largeur92 {
		box-sizing: border-box !important;
		padding-right: 92px !important;
		position: relative !important;
	}

	#header .toggleMenu,
	.toggleMenu {
		background:
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center calc(50% - 10px) / 32px 4px no-repeat,
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center center / 32px 4px no-repeat,
			linear-gradient(var(--krea-menu-dark), var(--krea-menu-dark)) center calc(50% + 10px) / 32px 4px no-repeat,
			var(--couleur-blanc, #fff) !important;
		border: 2px solid var(--krea-menu-dark) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		display: flex !important;
		height: 60px !important;
		padding: 0 !important;
		position: absolute !important;
		right: 24px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: 60px !important;
		z-index: 30040 !important;
	}

	#header .toggleMenu::before,
	#header .toggleMenu::after,
	.toggleMenu::before,
	.toggleMenu::after {
		background: var(--krea-menu-dark) !important;
		border-radius: 3px !important;
		content: "" !important;
		display: block !important;
		height: 4px !important;
		left: 50% !important;
		opacity: 0 !important;
		position: absolute !important;
		top: 50% !important;
		transform: translate(-50%, -50%) !important;
		transform-origin: center !important;
		transition: transform 0.18s ease, opacity 0.18s ease !important;
		width: 32px !important;
	}

	#header .toggleMenu span:not(.visually-hidden):not(.screen-reader-text),
	.toggleMenu span:not(.visually-hidden):not(.screen-reader-text) {
		display: none !important;
	}

	#header .toggleMenu.active,
	.toggleMenu.active {
		background: var(--couleur-blanc, #fff) !important;
	}

	#header .toggleMenu.active::before,
	.toggleMenu.active::before {
		opacity: 1 !important;
		transform: translate(-50%, -50%) rotate(45deg) !important;
	}

	#header .toggleMenu.active::after,
	.toggleMenu.active::after {
		opacity: 1 !important;
		transform: translate(-50%, -50%) rotate(-45deg) !important;
	}

	#header #menu #nav,
	#top-bandeau #menu #nav,
	#menu-principal #nav {
		height: calc(100vh - var(--krea-menu-offset, 140px)) !important;
		padding: 30px 24px 52px !important;
		top: var(--krea-menu-offset, 140px) !important;
	}

	#header #menu #nav li > ul,
	#top-bandeau #menu #nav li > ul,
	#menu-principal #nav li > ul {
		border: 0 !important;
		display: none !important;
		margin: 0 !important;
	}

	#header #menu #nav li > a[aria-expanded="true"] + ul,
	#header #menu #nav li > button.menu-item[aria-expanded="true"] + ul,
	#top-bandeau #menu #nav li > a[aria-expanded="true"] + ul,
	#top-bandeau #menu #nav li > button.menu-item[aria-expanded="true"] + ul,
	#menu-principal #nav li > a[aria-expanded="true"] + ul,
	#menu-principal #nav li > button.menu-item[aria-expanded="true"] + ul {
		display: block !important;
	}

	#nav li li a,
	#nav li li button.menu-item,
	#nav li li li a,
	#nav li li li button.menu-item {
		font-weight: 800 !important;
		line-height: 1.2 !important;
		min-height: 58px !important;
		padding: 16px 18px !important;
		text-transform: none !important;
	}

	#nav > li > ul > li > a,
	#nav > li > ul > li > button.menu-item {
		font-size: 1.35rem !important;
		min-height: 64px !important;
	}

	#nav > li > ul > li > ul > li > a,
	#nav > li > ul > li > ul > li > button.menu-item {
		font-size: 1.12rem !important;
		min-height: 58px !important;
	}

	#header #nav > li > ul > li > a,
	#header #nav > li > ul > li > button.menu-item,
	#header #menu #nav > li > ul > li > a,
	#header #menu #nav > li > ul > li > button.menu-item,
	#menu-principal #nav > li > ul > li > a,
	#menu-principal #nav > li > ul > li > button.menu-item {
		font-size: 1.35rem !important;
		min-height: 64px !important;
	}

	#header #nav > li > ul > li > ul > li > a,
	#header #nav > li > ul > li > ul > li > button.menu-item,
	#header #menu #nav > li > ul > li > ul > li > a,
	#header #menu #nav > li > ul > li > ul > li > button.menu-item,
	#header #nav > li > ul > ul > li > a,
	#header #nav > li > ul > ul > li > button.menu-item,
	#header #menu #nav > li > ul > ul > li > a,
	#header #menu #nav > li > ul > ul > li > button.menu-item,
	#menu-principal #nav > li > ul > li > ul > li > a,
	#menu-principal #nav > li > ul > li > ul > li > button.menu-item,
	#menu-principal #nav > li > ul > ul > li > a,
	#menu-principal #nav > li > ul > ul > li > button.menu-item {
		font-size: 1.12rem !important;
		min-height: 58px !important;
	}

	#nav button.menu-item::after,
	#nav li li > button.menu-item::after,
	#nav button.menu-item[aria-expanded="true"]::after {
		color: var(--krea-menu-text, #fff) !important;
	}
}

@media screen and (max-width: 560px) {
	#header .toggleMenu,
	.toggleMenu {
		height: 58px !important;
		right: 20px !important;
		width: 58px !important;
	}

	#header #menu #nav,
	#top-bandeau #menu #nav,
	#menu-principal #nav {
		height: calc(100vh - var(--krea-menu-offset, 140px)) !important;
		padding: 28px 20px 48px !important;
		top: var(--krea-menu-offset, 140px) !important;
	}
}

/* =====================================================
   Variante RGAA fullscreen Krea3
   Le header ferme et les rubriques niveau 1 gardent le rendu du menu RGAA du theme.
   Ce bloc ne surcharge que les panneaux ouverts et le fullscreen mobile.
===================================================== */

#menu-principal #nav,
#menu-principal #nav ul {
	list-style: none !important;
}

#menu-principal #nav > li > button[aria-expanded="false"] + ul,
#menu-principal #nav > li:hover > button[aria-expanded="false"] + ul,
#menu-principal #nav > li:focus-within > button[aria-expanded="false"] + ul {
	display: none !important;
}

@media (min-width: 1218px) {
	#menu-principal #nav > li > button[aria-expanded="true"] + ul:not([hidden]) {
		background: var(--couleur-blanc) !important;
		border: 0 !important;
		border-top: 1px solid rgba(0, 0, 0, .14) !important;
		box-shadow: 0 26px 58px rgba(0, 0, 0, .12) !important;
		box-sizing: border-box !important;
		display: grid !important;
		gap: clamp(34px, 4vw, 70px) clamp(34px, 4vw, 64px) !important;
		grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
		height: auto !important;
		left: 0 !important;
		margin: 0 !important;
		max-height: calc(100vh - 140px) !important;
		min-height: calc(100vh - 140px) !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: clamp(48px, 6vh, 80px) max(8vw, 90px) 80px !important;
		position: fixed !important;
		right: auto !important;
		top: 140px !important;
		width: 100vw !important;
		z-index: 30020 !important;
	}

	.menu-reduit #menu-principal #nav > li > button[aria-expanded="true"] + ul:not([hidden]) {
		max-height: calc(100vh - 80px) !important;
		min-height: calc(100vh - 80px) !important;
		top: 80px !important;
	}

	#menu-principal #nav .krea3-mega-close {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		color: var(--couleur-noir) !important;
		cursor: pointer !important;
		display: flex !important;
		font-family: Arial, Helvetica, sans-serif !important;
		font-size: 3rem !important;
		font-weight: 400 !important;
		height: 54px !important;
		justify-content: center !important;
		line-height: 1 !important;
		margin: 0 !important;
		padding: 0 !important;
		position: fixed !important;
		right: max(4vw, 48px) !important;
		text-decoration: none !important;
		top: calc(140px + 34px) !important;
		width: 54px !important;
		z-index: 30030 !important;
	}

	.menu-reduit #menu-principal #nav .krea3-mega-close {
		top: calc(80px + 26px) !important;
	}

	#menu-principal #nav .krea3-mega-close:hover,
	#menu-principal #nav .krea3-mega-close:focus-visible {
		color: var(--couleur-principale) !important;
		outline: 3px solid var(--couleur-secondaire) !important;
		outline-offset: 4px !important;
	}

	#menu-principal #nav > li > ul > li {
		background: transparent !important;
		border: 0 !important;
		display: block !important;
		margin: 0 !important;
		padding: 0 !important;
		width: auto !important;
	}

	#menu-principal #nav > li > ul > li > a,
	#menu-principal #nav > li > ul > li > button.menu-item {
		background: transparent !important;
		border: 0 !important;
		border-bottom: 3px solid var(--couleur-secondaire) !important;
		border-radius: 0 !important;
		color: var(--couleur-principale) !important;
		display: block !important;
		font-family: var(--police-secondaire) !important;
		font-size: 1.18rem !important;
		font-weight: 800 !important;
		line-height: 1.2 !important;
		margin: 0 0 14px !important;
		padding: 0 0 12px !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: none !important;
		width: 100% !important;
	}

	#menu-principal #nav > li > ul > li > button.menu-item::after {
		display: none !important;
	}

	#menu-principal #nav > li > ul > li > ul,
	#menu-principal #nav > li > ul > li > button[aria-expanded] + ul,
	#menu-principal #nav > li > ul > li > ul[hidden] {
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		display: block !important;
		height: auto !important;
		left: auto !important;
		margin: 0 !important;
		min-height: 0 !important;
		overflow: visible !important;
		padding: 0 !important;
		position: static !important;
		top: auto !important;
		width: 100% !important;
	}

	#menu-principal #nav > li > ul > li > ul > li {
		display: block !important;
		margin: 0 0 10px !important;
		padding: 0 !important;
		width: 100% !important;
	}

	#menu-principal #nav > li > ul > li > ul > li > a,
	#menu-principal #nav > li > ul > li > ul > li > button.menu-item,
	#menu-principal #nav .menu-see-all a {
		background: transparent !important;
		border: 0 !important;
		color: var(--gris-fonce, #333) !important;
		display: block !important;
		font-family: var(--police-secondaire) !important;
		font-size: 1.02rem !important;
		font-weight: 500 !important;
		line-height: 1.25 !important;
		margin: 0 !important;
		opacity: 1 !important;
		padding: 4px 0 !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: none !important;
		width: 100% !important;
	}

	#menu-principal #nav > li > ul a:hover,
	#menu-principal #nav > li > ul a:focus-visible,
	#menu-principal #nav > li > ul button.menu-item:hover,
	#menu-principal #nav > li > ul button.menu-item:focus-visible {
		color: var(--couleur-principale) !important;
		text-decoration: underline !important;
		text-decoration-color: var(--couleur-secondaire) !important;
		text-decoration-thickness: 2px !important;
		text-underline-offset: 5px !important;
	}
}

@media (min-width: 1218px) and (max-width: 1500px) {
	#menu-principal #nav > li > button[aria-expanded="true"] + ul:not([hidden]) {
		grid-template-columns: repeat(2, minmax(220px, 1fr)) !important;
	}
}

@media (max-width: 1217px) {
	body.menu-open {
		background: var(--couleur-principale) !important;
		overflow: hidden !important;
	}

	body.menu-open #header.site-header,
	body.menu-open #header.site-header.menu-reduit {
		background: transparent !important;
		box-shadow: none !important;
		height: 0 !important;
		left: 0 !important;
		min-height: 0 !important;
		padding: 0 !important;
		position: fixed !important;
		right: 0 !important;
		top: 0 !important;
		z-index: 30090 !important;
	}

	body.menu-open #header.site-header #logo {
		display: none !important;
	}

	body.menu-open #menu-principal,
	body.menu-open #header #menu-principal {
		height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		position: static !important;
		width: 100% !important;
	}

	body.menu-open button.toggleMenu.active,
	body.menu-open #header.site-header button.toggleMenu.active,
	body.menu-open.menu-open-scrolled #header.site-header button.toggleMenu.active,
	body.menu-open.menu-open-at-top #header.site-header button.toggleMenu.active {
		background: rgba(255, 255, 255, .08) !important;
		border: 2px solid rgba(255, 255, 255, .82) !important;
		border-radius: 8px !important;
		color: var(--couleur-blanc) !important;
		height: 52px !important;
		left: auto !important;
		margin: 0 !important;
		min-height: 52px !important;
		overflow: visible !important;
		position: fixed !important;
		right: max(18px, env(safe-area-inset-right, 0px)) !important;
		top: max(18px, env(safe-area-inset-top, 0px)) !important;
		transform: none !important;
		width: 52px !important;
		z-index: 30100 !important;
	}

	body.menu-open button.toggleMenu.active::before,
	body.menu-open button.toggleMenu.active::after {
		background: var(--couleur-blanc) !important;
		content: "" !important;
		display: block !important;
		height: 3px !important;
		left: 50% !important;
		position: absolute !important;
		top: 50% !important;
		transform-origin: center !important;
		width: 28px !important;
		z-index: 2 !important;
	}

	body.menu-open button.toggleMenu.active::before {
		transform: translate(-50%, -50%) rotate(45deg) !important;
	}

	body.menu-open button.toggleMenu.active::after {
		transform: translate(-50%, -50%) rotate(-45deg) !important;
	}

	body.menu-open button.toggleMenu.active span[aria-hidden="true"],
	body.menu-open button.toggleMenu.active span[aria-hidden="true"]::before,
	body.menu-open button.toggleMenu.active span[aria-hidden="true"]::after {
		background: transparent !important;
		opacity: 0 !important;
	}

	body.menu-open #menu-principal #nav,
	body.menu-open #header #menu #nav {
		-webkit-overflow-scrolling: touch !important;
		background: var(--couleur-principale) !important;
		border: 0 !important;
		bottom: 0 !important;
		box-sizing: border-box !important;
		display: block !important;
		height: 100vh !important;
		height: 100dvh !important;
		left: 0 !important;
		margin: 0 !important;
		max-height: none !important;
		min-height: 100vh !important;
		min-height: 100dvh !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding: 92px max(22px, 5vw) calc(54px + env(safe-area-inset-bottom, 0px)) !important;
		position: fixed !important;
		right: 0 !important;
		top: 0 !important;
		width: 100vw !important;
		z-index: 30080 !important;
	}

	body.menu-open #menu-principal #nav:focus {
		outline: none !important;
	}

	body.menu-open #menu-principal #nav .krea3-mega-close {
		display: none !important;
	}

	body.menu-open #menu-principal #nav > li {
		border: 0 !important;
		border-bottom: 1px solid rgba(255, 255, 255, .22) !important;
		display: block !important;
		margin: 0 auto !important;
		max-width: 620px !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav > li > a,
	body.menu-open #menu-principal #nav > li > button.menu-item {
		align-items: center !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-sizing: border-box !important;
		color: var(--couleur-blanc) !important;
		display: flex !important;
		font-family: var(--police-secondaire) !important;
		font-size: clamp(1.5rem, 6vw, 2.2rem) !important;
		font-weight: 900 !important;
		justify-content: space-between !important;
		line-height: 1.08 !important;
		margin: 0 !important;
		min-height: 76px !important;
		padding: 18px 54px 18px 0 !important;
		position: relative !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: uppercase !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav > li > a::after {
		display: none !important;
	}

	body.menu-open #menu-principal #nav > li > button.menu-item::after {
		background: none !important;
		color: var(--couleur-blanc) !important;
		content: "+" !important;
		display: inline-flex !important;
		font-size: 2rem !important;
		font-weight: 900 !important;
		height: auto !important;
		line-height: 1 !important;
		margin: 0 !important;
		position: absolute !important;
		right: 0 !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: auto !important;
	}

	body.menu-open #menu-principal #nav > li > a:hover,
	body.menu-open #menu-principal #nav > li > a:focus,
	body.menu-open #menu-principal #nav > li > button.menu-item:hover,
	body.menu-open #menu-principal #nav > li > button.menu-item:focus {
		background: transparent !important;
		color: var(--couleur-blanc) !important;
	}

	body.menu-open #menu-principal #nav > li > button.menu-item[aria-expanded="true"]::after {
		content: "-" !important;
	}

	body.menu-open #menu-principal #nav li > ul,
	body.menu-open #menu-principal #nav li > button[aria-expanded="true"] + ul {
		background: transparent !important;
		border: 0 !important;
		border-left: 4px solid var(--couleur-secondaire) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		box-sizing: border-box !important;
		display: block !important;
		height: auto !important;
		left: auto !important;
		margin: 0 0 22px !important;
		max-height: none !important;
		min-height: 0 !important;
		overflow: visible !important;
		padding: 6px 0 6px clamp(14px, 4vw, 26px) !important;
		position: static !important;
		right: auto !important;
		top: auto !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav li > ul[hidden],
	body.menu-open #menu-principal #nav li li > ul[hidden] {
		display: none !important;
	}

	body.menu-open #menu-principal #nav li li {
		border: 0 !important;
		display: block !important;
		margin: 0 0 8px !important;
		padding: 0 !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav li li > a,
	body.menu-open #menu-principal #nav li li > button.menu-item {
		align-items: center !important;
		background: rgba(255, 255, 255, .08) !important;
		border: 1px solid rgba(255, 255, 255, .22) !important;
		border-radius: 8px !important;
		box-shadow: none !important;
		box-sizing: border-box !important;
		color: var(--couleur-blanc) !important;
		display: flex !important;
		font-family: var(--police-secondaire) !important;
		font-size: clamp(1.05rem, 4.4vw, 1.35rem) !important;
		font-weight: 800 !important;
		justify-content: space-between !important;
		line-height: 1.2 !important;
		margin: 0 !important;
		min-height: 56px !important;
		padding: 14px 46px 14px 16px !important;
		position: relative !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: none !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav li li > button.menu-item::after {
		background: none !important;
		color: var(--couleur-blanc) !important;
		content: "+" !important;
		display: inline-flex !important;
		font-size: 1.5rem !important;
		font-weight: 900 !important;
		height: auto !important;
		line-height: 1 !important;
		margin: 0 !important;
		position: absolute !important;
		right: 16px !important;
		top: 50% !important;
		transform: translateY(-50%) !important;
		width: auto !important;
	}

	body.menu-open #menu-principal #nav li li > a:hover,
	body.menu-open #menu-principal #nav li li > a:focus,
	body.menu-open #menu-principal #nav li li > button.menu-item:hover,
	body.menu-open #menu-principal #nav li li > button.menu-item:focus {
		background: rgba(255, 255, 255, .14) !important;
		color: var(--couleur-blanc) !important;
	}

	body.menu-open #menu-principal #nav li li > button.menu-item[aria-expanded="true"] {
		background: rgba(255, 255, 255, .16) !important;
		border-color: var(--couleur-secondaire) !important;
	}

	body.menu-open #menu-principal #nav li li > button.menu-item[aria-expanded="true"]::after {
		content: "-" !important;
	}

	body.menu-open #menu-principal #nav li li > button[aria-expanded="true"] + ul {
		background: rgba(0, 0, 0, .1) !important;
		border-left: 0 !important;
		margin: 8px 0 12px !important;
		padding: 8px 16px !important;
	}

	body.menu-open #menu-principal #nav li li li {
		border-bottom: 1px solid rgba(255, 255, 255, .18) !important;
		margin: 0 !important;
	}

	body.menu-open #menu-principal #nav li li li:last-child {
		border-bottom: 0 !important;
	}

	body.menu-open #menu-principal #nav li li li > a,
	body.menu-open #menu-principal #nav li li li > button.menu-item,
	body.menu-open #menu-principal #nav .menu-see-all a {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
		color: var(--couleur-blanc) !important;
		display: block !important;
		font-family: var(--police-secondaire) !important;
		font-size: 1rem !important;
		font-weight: 500 !important;
		line-height: 1.3 !important;
		min-height: 0 !important;
		opacity: .96 !important;
		padding: 11px 0 !important;
		text-align: left !important;
		text-decoration: none !important;
		text-transform: none !important;
		width: 100% !important;
	}

	body.menu-open #menu-principal #nav li li li > a:hover,
	body.menu-open #menu-principal #nav li li li > a:focus,
	body.menu-open #menu-principal #nav .menu-see-all a:hover,
	body.menu-open #menu-principal #nav .menu-see-all a:focus {
		color: var(--couleur-blanc) !important;
		text-decoration: underline !important;
		text-decoration-color: var(--couleur-secondaire) !important;
		text-decoration-thickness: 2px !important;
		text-underline-offset: 5px !important;
	}

	body.menu-open #menu-principal #nav a:focus-visible,
	body.menu-open #menu-principal #nav button:focus-visible,
	body.menu-open button.toggleMenu:focus-visible {
		outline: 3px solid var(--couleur-secondaire) !important;
		outline-offset: 4px !important;
	}
}

@media (max-width: 520px) {
	body.menu-open button.toggleMenu.active,
	body.menu-open #header.site-header button.toggleMenu.active {
		height: 48px !important;
		min-height: 48px !important;
		right: max(14px, env(safe-area-inset-right, 0px)) !important;
		top: max(14px, env(safe-area-inset-top, 0px)) !important;
		width: 48px !important;
	}

	body.menu-open #menu-principal #nav,
	body.menu-open #header #menu #nav {
		padding: 82px max(18px, 5vw) calc(44px + env(safe-area-inset-bottom, 0px)) !important;
	}
}
/* Respect de l'attribut HTML hidden, y compris face aux anciens display forces. */
#menu-principal #nav ul[hidden],
#nav ul[hidden] {
	display: none !important;
}

/* Krea3 2026 : equilibrage vertical des rubriques du panneau desktop. */
@media (min-width: 1218px) {
	#menu-principal #nav > li > button[aria-expanded="true"] + ul:not([hidden]),
	#menu-principal #nav > li > ul:not([hidden]) {
		column-count: 3 !important;
		column-fill: balance !important;
		column-gap: clamp(28px, 3vw, 54px) !important;
		display: block !important;
		padding: clamp(24px, 4vh, 44px) max(6vw, 64px) 44px !important;
	}

	#menu-principal #nav > li > ul:not([hidden]) > li {
		break-inside: avoid-column !important;
		display: inline-block !important;
		height: auto !important;
		margin: 0 !important;
		min-height: 0 !important;
		padding: 0 !important;
		width: 100% !important;
	}

	/* Open Sans imposait des lignes de 64/80 px et créait des colonnes hors écran. */
	#menu-principal #nav > li > ul:not([hidden]) li > a,
	#menu-principal #nav > li > ul:not([hidden]) li > button.menu-item {
		box-sizing: border-box !important;
		height: auto !important;
		margin: 0 0 10px !important;
		min-height: 0 !important;
		padding: 4px 0 8px !important;
	}
}

/* =====================================================
   Contrat RGAA Krea3 - commun, sans palette imposee
===================================================== */
a.toggleMenu {
	display: none !important;
}

.visually-hidden,
#menu-principal .visually-hidden {
	border: 0 !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	white-space: nowrap !important;
	width: 1px !important;
}

#menu-principal #nav[hidden],
#header #menu #nav[hidden],
#menu-principal #nav ul[hidden],
#header #menu #nav ul[hidden] {
	display: none !important;
}

#menu-principal button,
#header #menu button {
	cursor: pointer;
}

#menu-principal button.toggleMenu,
#header #menu button.toggleMenu,
#menu-principal #nav button.menu-item,
#menu-principal #nav a {
	min-height: 44px;
}

#menu-principal a:focus-visible,
#menu-principal button:focus-visible,
#header #menu a:focus-visible,
#header #menu button:focus-visible {
	outline: 3px solid var(--couleur-secondaire, #ffbf47) !important;
	outline-offset: 4px !important;
}

#menu-principal .krea3-mega-close,
#header #menu .krea3-mega-close {
	align-items: center;
	box-sizing: border-box;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-height: 48px !important;
	min-width: 48px !important;
}

@media (min-width: 1218px) {
	button.toggleMenu {
		display: none !important;
	}
}

@media (max-width: 1217px) {
	button.toggleMenu {
		min-height: 48px !important;
		min-width: 48px !important;
	}

	body.menu-open {
		overflow: hidden !important;
	}
}

/* Pont avec le nav#menu historique d'Open Sans. */
@media (min-width: 1218px) {
	#header #menu #nav > li > button[aria-expanded="true"] + ul:not([hidden]),
	#header #menu #nav > li > ul:not([hidden]) {
		background: var(--krea-menu-bg, #245f70) !important;
		box-sizing: border-box !important;
		color: var(--krea-menu-text, #fff) !important;
		display: grid !important;
		gap: clamp(26px, 3vw, 56px) !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		inset: var(--krea3-menu-header-height, 149px) 0 0 !important;
		margin: 0 !important;
		max-height: calc(100dvh - var(--krea3-menu-header-height, 149px)) !important;
		max-width: none !important;
		overflow-y: auto !important;
		padding: clamp(72px, 8vh, 104px) max(7vw, 72px) 48px !important;
		position: fixed !important;
		transform: none !important;
		width: 100vw !important;
		z-index: 30010 !important;
	}

	#header #menu #nav > li > ul:not([hidden]) > li {
		display: block !important;
		height: auto !important;
		margin: 0 !important;
		padding: 0 !important;
		position: static !important;
		width: auto !important;
	}

	#header #menu #nav > li > ul:not([hidden]) a,
	#header #menu #nav > li > ul:not([hidden]) button.menu-item {
		background: transparent !important;
		color: var(--krea-menu-text, #fff) !important;
		height: auto !important;
		min-height: 44px !important;
		white-space: normal !important;
	}

	#header #menu #nav > li > ul:not([hidden]) li > ul:not([hidden]) {
		background: transparent !important;
		display: block !important;
		inset: auto !important;
		margin: 0 !important;
		padding: 0 0 0 18px !important;
		position: static !important;
		width: auto !important;
	}

	#header #menu #nav .krea3-mega-close {
		background: #fff !important;
		border: 2px solid #111 !important;
		color: #111 !important;
		font-size: 2.25rem !important;
		height: 54px !important;
		inset: 24px max(4vw, 48px) auto auto !important;
		line-height: 1 !important;
		margin: 0 !important;
		max-height: 54px !important;
		max-width: 54px !important;
		min-height: 54px !important;
		min-width: 54px !important;
		padding: 0 !important;
		position: absolute !important;
		width: 54px !important;
		z-index: 30030 !important;
	}
}

/* Conserver une liste HTML valide sans ajouter une colonne au mega-menu. */
html body #menu-principal #nav > li > ul:not([hidden]) > li.krea3-mega-close-item,
html body #header #menu #nav > li > ul:not([hidden]) > li.krea3-mega-close-item,
html body #top-bandeau #menu #nav > li > ul:not([hidden]) > li.krea3-mega-close-item {
	display: contents !important;
}


/* =====================================================
   Panneau RGAA plein ecran : contrat de geometrie desktop
   La palette et la typographie restent celles du theme.
===================================================== */
@media (min-width: 1218px) {
	html body.menu-open-desktop {
		overflow: hidden !important;
	}

	html body.menu-open-desktop #header #menu-principal #nav > li > button.menu-item[aria-expanded="true"] + ul:not([hidden]),
	html body.menu-open-desktop #header #menu #nav > li > button.menu-item[aria-expanded="true"] + ul:not([hidden]),
	html body.menu-open-desktop #top-bandeau #menu #nav > li > button.menu-item[aria-expanded="true"] + ul:not([hidden]),
	html body.menu-open-desktop #menu-principal #nav > li > button.menu-item[aria-expanded="true"] + ul:not([hidden]) {
		bottom: 0 !important;
		box-sizing: border-box !important;
		height: auto !important;
		left: 0 !important;
		max-height: calc(100vh - var(--krea3-menu-header-bottom, var(--krea3-menu-header-height, 149px))) !important;
		max-height: calc(100dvh - var(--krea3-menu-header-bottom, var(--krea3-menu-header-height, 149px))) !important;
		min-height: 0 !important;
		overscroll-behavior: contain !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		padding-bottom: max(48px, env(safe-area-inset-bottom, 0px)) !important;
		padding-top: max(88px, calc(56px + env(safe-area-inset-top, 0px))) !important;
		position: fixed !important;
		right: 0 !important;
		top: var(--krea3-menu-header-bottom, var(--krea3-menu-header-height, 149px)) !important;
		width: 100vw !important;
		z-index: 2147482000 !important;
	}

	html body.menu-open-desktop #header #menu-principal #nav .krea3-mega-close,
	html body.menu-open-desktop #header #menu #nav .krea3-mega-close,
	html body.menu-open-desktop #top-bandeau #menu #nav .krea3-mega-close,
	html body.menu-open-desktop #menu-principal #nav .krea3-mega-close {
		bottom: auto !important;
		left: auto !important;
		position: fixed !important;
		right: max(22px, env(safe-area-inset-right, 0px)) !important;
		top: calc(var(--krea3-menu-header-bottom, var(--krea3-menu-header-height, 149px)) + max(22px, env(safe-area-inset-top, 0px))) !important;
		z-index: 2147482100 !important;
	}
}

/* Catalogue 2026 : la page de rubrique est deja portee par son bouton. */
@media (min-width: 1218px) {
	#menu-principal #nav .menu-see-all,
	#menu #nav .menu-see-all {
		display: none !important;
	}

	#menu-principal #nav > li > ul > li > button.menu-item::after,
	#menu #nav > li > ul > li > button.menu-item::after {
		content: none !important;
		display: none !important;
		margin: 0 !important;
	}
}
