/* Header : barre d'accès rapide, menu principal, mega menu « Formations » (inc/menu.php). */
:root {
	--ebtp-ardoise-fonce: #4d677f;
	--ebtp-btp: #00aae5;
	--ebtp-design: #ec008c;
	--ebtp-general: #56ba48;
	--ebtp-filet: #e3e7eb;
}

/* ---------- Barre d'accès rapide ---------- */
#top-bar.header-top {
	background-color: var(--ebtp-ardoise-fonce);
	min-height: 42px;
}
#top-bar .flex-row { min-height: 42px; }
.ebtp-rapide {
	display: inline-flex;
	align-items: center;
	gap: 22px;
	font-size: 14px;
	line-height: 1;
	letter-spacing: .01em;
	text-transform: none;
}
.ebtp-rapide--droite { gap: 8px; }
.ebtp-rapide__titre {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .6);
}
#top-bar .ebtp-rapide__lien {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
	opacity: 1;
}
#top-bar .ebtp-rapide__lien:hover,
#top-bar .ebtp-rapide__lien:focus-visible { text-decoration: underline; text-underline-offset: 4px; }
.ebtp-rapide--droite .ebtp-rapide__lien { margin-right: 6px; }
.ebtp-rapide__sep { width: 1px; height: 18px; margin: 0 6px; background: rgba(255, 255, 255, .28); }
#top-bar .ebtp-rapide__reseau {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: #fff;
	transition: background-color .2s;
}
#top-bar .ebtp-rapide__reseau:hover,
#top-bar .ebtp-rapide__reseau:focus-visible { background: rgba(255, 255, 255, .18); }

.ebtp-ic {
	width: 16px;
	height: 16px;
	flex: 0 0 auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.ebtp-ic--plein, .ebtp-ic .ebtp-ic-plein { fill: currentColor; stroke: none; }
.ebtp-rapide__lien .ebtp-ic + .ebtp-ic { width: 12px; height: 12px; opacity: .6; }

/* ---------- Menu principal ---------- */
.header-nav-main.nav > li > a {
	position: relative;
	color: #55636f;
	font-weight: 700;
	letter-spacing: .05em;
}
.header-nav-main.nav > li > a:hover,
.header-nav-main.nav > li.current-dropdown > a,
.header-nav-main.nav > li.active > a { color: var(--ebtp-encre); }
.header-nav-main.nav > li:not(.ebtp-cta) > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 2px;
	height: 2px;
	background: var(--ebtp-encre);
	transform: scaleX(0);
	transition: transform .25s;
}
.header-nav-main.nav > li:not(.ebtp-cta) > a:hover::after,
.header-nav-main.nav > li.current-dropdown:not(.ebtp-cta) > a::after,
.header-nav-main.nav > li.active:not(.ebtp-cta) > a::after { transform: scaleX(1); }

/* Bouton « Inscriptions » */
.header-nav-main.nav > li.ebtp-cta { margin-left: 14px; }
.header-nav-main.nav > li.ebtp-cta > a {
	padding: 11px 18px 11px 20px;
	border-radius: 6px;
	background: var(--ebtp-ardoise-fonce);
	color: #fff;
	transition: background-color .2s;
}
.header-nav-main.nav > li.ebtp-cta > a:hover,
.header-nav-main.nav > li.ebtp-cta.current-dropdown > a { background: var(--ebtp-encre); color: #fff; }

/* Menus déroulants simples (Lycée, International, Entreprises, Inscriptions) */
.header-nav-main .nav-dropdown {
	border: 1px solid var(--ebtp-filet);
	border-radius: 8px;
	box-shadow: 0 24px 48px rgba(18, 28, 40, .16);
	padding: 10px;
}
.header-nav-main .nav-dropdown > li > a {
	padding: 10px 14px;
	border-radius: 6px;
	border: 0;
	color: #2d3946;
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	line-height: 1.35;
}
.header-nav-main .nav-dropdown > li > a:hover { background: #f3f5f7; color: var(--ebtp-encre); }
.header-nav-main .nav-dropdown > li + li > a { border-top: 0; }
.header-nav-main li.ebtp-cta .nav-dropdown { left: auto; right: 0; }

/* ---------- Mega menu « Formations » ---------- */
.header-nav-main.nav > li.ebtp-mega { position: static; }
.header-main .header-inner { position: relative; }
.header-nav-main .nav-dropdown.ebtp-mega__panneau {
	left: 50%;
	right: auto;
	transform: translateX(-50%);
	width: min(1320px, calc(100vw - 40px));
	max-width: none;
	padding: 0;
	display: grid;
	grid-template-columns: 2.35fr 1.55fr 1.3fr 270px;
	border-radius: 0 0 8px 8px;
	text-align: left;
	white-space: normal;
}
.ebtp-mega__panneau ul { list-style: none; margin: 0; padding: 0; }
.ebtp-mega__panneau li { margin: 0; }

.ebtp-mega__voies, .ebtp-mega__col { padding: 30px 26px 20px; }
.ebtp-mega__col { border-left: 1px solid #edf0f3; }
.ebtp-mega__titres, .ebtp-mega__voie {
	display: grid;
	grid-template-columns: 1fr 22px 1.3fr;
	column-gap: 14px;
}
.ebtp-mega__titres span:last-child { grid-column: 3; }
.ebtp-mega__titres span, .ebtp-mega__titre {
	display: block;
	margin: 0 0 6px;
	color: #8592a0;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .1em;
	line-height: 1.5;
	text-transform: uppercase;
}
.ebtp-mega__titre { margin-bottom: 14px; letter-spacing: .06em; }
.ebtp-mega__voie { padding: 14px 0 12px; border-top: 1px solid #edf0f3; align-items: start; }
.ebtp-mega__voie-nom {
	grid-column: 1 / -1;
	margin-bottom: 6px;
	color: var(--ebtp-encre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
a.ebtp-mega__voie-lien { margin: 0; text-decoration: none; }
a.ebtp-mega__voie-lien:hover { color: var(--ebtp-encre); text-decoration: underline; text-underline-offset: 4px; }
.ebtp-mega__voie--options { padding-bottom: 4px; }
.ebtp-mega__fleche { padding-top: 6px; color: #b5bfc9; font-weight: 700; }

.ebtp-mega__panneau .ebtp-mega__item > a {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 6px 0;
	color: #2d3946;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
}
.ebtp-mega__panneau .ebtp-mega__item > a::before {
	content: "";
	flex: 0 0 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ebtp-p, #c9d1d9);
	transform: translateY(-1px);
}
.ebtp-mega__panneau .ebtp-mega__item > a:hover,
.ebtp-mega__panneau .ebtp-mega__item > a[aria-current] {
	color: var(--ebtp-encre);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 4px;
}
.ebtp-mega__panneau .ebtp-mega__item--sous > a { padding-left: 19px; color: #55616e; font-size: 15px; }
.ebtp-mega__panneau .ebtp-mega__item--sous > a::before { flex-basis: 5px; height: 5px; background: #b5bfc9; }

.ebtp-pastille--btp { --ebtp-p: var(--ebtp-btp); }
.ebtp-pastille--design { --ebtp-p: var(--ebtp-design); }
.ebtp-pastille--general { --ebtp-p: var(--ebtp-general); }

.ebtp-mega__portails { display: flex; flex-direction: column; gap: 3px; margin: -2px 0 8px 17px; color: #8592a0; font-size: 13px; line-height: 1.35; }
/* Bac général : la liste des portails fait partie du lien ; seul « Bac général » se souligne au survol. */
.ebtp-mega__panneau .ebtp-mega__item--bacg > a { flex-wrap: wrap; row-gap: 0; }
.ebtp-mega__panneau .ebtp-mega__item--bacg > a:hover,
.ebtp-mega__panneau .ebtp-mega__item--bacg > a[aria-current] { text-decoration: none; }
.ebtp-mega__panneau .ebtp-mega__item--bacg > a:hover .ebtp-lien__txt,
.ebtp-mega__panneau .ebtp-mega__item--bacg > a[aria-current] .ebtp-lien__txt { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ebtp-mega__item--bacg .ebtp-mega__portails { flex: 0 0 100%; margin: 4px 0 2px; }
.ebtp-mega__item--bacg > a:hover .ebtp-mega__portails span + span { color: #2d3946; }
.ebtp-mega__portails span + span { position: relative; padding-left: 12px; color: #6b7785; transition: color .15s; }
.ebtp-mega__portails span + span::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .6em;
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background: var(--ebtp-general);
}

.ebtp-mega__une {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 26px 24px;
	background: #f7f8f9;
}
a.ebtp-mega__carte {
	display: block;
	padding: 16px 18px;
	border: 1px solid var(--ebtp-filet);
	border-left: 3px solid var(--ebtp-c);
	border-radius: 6px;
	background: #fff;
	color: inherit;
	text-decoration: none;
	text-transform: none;
	letter-spacing: 0;
	transition: border-color .2s;
}
a.ebtp-mega__carte:hover { border-color: #cfd5db; border-left-color: var(--ebtp-c); }
.ebtp-mega__carte small { display: block; color: var(--ebtp-c); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ebtp-mega__carte strong { display: block; margin: 6px 0; color: var(--ebtp-encre); font-size: 17px; line-height: 1.25; }
.ebtp-mega__carte span { display: block; color: #55616e; font-size: 14px; font-weight: 400; line-height: 1.5; }
.ebtp-mega__carte em { display: block; margin-top: 8px; color: var(--ebtp-encre); font-size: 14px; font-style: normal; font-weight: 700; }

.ebtp-mega__bas {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px;
	padding: 16px 26px;
	border-top: 1px solid #edf0f3;
	color: #55616e;
	font-size: 14px;
	text-transform: none;
	letter-spacing: 0;
}
.ebtp-mega__legende { display: inline-flex; align-items: center; gap: 8px; }
.ebtp-mega__legende::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--ebtp-p); }
.ebtp-mega__bas a { margin-left: auto; color: var(--ebtp-encre); font-weight: 700; text-decoration: none; }
.ebtp-mega__bas a:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Flatsome positionne ses menus déroulants lui-même (fixed, flex) : on reprend la main sur le panneau. */
.header-nav-main .nav-dropdown.ebtp-mega__panneau {
	position: absolute !important;
	top: 100% !important;
	left: 50% !important;
	right: auto !important;
	display: grid !important;
	width: min(1320px, calc(100vw - 40px)) !important;
	margin: 0 !important;
	border-top: 1px solid var(--ebtp-filet);
}
/* Espacement des rubriques (l'ancien Max Mega Menu le gérait). */
.header-nav-main.nav > li { margin: 0 11px; }
.header-nav-main.nav > li:first-child { margin-left: 0; }
.header-nav-main.nav > li > a { padding-top: 10px; padding-bottom: 10px; }
.header-nav-main.nav > li > a > .icon-angle-down { margin-left: 4px; opacity: .7; }
/* Le panneau se centre sur la largeur du header (et non sur la rubrique). */
.header-main .header-nav-main.nav,
.header-main .flex-col.hide-for-medium { position: static; }
.header-nav-main .ebtp-mega__panneau li.ebtp-mega__portails { display: flex !important; }
.header-nav-main .ebtp-mega__panneau,
.header-nav-main .ebtp-mega__panneau a { letter-spacing: 0; }
.header-nav-main .ebtp-mega__titres span,
.header-nav-main .ebtp-mega__titre { letter-spacing: .08em; }
.header-nav-main .ebtp-mega__voie-nom { letter-spacing: .05em; }
.header-nav-main .ebtp-mega__panneau li { display: block; }
.header-nav-main .nav-dropdown.ebtp-mega__panneau { max-width: none !important; min-width: 0 !important; }
/* Flatsome plafonne les menus pleine largeur (li.has-dropdown:hover > .nav-dropdown-full : 1150px, fixed). */
#masthead .header-nav-main li.ebtp-mega.has-dropdown > .nav-dropdown.ebtp-mega__panneau {
	position: absolute !important;
	display: grid !important;
	max-width: none !important;
	width: min(1320px, calc(100vw - 40px)) !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	margin-left: 0 !important;
}
/* Taille des rubriques alignée sur la maquette (Flatsome « small » = 11,2 px). */
.header-nav-main.nav > li > a { font-size: 14px; letter-spacing: .05em; }
.header-nav-main.nav > li.ebtp-cta > a { font-size: 14px; }
.ebtp-rapide { font-size: 14px; }
.header-nav-main.nav { flex-wrap: nowrap; }
.header-nav-main.nav > li { margin: 0 8px; }
.header-nav-main.nav > li > a { letter-spacing: .03em; white-space: nowrap; }
.header-nav-main.nav > li.ebtp-cta { margin-left: 10px; margin-right: 0; }
@media (max-width: 1080px) {
	.header-nav-main.nav > li { margin: 0 5px; }
	.header-nav-main.nav > li > a, .header-nav-main.nav > li.ebtp-cta > a { font-size: 12.5px; letter-spacing: .02em; }
	.header-nav-main.nav > li.ebtp-cta > a { padding: 10px 12px; }
	.ebtp-rapide { gap: 16px; font-size: 13px; }
	.ebtp-rapide__titre { display: none; }
}
.header-nav-main.nav > li > a { display: inline-flex; align-items: center; }
@media (max-width: 980px) {
	.header-nav-main.nav > li { margin: 0 3px; }
	.header-nav-main.nav > li > a, .header-nav-main.nav > li.ebtp-cta > a { font-size: 11.5px; letter-spacing: 0; }
	.header-nav-main.nav > li > a > .icon-angle-down { margin-left: 2px; }
	#logo img { max-width: 170px; }
}

/* 850–980 px : le menu complet ne tient plus, on affiche l'en-tête mobile (hamburger). */
@media (min-width: 850px) and (max-width: 980px) {
	#masthead .header-inner > .flex-col.hide-for-medium { display: none !important; }
	#masthead .header-inner > .flex-col.show-for-medium { display: flex !important; }
	#top-bar .flex-col.hide-for-medium.flex-left { display: none !important; }
}

/* En-tête collant (au défilement) : Flatsome impose line-height 50px aux liens, le bouton s'étirait. */
#masthead .header-nav-main.nav > li > a,
.stuck #masthead .header-nav-main.nav > li > a,
#header.stuck .header-nav-main.nav > li > a { line-height: 1.2; }
#header .header-nav-main.nav > li.ebtp-cta > a { height: auto; line-height: 1.2; padding-top: 11px; padding-bottom: 11px; }
#header .header-nav-main.nav > li.ebtp-cta { align-self: center; }

/* « Après le bac » : prépa puis BTS / DN MADE dans une seule colonne (ordre du parcours de l'élève). */
#masthead .header-nav-main li.ebtp-mega.has-dropdown > .nav-dropdown.ebtp-mega__panneau { grid-template-columns: 2.3fr 1.5fr 280px; width: min(1180px, calc(100vw - 40px)) !important; }
.ebtp-mega__sous-titre {
	display: block;
	margin: 0 0 4px;
	color: var(--ebtp-encre);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .05em;
	line-height: 1.4;
	text-transform: uppercase;
}
.ebtp-mega__col--apres ul + .ebtp-mega__sous-titre { margin-top: 14px; padding-top: 14px; border-top: 1px solid #edf0f3; }

/* ---------- Menu mobile (panneau latéral Flatsome) ---------- */
.off-canvas .nav-sidebar > li > a { color: var(--ebtp-encre); font-weight: 700; letter-spacing: .04em; }
.off-canvas .nav-sidebar .children > li > a,
.off-canvas .nav-sidebar .ebtp-mob .ebtp-mega__item > a {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 9px 20px;
	color: #2d3946;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.35;
	text-transform: none;
}
.off-canvas .ebtp-mob .ebtp-mega__item > a::before {
	content: "";
	flex: 0 0 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--ebtp-p, #c9d1d9);
	transform: translateY(-1px);
}
.off-canvas .ebtp-mob .ebtp-mega__item--sous > a { padding-left: 37px; color: #55616e; font-size: 14px; }
.off-canvas .ebtp-mob .ebtp-mega__item--sous > a::before { flex-basis: 5px; height: 5px; background: #b5bfc9; }
.off-canvas .ebtp-mob-titre {
	margin: 14px 20px 2px !important;
	padding-top: 12px;
	border-top: 1px solid var(--ebtp-filet);
	color: #8592a0;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	list-style: none;
}
.off-canvas .ebtp-mob-titre:first-child { margin-top: 4px !important; padding-top: 0; border-top: 0; }
.off-canvas .ebtp-mob .ebtp-mob-tout > a { margin-top: 8px; font-weight: 700; color: var(--ebtp-ardoise-fonce); }
.off-canvas .ebtp-mob .ebtp-mob-tout > a::before { display: none; }
.off-canvas .nav-sidebar .ebtp-mob-titre,
.off-canvas .nav-sidebar .ebtp-mob-titre:first-child { margin: 0 !important; padding: 14px 20px 4px; border-top: 0; }
.off-canvas .nav-sidebar .ebtp-mob-titre:not(:first-child) { margin-top: 10px !important; border-top: 1px solid var(--ebtp-filet); }

/* Intertitres du menu Formations : même style que les liens des autres menus déroulants (15 px gras, sans majuscules). */
.header-nav-main .ebtp-mega__panneau .ebtp-mega__voie-nom,
.header-nav-main .ebtp-mega__panneau .ebtp-mega__sous-titre {
	color: #2d3946;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
}
