/*
 * ENP 2027 — composants des pages principales (accueil, programmes, admission, école, préinscription, contact).
 * S'appuie sur composants.css (sections, cartes, étapes) et signature.css (croissant, trame, tampon).
 */

/* ---------- Liens et boutons fléchés ---------- */

.enp-lien-fleche { margin-block-start: auto; }
.enp-lien-fleche a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--enp-bleu);
	font: 500 1rem / 1.3 var(--wp--preset--font-family--titre);
	text-decoration: none;
	border-block-end: 1px solid currentColor;
	padding-block-end: 2px;
}
.langue-ar .enp-lien-fleche a { font-family: var(--wp--preset--font-family--arabe); }
.enp-lien-fleche a::after,
.enp-bouton-fleche .wp-block-button__link::after {
	content: "";
	width: 1em;
	height: 1em;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h11m-4-4 4 4-4 4' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10h11m-4-4 4 4-4 4' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--enp-transition);
}
.enp-bouton-fleche .wp-block-button__link { display: inline-flex; align-items: center; gap: 0.5rem; }
.enp-lien-fleche a:hover::after, .enp-bouton-fleche .wp-block-button__link:hover::after { transform: translateX(3px); }
[dir="rtl"] .enp-lien-fleche a::after, [dir="rtl"] .enp-bouton-fleche .wp-block-button__link::after { transform: scaleX(-1); }
[dir="rtl"] .enp-lien-fleche a:hover::after, [dir="rtl"] .enp-bouton-fleche .wp-block-button__link:hover::after { transform: scaleX(-1) translateX(3px); }

.enp-section .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--10); }

/* ---------- Ouverture de l'accueil ---------- */

.enp-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin-block: 0 !important;
	padding: var(--wp--preset--spacing--16) var(--enp-marge) var(--wp--preset--spacing--10);
	background: var(--enp-millimetre), var(--enp-ciel);
	border-block-start: 6px solid var(--enp-bleu);
}
.enp-hero::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block-start: -20%;
	inset-inline-end: -8%;
	width: min(56vw, 780px);
	aspect-ratio: 1;
	background: var(--enp-bleu);
	opacity: 0.3;
	-webkit-mask: var(--enp-croissant-trait) center / contain no-repeat;
	mask: var(--enp-croissant-trait) center / contain no-repeat;
	pointer-events: none;
}
[dir="rtl"] .enp-hero::after { transform: scaleX(-1); }
.enp-hero > * { max-width: var(--enp-largeur); margin-inline: auto; }
.enp-hero__colonnes { gap: var(--wp--preset--spacing--16) !important; align-items: center !important; margin-block-end: var(--wp--preset--spacing--16); }
.enp-hero__titre {
	margin-block: 0 var(--wp--preset--spacing--4);
	color: var(--enp-nuit);
	font-size: var(--wp--preset--font-size--affiche);
	line-height: var(--wp--custom--line-height--titre);
	letter-spacing: -0.02em;
}
.langue-ar .enp-hero__titre { letter-spacing: 0; line-height: 1.35; }
.enp-hero__chapo { max-width: 34em; color: var(--enp-gris); font-size: 1.1875rem; line-height: 1.55; }
.enp-hero .wp-block-buttons { margin-block-start: var(--wp--preset--spacing--10); }
.enp-hero .wp-block-button__link { min-height: 52px; padding-inline: 1.5rem; font-size: 1.0625rem; }

/* Photo encadrée au trait avec tampon (accueil, école). */
.enp-hero__photo { position: relative; }
.enp-hero__photo .wp-block-image { position: relative; margin: 0; }
.enp-hero__photo .wp-block-image::before {
	content: "";
	position: absolute;
	inset: 0.875rem -0.875rem -0.875rem 0.875rem;
	border: 2px solid var(--enp-accent);
	border-radius: var(--enp-rayon-carte);
}
[dir="rtl"] .enp-hero__photo .wp-block-image::before { inset: 0.875rem 0.875rem -0.875rem -0.875rem; }
.enp-hero__photo .wp-block-image img { position: relative; display: block; width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--enp-rayon-carte); }
.enp-hero__photo .enp-sceau--photo { inset-block-end: -1.5rem; inset-inline-end: -1.5rem; }

/* Repères : une ligne typographique, filet noir en tête. */
.wp-block-columns.enp-reperes-ligne { gap: 0 !important; margin-block-end: 0; border-block-start: 1px solid var(--enp-nuit); }
.enp-reperes-ligne > .wp-block-column { padding: var(--wp--preset--spacing--6) var(--wp--preset--spacing--6) 0 0; }
.enp-reperes-ligne > .wp-block-column + .wp-block-column { padding-inline-start: var(--wp--preset--spacing--6); border-inline-start: 1px solid rgb(11 37 69 / 0.18); }
.enp-repere__chiffre { margin: 0 0 0.375rem; color: var(--enp-bleu); font: 600 2.25rem / 1 var(--wp--preset--font-family--titre); letter-spacing: -0.02em; }
.langue-ar .enp-repere__chiffre { letter-spacing: 0; }
.enp-repere__texte { margin: 0; color: var(--enp-nuit); font-size: 0.9375rem; line-height: 1.45; }

/* ---------- Cartes filières (photo + contenu) ---------- */

.wp-block-columns.enp-cartes-filieres { gap: var(--wp--preset--spacing--6); margin-block-start: var(--wp--preset--spacing--10); }
.enp-cartes-filieres > .wp-block-column { display: flex; }
.wp-block-group.enp-carte-filiere {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: auto;
	overflow: hidden;
	background: #fff;
	border: 1px solid var(--enp-filet);
	border-block-start: 0 !important;
	border-radius: var(--enp-rayon-carte);
	transition: border-color var(--enp-transition);
}
.enp-carte-filiere:hover { border-color: var(--enp-accent); }
.enp-carte-filiere__photo { position: relative; margin: 0 !important; }
.enp-carte-filiere__photo::after { content: ""; position: absolute; inset-inline: 0; inset-block-end: 0; height: 5px; background: var(--enp-accent); }
.enp-carte-filiere__photo img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.6s cubic-bezier(0.2, 0.7, 0.3, 1); }
.enp-carte-filiere:hover .enp-carte-filiere__photo img { transform: scale(1.03); }
.enp-carte-filiere__corps { display: flex; flex-direction: column; flex: 1; padding: var(--wp--preset--spacing--6); }
.enp-carte-filiere__corps > * { margin-block: 0 var(--wp--preset--spacing--4); }
.enp-carte-filiere__corps > :last-child { margin-block-end: 0; }
.enp-carte-filiere__sigle {
	align-self: flex-start;
	margin-block-end: var(--wp--preset--spacing--2) !important;
	padding: 0.125rem 0.625rem;
	background: var(--enp-accent);
	color: var(--enp-nuit);
	border-radius: 4px;
	font: 600 0.8125rem / 1.5 var(--wp--preset--font-family--titre);
	letter-spacing: 0.04em;
}
.langue-ar .enp-carte-filiere__sigle { font-family: var(--wp--preset--font-family--arabe); letter-spacing: 0; font-size: 0.9375rem; }
.enp-carte-filiere h3 { font-size: 1.375rem; line-height: 1.25; }
.enp-carte-filiere h3 a { color: var(--enp-nuit); text-decoration: none; }
.enp-carte-filiere h3 a:hover { color: var(--enp-bleu); }
.enp-carte-filiere__corps > p:not([class]) { color: var(--enp-gris); }
.enp-carte-filiere .is-style-coches { margin-block-end: var(--wp--preset--spacing--6); }
.enp-carte-filiere .is-style-coches li { margin-block-end: 0.375rem; font-size: 0.9375rem; }

/* ---------- Mot du directeur ---------- */

.enp-mot { position: relative; max-width: 52rem !important; padding-inline-start: 5.5rem; }
.enp-mot::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: 0.25rem;
	width: 3.5rem;
	aspect-ratio: 1;
	background: var(--enp-bleu);
	-webkit-mask: var(--enp-croissant) center / contain no-repeat;
	mask: var(--enp-croissant) center / contain no-repeat;
}
[dir="rtl"] .enp-mot::before { transform: scaleX(-1); }
.enp-mot .enp-mot__titre { margin-block-end: var(--wp--preset--spacing--6); font-size: clamp(1.625rem, 1.2rem + 1.6vw, 2.375rem) !important; line-height: 1.2; }
.enp-mot > p:not([class]) { color: var(--enp-nuit); font-size: 1.125rem; line-height: 1.7; }
.enp-mot__signature { margin-block-start: var(--wp--preset--spacing--6); padding-block-start: var(--wp--preset--spacing--4); border-block-start: 1px solid var(--enp-filet); color: var(--enp-gris); }
.enp-mot__signature strong { color: var(--enp-nuit); }

/* ---------- Témoignages ---------- */

.wp-block-columns.enp-temoignages { gap: var(--wp--preset--spacing--6); margin-block-start: var(--wp--preset--spacing--10); }
.wp-block-quote.enp-temoignage {
	height: 100%;
	margin: 0;
	padding: var(--wp--preset--spacing--6);
	background: #fff;
	border: 1px solid var(--enp-filet);
	border-inline-start: 3px solid var(--enp-bleu);
	border-radius: var(--enp-rayon-carte);
	display: flex;
	flex-direction: column;
}
.enp-temoignage p { margin: 0 0 var(--wp--preset--spacing--6); color: var(--enp-nuit); font-size: 1.0625rem; line-height: 1.6; }
.enp-temoignage p::before { content: "« "; color: var(--enp-bleu); }
.enp-temoignage p::after { content: " »"; color: var(--enp-bleu); }
.langue-ar .enp-temoignage p::before { content: "« "; }
.enp-temoignage cite { margin-block-start: auto; color: var(--enp-gris); font-style: normal; font-size: 0.875rem; }
.enp-temoignage cite strong { display: block; color: var(--enp-nuit); font-size: 1rem; }

/* ---------- Étapes en grille (admission) ---------- */

.wp-block-list.enp-etapes-grille {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--6);
	margin-block-start: var(--wp--preset--spacing--10);
}
.enp-etapes-grille li {
	padding: var(--wp--preset--spacing--6) 0 0;
	border-block-start: 1px solid var(--enp-nuit);
}
.enp-etapes-grille li::before { position: static; display: block; margin-block-end: var(--wp--preset--spacing--4); font-size: 2.5rem; color: transparent; -webkit-text-stroke: 1.25px var(--enp-bleu); }
.enp-etapes-grille li::after { display: none; }
.enp-etapes-grille strong { margin-block-end: 0.375rem; font-size: 1.125rem; }
.enp-etapes-grille li { color: var(--enp-gris); }

/* ---------- Tableau comparatif ---------- */

.wp-block-table.enp-comparatif { margin: var(--wp--preset--spacing--10) 0 0; overflow-x: auto; }
.enp-comparatif table { width: 100%; min-width: 640px; border-collapse: collapse; background: #fff; border: 1px solid var(--enp-filet); border-radius: var(--enp-rayon-carte); }
.enp-comparatif th, .enp-comparatif td { padding: 1rem 1.25rem; border: 0; border-block-end: 1px solid var(--enp-filet); text-align: start; vertical-align: top; }
.enp-comparatif thead th { background: var(--enp-nuit); color: #fff; font: 600 0.9375rem / 1.3 var(--wp--preset--font-family--titre); }
.langue-ar .enp-comparatif thead th { font-family: var(--wp--preset--font-family--arabe); }
.enp-comparatif tbody tr:last-child td { border-block-end: 0; }
.enp-comparatif td:first-child { width: 18%; color: var(--enp-nuit); }
.enp-comparatif td { color: var(--enp-gris); font-size: 0.9375rem; }
.enp-comparatif thead th:nth-child(2) { box-shadow: inset 0 -4px 0 var(--wp--preset--color--ipv); }
.enp-comparatif thead th:nth-child(3) { box-shadow: inset 0 -4px 0 var(--wp--preset--color--ort); }
.enp-comparatif thead th:nth-child(4) { box-shadow: inset 0 -4px 0 var(--wp--preset--color--tsl); }
.enp-section .wp-block-column > .enp-comparatif:first-child { margin-block-start: 0; }
.enp-section .wp-block-column > .enp-comparatif table { min-width: 0; }
.enp-section .wp-block-column > .enp-comparatif td:first-child { width: 36%; }

.enp-encart-action { display: grid; grid-template-columns: 1fr auto; gap: 0 var(--wp--preset--spacing--10); align-items: center; margin-block-start: var(--wp--preset--spacing--10) !important; background: #fff; }
.enp-encart-action h3 { margin: 0 0 0.25rem; }
.enp-encart-action p { margin: 0; color: var(--enp-gris); }
.enp-encart-action .wp-block-buttons { grid-row: span 2; grid-column: 2; margin: 0; }
.enp-section .wp-block-column > .is-style-encart { margin-block-start: var(--wp--preset--spacing--6); }

/* ---------- Notre école ---------- */

.wp-block-list.is-style-cartes.enp-cartes-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.enp-cartes-3 li:last-child { background: #fff; color: var(--enp-nuit); border-color: var(--enp-filet); }
.enp-cartes-3 li:last-child:nth-child(4n+1) { grid-column: auto; padding-block: var(--wp--preset--spacing--6); }

.wp-block-columns.enp-histoire { gap: 0 !important; margin-block-start: var(--wp--preset--spacing--10); border-block-start: 1px solid var(--enp-nuit); }
.enp-histoire > .wp-block-column { position: relative; padding: var(--wp--preset--spacing--6) var(--wp--preset--spacing--6) 0 0; }
.enp-histoire > .wp-block-column::before {
	content: "";
	position: absolute;
	inset-block-start: -7px;
	inset-inline-start: 0;
	width: 13px;
	height: 13px;
	background: var(--enp-bleu);
	-webkit-mask: var(--enp-croissant) center / contain no-repeat;
	mask: var(--enp-croissant) center / contain no-repeat;
}
.enp-histoire__annee { margin: 0 0 0.5rem; color: transparent; -webkit-text-stroke: 1.5px var(--enp-bleu); font: 600 3.5rem / 1 var(--wp--preset--font-family--titre); letter-spacing: -0.02em; }
.enp-histoire > .wp-block-column:last-child .enp-histoire__annee { color: var(--enp-bleu); }
.enp-histoire p:not([class]) { color: var(--enp-gris); }

.wp-block-columns.enp-mission-vision { gap: var(--wp--preset--spacing--16); }
.enp-photo-cadre { margin: 0 0 var(--wp--preset--spacing--10) !important; }
.enp-photo-cadre img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--enp-rayon-carte); }
.enp-mission-vision h2 { margin-block: 0 var(--wp--preset--spacing--4) !important; font-size: var(--wp--preset--font-size--titre-2) !important; }

.wp-block-group.enp-galerie { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--10) var(--wp--preset--spacing--6); margin-block-start: var(--wp--preset--spacing--10); }
.enp-galerie__item > * { margin-block: 0; }
.enp-galerie__item .wp-block-image { margin-block-end: var(--wp--preset--spacing--4); }
.enp-galerie__item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--enp-rayon-carte); }
.enp-galerie__item h3 { margin-block-end: 0.375rem !important; font-size: 1.125rem; }
.enp-galerie__item p { color: var(--enp-gris); font-size: 0.9375rem; }

/* ---------- Préinscription ---------- */

.enp-colonne-aside > * + * { margin-block-start: var(--wp--preset--spacing--6); }
.enp-colonne-aside .is-style-etapes li { padding-block-end: var(--wp--preset--spacing--4); }
.enp-colonne-aside h3 { font-size: 1.125rem; }

/* ---------- Contact ---------- */

.wp-block-columns.enp-contacts { gap: var(--wp--preset--spacing--6); margin-block-start: var(--wp--preset--spacing--10); }
.enp-contacts .is-style-carte { height: 100%; border-block-start: 3px solid var(--enp-bleu); }
.enp-contact__canal { margin: 0 0 0.5rem; color: var(--enp-gris); font: 500 0.8125rem / 1.3 var(--wp--preset--font-family--titre); letter-spacing: 0.06em; text-transform: uppercase; }
.langue-ar .enp-contact__canal { letter-spacing: 0; text-transform: none; font-family: var(--wp--preset--font-family--arabe); font-size: 0.9375rem; }
.enp-contact__valeur { margin: 0 0 0.5rem; font: 600 1.375rem / 1.3 var(--wp--preset--font-family--titre); }
.enp-contact__valeur a { color: var(--enp-nuit); text-decoration: none; }
.enp-contact__valeur a:hover { color: var(--enp-bleu); }
.enp-contacts .is-style-carte p:last-child { margin: 0; color: var(--enp-gris); font-size: 0.9375rem; }
.enp-contact__adresse { color: var(--enp-nuit); font-size: 1.1875rem; font-weight: 500; }
.enp-a-completer { padding: 0.5rem 0.75rem; background: #FFF6E5; border-inline-start: 3px solid var(--wp--preset--color--ort); color: #7A4B00; font-size: 0.875rem; }

/* ---------- Écrans moyens et petits ---------- */

@media (max-width: 960px) {
	.wp-block-list.enp-etapes-grille, .wp-block-group.enp-galerie, .wp-block-list.is-style-cartes.enp-cartes-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.wp-block-columns.enp-reperes-ligne { flex-wrap: wrap !important; }
	.enp-reperes-ligne > .wp-block-column { flex-basis: 50% !important; padding-block-end: var(--wp--preset--spacing--6); }
	.enp-reperes-ligne > .wp-block-column:nth-child(3) { border-inline-start: 0; padding-inline-start: 0; }
}
@media (max-width: 781px) {
	.enp-hero { padding-block-start: var(--wp--preset--spacing--10); }
	.enp-hero__titre { font-size: var(--wp--preset--font-size--titre-1); }
	.enp-hero__chapo { font-size: 1.0625rem; }
	.enp-hero .wp-block-button { width: 100%; }
	.enp-hero .wp-block-button__link { width: 100%; justify-content: center; }
	.enp-hero__colonnes { gap: var(--wp--preset--spacing--10) !important; }
	.enp-hero__photo .wp-block-image img { aspect-ratio: 16 / 10; }
	.enp-hero__photo { margin-inline-end: 0.875rem; }
	.wp-block-list.enp-etapes-grille, .wp-block-group.enp-galerie, .wp-block-list.is-style-cartes.enp-cartes-3 { grid-template-columns: 1fr; }
	.enp-mot { padding-inline-start: 0; padding-block-start: 4rem; }
	.enp-repere__chiffre { font-size: 1.75rem; }
	.enp-encart-action { grid-template-columns: 1fr; }
	.enp-encart-action .wp-block-buttons { grid-row: auto; grid-column: auto; margin-block-start: var(--wp--preset--spacing--4); }
	.enp-histoire > .wp-block-column { padding-inline-end: 0; }
}

/* Ajustements après revue (v0.5.1). */
.enp-carte-filiere__corps > .enp-lien-fleche { margin-block-start: auto; padding-block-start: var(--wp--preset--spacing--2); }
.enp-section > .wp-block-list.enp-etapes-grille { margin-inline: auto; }
.enp-etapes-grille li, [dir="rtl"] .enp-etapes-grille li { padding-inline: 0; }
[dir="rtl"] .enp-comparatif :is(th, td) { text-align: right; }
