/*
 * Styles ajoutés par la refonte « hub du tronc commun ».
 * Ils complètent style.css sans le modifier : style.css ne correspond plus
 * aux sources LESS (voir AUDIT.md) et n'est pas recompilé.
 * Valeurs reprises de la charte : bleu APMT #2673C1 (survol #2F83D9, foncé
 * #1A4F85, pastel #EAF3FB), brun #CA9E67, filets #EAD8C2, texte #4A4A4A.
 * Formes carrées, pilules pour les boutons, halos centrés, transitions .3s.
 */

:root {
	--apmt-bleu: #2673C1;
	--apmt-bleu-survol: #2F83D9;
	--apmt-bleu-fonce: #1A4F85;
	--apmt-bleu-pastel: #EAF3FB;
	--apmt-brun: #CA9E67;
	--apmt-filet: #EAD8C2;
	--apmt-texte: #4A4A4A;
	--apmt-texte-secondaire: #666666;
	--ombre-carte: 0 0 10px rgba(0, 0, 0, .17);
	--ombre-cta: 0 4px 12px rgba(0, 0, 0, .2);
}

body {
	background: #fff;
}

/* Mêmes polices que style.css, avec font-display: swap : le texte s'affiche
   tout de suite dans une police de repli au lieu de rester invisible. */
@font-face {
	font-family: 'Euclid Flex';
	src: url('../fonts/euclid/EuclidFlex.woff2') format('woff2'), url('../fonts/euclid/EuclidFlex.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Euclid Flex Bold';
	src: url('../fonts/euclid/EuclidFlexBold.woff2') format('woff2'), url('../fonts/euclid/EuclidFlexBold.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Euclid Flex Medium';
	src: url('../fonts/euclid/EuclidFlexMedium.woff2') format('woff2'), url('../fonts/euclid/EuclidFlexMedium.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Suisse intl Bold';
	src: url('../fonts/suisseIntl/SuisseIntl-Bold.woff2') format('woff2'), url('../fonts/suisseIntl/SuisseIntl-Bold.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Suisse intl Medium';
	src: url('../fonts/suisseIntl/SuisseIntl-Medium.woff2') format('woff2'), url('../fonts/suisseIntl/SuisseIntl-Medium.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Suisse intl Book';
	src: url('../fonts/suisseIntl/SuisseIntl-Book.woff2') format('woff2'), url('../fonts/suisseIntl/SuisseIntl-Book.woff') format('woff');
	font-display: swap;
}
@font-face {
	font-family: 'Suisse intl';
	src: url('../fonts/suisseIntl/SuisseIntl-Regular.woff2') format('woff2'), url('../fonts/suisseIntl/SuisseIntl-Regular.woff') format('woff');
	font-display: swap;
}

/* Lien d'évitement, visible au clavier seulement. */
.lien-evitement {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 10000;
	padding: 10px 16px;
	background: #fff;
}
.lien-evitement:focus {
	left: 16px;
	top: 16px;
}

/* Bouton du menu mobile : c'était un lien, c'est désormais un bouton. */
button.mobile-nav-btn {
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
}

/* Focus visible au clavier. */
a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: 2px solid var(--apmt-bleu);
	outline-offset: 2px;
}

/* En-tête des pages intérieures. */
.page-entete {
	padding: 80px 0 20px;
}
.page-entete__surtitre {
	margin: 0 0 12px;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-brun);
}
.page-entete__titre {
	margin: 0 0 20px;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-weight: 500;
	font-size: 34px;
	line-height: 42px;
	color: var(--apmt-bleu);
}
.page-entete__chapo {
	margin: 0;
	font-size: 18px;
	line-height: 28px;
}
@media (max-width: 768px) {
	.page-entete {
		padding-top: 40px;
	}
	.page-entete__titre {
		font-size: 28px;
		line-height: 36px;
	}
}

/* Encadré sur fond pastel, sans arrondi. */
.formation-content .encadre {
	margin-top: 40px;
	padding: 24px 28px;
	background: var(--apmt-bleu-pastel);
}
.formation-content .encadre .encadre__titre {
	margin: 0 0 12px;
	padding: 0;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 22px;
	line-height: 28px;
	color: var(--apmt-bleu-fonce);
}
.formation-content .liste-reperes {
	margin: 0;
	padding-left: 20px;
}
.formation-content .liste-reperes li + li {
	margin-top: 6px;
}

/* Titre protégé cité en exemple. */
.formation-content .titre-exemple {
	margin: 16px 0;
	padding: 16px 20px;
	border-left: 3px solid var(--apmt-bleu);
	background: var(--apmt-bleu-pastel);
	font-family: 'Suisse intl Medium', sans-serif;
	color: var(--apmt-bleu-fonce);
}

/* Boutons pilule : plein ou contour qui se remplit au survol. */
.actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px 16px;
	margin: 28px 0 8px;
}
.bouton {
	display: inline-block;
	padding: 12px 28px;
	border: 1px solid var(--apmt-bleu);
	border-radius: 50px;
	background: var(--apmt-bleu);
	color: #fff;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 16px;
	line-height: 24px;
	text-decoration: none;
	box-shadow: var(--ombre-cta);
	transition: all .3s ease-in-out;
}
.bouton:hover,
.bouton:focus {
	background: var(--apmt-bleu-survol);
	border-color: var(--apmt-bleu-survol);
	color: #fff;
	text-decoration: none;
	box-shadow: none;
}
.bouton--contour {
	background: #fff;
	color: var(--apmt-bleu);
	box-shadow: none;
}
.bouton--contour:hover,
.bouton--contour:focus {
	background: var(--apmt-bleu);
	border-color: var(--apmt-bleu);
	color: #fff;
}

/* Sources en bas de page. */
.formation-content .sources {
	padding-left: 20px;
}
.formation-content .sources li + li {
	margin-top: 6px;
}
.sources__note {
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte-secondaire);
}

/* « Une information vous manque ? » au-dessus du pied de page. */
.remarques {
	margin-top: 80px;
	padding: 24px 0;
	border-top: 1px solid var(--apmt-filet);
	border-bottom: 1px solid var(--apmt-filet);
	text-align: center;
}
.remarques p {
	margin: 0;
}
.remarques + footer {
	margin-top: 60px;
}

/* Mention d'accréditation en bas du pied de page. */
footer .mention-accreditation {
	width: 100%;
	margin: 30px 0 0;
	font-size: 14px;
	line-height: 21px;
	text-align: center;
	color: var(--apmt-texte-secondaire);
}
footer .location-block .adresse a {
	display: inline-block;
	margin-top: 6px;
}

/* Paragraphes successifs : style.css annule leur marge dans .formation-content. */
.formation-content .informations2 p + p {
	margin-top: 12px;
}

/* ------------------------------------------------------------------------- */
/* Accueil                                                                     */
/* ------------------------------------------------------------------------- */

/* Marqueurs de relecture [À CONFIRMER : …], surlignés au build. */
mark.a-confirmer {
	padding: 0 4px;
	background: #FFF1B8;
	color: #4A4A4A;
}

/* Le titre principal est désormais un H1 (même classe que l'ancien H2). */
h1.main-title span {
	display: block;
}

/* Accroche, boutons et repères sous le haut de page. */
.accroche {
	padding: 40px 0 20px;
	text-align: center;
}
.accroche__phrase {
	max-width: 760px;
	margin: 0 auto 28px;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 24px;
	line-height: 32px;
	color: var(--apmt-texte);
}
@media (max-width: 767px) {
	.accroche__phrase {
		font-size: 20px;
		line-height: 28px;
	}
}
.actions--centre {
	justify-content: center;
	margin-top: 0;
}
.accroche__suite {
	margin: 16px 0 4px;
	font-size: 18px;
}
.accroche__note {
	margin: 0 auto;
	max-width: 640px;
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte-secondaire);
}
.reperes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	gap: 0;
	margin: 40px 0 0;
	box-shadow: var(--ombre-carte);
	text-align: left;
	background: #fff;
}
.reperes__el {
	padding: 20px 24px;
	border-right: 1px solid var(--apmt-filet);
	border-bottom: 1px solid var(--apmt-filet);
}
.reperes dt {
	margin: 0 0 4px;
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte-secondaire);
}
.reperes dd {
	margin: 0;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 18px;
	line-height: 26px;
	color: var(--apmt-bleu-fonce);
}
.reperes dd small {
	display: block;
	margin-top: 4px;
	font-family: 'Suisse intl', sans-serif;
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte);
}

/* Titres de section en H2 dans les blocs de texte (mêmes styles que l'ancien h3). */
.formation-content .informations2 h3 {
	margin-top: 32px;
}
.formation-content .modules__lien {
	margin-top: 8px;
}
/* Cartes de modules : le domaine s'affiche en clair au-dessus de l'intitulé. */
.formation-content .module-card {
	height: auto;
	min-height: 65px;
	align-items: stretch;
}
.formation-content .module-card .module-abbreviation {
	height: auto;
	min-height: 65px;
	flex: none;
}
.formation-content .module-card .module-name,
.formation-content .module-card .module-hours {
	align-self: center;
	margin-top: 8px;
	margin-bottom: 8px;
}
.formation-content .module-card .module-hours {
	flex: none;
	white-space: nowrap;
	padding-left: 12px;
}
.formation-content .module-card .module-domaine {
	display: block;
	font-family: 'Suisse intl', sans-serif;
	font-size: 14px;
	line-height: 20px;
	color: var(--apmt-texte-secondaire);
}

/* Tableaux simples : carrés, filets sable, en-têtes bleu foncé. */
.tableau-simple {
	width: 100%;
	margin: 12px 0 8px;
	border-collapse: collapse;
}
.tableau-simple th,
.tableau-simple td {
	padding: 10px 12px;
	border-bottom: 1px solid var(--apmt-filet);
	text-align: left;
	vertical-align: top;
}
.tableau-simple thead th {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
	font-size: 14px;
	color: var(--apmt-texte-secondaire);
}
.tableau-simple tbody th,
.tableau-simple tfoot th {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
}
.tableau-simple tfoot th,
.tableau-simple tfoot td {
	border-bottom: none;
	color: var(--apmt-bleu-fonce);
	font-family: 'Suisse intl Medium', sans-serif;
}
.paliers .is-current td {
	background: var(--apmt-bleu-pastel);
	color: var(--apmt-bleu-fonce);
	font-family: 'Suisse intl Medium', sans-serif;
}
.paliers .is-past td {
	color: #767676;
	text-decoration: line-through;
}
.paliers__marque {
	margin-left: 8px;
	padding: 0 10px;
	border: 1px solid var(--apmt-bleu);
	border-radius: 60px;
	font-size: 13px;
	line-height: 20px;
	color: var(--apmt-bleu);
	text-decoration: none;
	white-space: nowrap;
}

/* Prix du jour. */
.prix__courant {
	margin: 24px 0 8px;
	padding: 24px 28px;
	background: var(--apmt-bleu-pastel);
}
.formation-content .prix__montant {
	margin: 0 0 8px;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 34px;
	line-height: 42px;
	color: var(--apmt-bleu-fonce);
}
.formation-content .prix__details {
	margin: 0;
}

/* Séances d'information : reprend le bloc « portes ouvertes » d'origine. */
.portes-ouvertes .seances__titre {
	width: 100%;
	margin: 0 0 5px;
	padding: 0;
	text-align: center;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 20px;
	line-height: 26px;
}
.portes-ouvertes .portes-ouvertes-link a {
	align-items: center;
}
.portes-ouvertes .seances__lien {
	margin-bottom: 15px;
	color: #2673C1;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 30px;
	line-height: 40px;
	text-decoration: underline;
	text-decoration-color: transparent;
	transition: all .3s ease-in-out;
}
.portes-ouvertes .portes-ouvertes-link:hover .seances__lien {
	text-decoration-color: #2673C1;
}
.portes-ouvertes .po-date {
	margin: 0 5px 10px;
	padding: 6px 20px;
	border-radius: 60px;
	background-color: #EAF3FB;
	color: #1A4F85;
	font-family: 'Suisse intl', sans-serif;
	font-size: 16px;
	line-height: 24px;
	transition: all .3s ease-in-out;
}
.portes-ouvertes .portes-ouvertes-link:hover .po-date {
	background-color: #D5E6F7;
}
.portes-ouvertes .seances__lieu {
	color: var(--apmt-texte);
	font-family: 'Suisse intl', sans-serif;
}
.portes-ouvertes .seances__note {
	margin: 16px 0 0;
	text-align: center;
	font-size: 14px;
	line-height: 21px;
}
.portes-ouvertes .questions-block .seances__titre {
	font-size: 20px;
}
@media (max-width: 767px) {
	.portes-ouvertes .seances__lien {
		font-size: 24px;
		line-height: 32px;
	}
}

/* Parcours en cinq étapes : pastilles numérotées. */
.parcours__etapes {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: etape;
}
.parcours__etape {
	position: relative;
	padding: 0 0 28px 64px;
	counter-increment: etape;
}
.parcours__etape::before {
	content: counter(etape);
	position: absolute;
	left: 0;
	top: 0;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid var(--apmt-bleu);
	color: var(--apmt-bleu);
	text-align: center;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 20px;
	line-height: 42px;
}
.parcours__etape::after {
	content: "";
	position: absolute;
	left: 22px;
	top: 48px;
	bottom: 4px;
	border-left: 1px dashed var(--apmt-filet);
}
.parcours__etape:last-child::after {
	display: none;
}
.parcours__etape--apmt::before {
	background: var(--apmt-bleu);
	color: #fff;
}
.formation-content .parcours__etape h3 {
	margin: 8px 0 8px;
}

/* Programme détaillé : un H3 par module, un H4 par rubrique. */
.formation-content .programme h3,
.programme .informations2 h3 {
	margin: 0;
	padding-top: 60px;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 26px;
	line-height: 38px;
}
.programme__domaine {
	display: block;
	font-size: 18px;
	line-height: 26px;
	color: var(--apmt-brun);
}
.formation-content .programme__heures {
	margin: 4px 0 0;
	color: var(--apmt-texte-secondaire);
}
.formation-content .programme h4,
.programme .informations2 h4 {
	margin-bottom: 12px;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 20px;
	line-height: 30px;
}

/* Partenaires : quatre cartes, deux par ligne, et bandeau école partenaire. */
.partners h2 {
	margin-bottom: 15px;
	color: #fff;
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 28px;
	line-height: 36px;
}
.partners .partners-infos {
	flex-wrap: wrap;
	gap: 20px;
}
.partners .partners-infos .partner-card {
	width: calc(50% - 10px);
	color: var(--apmt-texte);
	text-decoration: none;
	transition: all .3s ease-in-out;
}
a.partner-card:hover {
	box-shadow: 0 0 30px rgba(0, 0, 0, .25);
}
.partners .partners-infos .partner-card .partner-nom {
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 18px;
}
.partners .partners-infos .partner-card .partner-statut {
	margin-top: 8px;
	font-size: 14px;
	line-height: 21px;
}
.partner-nom-logo {
	font-family: 'Euclid Flex Medium', sans-serif;
	font-size: 26px;
	line-height: 60px;
	color: var(--apmt-bleu-fonce);
}
.partners-bandeau {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid rgba(255, 255, 255, .4);
}
.partners .partners-bandeau p {
	margin: 0;
	flex: 1 1 380px;
}
.partners .partners-bandeau strong {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
}
.bouton--blanc {
	background: #fff;
	border-color: #fff;
	color: var(--apmt-bleu);
	box-shadow: none;
}
.bouton--blanc:hover,
.bouton--blanc:focus {
	background: var(--apmt-bleu-fonce);
	border-color: #fff;
	color: #fff;
}
@media (max-width: 767px) {
	.partners .partners-infos .partner-card {
		width: 100%;
	}
}
@media (max-width: 767px) {
	.formation-content .module-card .module-hours__suffixe {
		display: none;
	}
	.formation-content .module-card .module-name {
		font-size: 16px;
		line-height: 22px;
	}
}

/* ------------------------------------------------------------------------- */
/* Phase 2 : heures manquantes, écoles partenaires, FAQ                        */
/* ------------------------------------------------------------------------- */

/* Encadré « doux » : cadre pointillé sable, dessiné en SVG comme dans style.css. */
.encadre-pointille {
	margin: 24px 0;
	padding: 24px 28px;
	background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' stroke='%23DFC5A4' stroke-width='2' stroke-dasharray='6%2c 10' stroke-dashoffset='28' stroke-linecap='square'/%3e%3c/svg%3e");
}
.formation-content .encadre-pointille h3 {
	margin-top: 0;
}
.formation-content .note,
.note {
	margin-top: 8px;
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte-secondaire);
}

/* Auto-évaluation. */
.estimation {
	margin: 20px 0;
	padding: 24px 28px;
	box-shadow: var(--ombre-carte);
	background: #fff;
}
.estimation fieldset {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
}
.estimation legend {
	margin-bottom: 8px;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 17px;
	line-height: 24px;
	color: var(--apmt-bleu-fonce);
}
.estimation .facultatif {
	font-family: 'Suisse intl', sans-serif;
	font-size: 14px;
	color: var(--apmt-texte-secondaire);
}
.estimation .choix {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 0 0 6px;
	cursor: pointer;
}
.estimation .choix input {
	margin-top: 5px;
	flex: none;
	accent-color: var(--apmt-bleu);
}
.estimation .champ input {
	width: 100%;
	max-width: 420px;
	padding: 10px 12px;
	border: 1px solid var(--apmt-filet);
	font: inherit;
}
.estimation button.bouton {
	cursor: pointer;
}
.estimation__resultat {
	margin: 0 0 20px;
	padding: 24px 28px;
	background: var(--apmt-bleu-pastel);
}
.formation-content .estimation__resultat h3 {
	margin: 0 0 12px;
	color: var(--apmt-bleu-fonce);
}
.formation-content .estimation__avertissement {
	margin-top: 12px;
	font-family: 'Suisse intl Medium', sans-serif;
}

/* Modules à l'unité : cartes carrées à halo. */
.modules-unite {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin: 20px 0 8px;
}
.module-unite {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px 24px;
	background: #fff;
	box-shadow: var(--ombre-carte);
	transition: all .3s ease-in-out;
}
.module-unite:hover {
	box-shadow: 0 0 30px rgba(0, 0, 0, .25);
}
.formation-content .module-unite__code {
	margin: 0;
	font-family: 'Suisse intl Bold', sans-serif;
	font-size: 14px;
	letter-spacing: .04em;
	color: var(--apmt-bleu);
}
.formation-content .module-unite h3 {
	margin: 0;
	font-size: 18px;
	line-height: 26px;
}
.module-unite__faits {
	margin: 4px 0 8px;
	font-size: 14px;
	line-height: 21px;
}
.module-unite__faits div {
	padding: 6px 0;
	border-bottom: 1px solid var(--apmt-filet);
}
.module-unite__faits dt {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
	color: var(--apmt-texte-secondaire);
}
.module-unite__faits dd {
	margin: 0;
}
.module-unite .bouton {
	align-self: flex-start;
	margin-top: auto;
}

/* Offre de la boutique (atelier d'essai). */
.offre {
	margin: 20px 0;
	padding: 20px 24px;
	background: var(--apmt-bleu-pastel);
}
.formation-content .offre h3 {
	margin-top: 0;
}

/* Écoles partenaires. */
.liste-apports {
	padding-left: 20px;
}
.liste-apports li + li {
	margin-top: 10px;
}
.liste-apports strong {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
	color: var(--apmt-bleu-fonce);
}
.code-widget {
	margin: 12px 0;
	padding: 16px;
	background: #F6FAFD;
	border: 1px solid #D6E6F5;
	white-space: pre-wrap;
	word-break: break-all;
	font-size: 13px;
	line-height: 19px;
}
.apercu-widget iframe {
	display: block;
	border: 0;
	box-shadow: var(--ombre-carte);
}
.reperes--compact {
	margin: 20px 0 8px;
}

/* FAQ : accordéon sobre, chevron en couleur primaire. */
.faq__item {
	border-bottom: 1px solid var(--apmt-filet);
}
.faq__item summary {
	position: relative;
	padding: 16px 40px 16px 0;
	list-style: none;
	cursor: pointer;
	font-family: 'Suisse intl Medium', sans-serif;
	font-size: 18px;
	line-height: 26px;
	color: var(--apmt-texte);
}
.faq__item summary::-webkit-details-marker {
	display: none;
}
.faq__item summary::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 22px;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--apmt-bleu);
	border-bottom: 2px solid var(--apmt-bleu);
	transform: rotate(45deg);
	transition: all .3s ease-in-out;
}
.faq__item[open] summary::after {
	transform: rotate(-135deg);
	top: 26px;
}
.faq__reponse {
	padding: 0 0 16px;
}
.formation-content .faq__source {
	margin-top: 8px;
	font-size: 14px;
	color: var(--apmt-texte-secondaire);
}

/* Navigation : liens des pages (le menu d'origine prévoyait ces entrées). */
.navigation .navigation-wrapper .navigation-links ul {
	margin: 0;
	display: flex;
	align-items: center;
	height: 100%;
}
.navigation .navigation-wrapper .navigation-links ul li a {
	color: var(--apmt-texte);
	white-space: nowrap;
}
.navigation .navigation-wrapper .navigation-links ul li a:hover {
	color: var(--apmt-bleu);
}
@media (max-width: 991px) {
	.navigation .navigation-wrapper .navigation-links ul {
		display: block;
	}
}

/* ------------------------------------------------------------------------- */
/* Phase 3 : modules, méthodes, guides                                         */
/* ------------------------------------------------------------------------- */

.liste-guides {
	margin: 0;
	padding: 0;
	list-style: none;
}
.liste-guides li {
	padding: 18px 0;
	border-bottom: 1px solid var(--apmt-filet);
}
.liste-guides a {
	display: block;
	font-size: 20px;
	line-height: 28px;
}
.liste-guides span {
	display: block;
	margin-top: 4px;
	color: var(--apmt-texte-secondaire);
}
.liste-dates {
	margin: 0;
	padding: 0;
	list-style: none;
}
.liste-dates li {
	padding: 10px 0;
	border-bottom: 1px solid var(--apmt-filet);
}
.liste-dates li[hidden] {
	display: none;
}
.liste-dates strong {
	font-family: 'Suisse intl Medium', sans-serif;
	font-weight: 400;
	color: var(--apmt-bleu-fonce);
}
.reperes dd.reperes__texte {
	font-family: 'Suisse intl', sans-serif;
	font-size: 15px;
	line-height: 22px;
	color: var(--apmt-texte);
}
.formation-content .parcours__guides {
	margin-top: 8px;
	padding-top: 16px;
	border-top: 1px solid var(--apmt-filet);
}
.carnet__entree + .carnet__entree {
	margin-top: 32px;
}

/* ------------------------------------------------------------------------- */
/* Brun assombri pour les textes (QUESTIONS.md, décision 15)                  */
/* ------------------------------------------------------------------------- */
/* #CA9E67 sur blanc donne un contraste de 2,44:1, sous le minimum de 4,5:1.
   Les textes passent à #8C6A3F (4,94:1). Filets, bordures et décors gardent
   le brun de la charte. */
:root {
	--apmt-brun-texte: #8C6A3F;
}
.small-brown,
.sbr,
.big-brown,
.bbr,
.sub_title--medium-brown,
.stmbr,
footer .block-title,
.main-title,
.page-entete__surtitre,
.programme__domaine,
.agenda .agenda__kicker {
	color: var(--apmt-brun-texte);
}

/* Contrastes : pastille « tarif actuel », formulaire newsletter du pied de page
   (texte d'exemple presque invisible, bouton bleu sur bleu pâle). */
.paliers__marque {
	border-color: var(--apmt-bleu-fonce);
	color: var(--apmt-bleu-fonce);
}
footer .newsletter-block .newsletter-field input[type=email]::placeholder,
footer .newsletter-block .newsletter-field input[type=email]:placeholder-shown {
	color: var(--apmt-texte-secondaire);
}
footer .newsletter-block .newsletter-field button {
	color: var(--apmt-bleu-fonce);
}
footer .newsletter-block .description {
	color: var(--apmt-texte-secondaire);
}


/* ========================================================================= */
/* V2 : dynamisme de forme et de couleur (Claude Design, 30.09.2026)          */
/* Surcharge seule, sans changement de balisage. Formes organiques en décor   */
/* (pseudo-éléments), cartes et encadrés restent carrés.                     */
/* ========================================================================= */
:root {
	--apmt-beige: #F9F5EF;
	--apmt-creme: #F6F0E1;
	--apmt-or: #E9BC63;          /* accent cAH, texte #2E2E2E dessus : 7,4:1 */
	--apmt-encre: #2E2E2E;
	--ombre-survol: 0 0 30px rgba(0, 0, 0, .25);
	--blob-a: 58% 42% 55% 45% / 48% 58% 42% 52%;
	--blob-b: 42% 58% 38% 62% / 55% 45% 55% 45%;
	--vague-haut-fonce: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3e%3cpath d='M0 60 V38 C 240 6 460 0 720 26 S 1200 60 1440 16 V60 Z' fill='%231A4F85'/%3e%3c/svg%3e");
	--vague-bas-fonce: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3e%3cpath d='M0 0 H1440 V30 C1260 60 1000 8 720 30 S 240 56 0 22 Z' fill='%231A4F85'/%3e%3c/svg%3e");
	--vague-haut-bleu: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3e%3cpath d='M0 60 V38 C 240 6 460 0 720 26 S 1200 60 1440 16 V60 Z' fill='%232673C1'/%3e%3c/svg%3e");
	--vague-haut-beige: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3e%3cpath d='M0 60 V38 C 240 6 460 0 720 26 S 1200 60 1440 16 V60 Z' fill='%23F9F5EF'/%3e%3c/svg%3e");
	--vague-bas-beige: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 60' preserveAspectRatio='none'%3e%3cpath d='M0 0 H1440 V30 C1260 60 1000 8 720 30 S 240 56 0 22 Z' fill='%23F9F5EF'/%3e%3c/svg%3e");
}
/* Les bandeaux pleine largeur débordent du conteneur : on coupe sans créer de défilement. */
html, body { overflow-x: clip; }
main { overflow-x: clip; }

/* --- Haut de page ------------------------------------------------------- */
header.hero_bg { position: relative; isolation: isolate; }
header.hero_bg::before {
	content: ""; position: absolute; z-index: -1; pointer-events: none;
	right: -4%; top: -30px; height: calc(100% + 30px); width: min(40%, 540px);
	background: var(--apmt-bleu-pastel); border-radius: var(--blob-a);
}
header.hero_bg::after {
	content: ""; position: absolute; z-index: -1; pointer-events: none;
	left: 3%; bottom: -10px; width: 92px; aspect-ratio: 1;
	background: var(--apmt-or); border-radius: var(--blob-b); opacity: .9;
}
@media (min-width: 1025px) {
	.main-title { font-size: 64px; line-height: 68px; letter-spacing: -.01em; }
}
.main-title span:first-child { color: var(--apmt-bleu); }
.main-title span:last-child { color: var(--apmt-brun-texte); }
header .ortra-tc-icon img {
	border-radius: 50%; background: #fff; box-shadow: 0 0 20px rgba(0, 0, 0, .15);
	transition: all .3s ease-in-out;
}
header .ortra-tc-icon:hover img { transform: rotate(6deg) scale(1.04); }
header .reasons_pastille img { transition: all .3s ease-in-out; }
header .reasons_pastille:hover img { transform: rotate(-4deg) scale(1.04); }

/* --- Accroche et repères ------------------------------------------------ */
.accroche { padding-bottom: 0; }
@media (min-width: 768px) {
	.accroche__phrase { font-size: 26px; line-height: 36px; }
}
/* Repères : bandeau bleu foncé pleine largeur (border-image), vagues dessus et dessous. */
.reperes {
	position: relative;
	margin: 110px 0 60px;
	padding: 40px 0 56px;
	gap: 16px;
	background: none;
	box-shadow: none;
	color: #fff;
	border-image: linear-gradient(#1A4F85, #1A4F85) fill 0 / 0 / 0 100vmax;
}
.reperes::before,
.reperes::after {
	content: ""; position: absolute; left: 50%; width: 100vw; height: 60px;
	transform: translateX(-50%); background-size: 100% 100%; pointer-events: none;
}
.reperes::before { top: -59px; background-image: var(--vague-haut-fonce); }
.reperes::after { bottom: -59px; background-image: var(--vague-bas-fonce); }
.reperes__el {
	padding: 22px 24px;
	border: 1px solid rgba(255, 255, 255, .35);
	transition: all .3s ease-in-out;
}
.reperes__el:hover { border-color: #fff; }
.reperes dt { color: #EAF3FB; }
.reperes dd { font-family: 'Euclid Flex Medium', sans-serif; font-size: 22px; line-height: 28px; color: #fff; }
.reperes dd small { color: #EAF3FB; }
.reperes a { color: #fff; text-decoration: underline; }
.reperes a:hover { color: #fff; text-decoration-thickness: 2px; }
/* Heures : case blanche mise en avant. */
.reperes__el--heures { background: #fff; border-color: #fff; display: flex; flex-direction: column; justify-content: center; }
.reperes__el--heures dt { color: var(--apmt-brun-texte); }
.reperes__el--heures dd { font-size: 34px; line-height: 40px; color: var(--apmt-bleu); }
.reperes__el--heures dd small { color: var(--apmt-texte); font-size: 15px; }
/* Prochaine rentrée : case or. Prix : case beige. */
.reperes__el--rentree { background: var(--apmt-or); border-color: var(--apmt-or); }
.reperes__el--prix { background: var(--apmt-beige); border-color: var(--apmt-beige); }
.reperes__el--rentree dt,
.reperes__el--rentree dd,
.reperes__el--rentree dd small { color: var(--apmt-encre); }
.reperes__el--prix dt { color: var(--apmt-brun-texte); }
.reperes__el--prix dd { color: var(--apmt-bleu-fonce); font-size: 28px; line-height: 34px; }
.reperes__el--prix dd small { color: var(--apmt-texte); }
.reperes__el--rentree a, .reperes__el--prix a { color: var(--apmt-bleu-fonce); }
@media (min-width: 576px) {
	.reperes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.reperes__el--heures { grid-row: span 2; }
}
@media (min-width: 992px) {
	.reperes { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.reperes__el--heures { grid-column: 2; grid-row: 1 / span 2; }
}
.reperes--compact { margin: 90px 0 70px; }

/* --- Titres de section : filet brun court ------------------------------- */
.formation-content h2 {
	font-family: 'Euclid Flex Medium', sans-serif; font-weight: 500;
	font-size: 36px; line-height: 44px; color: var(--apmt-bleu-fonce);
}
@media (max-width: 767px) {
	.formation-content h2 { font-size: 28px; line-height: 36px; }
}
.formation-content .separator {
	display: block; width: 56px; height: 3px; margin: 0 0 28px;
	border: 0; background: var(--apmt-brun);
}

/* --- Cartes de modules : couleur par domaine ---------------------------- */
.formation-content .module-card {
	background: #fff; background-image: none;
	box-shadow: var(--ombre-carte); margin-bottom: 16px; padding-right: 24px;
	isolation: isolate; transition: all .3s ease-in-out;
}
.formation-content .module-card:hover { box-shadow: var(--ombre-survol); }
.formation-content .module-card .module-abbreviation {
	width: 72px; min-width: 72px; margin: 0;
	background: var(--apmt-bleu); font-family: 'Suisse intl Bold', sans-serif; font-size: 18px; letter-spacing: .02em;
}
.formation-content .module-card .module-abbreviation::before { display: none; }
.formation-content .module-card[href*="/bs"] .module-abbreviation { background: var(--apmt-brun-texte); }
.formation-content .module-card[href*="/bm"] .module-abbreviation { background: var(--apmt-bleu-fonce); }
.formation-content .module-card .module-name { flex: 1; padding-left: 20px; margin-left: 0; color: var(--apmt-texte); transition: all .3s ease-in-out; }
.formation-content .module-card:hover .module-name { color: var(--apmt-bleu); }
.formation-content .module-card .module-hours { color: var(--apmt-bleu-fonce); }

/* --- Prix : bandeau beige, prix du jour en bleu foncé ------------------- */
section.prix {
	position: relative; margin-top: 120px; padding-bottom: 80px;
	border-image: linear-gradient(var(--apmt-beige), var(--apmt-beige)) fill 0 / 0 / 0 100vmax;
}
section.prix::before,
section.prix::after {
	content: ""; position: absolute; left: 0; right: 0; height: 60px;
	background-size: 100% 100%; pointer-events: none;
}
section.prix::before { top: -59px; background-image: var(--vague-haut-beige); }
section.prix::after { bottom: -59px; background-image: var(--vague-bas-beige); }
.prix__courant {
	position: relative; overflow: hidden; isolation: isolate;
	padding: 32px 36px; background: var(--apmt-bleu-fonce); color: #fff;
}
.prix__courant::after {
	content: ""; position: absolute; z-index: -1; right: -40px; top: -50px;
	width: 180px; aspect-ratio: 1; border-radius: var(--blob-a); background: var(--apmt-bleu);
}
.formation-content .prix__montant { font-size: 56px; line-height: 60px; color: #fff; }
.formation-content .prix__details,
.formation-content .prix__courant p { color: #fff; }
.prix__courant a { color: #fff; text-decoration: underline; }
section.prix .tableau-simple { background: #fff; box-shadow: var(--ombre-carte); }
section.prix .tableau-simple th:first-child,
section.prix .tableau-simple td:first-child { padding-left: 20px; }
.paliers .is-current td { background: var(--apmt-bleu-pastel); }

/* --- Séances d'information ---------------------------------------------- */
.portes-ouvertes { position: relative; margin-top: 140px; isolation: isolate; overflow: hidden; }
.portes-ouvertes::before {
	content: ""; position: absolute; z-index: -1; left: -60px; top: 30px;
	width: 200px; aspect-ratio: 1.1; border-radius: var(--blob-b); background: #fff; opacity: .7;
}
.portes-ouvertes::after {
	content: ""; position: absolute; z-index: -1; right: 6%; bottom: -30px;
	width: 110px; aspect-ratio: 1; border-radius: var(--blob-a); background: var(--apmt-or);
}
.portes-ouvertes .po-date { background-color: #fff; box-shadow: var(--ombre-carte); }
.portes-ouvertes .portes-ouvertes-link:hover .po-date { background-color: var(--apmt-bleu); color: #fff; }

/* --- Parcours : pastilles organiques ------------------------------------ */
.parcours__etape::before {
	border: 0; border-radius: var(--blob-a);
	background: var(--apmt-bleu-pastel); color: var(--apmt-bleu-fonce);
	transition: all .3s ease-in-out;
}
.parcours__etape:nth-child(even)::before { border-radius: var(--blob-b); }
.parcours__etape:hover::before { background: var(--apmt-bleu); color: #fff; }
.parcours__etape--apmt::before { background: var(--apmt-bleu); color: #fff; }
.parcours__etape::after { border-left: 2px dotted var(--apmt-brun); }

/* --- Partenaires : vague au-dessus, pastille or ------------------------- */
.partners { position: relative; margin-top: 160px; isolation: isolate; }
.partners::before {
	content: ""; position: absolute; left: 0; right: 0; top: -59px; height: 60px;
	background: var(--vague-haut-bleu) center / 100% 100%;
}
.partners::after {
	content: ""; position: absolute; z-index: -1; right: 4%; top: 40px;
	width: 140px; aspect-ratio: 1; border-radius: var(--blob-b); background: #2F83D9;
}
.partners .partners-infos .partner-card { box-shadow: var(--ombre-carte); }

/* --- Encadrés, FAQ ------------------------------------------------------ */
.formation-content .encadre { position: relative; overflow: hidden; isolation: isolate; }
.formation-content .encadre::after {
	content: ""; position: absolute; z-index: -1; right: -30px; bottom: -40px;
	width: 120px; aspect-ratio: 1; border-radius: var(--blob-a); background: #fff; opacity: .7;
}
.faq__item summary { transition: all .3s ease-in-out; }
.faq__item summary:hover { color: var(--apmt-bleu); }
.faq__item[open] summary { color: var(--apmt-bleu-fonce); }

/* --- En-tête des pages intérieures ------------------------------------- */
.page-entete { position: relative; isolation: isolate; }
.page-entete::before {
	content: ""; position: absolute; z-index: -1; right: -8%; top: 10px;
	width: 38%; max-width: 460px; aspect-ratio: 1.2;
	border-radius: var(--blob-a); background: var(--apmt-bleu-pastel);
}
@media (min-width: 769px) {
	.page-entete__titre { font-size: 48px; line-height: 54px; }
}
.page-entete__surtitre::before {
	content: ""; display: block; width: 56px; height: 3px; margin-bottom: 14px; background: var(--apmt-brun);
}

/* --- Modules à l'unité : bande de couleur en tête ----------------------- */
.module-unite { border-top: 4px solid var(--apmt-bleu); }
.module-unite:hover { transform: translateY(-3px); }
.partners p a { color: #fff; text-decoration: underline; }
.partners p a:hover { color: #fff; text-decoration-thickness: 2px; }

/* --- Avis de la boutique (guide PEQ CB) ---------------------------------- */
.formation-content .avis__resume { margin-bottom: 20px; }
.avis {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 20px;
	margin-bottom: 12px;
}
.avis__carte {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0;
	padding: 22px 24px;
	background: #fff;
	border-top: 4px solid var(--apmt-or, #E9BC63);
	box-shadow: var(--ombre-carte);
	transition: all .3s ease-in-out;
}
.avis__carte:hover { box-shadow: 0 0 30px rgba(0, 0, 0, .25); }
.formation-content .avis__note {
	margin: 0;
	display: flex;
	gap: 2px;
	color: #B8860B;
}
.avis__texte {
	margin: 0;
	flex: 1;
}
.formation-content .avis__texte p { margin: 0; }
.formation-content .avis__texte p + p { margin-top: 10px; }
.formation-content .avis__titre {
	font-family: 'Suisse intl Medium', sans-serif;
	color: var(--apmt-bleu-fonce);
}
.avis__auteur {
	font-size: 14px;
	line-height: 21px;
	color: var(--apmt-texte-secondaire);
}

/* --- Formulaires de demande (programme et dates, école partenaire) -------- */
.section-lead { margin-top: 40px; }
.lead {
	margin: 40px 0;
	padding: 32px 36px;
	background: #fff;
	box-shadow: var(--ombre-carte);
	border-top: 4px solid var(--apmt-bleu);
}
.formation-content .lead .lead__titre { padding-top: 0; margin-top: 0; }
.lead__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lead__grille {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px 20px;
	margin: 20px 0;
}
.lead__champ { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.lead__champ:has(textarea) { grid-column: 1 / -1; }
.lead__libelle { font-family: 'Suisse intl Medium', sans-serif; font-size: 15px; color: var(--apmt-bleu-fonce); }
.lead__facultatif { font-family: 'Suisse intl', sans-serif; font-size: 13px; color: var(--apmt-texte-secondaire); }
.lead__champ input,
.lead__champ textarea {
	width: 100%;
	padding: 11px 12px;
	border: 1px solid #C9D6E3;
	border-radius: 0;
	background: #fff;
	font: inherit;
	color: var(--apmt-texte);
	transition: all .3s ease-in-out;
}
.lead__champ input:focus,
.lead__champ textarea:focus { border-color: var(--apmt-bleu); outline: 2px solid var(--apmt-bleu-pastel); outline-offset: 0; }
.lead__champ .is-invalid { border-color: #B3261E; }
.lead__aide { font-size: 13px; line-height: 18px; color: var(--apmt-texte-secondaire); }
.lead__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.lead__envoi .bouton { cursor: pointer; }
.lead__envoi .bouton:disabled { opacity: .7; cursor: wait; }
.formation-content .lead__finalite { flex: 1 1 320px; margin: 0; font-size: 13px; line-height: 19px; color: var(--apmt-texte-secondaire); }
.formation-content .lead__erreur { margin: 16px 0 0; padding: 10px 14px; background: #FDECEA; color: #8C1D18; }
.formation-content .lead__erreur a { color: #8C1D18; text-decoration: underline; }
.lead__merci { padding: 20px 24px; background: var(--apmt-bleu-pastel); }
.formation-content .lead__merci-titre { font-family: 'Euclid Flex Medium', sans-serif; font-size: 24px; line-height: 30px; color: var(--apmt-bleu-fonce); }
@media (max-width: 767px) {
	.lead { padding: 24px 20px; }
}

/* Code en ligne (identifiant du widget) : le rose de Bootstrap manque de contraste. */
.formation-content code { color: var(--apmt-bleu-fonce); }

/* Logos des écoles partenaires : même hauteur maximale (le PNG de Collectif Concept est grand). */
.partners .partner-logos img { max-height: 120px; width: auto; max-width: 100%; }
.partners .partner-logos img[src*="collectif-concept"] { max-height: 150px; }
/* Textes sur le bandeau bleu des repères : en blanc, pas en gris. */
.reperes dd.reperes__texte { color: #fff; }
.reperes__el--heures dd.reperes__texte { color: var(--apmt-texte); }
/* Plan d'accès (repris de la page contact d'epsn.ch). */
.plan-acces { margin: 24px 0 0; }
.plan-acces img { display: block; width: 100%; height: auto; box-shadow: 0 0 10px rgba(0,0,0,.17); }
.plan-acces figcaption { margin-top: 8px; font-size: 14px; line-height: 21px; color: var(--apmt-texte-secondaire); }
/* Logos des associations (ASCA, NVS). */
.reconnaissances { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 8px; }
.reconnaissances img { height: auto; max-height: 40px; width: auto; }
/* Agenda : dates prévisionnelles. */
.agenda__previsionnel { margin: 16px 0 0; font-size: 14px; line-height: 21px; color: var(--apmt-texte-secondaire); }
/* Newsletter : case de consentement (Campaign Monitor). */
footer .newsletter-block .newsletter-field .newsletter-consentement { display: flex; gap: 8px; align-items: flex-start; margin: 10px 0; font-size: 14px; line-height: 20px; cursor: pointer; }
footer .newsletter-block .newsletter-field .newsletter-consentement input { width: 18px; height: 18px; margin-top: 1px; flex: none; }
.reconnaissances img[src*="aptn"] { max-height: 34px; filter: grayscale(1); opacity: .75; }
footer .newsletter-block .newsletter-field::before { display: none; }
footer .newsletter-block .newsletter-ligne { position: relative; }
.reconnaissances img[src*="rme"] { max-height: 44px; opacity: .75; }
.reconnaissances img[src*="ortra-tc"] { max-height: 48px; filter: grayscale(1); opacity: .8; mix-blend-mode: multiply; }
/* Rangée des logos sur toute la largeur du texte. */
.reconnaissances { justify-content: space-between; gap: 16px 24px; }
.reconnaissances img[src*="ortra-tc"] { max-height: 64px; }
.reconnaissances img[src*="rme"] { max-height: 60px; }
.reconnaissances img[src*="asca"] { max-height: 44px; }
.reconnaissances img[src*="nvs"] { max-height: 30px; }
.reconnaissances img[src*="aptn"] { max-height: 46px; }
@media (max-width: 575px) {
	.reconnaissances { justify-content: space-around; }
	.reconnaissances img[src*="ortra-tc"] { max-height: 52px; }
	.reconnaissances img[src*="rme"] { max-height: 48px; }
}
