/*
 * ENP 2027 — styles du gabarit (en-tête, pied de page, bandeaux) et styles de blocs.
 * Couleurs, polices, tailles et espacements viennent de theme.json (variables --wp--preset--*).
 * Propriétés logiques (inline/block) partout : la version arabe s'affiche de droite à gauche sans surcharge.
 */

:root {
	--enp-bleu: var(--wp--preset--color--bleu-enp);
	--enp-nuit: var(--wp--preset--color--bleu-nuit);
	--enp-ciel: var(--wp--preset--color--bleu-ciel);
	--enp-gris: var(--wp--preset--color--gris-texte);
	--enp-filet: var(--wp--preset--color--filet);
	--enp-accent: var(--enp-bleu);
	--enp-accent-fonce: var(--enp-bleu);
	--enp-rayon-pastille: 6px;
	--enp-rayon-carte: 16px;
	--enp-largeur: 1200px;
	--enp-marge: var(--wp--preset--spacing--4);
	--enp-entete-h: 84px;
}

.filiere-ipv { --enp-accent: var(--wp--preset--color--ipv); --enp-accent-fonce: var(--wp--preset--color--ipv-fonce); }
.filiere-ort { --enp-accent: var(--wp--preset--color--ort); --enp-accent-fonce: var(--wp--preset--color--ort-fonce); }
.filiere-tsl { --enp-accent: var(--wp--preset--color--tsl); --enp-accent-fonce: var(--wp--preset--color--tsl-fonce); }

/* ---------- Base ---------- */

*, *::before, *::after { box-sizing: border-box; }

html { scroll-padding-top: calc(var(--enp-entete-h) + 1.5rem); }

body { margin: 0; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Arabe : IBM Plex Sans Arabic, corps 17 px / 28 px (charte). */
.langue-ar {
	font-family: var(--wp--preset--font-family--arabe);
	font-size: 1.0625rem;
	line-height: var(--wp--custom--line-height--corps-arabe);
}

img { max-width: 100%; height: auto; }

:focus-visible { outline: 2px solid var(--enp-bleu); outline-offset: 2px; }

.enp-lien-evitement {
	position: absolute;
	inset-inline-start: var(--enp-marge);
	inset-block-start: -100px;
	z-index: 100;
	padding: 0.5rem 1rem;
	background: var(--enp-nuit);
	color: #fff;
	border-radius: var(--enp-rayon-pastille);
}
.enp-lien-evitement:focus { inset-block-start: 0.5rem; }

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Boutons du gabarit ---------- */

.enp-bouton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.625rem 1.25rem;
	border-radius: var(--enp-rayon-pastille);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	text-decoration: none;
	line-height: 1.2;
	transition: background-color 0.15s ease;
}
.enp-bouton--principal { background: var(--enp-bleu); color: #fff; }
.enp-bouton--principal:hover { background: var(--enp-nuit); color: #fff; }
.enp-bouton--whatsapp { background: #fff; color: var(--enp-nuit); border: 2px solid currentColor; }
.enp-bouton--whatsapp:hover { background: var(--enp-ciel); color: var(--enp-nuit); }

/* ---------- En-tête ---------- */

.enp-entete {
	position: sticky;
	inset-block-start: 0;
	z-index: 50;
	background: #fff;
	border-block-end: 1px solid var(--enp-filet);
}
.admin-bar .enp-entete { inset-block-start: 32px; }
@media (max-width: 782px) { .admin-bar .enp-entete { inset-block-start: 0; } }

.enp-entete__inner {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--6);
	max-width: var(--enp-largeur);
	min-height: var(--enp-entete-h);
	margin-inline: auto;
	padding-inline: var(--enp-marge);
}

.enp-logo { display: inline-flex; align-items: center; text-decoration: none; flex-shrink: 0; }
/* Charte : 140 px de large minimum pour le bloc horizontal à l'écran. */
.enp-logo__img { display: block; height: 64px; width: auto; }
.enp-pied .enp-logo__img { height: 72px; }
.enp-logo__texte { display: inline-flex; flex-direction: column; line-height: 1.1; }
.enp-logo__sigle {
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 600;
	font-size: 1.75rem;
	color: var(--enp-bleu);
	letter-spacing: 0.02em;
}
.enp-logo__signature { font-size: 0.6875rem; font-weight: 500; color: var(--enp-nuit); }
.enp-logo--negatif .enp-logo__sigle,
.enp-logo--negatif .enp-logo__signature { color: #fff; }

.enp-navigation {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--6);
	margin-inline-start: auto;
}

.enp-menu, .enp-langues {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem var(--wp--preset--spacing--6);
	margin: 0;
	padding: 0;
	list-style: none;
}
.enp-menu a, .enp-langues a {
	display: inline-block;
	padding-block: 0.5rem;
	color: var(--enp-nuit);
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	text-decoration: none;
}
.enp-menu a:hover,
.enp-menu .current-menu-item > a,
.enp-menu .current-menu-ancestor > a { color: var(--enp-bleu); }
.enp-menu .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.enp-langues a { font-family: var(--wp--preset--font-family--arabe); }

/* Sous-menus (ex. Nos filières) */
.enp-menu li { position: relative; }
.enp-menu .sub-menu {
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 100%;
	min-width: 260px;
	margin: 0;
	padding: 0.5rem;
	list-style: none;
	background: #fff;
	border: 1px solid var(--enp-filet);
	border-radius: var(--enp-rayon-pastille);
	box-shadow: 0 8px 24px rgb(11 37 69 / 0.08);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease;
}
.enp-menu li:hover > .sub-menu,
.enp-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; }
.enp-menu .sub-menu a { display: block; padding: 0.5rem 0.75rem; }

.enp-menu-bouton {
	display: none;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	margin-inline-start: auto;
	padding: 0.5rem 0.75rem;
	background: none;
	border: 1px solid var(--enp-filet);
	border-radius: var(--enp-rayon-pastille);
	color: var(--enp-nuit);
	font: 500 1rem var(--wp--preset--font-family--titre);
	cursor: pointer;
}
.enp-menu-bouton__barres,
.enp-menu-bouton__barres::before,
.enp-menu-bouton__barres::after {
	display: block;
	width: 18px;
	height: 2px;
	background: currentColor;
	border-radius: 2px;
}
.enp-menu-bouton__barres { position: relative; }
.enp-menu-bouton__barres::before,
.enp-menu-bouton__barres::after { content: ""; position: absolute; inset-inline-start: 0; }
.enp-menu-bouton__barres::before { inset-block-start: -6px; }
.enp-menu-bouton__barres::after { inset-block-start: 6px; }

@media (max-width: 960px) {
	.enp-js .enp-menu-bouton { display: inline-flex; }
	.enp-js .enp-navigation {
		display: none;
		position: absolute;
		inset-inline: 0;
		inset-block-start: 100%;
		flex-direction: column;
		align-items: stretch;
		gap: var(--wp--preset--spacing--4);
		padding: var(--wp--preset--spacing--4) var(--enp-marge) var(--wp--preset--spacing--6);
		background: #fff;
		border-block-end: 1px solid var(--enp-filet);
		box-shadow: 0 16px 24px rgb(11 37 69 / 0.08);
	}
	.enp-js .enp-navigation.est-ouvert { display: flex; }
	.enp-menu { flex-direction: column; gap: 0; }
	.enp-menu a { display: block; padding-block: 0.75rem; border-block-end: 1px solid var(--enp-filet); }
	.enp-menu .sub-menu { position: static; opacity: 1; visibility: visible; border: 0; box-shadow: none; padding: 0 0 0 1rem; }
	.enp-navigation .enp-bouton { width: 100%; }
	.enp-entete__inner { position: relative; }
}

/* ---------- Bandeaux de titre ---------- */

.enp-entete-page,
.enp-filiere-entete {
	background: var(--enp-ciel);
	padding-block: var(--wp--preset--spacing--16);
}
.enp-entete-page__inner,
.enp-filiere-entete__inner {
	max-width: 760px;
	margin-inline: auto;
	padding-inline: var(--enp-marge);
}
.enp-entete-page__titre,
.enp-filiere-entete__titre { margin: 0; color: var(--enp-bleu); font-size: var(--wp--preset--font-size--titre-1); }
.enp-entete-page__chapo,
.enp-filiere-entete__chapo { margin-block: var(--wp--preset--spacing--4) 0; font-size: 1.125rem; color: var(--enp-nuit); }
.enp-entete-page__meta { margin: 0 0 0.5rem; color: var(--enp-gris); font-size: var(--wp--preset--font-size--legende); }

.enp-filiere-entete { border-block-start: 6px solid var(--enp-accent); }
.enp-filiere-entete__titre { color: var(--enp-nuit); }
.enp-filiere-entete__actions { display: flex; flex-wrap: wrap; gap: var(--wp--preset--spacing--4); margin-block: var(--wp--preset--spacing--10) 0; }

.enp-pastille {
	display: inline-block;
	margin: 0 0 var(--wp--preset--spacing--2);
	padding: 0.25rem 1rem;
	background: var(--enp-accent);
	color: var(--enp-nuit); /* Charte : texte bleu nuit sur les accents vifs, jamais blanc. */
	border-radius: var(--enp-rayon-pastille);
	font: 500 var(--wp--preset--font-size--pastille) / 1.2 var(--wp--preset--font-family--titre);
	letter-spacing: 0.04em;
}

.enp-reperes {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--2);
	margin: var(--wp--preset--spacing--6) 0 0;
	padding: 0;
	list-style: none;
}
.enp-reperes li {
	padding: 0.375rem 0.875rem;
	background: #fff;
	border: 1px solid var(--enp-filet);
	border-radius: 999px;
	font-weight: 500;
	font-size: 0.9375rem;
}

/* ---------- Contenu ---------- */

.enp-contenu { padding-block: var(--wp--preset--spacing--16); }
.enp-contenu > .alignfull:first-child { margin-block-start: calc(-1 * var(--wp--preset--spacing--16)); }
.enp-contenu > .alignfull:last-child { margin-block-end: calc(-1 * var(--wp--preset--spacing--16)); }
.home .enp-contenu,
.page-template-page-pleine-largeur .enp-contenu { padding-block-start: 0; }
.home .enp-contenu > .alignfull:first-child,
.page-template-page-pleine-largeur .enp-contenu > .alignfull:first-child { margin-block-start: 0; }

.enp-article__image { max-width: var(--enp-largeur); margin: var(--wp--preset--spacing--10) auto 0; padding-inline: var(--enp-marge); }
.enp-article__image img { width: 100%; border-radius: var(--enp-rayon-carte); }

/* ---------- Styles de blocs ENP ---------- */

.is-style-carte {
	padding: var(--wp--preset--spacing--6);
	background: #fff;
	border: 1px solid var(--enp-filet);
	border-radius: var(--enp-rayon-carte);
}
.is-style-carte > :first-child { margin-block-start: 0; }

.is-style-bandeau { background: var(--enp-bleu); color: #fff; }
.is-style-bandeau-nuit { background: var(--enp-nuit); color: #fff; }
.is-style-bandeau :is(h1, h2, h3, h4, p, li, a:not(.wp-element-button)),
.is-style-bandeau-nuit :is(h1, h2, h3, h4, p, li, a:not(.wp-element-button)) { color: #fff; }

.is-style-pastille-ipv,
.is-style-pastille-ort,
.is-style-pastille-tsl {
	display: inline-block;
	width: auto;
	padding: 0.25rem 1rem;
	border-radius: var(--enp-rayon-pastille);
	color: var(--enp-nuit) !important;
	font: 500 var(--wp--preset--font-size--pastille) / 1.2 var(--wp--preset--font-family--titre);
}
.is-style-pastille-ipv { background: var(--wp--preset--color--ipv); }
.is-style-pastille-ort { background: var(--wp--preset--color--ort); }
.is-style-pastille-tsl { background: var(--wp--preset--color--tsl); }

.is-style-surtitre {
	margin-block-end: var(--wp--preset--spacing--2) !important;
	color: var(--enp-bleu);
	font: 500 0.875rem / 1.3 var(--wp--preset--font-family--titre);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.langue-ar .is-style-surtitre { letter-spacing: 0; text-transform: none; font-size: 1rem; }

.is-style-coches { padding-inline-start: 0; list-style: none; }
.is-style-coches li { position: relative; padding-inline-start: 1.75rem; margin-block-end: 0.5rem; }
.is-style-coches li::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.3em;
	width: 1.1em;
	height: 1.1em;
	border-radius: 50%;
	background: var(--enp-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='%230B2545' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 70% no-repeat;
}

.wp-block-button.is-style-whatsapp .wp-block-button__link {
	background: #fff;
	color: var(--enp-nuit);
	border: 2px solid currentColor;
}
.wp-block-button.is-style-whatsapp .wp-block-button__link:hover { background: var(--enp-ciel); }
.is-style-bandeau .wp-block-button:not(.is-style-whatsapp) .wp-block-button__link,
.is-style-bandeau-nuit .wp-block-button:not(.is-style-whatsapp) .wp-block-button__link { background: #fff; color: var(--enp-nuit); }

.is-style-chiffres .wp-block-column { text-align: center; }
.is-style-chiffres .wp-block-column > p:first-child {
	margin: 0;
	color: var(--enp-bleu);
	font: 600 var(--wp--preset--font-size--titre-1) / 1.1 var(--wp--preset--font-family--titre);
}

/* FAQ (bloc Détails) */
.wp-block-details summary {
	cursor: pointer;
	font-family: var(--wp--preset--font-family--titre);
	font-weight: 500;
	font-size: 1.0625rem;
	color: var(--enp-nuit);
}
.wp-block-details[open] summary { color: var(--enp-bleu); }
.wp-block-details > :not(summary) { margin-block-start: 0.75rem; }

/* Cartes filières : liseré de couleur selon la classe ajoutée dans la composition. */
.enp-carte-filiere { border-block-start: 6px solid var(--enp-accent) !important; height: 100%; }
.enp-carte-filiere.filiere-ipv { --enp-accent: var(--wp--preset--color--ipv); }
.enp-carte-filiere.filiere-ort { --enp-accent: var(--wp--preset--color--ort); }
.enp-carte-filiere.filiere-tsl { --enp-accent: var(--wp--preset--color--tsl); }

/* ---------- Liste d'articles ---------- */

.enp-liste { max-width: var(--enp-largeur); margin-inline: auto; padding: var(--wp--preset--spacing--16) var(--enp-marge); }
.enp-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: var(--wp--preset--spacing--6); }
.enp-carte-article { background: #fff; border: 1px solid var(--enp-filet); border-radius: var(--enp-rayon-carte); overflow: hidden; }
.enp-carte-article__lien { display: block; height: 100%; color: inherit; text-decoration: none; }
.enp-carte-article__lien:hover .enp-carte-article__titre { color: var(--enp-bleu); }
.enp-carte-article img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.enp-carte-article__corps { padding: var(--wp--preset--spacing--6); }
.enp-carte-article__corps time { color: var(--enp-gris); font-size: var(--wp--preset--font-size--legende); }
.enp-carte-article__titre { margin: 0.25rem 0 0.5rem; font-size: 1.25rem; }
.enp-carte-article__corps p { margin: 0; color: var(--enp-gris); }
.nav-links { display: flex; justify-content: space-between; gap: 1rem; margin-block-start: var(--wp--preset--spacing--10); }

/* ---------- Pied de page ---------- */

.enp-pied { background: var(--enp-nuit); color: #fff; margin-block-start: 0; }
.enp-pied a { color: #fff; }
.enp-pied a:hover { color: var(--enp-ciel); }
.enp-pied__inner {
	display: grid;
	grid-template-columns: 1.4fr repeat(3, 1fr);
	gap: var(--wp--preset--spacing--10);
	max-width: var(--enp-largeur);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--16) var(--enp-marge) var(--wp--preset--spacing--10);
}
.enp-pied__titre { margin: 0 0 var(--wp--preset--spacing--4); color: #fff; font-size: 1rem; font-weight: 600; }
.enp-pied__titre--petit { margin-block-start: var(--wp--preset--spacing--6); }
.enp-pied__mention { margin-block: var(--wp--preset--spacing--4); color: rgb(255 255 255 / 0.85); font-size: 0.9375rem; }
.enp-pied__liens, .enp-reseaux { margin: 0; padding: 0; list-style: none; }
.enp-pied__liens li { margin-block-end: 0.5rem; }
.enp-pied__liens a, .enp-reseaux a { text-decoration: none; }
.enp-pied__liens a:hover, .enp-reseaux a:hover { text-decoration: underline; }
.enp-pied__adresse { display: flex; flex-direction: column; gap: 0.375rem; font-style: normal; }
.enp-reseaux { display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; }
.enp-tampon {
	display: inline-block;
	margin: 0;
	padding: 0.375rem 0.875rem;
	border: 1.5px solid rgb(255 255 255 / 0.6);
	border-radius: var(--enp-rayon-pastille);
	font: 500 0.875rem / 1.3 var(--wp--preset--font-family--titre);
}
.enp-pied__bas {
	max-width: var(--enp-largeur);
	margin-inline: auto;
	padding: var(--wp--preset--spacing--6) var(--enp-marge);
	border-block-start: 1px solid rgb(255 255 255 / 0.15);
	font-size: var(--wp--preset--font-size--legende);
	color: rgb(255 255 255 / 0.75);
}
.enp-pied__bas p { margin: 0; }

@media (max-width: 960px) {
	.enp-pied__inner { grid-template-columns: 1fr 1fr; }
	.enp-pied__col--ecole { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.enp-pied__inner { grid-template-columns: 1fr; }
}

/* ---------- WhatsApp flottant ---------- */

.enp-whatsapp-flottant {
	position: fixed;
	inset-inline-end: var(--enp-marge);
	inset-block-end: var(--enp-marge);
	z-index: 40;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.625rem 1.125rem;
	background: #fff;
	color: var(--enp-nuit);
	border: 2px solid var(--enp-nuit);
	border-radius: 999px;
	box-shadow: 0 6px 20px rgb(11 37 69 / 0.18);
	font: 500 0.9375rem / 1.2 var(--wp--preset--font-family--titre);
	text-decoration: none;
}
.enp-whatsapp-flottant svg { color: #1E7B45; flex-shrink: 0; }
.enp-whatsapp-flottant:hover { background: var(--enp-ciel); }

/* Mobile : barre pleine largeur en bas d'écran, plus facile à toucher. */
@media (max-width: 600px) {
	.enp-whatsapp-flottant {
		inset-inline: 0;
		inset-block-end: 0;
		justify-content: center;
		border-radius: 0;
		border-width: 2px 0 0;
		box-shadow: 0 -4px 16px rgb(11 37 69 / 0.12);
		padding-block-end: calc(0.625rem + env(safe-area-inset-bottom));
	}
	.enp-pied__bas { padding-block-end: calc(var(--wp--preset--spacing--6) + 64px); }
}

/* ---------- Impression ---------- */

@media print {
	.enp-entete, .enp-pied, .enp-whatsapp-flottant, .enp-lien-evitement { display: none; }
}

/* ---------- Ajustements après revue visuelle ---------- */

/* Les cartes gardent leur marge intérieure même dans un conteneur à marges globales. */
.wp-block-group.is-style-carte { padding: var(--wp--preset--spacing--6); }

/* Une pastille garde la largeur de son texte, même dans un groupe en colonne. */
.is-style-pastille-ipv, .is-style-pastille-ort, .is-style-pastille-tsl { align-self: flex-start; }

/* Respiration avant chaque grand titre de contenu. */
.enp-contenu > .wp-block-heading:is(h2) { margin-block-start: var(--wp--preset--spacing--10); }

/* Numéros de téléphone : jamais coupés en fin de ligne. */
a[href^="tel:"], a[href*="wa.me"] { white-space: nowrap; }

/* ---------- Formulaire de préinscription ---------- */

.enp-formulaire {
	padding: var(--wp--preset--spacing--10);
	background: var(--enp-ciel);
	border-radius: var(--enp-rayon-carte);
}
.enp-formulaire__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--wp--preset--spacing--6); }
.enp-champ { margin: 0 0 var(--wp--preset--spacing--6); }
.enp-champ--large { grid-column: 1 / -1; }
.enp-champ label { display: block; margin-block-end: 0.375rem; font-weight: 500; }
.enp-champ input[type="text"],
.enp-champ input[type="tel"],
.enp-champ input[type="email"],
.enp-champ select {
	width: 100%;
	min-height: 48px;
	padding: 0.625rem 0.875rem;
	background: #fff;
	border: 1px solid #9AABBF;
	border-radius: var(--enp-rayon-pastille);
	color: var(--enp-nuit);
	font: inherit;
}
.enp-champ input:focus-visible, .enp-champ select:focus-visible { outline: 2px solid var(--enp-bleu); outline-offset: 1px; border-color: var(--enp-bleu); }
.enp-champ [aria-invalid="true"] { border-color: #B42318; }
.enp-champ__erreur { display: block; margin-block-start: 0.375rem; color: #B42318; font-size: 0.875rem; }
.enp-champ__oblig { color: #B42318; text-decoration: none; }
.enp-champ--case { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 0.75rem; align-items: start; }
.enp-champ--case input { width: 22px; height: 22px; margin: 0.15rem 0 0; accent-color: var(--enp-bleu); }
.enp-champ--case label { margin: 0; font-weight: 400; }
.enp-champ--case .enp-champ__erreur { grid-column: 2; }
.enp-champ--piege { position: absolute !important; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.enp-formulaire__mentions { color: var(--enp-gris); font-size: var(--wp--preset--font-size--legende); line-height: 1.5; }
.enp-formulaire__alerte {
	padding: 0.75rem 1rem;
	background: #FDECEA;
	border-inline-start: 4px solid #B42318;
	border-radius: var(--enp-rayon-pastille);
	color: #7A1A12;
}
.enp-formulaire--merci { border-inline-start: 6px solid var(--wp--preset--color--ipv); }
.enp-formulaire__titre { margin-top: 0; font: 600 1.375rem / 1.3 var(--wp--preset--font-family--titre); color: var(--enp-nuit); }
@media (max-width: 640px) {
	.enp-formulaire { padding: var(--wp--preset--spacing--6); }
	.enp-formulaire__grille { grid-template-columns: 1fr; }
}
