/**
 * Site header — refonte page d'accueil 2026
 * Logo · nav · (langues + recherche) au-dessus des CTAs
 *
 * À enqueue conditionnellement via functions.php (only is_front_page).
 */

/* ============================================================
   Main header
   ============================================================ */
.site-header {
	background: #fff;
	position: sticky;
	top: 0;
	z-index: 1020;
	transition: box-shadow .2s ease;
}

.site-header.is-scrolled {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.site-header__inner {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 0;
}

.site-header__logo {
	flex: 0 0 auto;
	display: inline-block;
	line-height: 0;
}

.site-header__logo img {
	width: 235px;
	height: auto;
}

/* ============================================================
   Visibilité desktop / mobile — breakpoint custom 1335px
   (les règles display: ... sont aussi posées en bas du fichier
    avec !important pour battre les autres rules .site-header__mobile)
   ============================================================ */
.site-header__nav,
.site-header__actions {
	display: none;
}

.site-header__mobile {
	display: flex;
}

@media (min-width: 1335px) {
	.site-header__nav,
	.site-header__actions {
		display: flex !important;
	}

	.site-header__nav {
		margin-bottom: 4px;
	}

	.site-header__mobile {
		display: none !important;
	}
}

/* Nav principale (desktop) — alignée à droite */
.site-header__nav {
	flex: 1 1 auto;
	justify-content: flex-end;
}

.site-header__menu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	gap: 32px;
	align-items: center;
}

.site-header__menu li {
	margin: 0;
	padding: 0;
}

.site-header__menu a {
	color: #2F3D47;
	text-decoration: none;
	font-size: 16px;
	text-transform: lowercase;
	transition: color .15s linear;
	padding: 8px 0;
	display: inline-block;
}

.site-header__menu a:hover,
.site-header__menu a:focus,
.site-header__menu .current-menu-item > a,
.site-header__menu .current-menu-ancestor > a {
	color: #ff4e00; /* orange brand */
}

/* ---- Override Max Mega Menu (qui intercepte wp_nav_menu sur secondary-menu)
   Le CSS auto-généré par MMM est calé pour fond sombre (overlay-header-menu) ;
   on le force en sombre/orange ici pour fond blanc du nouveau header. ---- */
.site-header__nav #mega-menu-wrap-secondary-menu,
.site-header__nav #mega-menu-wrap-secondary-menu #mega-menu-secondary-menu {
	background: transparent !important;
}

.site-header__nav #mega-menu-secondary-menu {
	display: flex !important;
	justify-content: flex-end;
	align-items: center;
	gap: 0;
}

.site-header__nav #mega-menu-secondary-menu > li.mega-menu-item > a.mega-menu-link {
	color: #2F3D47 !important;
	background: transparent !important;
	text-transform: lowercase;
	font-weight: normal !important;
	font-size: 18px !important;
	line-height: 1.4 !important;
	height: auto !important;
	padding: 8px 16px !important;
}

.site-header__nav #mega-menu-secondary-menu > li.mega-menu-item > a.mega-menu-link:hover,
.site-header__nav #mega-menu-secondary-menu > li.mega-menu-item.mega-current-menu-item > a.mega-menu-link,
.site-header__nav #mega-menu-secondary-menu > li.mega-menu-item.mega-current-menu-ancestor > a.mega-menu-link,
.site-header__nav #mega-menu-secondary-menu > li.mega-menu-item.mega-toggle-on > a.mega-menu-link {
	color: #ff4e00 !important;
	background: transparent !important;
}

/* ============================================================
   Actions (langues + recherche au-dessus des CTAs)
   ============================================================ */
.site-header__actions {
	flex: 0 0 auto;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
}

.site-header__top-actions {
	display: inline-flex;
	align-items: center;
	margin-bottom: 6px;
}

/* Recherche — taille intermédiaire + flex pour matcher la hauteur du pill langue */
.site-header__top-actions a.btn-search {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #2F3D47;
	text-decoration: none;
	vertical-align: 0;
	line-height: 1;
	font-size: 1.2rem;        /* ~19px (vs 1.5rem hérité) */
	margin-right: 18px;       /* vs 30px hérité */
	height: 32px;             /* aligne sur la hauteur visible du pill langue */
}

.site-header__top-actions a.btn-search:hover,
.site-header__top-actions a.btn-search:focus {
	color: #2F3D47;
	opacity: .6;
}

/* Pill langue — flex pour alignement vertical, reset des décalages hérités */
.site-header__top-actions .wpml-ls-legacy-dropdown-click {
	display: inline-flex;
	align-items: center;
	top: 0;
	margin-right: 0;
}

.site-header__top-actions .wpml-ls-legacy-dropdown-click > ul > li > a {
	border: 2px solid #2F3D47;
	color: #2F3D47;
	font-size: 14px;
	padding: 3px 14px 4px 14px;
}

/* Caret du toggle : repassé en inline (au lieu de l'absolute hérité qui chevauche le texte) */
.site-header__top-actions .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle::after {
	position: static;
	right: auto;
	top: auto;
	font-size: 0.7rem;
	margin-left: 0.4rem;
	vertical-align: middle;
}

.site-header__top-actions .wpml-ls-legacy-dropdown-click > ul > li > a:hover,
.site-header__top-actions .wpml-ls-legacy-dropdown-click > ul > li > a:focus,
.site-header__top-actions .wpml-ls-legacy-dropdown-click > ul > li:hover > a {
	color: #2F3D47;
	background: #FFF;
	border-color: #2F3D47;
}

/* Sous-menu langues : padding et font cohérents avec le toggle */
.site-header__top-actions .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu {
	padding: 10px 14px 4px 14px;
	font-size: 14px;
	border-radius: 12px;
}

/* Items du sous-menu : pas de bordure, hover orange */
.site-header__top-actions .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a {
	border: 0;
	color: #2F3D47;
	background: transparent;
}

.site-header__top-actions .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a:hover,
.site-header__top-actions .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a:focus {
	color: #ff4e00;
	background: transparent;
}

/* ============================================================
   CTAs orange brand
   ============================================================ */
.site-header__cta {
	display: flex;
	gap: 10px;
	align-items: center;
}

.site-header__cta .btn,
.site-header__cta .btn-primary {
	background-color: #ff4e00;
	border-color: #ff4e00;
	color: #fff;
	white-space: nowrap;
	padding: 10px 22px;
	font-size: 16px;
}

.site-header__cta .btn:hover,
.site-header__cta .btn-primary:hover,
.site-header__cta .btn:focus,
.site-header__cta .btn-primary:focus {
	background-color: #fff;
	border-color: #ff4e00;
	color: #ff4e00;
}

/* ============================================================
   Mobile — search + lang + burger
   ============================================================ */
@media (max-width: 1334.98px) {
	.site-header__inner {
		align-items: center;        /* override flex-end desktop */
		padding: 16px 0;
	}

	.site-header__logo img {
		width: 120px;
		max-height: 40px;
	}
}

/* < 992px : col-lg-1 = 0px, on ajoute un padding de 1rem au header pour
   éviter que le contenu colle aux bords du viewport */
@media (max-width: 991.98px) {
	.site-header {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}

/* Entre 992 et 1335px : logo intermédiaire (plus grand que mobile, plus petit que desktop) */
@media (min-width: 992px) and (max-width: 1334.98px) {
	.site-header__logo img {
		width: 180px;
		max-height: none;
	}
}

/* < 575px : logo mobile dédié */
@media (max-width: 574.98px) {
	.site-header__logo img {
		width: 143px;
		max-height: 44px;
	}
}

.site-header__mobile {
	display: flex;
	align-items: center;
	gap: 14px;
}

/* Search icon mobile : tap target ≥ 44px (ergonomie tactile) */
.site-header__mobile a.btn-search {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #2F3D47;
	text-decoration: none;
	font-size: 1.35rem;
	margin: 0;
	width: 44px;
	height: 44px;
	vertical-align: 0;
	line-height: 1;
}

/* Neutralise le mr-2 (Bootstrap = 0.5rem) hérité sur l'icône qui élargit le <a>
   et casse l'équilibre visuel des gaps. */
.site-header__mobile a.btn-search i.mr-2 {
	margin-right: 0;
}

.site-header__mobile a.btn-search:hover,
.site-header__mobile a.btn-search:focus {
	color: #2F3D47;
	opacity: .6;
}

/* Pill langue mobile — flex pour alignement vertical */
.site-header__mobile .wpml-ls-legacy-dropdown-click {
	display: inline-flex;
	align-items: center;
	margin: 0;
	top: 0;
}

/* Toggle de 1er niveau seulement (pas les sous-items) — tap target plus grand */
.site-header__mobile .wpml-ls-legacy-dropdown-click > ul > li > a {
	border: 2px solid #2F3D47;
	color: #2F3D47;
	background-color: transparent;
	font-size: 15px;
	padding: 8px 18px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
}

.site-header__mobile .wpml-ls-legacy-dropdown-click > ul > li > a:hover,
.site-header__mobile .wpml-ls-legacy-dropdown-click > ul > li > a:focus,
.site-header__mobile .wpml-ls-legacy-dropdown-click > ul > li:hover > a {
	color: #2F3D47;
	background: #FFF;
	border-color: #2F3D47;
}

/* Sous-menu langues : pas de bordure sur les items, tap target lisible */
.site-header__mobile .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu {
	padding: 10px 14px 4px 14px;
	font-size: 15px;
	border-radius: 12px;
}

.site-header__mobile .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a {
	padding: 8px 0;          /* hauteur de tap raisonnable par item */
	min-height: 36px;
	display: flex;
	align-items: center;
}

.site-header__mobile .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a {
	border: 0;
	color: #2F3D47;
	background: transparent;
}

.site-header__mobile .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a:hover,
.site-header__mobile .wpml-ls-legacy-dropdown-click .wpml-ls-sub-menu a:focus {
	color: #ff4e00;
	background: transparent;
}

/* Caret du toggle inline (au lieu de l'absolute hérité) */
.site-header__mobile .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle::after {
	position: static;
	right: auto;
	top: auto;
	font-size: 0.7rem;
	margin-left: 0.4rem;
	vertical-align: middle;
}

/* Burger : tap target plus grand (44x44 min) + barres sombres */
.site-header__mobile .menu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	top: 0;
	width: 44px;
	height: 44px;
}

.site-header__mobile .menu-icon span {
	background-color: #2F3D47;
}

/* ============================================================
   CTAs dans le menu mobile (#menu-mobile) — orange aussi
   ============================================================ */
#menu-mobile .menu-mobile__cta {
	margin-top: 12px;
}

.menu-mobile__cta.mm-listitem {
	padding-left: 20px;
	padding-right: 20px;
}

#menu-mobile .menu-mobile__cta:first-of-type {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid rgba(255, 255, 255, 0.15);
}

#menu-mobile .menu-mobile__cta .btn {
	display: inline-block;
	padding: 10px 24px;
	font-size: 15px;
	background-color: #ff4e00;
	border-color: #ff4e00;
	color: #fff;
}

#menu-mobile .menu-mobile__cta .btn:hover,
#menu-mobile .menu-mobile__cta .btn:focus {
	background-color: #fff;
	color: #ff4e00;
}

/* ============================================================
   Legacy header neutralisé — le site-header sticky remplace
   l'ancien menu desktop overlay (.btn-menu-desktop, .menu-desktop-page),
   la barre fixe mobile (.header-mobile + .bottom-header-mobile) et le
   logo desktop dupliqué dans la hero des pages (.logo.mt-5.d-inline-block).
   Présents dans les anciens templates (top-page.php, home.php, 404.php,
   tag.php, search.php, archive-challenge.php, page-challenges.php),
   on les cache plutôt que de les retirer un par un.
   ============================================================ */
.btn-menu-desktop,
.menu-desktop-page,
.header-mobile,
.logo.mt-5.d-inline-block,
.overlay-header-menu {
	display: none !important;
}

/* ============================================================
   Aligner la hero des pages legacy (top-page.php et templates
   similaires) sur la colonne du logo du nouveau site-header.
   Trois sources de décalage à neutraliser :
   - .top-page.m-3        → 16px de margin sur les 4 côtés
   - .row (sans g-0)      → 12px de gutter sur chaque col
   - .bottom-header-desktop.left/right (style.css) → 12px d'absolute
   ============================================================ */
.top-page {
	margin: 0 !important;
}

@media (min-width: 992px) {
	.top-page > div > .container-fluid > .row {
		--bs-gutter-x: 0;
	}

	.bottom-header-desktop {
		left: 0;
		right: 0;
	}
}
