/* =====================================================================
 * prepa-hec.com — THEME (layout + composants + responsive)
 * Tout est scopé à .phec-page pour ne pas toucher aux pages Astra non migrées.
 * Design à angles vifs, encre + laiton, filets 1px. Variables : tokens.css.
 * Les styles fins par template s'ajoutent au fil des étapes (home, cours, stage...).
 * ===================================================================== */

/* --------------------------------------------------------------------
 * Socle
 * ------------------------------------------------------------------ */
.phec-page,
.phec-page * {
	box-sizing: border-box;
}

.phec-page {
	margin: 0;
	background: var(--phec-ink);
	color: var(--phec-text-on-ink);
	font-family: var(--phec-sans);
	font-size: var(--phec-fs-body);
	line-height: var(--phec-lh-body);
	font-weight: 400;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden; /* aucun débordement horizontal */
}

.phec-page img {
	max-width: 100%;
	height: auto;
	display: block;
}

.phec-page a {
	color: inherit;
	text-decoration: none;
}

.phec-page a:not(.phec-btn):hover {
	color: var(--phec-gold);
}

/* --------------------------------------------------------------------
 * Titres (Bodoni, chasse serrée)
 * ------------------------------------------------------------------ */
.phec-page h1,
.phec-page h2,
.phec-page h3,
.phec-page h4 {
	font-family: var(--phec-serif);
	font-weight: 600;
	line-height: var(--phec-lh-title);
	letter-spacing: var(--phec-ls-title);
	margin: 0 0 .4em;
}

.phec-page h1 { font-size: var(--phec-fs-h1); }
.phec-page h2 { font-size: var(--phec-fs-h2); }
.phec-page h3 { font-size: var(--phec-fs-h3); }
.phec-page h4 { font-size: var(--phec-fs-h4); }

.phec-page p { margin: 0 0 1em; }
.phec-page p:last-child { margin-bottom: 0; }

.phec-hero-title { font-size: var(--phec-fs-hero); }
.phec-italic { font-style: italic; }

/* --------------------------------------------------------------------
 * Conteneur et sections (bandes pleine largeur alternées)
 * ------------------------------------------------------------------ */
.phec-inner {
	width: 100%;
	max-width: var(--phec-container);
	margin-inline: auto;
	padding-inline: var(--phec-gutter);
}

.phec-section {
	padding-block: var(--phec-section-y);
}

/* Alternance de bandes : encre <-> papier, changements de fond francs. */
.phec-band--ink    { background: var(--phec-ink); color: var(--phec-text-on-ink); }
.phec-band--paper  { background: var(--phec-paper); color: var(--phec-text-on-paper); }
.phec-band--footer { background: var(--phec-ink-footer); color: var(--phec-text-muted); }

.phec-band--paper a:not(.phec-btn):hover { color: #8a6d1f; }

/* Filets de séparation 1px. */
.phec-hr { height: 0; border: 0; border-top: 1px solid var(--phec-hair-on-ink); margin: 0; }
.phec-band--paper .phec-hr { border-top-color: var(--phec-hair-on-paper); opacity: .16; }

/* --------------------------------------------------------------------
 * Eyebrow, labels : petites capitales espacées (côté institutionnel)
 * ------------------------------------------------------------------ */
.phec-eyebrow,
.phec-label {
	font-family: var(--phec-sans);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: var(--phec-ls-eyebrow);
	font-size: var(--phec-fs-eyebrow);
	color: var(--phec-gold);
	display: inline-block;
	margin: 0 0 1rem;
}

.phec-label { color: var(--phec-text-meta); letter-spacing: var(--phec-ls-eyebrow-wide); }

/* --------------------------------------------------------------------
 * Élément signature : marge de copie (filet laiton à gauche du titre)
 * ------------------------------------------------------------------ */
.phec-copy-margin {
	border-left: var(--phec-copy-rule);
	padding-left: var(--phec-copy-pad);
}

/* --------------------------------------------------------------------
 * Chiffres clés (Bodoni géant + label utilitaire dessous)
 * ------------------------------------------------------------------ */
.phec-stat__num {
	font-family: var(--phec-serif);
	font-weight: 600;
	font-size: var(--phec-fs-stat);
	line-height: 1;
	color: var(--phec-gold);
	letter-spacing: var(--phec-ls-title);
}
.phec-stat__label {
	font-family: var(--phec-sans);
	text-transform: uppercase;
	letter-spacing: var(--phec-ls-eyebrow);
	font-size: var(--phec-fs-label);
	color: var(--phec-text-meta);
	margin-top: .6rem;
}

/* --------------------------------------------------------------------
 * Boutons (angles vifs, hover en inversion nette < 150 ms)
 * ------------------------------------------------------------------ */
.phec-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6em;
	min-height: 44px; /* cible tactile */
	padding: 14px 26px;
	border-radius: var(--phec-radius);
	border: 1px solid var(--phec-gold);
	font-family: var(--phec-sans);
	font-weight: 600;
	font-size: var(--phec-fs-small);
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--phec-hover-dur) ease, color var(--phec-hover-dur) ease;
}

.phec-btn--primary { background: var(--phec-gold); color: var(--phec-ink); }
.phec-btn--primary:hover { background: transparent; color: var(--phec-gold); }

.phec-btn--ghost { background: transparent; color: var(--phec-gold); }
.phec-btn--ghost:hover { background: var(--phec-gold); color: var(--phec-ink); }

.phec-btn--link {
	border: 0; padding: 0; min-height: 0; background: none;
	color: var(--phec-gold); text-transform: none; letter-spacing: 0;
	border-bottom: 1px solid var(--phec-gold);
}

/* --------------------------------------------------------------------
 * Cartes (encre profonde, filet 1px, angles vifs)
 * ------------------------------------------------------------------ */
.phec-card {
	background: var(--phec-ink-card);
	border: 1px solid var(--phec-hair-on-ink);
	border-radius: var(--phec-radius-max);
	padding: 32px 30px;
}
.phec-band--paper .phec-card { background: #fff; border-color: rgba(19,18,16,.16); }

/* --------------------------------------------------------------------
 * Wordmark PRÉPA | HEC (lockup divisé)
 * ------------------------------------------------------------------ */
.phec-wordmark {
	display: inline-flex;
	align-items: center;
	gap: .5em;
	line-height: 1;
}
.phec-wordmark__prepa {
	font-family: var(--phec-sans);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .18em;
	font-size: 16px;
	color: var(--phec-text-on-ink);
}
.phec-wordmark__rule {
	width: 1px;
	height: 22px;
	background: var(--phec-gold);
	display: inline-block;
}
.phec-wordmark__hec {
	font-family: var(--phec-serif);
	font-weight: 600;
	font-size: 24px;
	letter-spacing: .02em;
	color: var(--phec-text-on-ink);
}

/* --------------------------------------------------------------------
 * En-tête / navigation
 * ------------------------------------------------------------------ */
.phec-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--phec-ink);
	border-bottom: 1px solid var(--phec-hair-on-ink);
}
.phec-nav {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
	min-height: 84px;
}
.phec-nav__links {
	justify-self: start;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 24px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.phec-nav__links a {
	font-family: var(--phec-sans);
	font-weight: 500;
	font-size: 11px;
	letter-spacing: var(--phec-ls-eyebrow);
	text-transform: uppercase;
	color: var(--phec-text-muted);
	white-space: nowrap;
}
.phec-nav__brand { justify-self: center; }
.phec-nav__end { justify-self: end; display: flex; align-items: center; gap: 16px; }
.phec-nav__cta { padding: 12px 22px; min-height: 0; }
.phec-nav__toggle {
	display: none;
	background: none;
	border: 1px solid var(--phec-hair-on-ink);
	color: var(--phec-text-on-ink);
	width: 44px;
	height: 44px;
	cursor: pointer;
}

/* --------------------------------------------------------------------
 * Fil d'Ariane
 * ------------------------------------------------------------------ */
.phec-breadcrumb {
	border-bottom: 1px solid var(--phec-hair-on-ink);
	padding-block: 16px;
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--phec-text-meta);
}
.phec-breadcrumb ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .7em;
	list-style: none;
	margin: 0;
	padding: 0;
}
.phec-breadcrumb li { display: flex; align-items: center; gap: .7em; }
.phec-breadcrumb li::after { content: '·'; color: var(--phec-text-meta); }
.phec-breadcrumb li:last-child::after { content: ''; }
.phec-breadcrumb a { color: var(--phec-text-meta); }
.phec-breadcrumb a:hover { color: var(--phec-gold); }
.phec-breadcrumb [aria-current="page"] { color: var(--phec-gold); }

/* --------------------------------------------------------------------
 * Photographie N&B contrastée + voile sombre pour porter le texte
 * ------------------------------------------------------------------ */
.phec-photo {
	filter: grayscale(1) contrast(1.1) brightness(.58);
}
.phec-photo-frame { position: relative; overflow: hidden; }
.phec-photo-frame::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(19,18,16,.25) 0%, rgba(19,18,16,.85) 100%);
}

/* Placeholder d'image propre (avant upload S3). */
.phec-img--placeholder {
	display: block;
	width: 100%;
	background:
		repeating-linear-gradient(45deg, var(--phec-ink-soft) 0 12px, var(--phec-ink-card) 12px 24px);
	border: 1px solid var(--phec-hair-on-ink);
}

/* --------------------------------------------------------------------
 * Grilles utilitaires
 * ------------------------------------------------------------------ */
.phec-grid { display: grid; gap: 24px; }
.phec-grid--2 { grid-template-columns: repeat(2, 1fr); }
.phec-grid--3 { grid-template-columns: repeat(3, 1fr); }
.phec-grid--4 { grid-template-columns: repeat(4, 1fr); }

/* --------------------------------------------------------------------
 * Pied de page riche
 * ------------------------------------------------------------------ */
.phec-footer { padding-block: 72px 40px; }
.phec-footer__cols { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; }
.phec-footer h4 {
	font-family: var(--phec-sans);
	font-size: var(--phec-fs-eyebrow);
	text-transform: uppercase;
	letter-spacing: var(--phec-ls-eyebrow);
	color: var(--phec-text-meta);
	margin-bottom: 1rem;
}
.phec-footer ul { list-style: none; margin: 0; padding: 0; }
.phec-footer li { margin-bottom: .6em; }
.phec-footer a { font-size: var(--phec-fs-small); color: var(--phec-text-muted-2); }
.phec-footer__bottom {
	margin-top: 48px;
	padding-top: 24px;
	border-top: 1px solid var(--phec-hair-on-ink);
	font-size: var(--phec-fs-small);
	color: var(--phec-text-meta);
}

/* --------------------------------------------------------------------
 * Reveal au scroll (fondu + 8 px), une seule fois
 * ------------------------------------------------------------------ */
.phec-reveal { opacity: 0; transform: translateY(8px); transition: opacity var(--phec-reveal-dur) ease, transform var(--phec-reveal-dur) ease; }
.phec-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	.phec-reveal { opacity: 1; transform: none; transition: none; }
	.phec-page * { scroll-behavior: auto; }
}

/* --------------------------------------------------------------------
 * Neutralisation du conteneur Astra sur nos pages (bandes pleine largeur)
 * ------------------------------------------------------------------ */
.phec-page #content,
.phec-page .site-content,
.phec-page .ast-container,
.phec-page .site-primary,
.phec-page #primary,
.phec-page .entry-content {
	display: block; /* neutralise le flex d'Astra (sinon le fil d'Ariane passe en colonne) */
	max-width: none;
	width: auto;
	margin: 0;
	padding: 0;
}
.phec-page .ast-separate-container .ast-article-single { padding: 0; border: 0; }

/* Images plein cadre (cover) : la hauteur doit gagner sur .phec-page img{height:auto}. */
.phec-page img.phec-hero__img,
.phec-page img.phec-shero__img,
.phec-page img.phec-offer__img,
.phec-page img.phec-coef__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Portraits de professeurs/encadrants : hauteur fixe, cadrage cover. */
.phec-page img.phec-prof__photo { width: 100%; height: 280px; object-fit: cover; }

/* Accent laiton réutilisable + lien serif (liens secondaires du design). */
.phec-accent { color: var(--phec-gold); }
.phec-link-serif {
	font-family: var(--phec-serif);
	font-style: italic;
	font-weight: 500;
	font-size: var(--phec-fs-body-sm);
	letter-spacing: 0;
	text-transform: none;
}

/* Variante de bouton ghost sur fond encre (bordure claire -> laiton au survol). */
.phec-btn--ghost-light {
	background: transparent;
	color: var(--phec-text-on-ink);
	border-color: var(--phec-hair-on-ink-strong);
}
.phec-btn--ghost-light:hover { border-color: var(--phec-gold); color: var(--phec-gold); }

/* Kicker : serif italique laiton, amorce de section (distinct de l'eyebrow caps). */
.phec-kicker {
	display: block;
	font-family: var(--phec-serif);
	font-style: italic;
	font-size: var(--phec-fs-h4);
	color: var(--phec-gold);
	margin: 0 0 14px;
}
.phec-kicker--sm { font-size: var(--phec-fs-body-sm); margin-bottom: 12px; }

/* Têtes de section centrée / scindée. */
.phec-center-head { text-align: center; margin-bottom: 40px; }
.phec-center-head .phec-kicker { margin-bottom: 12px; }
.phec-split-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 24px;
	margin-bottom: 40px;
}

/* ====================================================================
 * HOME (bloc 7a) — une surface encre, sections séparées par filets
 * ================================================================== */
.phec-home > section { border-bottom: 1px solid var(--phec-hair-on-ink); }

/* --- Hero ---------------------------------------------------------- */
.phec-hero {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: clamp(580px, 74vh, 680px);
	overflow: hidden;
}
.phec-hero__media { position: absolute; inset: 0; z-index: 0; }
.phec-hero__img { width: 100%; height: 100%; object-fit: cover; }
.phec-hero__scrim {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(19,18,16,.5) 0%, rgba(19,18,16,.3) 38%, rgba(19,18,16,.94) 100%);
}
.phec-hero__signature {
	position: absolute; top: 40px; left: 0; right: 0; z-index: 2;
	font-family: var(--phec-serif); font-style: italic; font-size: 15px;
	color: var(--phec-gold);
}
.phec-hero__signature,
.phec-hero__content { padding-inline: var(--phec-gutter); }
.phec-hero__signature { max-width: var(--phec-container); margin-inline: auto; width: 100%; }
.phec-hero__content { position: relative; z-index: 2; padding-block: 0 60px; }
.phec-hero__eyebrow { display: inline-flex; align-items: center; gap: 16px; }
.phec-hero__eyebrow-rule { width: 34px; height: 1px; background: var(--phec-gold); }
.phec-hero__title { font-size: var(--phec-fs-hero); line-height: .98; margin: 0 0 26px; max-width: 12ch; }
.phec-hero__lead { font-size: var(--phec-fs-lead); color: var(--phec-text-muted); max-width: 600px; margin: 0 0 38px; }
.phec-hero__actions { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }

/* --- Barre de réassurance (chiffres) ------------------------------- */
.phec-stats { padding-block: 56px; }
.phec-stats__list {
	list-style: none; margin: 0; padding: 0;
	display: grid; grid-template-columns: repeat(4, 1fr);
}
.phec-stats__item { padding-inline: 36px; border-right: 1px solid var(--phec-hair-on-ink); }
.phec-stats__item:first-child { padding-left: 0; }
.phec-stats__item:last-child { border-right: 0; padding-right: 0; }
.phec-stats .phec-stat__num { display: block; font-size: clamp(40px, 5vw, 52px); }
.phec-stats .phec-stat__label { line-height: 1.5; }

/* --- Offre cours particuliers (image / texte) ---------------------- */
.phec-offer { display: grid; grid-template-columns: minmax(0, 560px) 1fr; background: var(--phec-ink-card); }
.phec-offer__media { position: relative; min-height: 480px; border-right: 1px solid var(--phec-hair-on-ink); }
.phec-offer__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.phec-offer__body { padding: 64px 56px; }
.phec-offer__title { font-size: clamp(30px, 3.4vw, 42px); margin: 0 0 22px; }
.phec-offer__lead { font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); max-width: 520px; margin: 0 0 30px; }
.phec-offer__points { list-style: none; margin: 0 0 34px; padding: 0; }
.phec-offer__points li {
	display: flex; gap: 16px; align-items: baseline;
	padding: 14px 0; border-top: 1px solid var(--phec-hair-on-ink);
	font-size: 15px; line-height: 1.55; color: var(--phec-text-muted);
}
.phec-offer__points li:last-child { border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-offer__num { font-family: var(--phec-serif); font-style: italic; color: var(--phec-gold); flex: none; min-width: 1.4em; }
.phec-offer__actions { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; }

/* --- Tuiles matières ----------------------------------------------- */
.phec-tiles {
	display: grid; grid-template-columns: repeat(4, 1fr);
	gap: 1px; background: var(--phec-hair-on-ink); border: 1px solid var(--phec-hair-on-ink);
}
.phec-tile { display: flex; flex-direction: column; gap: 6px; background: var(--phec-ink); padding: 28px 26px; }
.phec-tile:hover { background: var(--phec-ink-soft); }
.phec-tile__name { font-family: var(--phec-serif); font-weight: 600; font-size: 22px; }
.phec-tile__go, .phec-filiere__bl-go {
	font-family: var(--phec-sans); font-weight: 600; font-size: var(--phec-fs-label);
	letter-spacing: var(--phec-ls-eyebrow); text-transform: uppercase; color: var(--phec-gold);
}

/* --- Cartes par filière -------------------------------------------- */
.phec-filiere__card { display: flex; flex-direction: column; }
.phec-filiere__meta { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 16px; }
.phec-filiere__meta .phec-kicker { margin: 0; }
.phec-filiere__year {
	font-family: var(--phec-sans); font-weight: 500; font-size: var(--phec-fs-label);
	letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-meta);
}
.phec-filiere__code { font-family: var(--phec-serif); font-weight: 600; font-size: clamp(30px, 3.2vw, 38px); margin-bottom: 12px; }
.phec-filiere__desc { font-size: var(--phec-fs-body-sm); line-height: 1.65; color: var(--phec-text-muted-2); }
.phec-filiere__bl {
	display: flex; justify-content: space-between; align-items: center; gap: 20px;
	margin-top: 24px; padding: 22px 30px;
	background: var(--phec-ink-card); border: 1px solid var(--phec-hair-on-ink);
	font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2);
}
.phec-filiere__bl-go { flex: none; }

/* --- Cartes stages ------------------------------------------------- */
.phec-stages__card { display: flex; flex-direction: column; }
.phec-stages__code { font-family: var(--phec-serif); font-weight: 600; font-size: clamp(26px, 3vw, 34px); margin-bottom: 12px; }
.phec-stages__desc { font-size: var(--phec-fs-body-sm); line-height: 1.65; color: var(--phec-text-muted-2); margin-bottom: 20px; }

/* --- Accès ressources (numérotés) ---------------------------------- */
.phec-res {
	display: grid; grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid var(--phec-hair-on-ink); border-left: 1px solid var(--phec-hair-on-ink);
}
.phec-res__card {
	display: flex; flex-direction: column;
	padding: 34px 30px 36px;
	border-right: 1px solid var(--phec-hair-on-ink); border-bottom: 1px solid var(--phec-hair-on-ink);
}
.phec-res__card:hover { background: var(--phec-ink-card); }
.phec-res__num { font-family: var(--phec-serif); font-style: italic; font-size: 22px; color: var(--phec-gold); margin-bottom: 24px; }
.phec-res__name { font-family: var(--phec-serif); font-weight: 600; font-size: 26px; margin-bottom: 10px; }
.phec-res__desc { font-size: var(--phec-fs-small); line-height: 1.6; color: var(--phec-text-muted-3); margin-bottom: 20px; flex: 1; }

/* --- Témoignages --------------------------------------------------- */
.phec-rating {
	display: inline-flex; align-items: center; gap: 10px; margin-top: 12px;
	font-family: var(--phec-sans); font-size: var(--phec-fs-small); color: var(--phec-text-muted-3);
}
.phec-rating__stars { color: var(--phec-gold); letter-spacing: .1em; }
.phec-quotes {
	gap: 1px; background: var(--phec-hair-on-ink); border: 1px solid var(--phec-hair-on-ink);
}
.phec-quote { background: var(--phec-ink); padding: 38px 32px; margin: 0; }
.phec-quote__mark { font-family: var(--phec-serif); font-size: 34px; color: var(--phec-gold); line-height: .6; display: block; margin-bottom: 18px; }
.phec-quote__text {
	margin: 0 0 24px; padding-left: 20px; border-left: 2px solid var(--phec-gold);
	font-family: var(--phec-serif); font-style: italic; font-weight: 500; font-size: 18px; line-height: 1.45;
}
.phec-quote__by {
	font-family: var(--phec-sans); font-weight: 600; font-size: var(--phec-fs-label);
	letter-spacing: .12em; text-transform: uppercase; line-height: 1.5;
}
.phec-quote__ctx { color: var(--phec-text-muted-3); }

/* --- Bloc SEO repliable -------------------------------------------- */
.phec-guide-sec { padding-block: 56px; }
.phec-guide__summary {
	display: flex; justify-content: space-between; align-items: center; gap: 20px;
	cursor: pointer; list-style: none;
	font-family: var(--phec-serif); font-weight: 600; font-size: 26px; color: var(--phec-text-on-ink);
}
.phec-guide__summary::-webkit-details-marker { display: none; }
.phec-guide__plus { flex: none; font-size: 26px; color: var(--phec-gold); transition: transform var(--phec-hover-dur) ease; }
.phec-guide[open] .phec-guide__plus { transform: rotate(45deg); }
.phec-guide__title { font-size: 26px; margin: 0 0 8px; }
.phec-guide__body { margin-top: 28px; column-count: 2; column-gap: 48px; font-size: var(--phec-fs-small); line-height: 1.75; color: var(--phec-text-muted-2); }
.phec-guide__body p { margin: 0 0 16px; break-inside: avoid; }
.phec-guide__body strong { color: var(--phec-text-on-ink); font-weight: 600; }

/* --- CTA final ----------------------------------------------------- */
.phec-final-cta { padding-block: 96px; text-align: center; }
.phec-final-cta .phec-eyebrow { margin-bottom: 22px; }
.phec-final-cta__title { font-size: clamp(38px, 5vw, 56px); line-height: 1.04; margin: 0 auto 22px; max-width: 16ch; }
.phec-final-cta__lead { max-width: 520px; margin: 0 auto 36px; font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); }
.phec-final-cta__actions { display: flex; align-items: center; justify-content: center; gap: 22px; flex-wrap: wrap; }

/* Décalage d'ancre sous l'en-tête sticky. */
#ressources { scroll-margin-top: 90px; }

/* ====================================================================
 * LANDINGS (cours, stage, ressource) — composants partagés
 * ================================================================== */
.phec-landing > section { border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-btn--block { display: flex; width: 100%; }

/* --- Hero de landing : texte + carte de qualification -------------- */
.phec-lhero { display: grid; grid-template-columns: 1fr 440px; }
.phec-lhero__text { padding: 76px var(--phec-gutter); border-right: 1px solid var(--phec-hair-on-ink); }
.phec-lhero__title { font-size: clamp(40px, 5vw, 72px); line-height: 1; margin: 0 0 24px; }
.phec-lhero__lead { font-size: var(--phec-fs-lead); color: var(--phec-text-muted); max-width: 560px; margin: 0 0 36px; }
.phec-lhero__aside { background: var(--phec-ink-card); padding: 52px 44px; }
.phec-lhero__card-title { font-size: 28px; margin: 6px 0 24px; }
.phec-ticks { list-style: none; margin: 0 0 28px; padding: 0; }
.phec-ticks li {
	position: relative; padding-left: 26px; margin-bottom: 14px;
	font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); line-height: 1.5;
}
.phec-ticks li::before { content: '✓'; position: absolute; left: 0; color: var(--phec-gold); font-weight: 700; }

/* --- Grille à filets (étapes, matières, maillage) ------------------ */
.phec-divgrid {
	display: grid;
	border-top: 1px solid var(--phec-hair-on-ink);
	border-left: 1px solid var(--phec-hair-on-ink);
}
.phec-divgrid--4 { grid-template-columns: repeat(4, 1fr); }
.phec-divgrid--3 { grid-template-columns: repeat(3, 1fr); }
.phec-divgrid--2 { grid-template-columns: repeat(2, 1fr); }
.phec-divcell {
	padding: 34px 30px;
	border-right: 1px solid var(--phec-hair-on-ink);
	border-bottom: 1px solid var(--phec-hair-on-ink);
	color: var(--phec-text-on-ink);
	display: block;
}
a.phec-divcell:hover { background: var(--phec-ink-card); }

.phec-step__num { display: block; font-family: var(--phec-serif); font-style: italic; font-size: 22px; color: var(--phec-gold); margin-bottom: 20px; }
.phec-step__title { font-size: 22px; margin: 0 0 12px; }
.phec-step p { font-size: var(--phec-fs-small); line-height: 1.65; color: var(--phec-text-muted-2); margin: 0; }

.phec-subject__tag {
	display: block; font-family: var(--phec-sans); font-weight: 600; font-size: var(--phec-fs-label);
	letter-spacing: var(--phec-ls-eyebrow); text-transform: uppercase; color: var(--phec-gold); margin-bottom: 16px;
}
.phec-subject__name { display: block; font-family: var(--phec-serif); font-weight: 600; font-size: 22px; margin-bottom: 8px; }
.phec-subject__desc { display: block; font-size: 13px; line-height: 1.55; color: var(--phec-text-muted-3); }

.phec-split-head__note { max-width: 340px; text-align: right; font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); margin: 0; }

/* --- Professeurs (crédentiels) ------------------------------------- */
.phec-profs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--phec-hair-on-ink); border: 1px solid var(--phec-hair-on-ink); }
.phec-prof { background: var(--phec-ink); margin: 0; }
.phec-prof__photo { height: 280px; }
.phec-prof__body { padding: 26px; }
.phec-prof__cred { font-size: 13.5px; line-height: 1.55; color: var(--phec-text-muted-2); margin: 0; }

/* --- Formats et tarifs --------------------------------------------- */
.phec-pricing { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--phec-hair-on-ink); border: 1px solid var(--phec-hair-on-ink); }
.phec-price { position: relative; background: var(--phec-ink); padding: 40px 34px; }
.phec-price--featured { background: var(--phec-ink-soft); box-shadow: inset 0 2px 0 var(--phec-gold); }
.phec-price__badge {
	position: absolute; top: 0; right: 0; background: var(--phec-gold); color: var(--phec-ink);
	font-family: var(--phec-sans); font-weight: 600; font-size: 9.5px; letter-spacing: .14em;
	text-transform: uppercase; padding: 6px 10px;
}
.phec-price__name { font-size: 26px; margin: 0 0 10px; }
.phec-price__desc { font-size: 13.5px; line-height: 1.6; color: var(--phec-text-muted-2); margin: 0 0 24px; }
.phec-price__amount { display: flex; align-items: baseline; gap: 8px; margin: 0 0 24px; }
.phec-price__from { font-family: var(--phec-sans); font-weight: 500; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-meta); }
.phec-price__num { font-family: var(--phec-serif); font-weight: 600; font-size: 38px; color: var(--phec-text-on-ink); }
.phec-price--featured .phec-price__num { color: var(--phec-gold); }
.phec-price__unit { font-size: 13px; color: var(--phec-text-muted-3); }
.phec-legal-note { margin-top: 20px; font-size: 11px; line-height: 1.6; color: var(--phec-text-meta); }
.phec-center-head__lead { max-width: 560px; margin: 16px auto 0; font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); }

/* --- FAQ deux colonnes (accordéon <details>) ----------------------- */
.phec-faq2 { display: grid; grid-template-columns: 340px 1fr; gap: 56px; align-items: start; }
.phec-faq2__head h2 { font-size: clamp(28px, 3.2vw, 40px); }
.phec-acc { border: 1px solid var(--phec-hair-on-ink); background: var(--phec-ink-card); margin-bottom: 10px; }
.phec-acc__summary {
	display: flex; justify-content: space-between; align-items: center; gap: 20px;
	padding: 22px 26px; cursor: pointer; list-style: none;
	font-family: var(--phec-serif); font-weight: 600; font-size: 21px; color: var(--phec-text-on-ink);
}
.phec-acc__summary::-webkit-details-marker { display: none; }
.phec-acc__plus {
	flex: none; display: flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border: 1px solid rgba(198,163,83,.45);
	font-size: 20px; color: var(--phec-gold); transition: transform var(--phec-hover-dur) ease;
}
.phec-acc[open] .phec-acc__plus { transform: rotate(45deg); }
.phec-acc__body { padding: 0 26px 22px; }
.phec-acc__body p { font-size: var(--phec-fs-body-sm); line-height: 1.7; color: var(--phec-text-muted-2); max-width: 640px; margin: 0; }

/* --- Bloc éditorial ------------------------------------------------ */
.phec-editorial { display: grid; grid-template-columns: 360px 1fr; gap: 60px; align-items: start; }
.phec-editorial__head h2 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.05; margin: 0; }
.phec-editorial__body p { font-size: 15px; line-height: 1.8; color: var(--phec-text-muted); margin: 0 0 18px; }
.phec-editorial__body p:last-child { margin-bottom: 0; }

/* --- Maillage "à explorer" ----------------------------------------- */
.phec-explore-sec .phec-label { display: block; margin-bottom: 26px; }
.phec-explore__name { display: block; font-family: var(--phec-serif); font-weight: 600; font-size: 19px; margin-bottom: 6px; }
.phec-explore__desc { display: block; font-size: 12.5px; line-height: 1.5; color: var(--phec-text-muted-3); }

/* ====================================================================
 * STAGE (bloc 4a) — hero produit, fiche, timeline, coefficients
 * ================================================================== */
.phec-shero { position: relative; display: flex; align-items: center; min-height: clamp(520px, 66vh, 600px); overflow: hidden; }
.phec-shero__media { position: absolute; inset: 0; z-index: 0; }
.phec-shero__img { width: 100%; height: 100%; object-fit: cover; }
.phec-shero__scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(19,18,16,.94) 0%, rgba(19,18,16,.78) 44%, rgba(19,18,16,.42) 100%); }
.phec-shero__grid { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 400px; gap: 56px; align-items: center; width: 100%; }
.phec-shero__title { font-size: clamp(40px, 5.2vw, 76px); line-height: 1; margin: 0 0 24px; }
.phec-shero__lead { font-size: var(--phec-fs-lead); color: var(--phec-text-muted); max-width: 520px; margin: 0 0 32px; }

.phec-fiche { background: rgba(19,18,16,.72); border: 1px solid rgba(198,163,83,.4); backdrop-filter: blur(6px); padding: 34px 32px; }
.phec-fiche__list { margin: 0 0 22px; }
.phec-fiche__row { display: flex; justify-content: space-between; align-items: baseline; padding: 15px 0; border-top: 1px solid var(--phec-hair-on-ink); }
.phec-fiche__row dt { font-family: var(--phec-sans); font-weight: 500; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-muted-3); margin: 0; }
.phec-fiche__row dd { font-family: var(--phec-serif); font-size: 16px; color: var(--phec-text-on-ink); margin: 0; }
.phec-fiche__price { font-weight: 600; font-size: 30px; color: var(--phec-gold); }
.phec-fiche__places { margin: 16px 0 0; text-align: center; font-size: 11px; letter-spacing: .05em; color: var(--phec-text-meta); }

/* Pour qui / retours (2 colonnes) */
.phec-split2 { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-split2__col { padding: 60px var(--phec-gutter); }
.phec-split2__col--bordered { border-right: 1px solid var(--phec-hair-on-ink); }
.phec-split2__lead { margin: 0; font-family: var(--phec-serif); font-weight: 500; font-size: 26px; line-height: 1.3; color: var(--phec-text-on-ink); }

/* Programme jour par jour */
.phec-timeline { border-top: 1px solid var(--phec-hair-on-ink); }
.phec-timeline__row { display: grid; grid-template-columns: 130px 1fr 220px; gap: 24px; align-items: baseline; padding: 26px 0; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-timeline__day { font-family: var(--phec-serif); font-style: italic; font-size: 20px; color: var(--phec-gold); }
.phec-timeline__title { font-size: 22px; margin: 0 0 6px; }
.phec-timeline__body p { font-size: 13.5px; line-height: 1.6; color: var(--phec-text-muted-2); margin: 0; }
.phec-timeline__meta { text-align: right; font-size: 11px; letter-spacing: .06em; color: var(--phec-text-meta); }

/* Matières et coefficients (image + barres) */
.phec-coef-sec { display: grid; grid-template-columns: minmax(0, 560px) 1fr; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-coef__media { position: relative; min-height: 460px; border-right: 1px solid var(--phec-hair-on-ink); }
.phec-coef__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.phec-coef__body { padding: 60px 56px; }
.phec-coef__body h2 { font-size: clamp(28px, 3.2vw, 40px); margin: 0 0 34px; }
.phec-bars { display: flex; flex-direction: column; gap: 26px; }
.phec-bar__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.phec-bar__name { font-family: var(--phec-serif); font-weight: 600; font-size: 19px; }
.phec-bar__meta { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-muted-3); }
.phec-bar__track { height: 3px; background: var(--phec-hair-on-ink); }
.phec-bar__fill { display: block; height: 3px; background: var(--phec-gold); }
.phec-incl__desc { font-size: 13px; line-height: 1.6; color: var(--phec-text-muted-2); margin: 0; }

/* Grand témoignage centré */
.phec-bigquote { padding-block: 82px; text-align: center; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-bigquote__mark { font-family: var(--phec-serif); font-size: 44px; color: var(--phec-gold); line-height: 1; display: block; margin-bottom: 14px; }
.phec-bigquote__text { margin: 0 auto; max-width: 960px; font-family: var(--phec-serif); font-weight: 500; font-style: italic; font-size: clamp(24px, 3.4vw, 34px); line-height: 1.32; }
.phec-bigquote__by { margin-top: 30px; font-family: var(--phec-sans); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; }

.phec-divgrid--5 { grid-template-columns: repeat(5, 1fr); }
.phec-landing .phec-label { display: block; margin-bottom: 18px; }

/* ====================================================================
 * PROGRAMME (bloc 9a) — hero compact, sommaire ancré, coefficients
 * ================================================================== */
.phec-rhero { padding-block: 64px 56px; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-rhero__title { font-size: clamp(38px, 4.6vw, 60px); line-height: 1; margin: 0 0 20px; max-width: 16ch; }
.phec-rhero__lead { font-size: var(--phec-fs-lead); color: var(--phec-text-muted); max-width: 840px; margin: 0; }

.phec-prog-body { display: grid; grid-template-columns: 300px 1fr; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-prog-toc { border-right: 1px solid var(--phec-hair-on-ink); padding-block: 44px; position: sticky; top: 84px; align-self: start; }
.phec-prog-toc__title { display: block; padding: 0 32px 20px; font-family: var(--phec-sans); font-weight: 600; font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: var(--phec-gold); }
.phec-prog-toc__link { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 15px 32px; border-top: 1px solid var(--phec-hair-on-ink); font-family: var(--phec-serif); font-size: 17px; color: var(--phec-text-on-ink); }
.phec-prog-toc__link:last-child { border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-prog-toc__link:hover { background: var(--phec-ink-card); color: var(--phec-gold); }
.phec-prog-toc__coef { font-family: var(--phec-sans); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; color: var(--phec-text-meta); }

.phec-prog-matiere { padding: 52px 56px; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-prog-sections .phec-prog-matiere:last-child { border-bottom: 0; }
.phec-prog-matiere__head { display: flex; justify-content: space-between; align-items: flex-start; gap: 30px; margin-bottom: 24px; }
.phec-prog-matiere__titre { font-size: 36px; margin: 0; }
.phec-prog-matiere__stats { flex: none; display: flex; gap: 24px; text-align: right; }
.phec-prog-matiere__num { display: block; font-family: var(--phec-serif); font-weight: 600; font-size: 28px; color: var(--phec-gold); }
.phec-prog-matiere__cap { display: block; font-family: var(--phec-sans); font-weight: 500; font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-meta); margin-top: 4px; }
.phec-prog-matiere__desc { font-size: 14.5px; line-height: 1.7; color: var(--phec-text-muted-2); max-width: 660px; margin: 0 0 24px; }
.phec-prog-matiere__chap { list-style: none; margin: 0 0 24px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 40px; }
.phec-prog-matiere__chap li { position: relative; padding-left: 22px; font-size: 13.5px; line-height: 1.5; color: var(--phec-text-muted); }
.phec-prog-matiere__chap li::before { content: '—'; position: absolute; left: 0; color: var(--phec-gold); }
.phec-prog-matiere__annale { font-family: var(--phec-sans); font-weight: 600; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--phec-gold); }
.phec-prog-matiere__annale:hover { color: var(--phec-text-on-ink); }

/* Relances contextualisées (bandes) */
.phec-relance { border-bottom: 1px solid var(--phec-hair-on-ink); padding-block: 56px; }
.phec-relance--soft { background: var(--phec-ink-card); }
.phec-relance__grid { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 40px; }
.phec-relance__title { font-size: clamp(26px, 3vw, 34px); line-height: 1.08; margin: 0 0 12px; }
.phec-relance__lead { font-size: 14.5px; line-height: 1.6; color: var(--phec-text-muted-2); max-width: 620px; margin: 0; }

/* Tableau des coefficients */
.phec-coeftable { border: 1px solid var(--phec-hair-on-ink); }
.phec-coeftable__row { display: grid; grid-template-columns: 1.3fr repeat(5, 1fr); align-items: center; padding: 16px 26px; border-bottom: 1px solid var(--phec-hair-on-ink-soft); }
.phec-coeftable__row:last-child { border-bottom: 0; }
.phec-coeftable__row--head { background: var(--phec-ink-card); font-family: var(--phec-sans); font-weight: 600; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-meta); }
.phec-coeftable__row--head span { text-align: center; }
.phec-coeftable__row--head span:first-child { text-align: left; }
.phec-coeftable__epreuve { font-family: var(--phec-serif); font-weight: 600; font-size: 16px; }
.phec-coeftable__val { text-align: center; font-family: var(--phec-serif); font-size: 18px; color: var(--phec-text-on-ink); }
.phec-coeftable__val.is-max { color: var(--phec-gold); }

/* ====================================================================
 * CONTACT (bloc 12a) — formulaire CF7 + colonne infos
 * ================================================================== */
.phec-contact-grid { display: grid; grid-template-columns: 1fr 440px; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-contact-form { padding: 56px 56px; border-right: 1px solid var(--phec-hair-on-ink); }
.phec-contact-form__title { font-size: 30px; margin: 0 0 8px; }
.phec-contact-form__req { font-size: 14px; color: var(--phec-text-muted-2); margin: 0 0 30px; }
.phec-contact-aside { background: var(--phec-ink-card); }
.phec-contact-aside__block { padding: 40px 44px; border-bottom: 1px solid var(--phec-hair-on-ink); }
.phec-contact-aside__block:last-child { border-bottom: 0; }
.phec-contact-aside__title { font-size: 24px; margin: 0 0 10px; }
.phec-contact-aside__lead { font-size: 13.5px; line-height: 1.6; color: var(--phec-text-muted-2); margin: 0 0 22px; }
.phec-contact-coords { margin: 12px 0 0; }
.phec-contact-coords__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; border-top: 1px solid var(--phec-hair-on-ink); }
.phec-contact-coords__row dt { font-family: var(--phec-sans); font-weight: 500; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--phec-text-muted-3); margin: 0; }
.phec-contact-coords__row dd { margin: 0; font-family: var(--phec-serif); font-size: 18px; text-align: right; }
.phec-contact-coords__sub { font-size: 13px; color: var(--phec-text-muted-3); }
.phec-contact-fallback p { color: var(--phec-text-muted-2); }

/* --- Champs Contact Form 7 stylés aux tokens ----------------------- */
.phec-cf7__grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.phec-cf7 p { margin: 0 0 18px; }
.phec-cf7__label {
	display: block; margin-bottom: 9px;
	font-family: var(--phec-sans); font-weight: 500; font-size: 10.5px;
	letter-spacing: .12em; text-transform: uppercase; color: var(--phec-text-muted-3);
}
.phec-page .wpcf7-form input[type="text"],
.phec-page .wpcf7-form input[type="email"],
.phec-page .wpcf7-form input[type="tel"],
.phec-page .wpcf7-form select,
.phec-page .wpcf7-form textarea {
	width: 100%;
	background: var(--phec-ink);
	border: 1px solid var(--phec-hair-on-ink-strong);
	border-radius: 0;
	padding: 14px 16px;
	font-family: var(--phec-sans);
	font-size: 14px;
	color: var(--phec-text-on-ink);
}
.phec-page .wpcf7-form textarea { min-height: 120px; line-height: 1.6; resize: vertical; }
.phec-page .wpcf7-form input:focus,
.phec-page .wpcf7-form select:focus,
.phec-page .wpcf7-form textarea:focus { outline: none; border-color: var(--phec-gold); }
.phec-page .wpcf7-form input::placeholder,
.phec-page .wpcf7-form textarea::placeholder { color: var(--phec-text-meta); }
/* intl-tel-input : fond cohérent */
.phec-page .iti { width: 100%; }
.phec-page .iti__dropdown-content { color: #131210; }

/* Radios "Classe" en chips */
.phec-cf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px; }
.phec-cf7 .wpcf7-list-item { margin: 0; }
.phec-cf7 .wpcf7-list-item label { cursor: pointer; }
.phec-cf7 .wpcf7-list-item input { position: absolute; opacity: 0; width: 0; height: 0; }
.phec-cf7 .wpcf7-list-item .wpcf7-list-item-label {
	display: inline-block; padding: 11px 15px;
	border: 1px solid var(--phec-hair-on-ink-strong);
	font-size: 11px; letter-spacing: .04em; color: var(--phec-text-muted);
	transition: border-color var(--phec-hover-dur) ease, color var(--phec-hover-dur) ease;
}
.phec-cf7 .wpcf7-list-item label:hover .wpcf7-list-item-label { border-color: var(--phec-gold); color: var(--phec-gold); }
.phec-cf7 .wpcf7-list-item input:checked + .wpcf7-list-item-label { border-color: var(--phec-gold); color: var(--phec-gold); background: rgba(198,163,83,.1); }
.phec-cf7__consent { display: flex; gap: 10px; font-size: 12.5px; line-height: 1.5; color: var(--phec-text-muted-2); }
.phec-cf7__consent .wpcf7-list-item { margin: 0; }
.phec-page .wpcf7-not-valid-tip { color: var(--phec-warn); font-size: 12px; }
.phec-page .wpcf7-response-output { border-color: var(--phec-hair-on-ink-strong); color: var(--phec-text-muted); margin: 20px 0 0; padding: 12px 16px; font-size: 13px; }

/* ====================================================================
 * QUI SOMMES-NOUS (bloc 13a) — compléments
 * ================================================================== */
.phec-hero--short { min-height: clamp(420px, 56vh, 520px); }
.phec-hero__title--md { font-size: clamp(38px, 4.6vw, 60px); }
.phec-split2__h { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.04; margin: 0; }
.phec-split2__col--text { color: var(--phec-text-muted); }
.phec-split2__col--text p { font-size: 15px; line-height: 1.8; margin: 0 0 18px; }
.phec-split2__col--text p:last-child { margin-bottom: 0; }
.phec-prof__nom { font-family: var(--phec-serif); font-weight: 600; font-size: 24px; margin: 6px 0; }
.phec-prof__mission { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--phec-hair-on-ink); font-size: 12.5px; line-height: 1.5; color: var(--phec-text-muted-3); }

/* ====================================================================
 * ANNALES / CLASSEMENTS / DONNER-COURS — compléments
 * ================================================================== */
/* État vide (annales sans données) */
.phec-empty { border: 1px solid var(--phec-hair-on-ink); background: var(--phec-ink-card); padding: 56px 40px; text-align: center; }
.phec-empty__title { font-size: clamp(26px, 3vw, 34px); margin: 0 0 14px; }
.phec-empty__lead { max-width: 560px; margin: 0 auto 28px; font-size: var(--phec-fs-body-sm); color: var(--phec-text-muted-2); }
.phec-empty__actions { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; }
.phec-subject--soon { opacity: .6; }

/* Hub classements */
.phec-hubcard { display: flex; flex-direction: column; gap: 12px; position: relative; }
.phec-hubcard__title { font-family: var(--phec-serif); font-weight: 600; font-size: 26px; }
.phec-hubcard__desc { font-size: var(--phec-fs-body-sm); line-height: 1.6; color: var(--phec-text-muted-2); }
.phec-hubcard--soon { opacity: .7; }
.phec-hubcard__badge {
	align-self: flex-start; font-family: var(--phec-sans); font-weight: 600; font-size: 9.5px;
	letter-spacing: .14em; text-transform: uppercase; color: var(--phec-gold);
	border: 1px solid rgba(198,163,83,.5); padding: 5px 9px;
}

/* Donner des cours : carte rémunération du hero */
.phec-rem-hero { display: flex; align-items: baseline; gap: 12px; margin: 4px 0 10px; }
.phec-rem-hero__num { font-family: var(--phec-serif); font-weight: 600; font-size: clamp(44px, 5vw, 60px); line-height: .9; }
.phec-rem-hero__unit { font-size: 15px; color: var(--phec-text-muted-3); }
.phec-rem-hero__note { font-size: 14px; line-height: 1.6; color: var(--phec-text-muted-2); margin: 0 0 26px; max-width: 320px; }
.phec-editorial__intro { font-size: 15px; line-height: 1.75; color: var(--phec-text-muted-2); margin: 20px 0 0; }
.phec-donner-note { margin-top: 18px; font-size: 12.5px; line-height: 1.6; color: var(--phec-text-meta); }

/* Table de rémunération (3 colonnes, variante du tableau de coefficients) */
.phec-remtable .phec-coeftable__row { grid-template-columns: 1fr 160px 160px; }
.phec-remtable__format { text-align: right; font-size: 13px; color: var(--phec-text-muted-3); }
.phec-remtable .phec-coeftable__val { text-align: right; }
.phec-remtable .phec-coeftable__row--head span:not(:first-child) { text-align: right; }

/* ====================================================================
 * CORRECTIFS — centrage, cadrage visages, boutons CF7
 * ================================================================== */
/* Centrage réel : ces blocs ont un max-width + marges auto qui étaient écrasées
   par .phec-page h2 / p (spécificité). On reprend la main. */
.phec-page .phec-final-cta__title,
.phec-page .phec-final-cta__lead,
.phec-page .phec-center-head__lead,
.phec-page .phec-empty__title,
.phec-page .phec-empty__lead { margin-left: auto; margin-right: auto; }

/* Portraits : cadrer sur les visages (haut de l'image). */
.phec-page img.phec-prof__photo { object-position: center 22%; }

/* Bouton de soumission Contact Form 7 (contact + candidature) : vrai bouton. */
.phec-page .wpcf7-form input[type="submit"] {
	display: block;
	width: 100%;
	min-height: 52px;
	margin-top: 8px;
	background: var(--phec-gold);
	color: var(--phec-ink);
	border: 1px solid var(--phec-gold);
	border-radius: 0;
	padding: 16px 26px;
	font-family: var(--phec-sans);
	font-weight: 600;
	font-size: var(--phec-fs-small);
	letter-spacing: .14em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background var(--phec-hover-dur) ease, color var(--phec-hover-dur) ease;
}
.phec-page .wpcf7-form input[type="submit"]:hover { background: transparent; color: var(--phec-gold); }

/* Bloc de consentement RGPD : texte simple, sans encadré. */
.phec-cf7__consent,
.phec-page .wpcf7-form .wpcf7-acceptance { border: 0; background: none; padding: 0; }
.phec-cf7__consent .wpcf7-list-item { margin: 0; }
.phec-cf7__consent label { display: inline; }

/* Carte ressource "bientôt disponible" (non cliquable) */
.phec-res__card--soon { opacity: .6; }
.phec-res__card--soon .phec-tile__go { color: var(--phec-text-meta); }

/* ====================================================================
 * RESPONSIVE — mobile-first réel, breakpoints démontrés à 1440 et 380
 * ================================================================== */

/* Tablette et sous : <= 1024px */
@media (max-width: 1024px) {
	:root {
		--phec-fs-hero: 52px;
		--phec-fs-h1: 46px;
		--phec-fs-h2: 34px;
		--phec-fs-stat: 52px;
		--phec-section-y: 64px;
		--phec-gutter: 32px;
	}
	.phec-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.phec-grid--3 { grid-template-columns: repeat(2, 1fr); }
	.phec-footer__cols { grid-template-columns: repeat(3, 1fr); }

	.phec-nav { display: flex; justify-content: space-between; }
	.phec-nav__brand { order: 0; }
	.phec-nav__end { order: 1; }
	.phec-nav__links {
		display: none;
		position: absolute;
		left: 0; right: 0; top: 100%;
		flex-direction: column;
		align-items: flex-start;
		gap: 0;
		background: var(--phec-ink);
		border-bottom: 1px solid var(--phec-hair-on-ink);
		padding: 8px var(--phec-gutter) 20px;
		z-index: 100;
	}
	.phec-nav__links.is-open { display: flex; }
	.phec-nav__links li { width: 100%; padding: 12px 0; border-bottom: 1px solid var(--phec-hair-on-ink-soft); }
	.phec-nav__toggle { display: inline-flex; align-items: center; justify-content: center; }
	.phec-header { position: relative; }
}

/* Mobile : <= 640px (une colonne) */
@media (max-width: 640px) {
	:root {
		--phec-fs-hero: 40px;
		--phec-fs-h1: 36px;
		--phec-fs-h2: 30px;
		--phec-fs-lead: 19px;
		--phec-fs-body: 17px;
		--phec-section-y: 48px;
		--phec-gutter: 20px;
		--phec-copy-pad: 20px;
	}
	.phec-grid--2,
	.phec-grid--3,
	.phec-grid--4 { grid-template-columns: 1fr; }
	.phec-footer__cols { grid-template-columns: 1fr; gap: 30px; }
	.phec-card { padding: 24px 20px; }
}

/* Très petit : <= 380px (cible démontrée) */
@media (max-width: 380px) {
	.phec-footer__cols { grid-template-columns: 1fr; }
}

/* --- Responsive spécifique HOME ------------------------------------ */
@media (max-width: 1024px) {
	/* La signature (absolue, en haut du hero) chevauche le titre sur petit écran. */
	.phec-hero__signature { display: none; }
	.phec-tiles { grid-template-columns: repeat(2, 1fr); }
	.phec-res { grid-template-columns: repeat(2, 1fr); }
	.phec-stats__list { grid-template-columns: repeat(2, 1fr); row-gap: 32px; }
	.phec-stats__item { padding-inline: 24px; }
	.phec-stats__item:nth-child(2n) { border-right: 0; padding-right: 0; }
	.phec-stats__item:nth-child(2n+1) { padding-left: 0; }
	.phec-offer { grid-template-columns: 1fr; }
	.phec-offer__media { min-height: 320px; border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); }
	.phec-offer__body { padding: 48px 32px; }
	.phec-guide__body { column-count: 1; }
}

@media (max-width: 640px) {
	.phec-tiles { grid-template-columns: 1fr; }
	.phec-res { grid-template-columns: 1fr; }
	.phec-stats__list { grid-template-columns: 1fr; }
	.phec-stats__item { border-right: 0; padding-inline: 0; }
	.phec-split-head { flex-direction: column; align-items: flex-start; gap: 16px; }
	.phec-filiere__bl { flex-direction: column; align-items: flex-start; }
	.phec-offer__body { padding: 40px 20px; }
	.phec-hero__content { padding-block: 0 40px; }
	.phec-hero__actions .phec-btn { width: 100%; }
}

/* --- Responsive spécifique LANDINGS -------------------------------- */
@media (max-width: 1024px) {
	.phec-lhero { grid-template-columns: 1fr; }
	.phec-lhero__text { border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); padding: 56px var(--phec-gutter); }
	.phec-divgrid--4 { grid-template-columns: repeat(2, 1fr); }
	.phec-divgrid--3 { grid-template-columns: repeat(2, 1fr); }
	.phec-profs { grid-template-columns: repeat(2, 1fr); }
	.phec-pricing { grid-template-columns: 1fr; }
	.phec-faq2 { grid-template-columns: 1fr; gap: 32px; }
	.phec-editorial { grid-template-columns: 1fr; gap: 28px; }
	.phec-split-head__note { text-align: left; max-width: none; }
}

@media (max-width: 640px) {
	.phec-divgrid--4,
	.phec-divgrid--3,
	.phec-divgrid--2 { grid-template-columns: 1fr; }
	.phec-profs { grid-template-columns: 1fr; }
	.phec-lhero__aside { padding: 40px 24px; }
	.phec-lhero__text { padding: 44px var(--phec-gutter); }
}

/* --- Responsive spécifique STAGE ----------------------------------- */
@media (max-width: 1024px) {
	.phec-shero__grid { grid-template-columns: 1fr; gap: 32px; }
	.phec-split2 { grid-template-columns: 1fr; }
	.phec-split2__col--bordered { border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); }
	.phec-coef-sec { grid-template-columns: 1fr; }
	.phec-coef__media { min-height: 320px; border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); }
	.phec-coef__body { padding: 48px 32px; }
	.phec-divgrid--5 { grid-template-columns: repeat(3, 1fr); }
	.phec-timeline__row { grid-template-columns: 100px 1fr; }
	.phec-timeline__meta { grid-column: 2; text-align: left; }
}

@media (max-width: 640px) {
	.phec-divgrid--5 { grid-template-columns: 1fr; }
	.phec-split2__col { padding: 44px var(--phec-gutter); }
	.phec-shero__lead .phec-btn,
	.phec-fiche { width: 100%; }
	.phec-timeline__row { grid-template-columns: 1fr; gap: 8px; }
	.phec-timeline__meta { grid-column: 1; }
}

/* --- Responsive spécifique PROGRAMME ------------------------------- */
@media (max-width: 1024px) {
	.phec-prog-body { grid-template-columns: 1fr; }
	.phec-prog-toc { position: static; border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); padding-block: 32px; }
	.phec-prog-matiere { padding: 44px 32px; }
	.phec-prog-matiere__chap { grid-template-columns: 1fr; }
	.phec-relance__grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 640px) {
	.phec-prog-matiere__head { flex-direction: column; gap: 16px; }
	.phec-prog-matiere__stats { text-align: left; }
	.phec-coeftable__row { grid-template-columns: 1.2fr repeat(5, 1fr); padding: 12px 12px; }
	.phec-coeftable__epreuve { font-size: 12.5px; }
	.phec-coeftable__val { font-size: 15px; }
	.phec-rhero { padding-block: 44px 40px; }
}

/* --- Responsive spécifique CONTACT --------------------------------- */
@media (max-width: 1024px) {
	.phec-contact-grid { grid-template-columns: 1fr; }
	.phec-contact-form { border-right: 0; border-bottom: 1px solid var(--phec-hair-on-ink); padding: 48px 32px; }
}
@media (max-width: 640px) {
	.phec-cf7__grid2 { grid-template-columns: 1fr; }
	.phec-contact-aside__block { padding: 36px 24px; }
	.phec-contact-form { padding: 40px 20px; }
	/* Grille de rémunération : profil + montant seulement, sans en-tête ni format. */
	.phec-remtable .phec-coeftable__row--head { display: none; }
	.phec-remtable .phec-coeftable__row { grid-template-columns: 1fr auto; gap: 12px; padding: 16px 18px; }
	.phec-remtable__format { display: none; }
}
