/* stylelint-disable no-descending-specificity, no-duplicate-selectors */

/**
 * Header - Styles
 */

/* ========================================
   Scroll lock (menu mobile ouvert)
   ======================================== */

body.ri-menu-open {
	overflow: hidden;
}

/* ========================================
   Base
   ======================================== */

.ri-header {
	position: relative;
	width: 100%;
	background-color: var(--ri-color-yellow);
	font-family: var(--ri-font-1);
	display: flex;
	z-index: 1000;
	box-shadow: 0 0 32px 0 rgba(33, 75, 77, 0.16);
}

.ri-header::after {
	content: "";
	position: fixed;
	inset: var(--ri-header-height, 70px) 0 0 0;
	background: rgba(33, 75, 77, 0.2);
	z-index: 998;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--ri-transition-slow);
}

.ri-header:has(nav.has-mega-menu > ul > li.menu-item-has-children:hover)::after {
	opacity: 1;
	pointer-events: auto;
}

.ri-header .container {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: min(1825px, 100% - 64px);
	margin-inline: auto;
}

/* ========================================
   Logo
   ======================================== */

.ri-header .logo {
	flex-shrink: 0;
}

.ri-header .logo-link {
	display: flex;
	align-items: center;
}

.ri-header .logo img {
	width: 113px;
	height: auto;
}

/* ========================================
   Navigation droite
   ======================================== */

.ri-header .nav-wrapper {
	display: flex;
	align-items: center;
	gap: var(--ri-space-lg);
}

/* ========================================
   Menu principal
   ======================================== */

.ri-header nav {
	display: flex;
	align-items: center;
	gap: 40px;
}

.ri-header nav ul {
	display: flex;
	align-items: center;
	gap: 0;
	list-style: none;
	margin: 0;
	padding: 0;
}

.ri-header nav li {
	line-height: 1;
}

.ri-header nav li a {
	display: block;
	position: relative;
	text-decoration: none;
	color: var(--ri-color-teal);
	font-weight: 400;
}

.ri-header nav > ul > li > a {
	padding-inline: 20px;
}

.ri-header nav > ul > li:first-child > a {
	padding-left: 0;
}

.ri-header nav > ul > li:first-child > a::after {
	left: 0;
}

.ri-header nav > ul > li:first-child:hover > a::after,
.ri-header nav > ul > li:first-child.current-menu-item > a::after,
.ri-header nav > ul > li:first-child.current-menu-ancestor > a::after,
.ri-header nav > ul > li:first-child.current-menu-parent > a::after {
	width: calc(100% - 20px);
}

.ri-header nav > ul > li:first-child.menu-item-has-children:hover > a::after,
.ri-header nav > ul > li:first-child.menu-item-has-children.current-menu-item > a::after,
.ri-header nav > ul > li:first-child.menu-item-has-children.current-menu-ancestor > a::after,
.ri-header nav > ul > li:first-child.menu-item-has-children.current-menu-parent > a::after {
	width: calc(100% - 20px - 18px);
}

.ri-header nav > ul > li:last-child > a {
	padding-right: 0;
}

.ri-header nav > ul > li:last-child:hover > a::after,
.ri-header nav > ul > li:last-child.current-menu-item > a::after,
.ri-header nav > ul > li:last-child.current-menu-ancestor > a::after,
.ri-header nav > ul > li:last-child.current-menu-parent > a::after {
	width: calc(100% - 20px);
}

.ri-header nav > ul > li:last-child.menu-item-has-children:hover > a::after,
.ri-header nav > ul > li:last-child.menu-item-has-children.current-menu-item > a::after,
.ri-header nav > ul > li:last-child.menu-item-has-children.current-menu-ancestor > a::after,
.ri-header nav > ul > li:last-child.menu-item-has-children.current-menu-parent > a::after {
	width: calc(100% - 20px - 18px);
}

/* Chevron desktop dans les items avec sous-menu */
.ri-header .menu-chevron-desktop {
	display: inline-flex;
	align-items: center;
	margin-left: 6px;
	vertical-align: middle;
}

/* Sous-menus masqués (desktop hors méga menu) */
.ri-header nav li ul {
	display: none;
}

/* Bordure animée — positionnée par rapport au <a>, décalée du padding-inline */
.ri-header nav > ul > li > a::after {
	content: "";
	position: absolute;
	bottom: -4px;
	left: 20px;
	width: 0;
	height: 2px;
	background-color: var(--ri-color-teal);
	transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.ri-header nav > ul > li:hover > a::after {
	width: calc(100% - 40px);
}

.ri-header nav > ul > li.menu-item-has-children:hover > a::after {
	width: calc(100% - 40px - 18px);
}

/* Lien actif / ancêtre actif */
.ri-header nav li.current-menu-item a,
.ri-header nav li.current-menu-ancestor a,
.ri-header nav li.current-menu-parent a {
	font-weight: 700;
}

.ri-header nav > ul > li.current-menu-item > a::after,
.ri-header nav > ul > li.current-menu-ancestor > a::after,
.ri-header nav > ul > li.current-menu-parent > a::after {
	width: calc(100% - 40px);
}

.ri-header nav > ul > li.menu-item-has-children.current-menu-item > a::after,
.ri-header nav > ul > li.menu-item-has-children.current-menu-ancestor > a::after,
.ri-header nav > ul > li.menu-item-has-children.current-menu-parent > a::after {
	width: calc(100% - 40px - 18px);
}

/* ========================================
   Recherche
   ======================================== */

.ri-header .search {
	position: relative;
}

/* Vraie barre de recherche : mobile uniquement (masquée sur desktop) */
.ri-header .search-form {
	display: none;
}

.ri-header .search-toggle svg {
	transition: transform var(--ri-transition-base);
}

.ri-header .search-toggle svg path {
	transition: stroke var(--ri-transition-fast);
}

.ri-header .search-toggle:hover svg {
	transform: rotate(5deg);
}

.ri-header .search-toggle:hover svg path {
	stroke: var(--ri-color-white);
}

.ri-header .search-container {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	background: var(--ri-color-white);
	padding: var(--ri-space-md);
	z-index: 100;
}

.ri-header .search-container[aria-hidden="false"] {
	display: block;
}

/* ========================================
   Switch langue
   ======================================== */

.ri-header .lang-switcher ul {
	display: flex;
	align-items: center;
	gap: 40px;
}

.ri-header .lang-switcher li {
	position: relative;
}

.ri-header .lang-switcher li + li::before {
	content: "";
	position: absolute;
	left: -20px;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 21px;
	background: var(--ri-color-teal);
}

.ri-header .lang-switcher a {
	position: relative;
	text-decoration: none;
	color: var(--ri-color-teal);
	font-weight: 400;
	transition: opacity var(--ri-transition-fast);
}

.ri-header .lang-switcher a::after {
	content: "";
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 0;
	height: 2px;
	background-color: var(--ri-color-teal);
	transition: width 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.ri-header .lang-switcher .current-lang a {
	font-weight: 700;
}

.ri-header .lang-switcher .current-lang a::after {
	width: 100%;
}

/* ========================================
   Burger menu (masqué sur desktop)
   ======================================== */

.ri-header .burger {
	display: none;
	align-items: center;
	justify-content: center;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--ri-space-sm);
}

.ri-header .burger-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	transition: opacity var(--ri-transition-base);
}

.ri-header .burger-icon svg {
	display: block;
}

.ri-header .burger-close {
	display: none;
}

.ri-header .burger[aria-expanded="true"] .burger-open {
	display: none;
}

.ri-header .burger[aria-expanded="true"] .burger-close {
	display: flex;
}

/* ========================================
   Méga menu — Desktop uniquement
   ======================================== */

@media (min-width: 1201px) {

	/* Éléments mobile masqués sur desktop */
	.ri-header .menu-chevron,
	.ri-header .back-header {
		display: none;
	}

	/* Chaîne stretch : li remplit toute la hauteur du header →
       plus de gap entre le bas du li et le panneau méga menu */
	.ri-header .container,
	.ri-header nav,
	.ri-header nav > ul,
	.ri-header .nav-wrapper {
		align-items: stretch;
	}

	.ri-header .logo,
	.ri-header nav > ul > li {
		display: flex;
		align-items: center;
	}

	/* Search & lang-switcher : centrés verticalement malgré le stretch */
	.ri-header .search,
	.ri-header .lang-switcher {
		display: flex;
		align-items: center;
	}

	/* L'item niveau 1 ne doit pas être un ancêtre positionné */
	.ri-header nav.has-mega-menu > ul > li.menu-item-has-children {
		position: static;
	}

	/* Panneau méga menu — collé sous le header via position: absolute */
	.ri-header nav.has-mega-menu > ul > li.menu-item-has-children > .sub-menu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: flex-start;
		justify-content: center;
		gap: 112px;
		list-style: none;
		margin: 0;
		padding-block: 80px;
		padding-inline: max(32px, calc(50% - 735px));
		max-width: 100%;
		height: min(clamp(360px, -3.84rem + 35.09vw, 500px), 80vh);
		overflow: hidden;
		background: var(--ri-color-white);
		box-shadow: var(--ri-shadow-lg);
		z-index: 999;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition: opacity 0.25s ease, visibility 0s linear 0.25s;
	}

	.ri-header nav.has-mega-menu > ul > li.menu-item-has-children:hover > .sub-menu {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transition: opacity 0.25s ease, visibility 0s linear 0s;
	}

	/* Colonnes (items niveau 2) */
	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li {
		flex: 1 1 0;
		max-width: 200px;
		position: static;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li::after {
		display: none;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > a {
		display: block;
		font: 700 14px/1.4 var(--ri-font-1);
		padding-bottom: var(--ri-space-xs);
		margin-bottom: var(--ri-space-xs);
		color: var(--ri-color-teal);
	}

	/* Sous-sous-items (niveau 3) — inline sous leur colonne */
	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu {
		display: block;
		position: static;
		list-style: none;
		margin: 0;
		padding: 0;
		box-shadow: none;
		background: none;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu > li {
		position: static;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu > li.menu-item-type-post_type_archive:not(.menu-item-object-evenements):not(.menu-item-object-nos-partenaires):not(.menu-item-object-nos-projets):not(.menu-item-object-nos-sites):not(.menu-item-object-dispositifs) {
		display: none;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu > li::after {
		display: none;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu > li > a {
		display: block;
		padding: 12px 0;
		font: 400 14px/1 var(--ri-font-1);
		color: var(--ri-color-teal);
		transition: opacity var(--ri-transition-fast);
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > li > .sub-menu > li > .menu-item-description {
		display: block;
		padding-bottom: 12px;
		font: 400 12px/1.4 var(--ri-font-1);
		color: var(--ri-color-teal);
		opacity: 0.65;
		white-space: normal;
	}

	/* <a> flex column pour contenir la description */
	.ri-header .menu-item-description {
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 3;
		line-clamp: 3;
		overflow: hidden;
		max-height: 0;
		opacity: 0;
		font: 400 12px/1.4 var(--ri-font-1);
		color: var(--ri-color-teal);
		transition: max-height 0.35s ease, opacity 0.3s ease;
		margin-top: 8px;
	}

	.ri-header a:hover > .menu-item-description,
	.ri-header a:focus > .menu-item-description {
		max-height: calc(12px * 1.4 * 3 + 2px);
		opacity: 1;
	}
}

/* ========================================
   Méga menu — Image décorative (desktop)
   ======================================== */

.ri-header .mega-image {
	display: none;
}

@media (min-width: 1201px) {

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > .mega-image {
		display: block;
		flex: 0 0 650px;
		align-self: stretch;
		margin-left: auto;
		overflow: hidden;
	}

	.ri-header nav.has-mega-menu > ul > li > .sub-menu > .mega-image .img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: cover;
	}
}

/* ========================================
   Surcharges spécifiques par item
   ======================================== */

.menu-item-516 > .sub-menu a {
	text-transform: uppercase;
}

/* ========================================
   Méga menu — Nos offres (item 324)
   ======================================== */

@media (min-width: 1201px) {

	/* Panneau — surcharge gap/padding/hauteur du panneau générique */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu {
		height: min(clamp(360px, -3.84rem + 35.09vw, 500px), 80vh);
		gap: 16px;
		padding-block: 40px;
		padding-inline: clamp(32px, -14.56rem + 22.06vw, 120px);
		align-items: stretch;
		justify-content: flex-start;
	}

	/* Carte — fond blanc, outline gris, max-width libéré */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card {
		flex: 1 1 0;
		max-width: none;
		position: relative;
		overflow: hidden;
		outline: 1px solid var(--ri-color-grey);
		outline-offset: -1px;
		background-color: var(--ri-color-white);
		transition: outline-color var(--ri-transition-slow);
	}

	/* Lien = toute la surface — surcharge font/color/display de la règle générique
       position: relative nécessaire pour les pseudo-éléments enfants */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card > a {
		display: flex;
		flex-direction: column;
		justify-content: flex-end;
		align-items: flex-start;
		height: 100%;
		padding: 16px;
		margin-bottom: 0;
		text-decoration: none;
		font: 700 clamp(16px, 1.7vw, 40px) / 1 var(--ri-font-2);
		color: var(--ri-color-grey);
		hyphens: manual;
		position: relative;
		z-index: 0;
		transition: color var(--ri-transition-slow);
	}

	/* Annuler la bordure animée du menu global sur les cartes link */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--link > a::after {
		display: none;
	}

	/* ::before = image de fond (--mega-card-img injecté sur le <a> par PHP)
       z-index négatif pour passer sous le texte flex */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur > a::before {
		content: "";
		position: absolute;
		inset: 0;
		background-image: var(--mega-card-img, none);
		background-size: cover;
		background-position: center;
		opacity: 0;
		transition: opacity 0.4s ease;
		z-index: -2;
		display: block;
	}

	/* ::after = gradient sombre (remplace la bordure animée sur ces items) */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur > a::after {
		content: "";
		position: absolute;
		inset: 0;
		width: auto;
		height: auto;
		background-color: transparent;
		background-image: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, var(--ri-color-teal) 100%);
		opacity: 0;
		transition: opacity 0.4s ease;
		z-index: -1;
		display: block;
	}

	/* Secteur : titre toujours accent, outline accent au hover */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur > a {
		color: var(--ri-color-yellow);
	}

	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur:hover {
		outline-color: var(--ri-color-yellow);
	}

	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur:hover > a::before,
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li.mega-card--secteur:hover > a::after {
		opacity: 1;
	}

	/* Désactiver le sous-sous-menu natif */
	.ri-header nav.has-mega-menu > ul > li.menu-item-324 > .sub-menu > li > .sub-menu {
		display: none !important;
	}
}

/* Mobile : cartes en liste simple */
@media (max-width: 1200px) {

	.menu-item-324 > .sub-menu > li.mega-card > a {
		background-image: none !important;
		font: 400 15px/1 var(--ri-font-1) !important;
		color: var(--ri-color-teal) !important;
		padding: var(--ri-space-sm) 0 !important;
		height: auto !important;
		margin-bottom: 0 !important;
	}
}

/* ========================================
   Responsive - Mobile
   ======================================== */

@media (max-width: 1200px) {

	.ri-header .container {
		width: 100%;
	}

	.ri-header .logo img {
		width: 79px;
	}

	.ri-header .menu-chevron-desktop {
		display: none;
	}

	.ri-header .burger {
		display: flex;
	}

	/* Nav : overlay plein écran fixé sous le header */
	.ri-header nav {
		display: none;
		position: fixed;
		inset: 58px 0 0 0;
		overflow: hidden;
		background: var(--ri-color-grey-soft);
		z-index: 999;
	}

	#menu-menu-principal {
		margin-top: 25px;
		padding-top: var(--ri-block-padding-tel);
		gap: 40px;
	}

	.ri-header nav.is-open {
		display: block;
		min-height: 500px;
	}

	/* ---- Panel 0 : menu principal ---- */

	.ri-header nav > ul {
		position: absolute;
		inset: 0;
		overflow-y: auto;
		list-style: none;
		margin: 0;
		padding: 0 var(--ri-space-md);
		padding-bottom: 80px;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		transition: left 0.35s cubic-bezier(0.22, 1, 0.36, 1);
	}

	/* Glisse à gauche — left sans transform, pas de nouveau stacking context */
	.ri-header nav.has-active > ul {
		left: -100%;
		pointer-events: none;
	}

	/* Items niveau 1 */
	.ri-header nav > ul > li {
		position: static;
		display: flex;
		align-items: center;
	}

	.ri-header nav > ul > li::after {
		display: none;
	}

	.ri-header nav > ul > li > a {
		flex: 1;
		display: block;
		font: 400 16px/1 var(--ri-font-1);
		color: var(--ri-color-teal);
		border-bottom: none;
		padding: 0;
	}

	/* Désactiver le soulignement actif/hover sur mobile */
	.ri-header nav > ul > li > a::after {
		display: none;
	}

	/* Chevron (injecté par JS) */
	.ri-header .menu-chevron {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		width: 13px;
		height: 7px;
		background: none;
		border: none;
		cursor: pointer;
		color: var(--ri-color-teal);
		padding: 0;
		transform: rotate(-90deg);
	}

	/* ---- Panel 1 : sous-menu ---- */

	.ri-header nav > ul > li > .sub-menu {
		display: flex !important;
		flex-direction: column;
		gap: 40px;
		align-items: start;
		position: fixed;
		inset: 58px 0 0 0;
		overflow-y: auto;
		list-style: none;
		margin: 0;
		padding: 0;
		background: var(--ri-color-grey-soft);
		z-index: 999;
		transform: translateX(100%);
		transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
		visibility: visible;
		pointer-events: auto;
		overflow-x: hidden;
		padding-top: 56px;
	}

	.ri-header nav > ul > li.is-active > .sub-menu {
		transform: translateX(0);
	}

	/* En-tête du sous-panneau (injecté par JS) */
	.ri-header .back-header {
		display: flex;
		align-items: center;
		gap: var(--ri-space-sm);
		margin-inline: auto;
		position: sticky;
		top: 0;
		background: var(--ri-color-grey-soft);
		z-index: 1;
		width: calc(100% - 32px);
		justify-content: space-between;
		padding-bottom: 24px;
	}

	.ri-header .back-header::after {
		content: "";
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 2px;
		background: var(--ri-color-grey-mid);
	}

	.ri-header .menu-back {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		height: 36px;
		background: none;
		border: none;
		cursor: pointer;
		color: var(--ri-color-teal);
		padding: 0;
		transform: rotate(90deg);
	}

	.ri-header .back-title {
		font: 700 16px/1 var(--ri-font-1);
		color: var(--ri-color-teal);
	}

	/* Items niveau 2 dans le sous-panneau */
	.ri-header nav > ul > li > .sub-menu > li {
		position: static;
		padding: 0 var(--ri-space-sm);
		width: 100%;
	}

	.ri-header nav > ul > li > .sub-menu > li::after {
		display: none;
	}

	.ri-header nav > ul > li > .sub-menu > li > a {
		display: block;
		font: 400 15px/1 var(--ri-font-1);
		color: var(--ri-color-teal);
	}

	/* Sous-sous-items (niveau 3) — inline dans le Panel 1 par défaut */
	.ri-header nav > ul > li > .sub-menu > li > .sub-menu {
		display: block !important;
		position: static;
		transform: none;
		transition: none;
		list-style: none;
		margin: 0;
		padding: 0;
		padding-left: var(--ri-space-sm);
		background: none;
	}

	.ri-header nav > ul > li > .sub-menu > li > .sub-menu > li {
		position: static;
	}

	.ri-header nav > ul > li > .sub-menu > li > .sub-menu > li::after {
		display: none;
	}

	.ri-header nav > ul > li > .sub-menu > li > .sub-menu > li > a {
		display: block;
		padding: 8px 0;
		font: 400 14px/1 var(--ri-font-1);
		color: var(--ri-color-teal);
		border-bottom: none;
	}

	/* ---- Panel 2 : niveau 3 (items avec enfants seulement) ---- */

	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children > .sub-menu {
		display: block !important;
		position: fixed;
		inset: 0;
		overflow-y: auto;
		padding: 0;
		padding-left: 0;
		background: var(--ri-color-grey-soft);
		z-index: 1000;
		transform: translateX(100%);
		transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
		visibility: visible;
		pointer-events: auto;
		padding-top: 56px;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children.is-active > .sub-menu {
		transform: translateX(0);
	}

	/* Items dans le Panel 2 : retrouvent le padding d'un panneau */
	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children > .sub-menu > li {
		padding: 40px var(--ri-space-sm) 0;
	}

	/* Exception nos-programmes : l'espacement vertical est porté par le <a> */
	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li {
		padding: 0 var(--ri-space-sm);
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li:not(.menu-item-type-post_type_archive) > a {
		display: inline-block;
		padding-block: 12px;
		font-weight: 700;
		font-size: 18px;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li.menu-item-type-post_type_archive > a {
		font-size: 16px;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li:not(.menu-item-type-post_type_archive):not(:last-child) > a {
		border-bottom: 2px solid var(--ri-color-grey-mid);
		padding-bottom: 12px;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li.menu-item-type-post_type_archive {
		padding-top: 24px;
		padding-bottom: 28px;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > .sub-menu > li.menu-item-type-post_type_archive > a {
		text-decoration: underline;
	}

	/* Chevron sur items niveau 2 : positionné à droite */
	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children > a {
		flex: 1;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-has-children > .sub-menu {
		flex-basis: 100%;
	}

	/* Sur mobile la description est toujours visible (pas de hover) */
	.ri-header .menu-item-description {
		max-height: none !important;
		opacity: 1 !important;
		transition: none !important;
		margin-top: 4px;
		padding-bottom: 0;
		font: 400 14px/1.4 var(--ri-font-1) !important;
		display: block;
	}

	.ri-header nav > ul > li > .sub-menu > li.menu-item-object-nos-programmes > a {
		display: flex !important;
		flex-direction: column !important;
		gap: 4px;
		padding: 0 !important;
		font: 700 15px/1.2 var(--ri-font-1) !important;
	}

	/* ---- Recherche + Lang-switcher : bas du Panel 0 ---- */

	/* Barre de recherche : pleine largeur, juste au-dessus du switcher langue */
	.ri-header .search {
		position: absolute;
		left: var(--ri-space-md);
		right: var(--ri-space-md);
		bottom: calc(var(--ri-space-md) + 48px);
		z-index: 1;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	/* Desktop : loupe seule → masquée sur mobile au profit de la vraie barre */
	.ri-header .search-toggle {
		display: none;
	}

	.ri-header .search-form {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: var(--ri-space-sm);
		width: 100%;
		padding-block: var(--ri-space-md);
		border-top: 2px solid var(--ri-color-grey-mid);
		border-bottom: 2px solid var(--ri-color-grey-mid);
	}

	.ri-header .search-field {
		flex: 1;
		min-width: 0;
		background: none;
		border: none;
		padding: 0;
		font: 500 15px / 1.5 var(--ri-font-1);
		color: var(--ri-color-teal);
	}

	.ri-header .search-field::placeholder {
		color: var(--ri-color-grey);
		opacity: 1;
	}

	.ri-header .search-field:focus {
		outline: none;
	}

	.ri-header .search-submit {
		display: flex;
		align-items: center;
		justify-content: center;
		flex-shrink: 0;
		background: none;
		border: none;
		padding: 0;
		cursor: pointer;
	}

	.ri-header .lang-switcher {
		position: absolute;
		bottom: var(--ri-space-md);
		left: var(--ri-space-md);
		padding: 0;
		border-bottom: none;
		z-index: 1;
		transition: opacity 0.2s ease, visibility 0.2s ease;
	}

	/* Masquer recherche + switcher quand un sous-panneau est affiché */
	.ri-header nav.has-active .search,
	.ri-header nav.has-active .lang-switcher {
		opacity: 0;
		visibility: hidden;
	}

}

@media (max-width: 783px) {

	.ri-header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 1000;
		transition: transform var(--ri-transition-slow);
	}

	.admin-bar .ri-header {
		top: 46px;
	}

	.ri-header.is-hidden {
		transform: translateY(-100%);
	}

	.ri-header nav > ul {
		padding-inline: var(--ri-space-sm);
	}

	.ri-header .burger {
		padding: var(--ri-space-sm) 0;
	}
}
