/* FETRAINING Header */
.fet-header {
	--fet-blue: #1d5fa8;
	--fet-ink: #1f2a37;
	--fet-muted: #5b6676;
	--fet-line: #e6eaf0;
	--fet-orange: #e8a32a;
	--fet-orange-dark: #cf8d17;
	--fet-green: #8cc63f;
	--fet-h: 84px;
	position: sticky;
	top: 0;
	z-index: 1000;
	background: #fff;
	font-family: Poppins, system-ui, sans-serif;
	transition: box-shadow .25s ease;
}

.admin-bar .fet-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .fet-header { top: 0; } }

/* Au défilement : barre légèrement translucide et floutée, ombre douce */
.fet-header { transition: box-shadow .3s ease, background .3s ease; }
.fet-header.is-scrolled {
	background: rgba(255, 255, 255, .9);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	box-shadow: 0 6px 24px rgba(20, 40, 70, .1);
}

/* Entrée au chargement : la barre d'infos puis les éléments de la barre principale descendent en cascade */
@keyframes fet-down { from { opacity: 0; transform: translateY(-10px); } }

/* « backwards » et non « both » : une animation de transform restée active ferait de l'entrée de menu
   le repère de positionnement du méga-menu, qui se décalerait */
.fet-topbar__inner { animation: fet-down .5s cubic-bezier(.2, .7, .3, 1) backwards; }
.fet-header__logo,
.fet-nav__item,
.fet-header__actions { animation: fet-down .55s cubic-bezier(.2, .7, .3, 1) backwards; }
.fet-header__logo { animation-delay: .05s; }
.fet-nav__item:nth-child(1) { animation-delay: .12s; }
.fet-nav__item:nth-child(2) { animation-delay: .17s; }
.fet-nav__item:nth-child(3) { animation-delay: .22s; }
.fet-nav__item:nth-child(4) { animation-delay: .27s; }
.fet-nav__item:nth-child(5) { animation-delay: .32s; }
.fet-header__actions { animation-delay: .35s; }

/* ---------- Pied de page ---------- */
.main-footer { display: none; }

.fet-footer {
	background: #12335c;
	color: rgba(255, 255, 255, .78);
	font: 400 14.5px/1.65 Poppins, system-ui, sans-serif;
}

.fet-footer__inner {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
	gap: 40px 64px;
	max-width: 1320px;
	margin: 0 auto;
	padding: 56px 24px 40px;
}

.fet-footer__logo { display: inline-block; margin-bottom: 16px; padding: 10px 14px; border-radius: 8px; background: #fff; line-height: 0; }
.fet-footer .fet-footer__logo img { display: block; width: 170px; height: auto; max-width: none; }
.fet-footer p { margin: 0; color: rgba(255, 255, 255, .78); }
.fet-footer .fet-footer__title { margin: 0 0 12px; color: #fff; font-family: inherit; font-size: 15px; font-weight: 600; line-height: 1.4; text-transform: none; }
.fet-footer ul { margin: 0; padding: 0; list-style: none; }
.fet-footer li { margin-bottom: 6px; }
.fet-footer a { color: rgba(255, 255, 255, .86); text-decoration: none; overflow-wrap: anywhere; transition: color .2s ease; }
.fet-footer a:hover { color: #e8a32a; text-decoration: none; }
.fet-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.fet-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .14); }
.fet-footer .fet-footer__copy { max-width: 1320px; margin: 0 auto; padding: 18px 24px; font-size: 13.5px; }

@media (max-width: 860px) {
	.fet-footer__inner { grid-template-columns: minmax(0, 1fr); gap: 30px; padding: 44px 20px 32px; }
	.fet-footer .fet-footer__copy { padding: 16px 20px; }
	/* Le bouton « retour en haut » recouvrait des contenus sur mobile */
	.back-to-top-btn { display: none !important; }
}

/* ---------- Barre d'informations (au-dessus du menu, défile avec la page) ---------- */
.fet-topbar {
	background: #12335c;
	color: #d6e1ef;
	font: 400 13px/1.4 Poppins, system-ui, sans-serif;
}

.fet-topbar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	max-width: 1320px;
	min-height: 40px;
	margin: 0 auto;
	padding: 0 24px;
}

.fet-topbar__info {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fet-topbar__info li,
.fet-topbar__info a,
.fet-topbar__hours {
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.fet-topbar .fet-topbar__hours { margin: 0; color: #d6e1ef; }

.fet-topbar a { color: #d6e1ef; text-decoration: none; transition: color .2s ease; }
.fet-topbar a:hover { color: #fff; }
.fet-topbar a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

.fet-topbar svg { flex: 0 0 auto; width: 15px; height: 15px; fill: #e8a32a; }

@media (max-width: 1023px) { .fet-topbar { display: none; } }

.fet-header__bar {
	display: flex;
	align-items: center;
	gap: 24px;
	max-width: 1320px;
	height: var(--fet-h);
	margin: 0 auto;
	padding: 0 24px;
	transition: height .25s ease;
}

.fet-header.is-scrolled .fet-header__bar { height: 68px; }

.fet-header__logo { display: flex; flex: 0 0 auto; align-items: center; }
.fet-header__logo-img { display: block; width: 200px; height: auto; max-width: none; }
.fet-header.is-scrolled .fet-header__bar .fet-header__logo-img { width: 172px; }

/* ---------- Navigation (ordinateur) ---------- */
.fet-nav { flex: 1 1 auto; height: 100%; }

.fet-nav__list {
	display: flex;
	justify-content: center;
	gap: 4px;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.fet-nav__item { display: flex; align-items: center; }
.fet-nav__item:not(.has-mega) { position: relative; }

.fet-nav__link {
	display: inline-flex;
	position: relative;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	border: 0;
	border-radius: 6px;
	background: none;
	color: var(--fet-ink);
	font: 500 15px/1.2 Poppins, system-ui, sans-serif;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
}

.fet-nav__link { transition: color .25s ease, background .25s ease; }
.fet-nav__link:hover { color: var(--fet-blue); }
.fet-nav__link[aria-expanded="true"] { color: var(--fet-blue); background: #f2f6fb; }

/* Trait orange qui se déploie depuis le centre au survol */
.fet-nav__link::after {
	content: "";
	position: absolute;
	right: 12px;
	bottom: 3px;
	left: 12px;
	height: 2px;
	border-radius: 2px;
	background: var(--fet-orange);
	transform: scaleX(0);
	transition: transform .3s cubic-bezier(.2, .7, .3, 1), background .3s ease;
}

.fet-nav__link:hover::after,
.fet-nav__link[aria-expanded="true"]::after { transform: scaleX(1); }

.fet-header a:focus-visible,
.fet-header button:focus-visible,
.fet-drawer a:focus-visible,
.fet-drawer button:focus-visible { outline: 2px solid #1d5fa8; outline-offset: 2px; }

/* Rubrique de la page en cours */
.fet-nav__item.is-current > .fet-nav__link { color: var(--fet-blue); }
.fet-nav__item.is-current > .fet-nav__link::after { background: var(--fet-blue); transform: scaleX(1); }

.fet-chevron {
	width: 7px;
	height: 7px;
	margin-top: -3px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s ease;
}

[aria-expanded="true"] > .fet-chevron { margin-top: 3px; transform: rotate(-135deg); }

/* ---------- Panneaux déroulants ---------- */
.fet-panel {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 10;
	min-width: 240px;
	padding: 10px;
	border: 1px solid var(--fet-line);
	border-radius: 0 0 10px 10px;
	background: #fff;
	box-shadow: 0 18px 40px rgba(20, 40, 70, .14);
	transform-origin: top center;
	animation: fet-drop .28s cubic-bezier(.2, .7, .3, 1);
}

.fet-panel[hidden] { display: none; }

.fet-panel--mega {
	right: 0;
	left: 0;
	width: min(1100px, calc(100vw - 48px));
	margin: 0 auto;
	padding: 28px 32px 0;
}

@keyframes fet-drop { from { opacity: 0; transform: translateY(10px) scale(.985); } }
@keyframes fet-item-in { from { opacity: 0; transform: translateY(8px); } }

/* Les colonnes du méga-menu (et les liens des listes simples) arrivent en cascade */
.fet-panel__col,
.fet-panel__list li { animation: fet-item-in .35s cubic-bezier(.2, .7, .3, 1) both; }
.fet-panel__col:nth-child(2),
.fet-panel__list li:nth-child(2) { animation-delay: .05s; }
.fet-panel__col:nth-child(3),
.fet-panel__list li:nth-child(3) { animation-delay: .1s; }
.fet-panel__col:nth-child(4),
.fet-panel__list li:nth-child(4) { animation-delay: .15s; }

/* Les liens glissent légèrement vers la droite au survol */
.fet-panel__link { transition: background .2s ease, color .2s ease, transform .2s ease; }
.fet-panel__link:hover { transform: translateX(4px); }

.fet-panel__grid {
	display: grid;
	grid-template-columns: repeat(var(--fet-cols, 4), minmax(0, 1fr));
	gap: 8px 32px;
}

.fet-panel__heading {
	margin: 0 0 10px;
	padding-bottom: 8px;
	border-bottom: 2px solid var(--fet-line);
	color: var(--fet-blue);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fet-panel ul { margin: 0 0 20px; padding: 0; list-style: none; }

.fet-panel__link {
	display: block;
	margin: 0 -10px;
	padding: 7px 10px;
	border-radius: 6px;
	color: var(--fet-ink);
	font-size: 14.5px;
	line-height: 1.35;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}

.fet-panel__link:hover,
.fet-panel__link.is-current { background: #f2f6fb; color: var(--fet-blue); }

.fet-panel .fet-panel__all { margin: 0 -32px; padding: 14px 32px; border-top: 1px solid var(--fet-line); text-align: right; }
.fet-panel .fet-panel__all a { color: var(--fet-blue); font-size: 14.5px; font-weight: 600; text-decoration: none; }
.fet-panel .fet-panel__all a:hover { text-decoration: underline; }
.fet-panel .fet-panel__list { margin: 0; }
.fet-panel__list .fet-panel__link { margin: 0; }

/* ---------- Actions ---------- */
.fet-header__actions { display: flex; flex: 0 0 auto; align-items: center; gap: 12px; }

/* Téléphone : icône seule, le numéro se déploie au survol / au focus */
.fet-header__phone {
	display: inline-flex;
	align-items: center;
	height: 40px;
	padding: 0 10px;
	border-radius: 8px;
	color: var(--fet-ink);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	white-space: nowrap;
	transition: background .2s ease, color .2s ease;
}

.fet-header__phone-text {
	max-width: 0;
	overflow: hidden;
	opacity: 0;
	transition: max-width .3s ease, opacity .2s ease, margin .3s ease;
}

.fet-header__phone:hover,
.fet-header__phone:focus-visible { background: #f2f6fb; color: var(--fet-blue); text-decoration: none; }

.fet-header__phone:hover .fet-header__phone-text,
.fet-header__phone:focus-visible .fet-header__phone-text { max-width: 170px; margin-left: 8px; opacity: 1; }

.fet-icon { flex: 0 0 auto; width: 18px; height: 18px; fill: var(--fet-blue); }

.fet-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 18px;
	border: 1.5px solid transparent;
	border-radius: 8px;
	font: 500 14px/1 Poppins, system-ui, sans-serif;
	letter-spacing: .01em;
	text-decoration: none;
	white-space: nowrap;
	transition: background .2s ease, color .2s ease, border-color .2s ease;
}

/* Bouton principal en pilule, orange du logo */
.fet-btn--pill {
	position: relative;
	overflow: hidden;
	padding: 12px 24px;
	border-color: #e8a32a;
	border-radius: 999px;
	background: #e8a32a;
	color: #13233b;
	font-weight: 600;
	transition: background .25s ease, border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}

.fet-btn:hover,
.fet-btn:focus { text-decoration: none; }

.fet-btn--pill:hover {
	border-color: #d48f18;
	background: #d48f18;
	color: #13233b;
	box-shadow: 0 8px 20px rgba(232, 163, 42, .35);
	transform: translateY(-2px);
}

/* Reflet qui traverse la pilule au survol */
.fet-btn--pill::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -60%;
	width: 40%;
	background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .5), transparent);
	transform: skewX(-20deg);
	transition: left .6s ease;
}

.fet-btn--pill:hover::after { left: 120%; }

/* Le téléphone est déjà dans la barre d'informations sur ordinateur */
@media (min-width: 1024px) { .fet-header__phone { display: none; } }

.fet-btn--outline { border-color: var(--fet-blue); background: transparent; color: var(--fet-blue); }
.fet-btn--outline:hover { background: var(--fet-blue); color: #fff; }
.fet-btn--primary { border-color: #1d5fa8; background: #1d5fa8; color: #fff; }
.fet-btn--primary:hover { border-color: #14467f; background: #14467f; color: #fff; }
.fet-btn--block { width: 100%; padding: 15px 20px; font-size: 15px; }

.fet-sr,
.fet-skip-link:not(:focus) {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.fet-skip-link:focus {
	position: fixed;
	top: 8px;
	left: 8px;
	z-index: 2001;
	padding: 10px 16px;
	border-radius: 6px;
	background: #1d5fa8;
	color: #fff;
}

/* ---------- Bouton menu (mobile) ---------- */
.fet-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0 11px;
	border: 1px solid var(--fet-line);
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.fet-burger span { display: block; height: 2px; border-radius: 2px; background: var(--fet-ink); }

/* Petits écrans d'ordinateur : barre resserrée */
@media (max-width: 1199px) {
	.fet-header__bar { gap: 14px; padding: 0 16px; }
	.fet-header__logo-img,
	.fet-header.is-scrolled .fet-header__bar .fet-header__logo-img { width: 160px; }
	.fet-nav__list { gap: 0; }
	.fet-nav__link { padding: 8px 10px; font-size: 14px; }
	.fet-header__actions { gap: 8px; }
	.fet-btn { padding: 10px 14px; }
}

/* Tablette et mobile : panneau latéral */
@media (max-width: 1023px) {
	.fet-header { --fet-h: 68px; }
	.fet-nav,
	.fet-header__cta { display: none; }
	.fet-burger { display: flex; }
	/* Mobile : bouton d'appel bien visible (cible tactile de 44 px), sans dépliement du numéro */
	.fet-header__phone {
		justify-content: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 1px solid var(--fet-line);
	}
	.fet-header__phone .fet-header__phone-text { display: none; }
	.fet-header__bar { justify-content: space-between; gap: 12px; padding: 0 16px; }
	.fet-header__actions { gap: 10px; }
	.fet-header__logo-img,
	.fet-header.is-scrolled .fet-header__bar .fet-header__logo-img { width: 150px; }
}

/* ---------- Panneau latéral ---------- */
.fet-drawer { position: fixed; inset: 0; z-index: 2000; font-family: Poppins, system-ui, sans-serif; }
.fet-drawer[hidden] { display: none; }

.fet-drawer__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 25, 40, .5);
	animation: fet-fade .2s ease;
}

.fet-drawer__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: min(400px, 90vw);
	overflow-y: auto;
	background: #fff;
	animation: fet-slide .25s ease;
	overscroll-behavior: contain;
}

@keyframes fet-fade { from { opacity: 0; } }
@keyframes fet-slide { from { transform: translateX(100%); } }

.fet-drawer__top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px;
	border-bottom: 1px solid #e6eaf0;
}

.fet-drawer__top .fet-header__logo-img { width: 140px; }

.fet-drawer__close {
	width: 44px;
	height: 44px;
	padding: 11px;
	border: 1px solid #e6eaf0;
	border-radius: 8px;
	background: #fff;
	cursor: pointer;
}

.fet-drawer__close svg { width: 100%; height: 100%; fill: none; stroke: #1f2a37; stroke-width: 2; stroke-linecap: round; }

.fet-drawer__nav { flex: 1 0 auto; padding: 8px 0; }
.fet-drawer__nav ul { margin: 0; padding: 0; list-style: none; }

.fet-acc { border-bottom: 1px solid #eef1f5; }

.fet-acc__toggle,
.fet-acc__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 16px 20px;
	border: 0;
	background: none;
	color: #1f2a37;
	font: 600 16px/1.3 Poppins, system-ui, sans-serif;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
}

.fet-acc.is-current > .fet-acc__toggle,
.fet-acc.is-current > .fet-acc__link { color: #1d5fa8; }

.fet-acc__body { padding: 0 20px 14px; }
.fet-acc__body[hidden] { display: none; }

.fet-acc__heading {
	margin: 10px 0 4px;
	color: #1d5fa8;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.fet-acc__body a {
	display: block;
	padding: 9px 0 9px 12px;
	border-left: 2px solid #e6eaf0;
	color: #3b4656;
	font-size: 15px;
	text-decoration: none;
}

.fet-acc__body a[aria-current="page"] { border-left-color: #1d5fa8; color: #1d5fa8; font-weight: 600; }

.fet-drawer__footer {
	display: grid;
	gap: 10px;
	padding: 20px;
	border-top: 1px solid #e6eaf0;
	background: #f7f9fc;
}

.fet-drawer__contact { color: #1d5fa8; font-weight: 600; text-decoration: none; }
.fet-drawer__address { margin: 4px 0 0; color: #5b6676; font-size: 13.5px; line-height: 1.5; }

body.fet-drawer-open { overflow: hidden; }

/* Panneau mobile : les rubriques arrivent en cascade, le menu ☰ réagit au survol */
@keyframes fet-acc-in { from { opacity: 0; transform: translateX(16px); } }
.fet-drawer:not([hidden]) .fet-acc,
.fet-drawer:not([hidden]) .fet-drawer__footer { animation: fet-acc-in .35s cubic-bezier(.2, .7, .3, 1) both; }
.fet-drawer:not([hidden]) .fet-acc:nth-child(1) { animation-delay: .08s; }
.fet-drawer:not([hidden]) .fet-acc:nth-child(2) { animation-delay: .13s; }
.fet-drawer:not([hidden]) .fet-acc:nth-child(3) { animation-delay: .18s; }
.fet-drawer:not([hidden]) .fet-acc:nth-child(4) { animation-delay: .23s; }
.fet-drawer:not([hidden]) .fet-drawer__footer { animation-delay: .3s; }

.fet-burger span { transition: transform .25s ease, width .25s ease; }
.fet-burger span:nth-child(2) { width: 70%; margin-left: auto; }
.fet-burger:hover span:nth-child(2) { width: 100%; }

.fet-acc__body:not([hidden]) { animation: fet-item-in .3s ease both; }

@media (prefers-reduced-motion: reduce) {
	.fet-header, .fet-header__bar, .fet-panel, .fet-drawer__overlay, .fet-drawer__panel, .fet-chevron,
	.fet-topbar__inner, .fet-header__logo, .fet-nav__item, .fet-header__actions,
	.fet-panel__col, .fet-panel__list li, .fet-panel__link, .fet-nav__link, .fet-nav__link::after,
	.fet-btn--pill, .fet-btn--pill::after, .fet-acc, .fet-drawer__footer, .fet-acc__body, .fet-burger span { animation: none !important; transition: none !important; }
	.fet-btn--pill:hover, .fet-panel__link:hover { transform: none; }
}
