/* ==========================================================================
   Qualité — fiche réglementaire, résultats, contacts.
   Même vocabulaire que la fiche : filets fins, capitales espacées pour les
   intitulés, encre sur crème. Aucune couleur nouvelle.
   ========================================================================== */

/* Jetons : style.css ne les déclare que sur les gabarits PHP (.soform-formation,
   .soform-archive…). Sur les pages en blocs Greenshift, les composants de la
   rubrique n'en héritaient pas — fonds, contours et couleurs tombaient à
   `transparent` et à la couleur du texte. Mêmes valeurs, même source (palette Blocksy). */
.soform-certif,
.soform-liens-externes,
.soform-resultats {
	--soform-encre: var(--theme-palette-color-1, #17120f);
	--soform-accent: var(--theme-palette-color-2, #6b5a4c);
	--soform-texte: var(--theme-palette-color-3, #3d342e);
	--soform-texte-2: var(--theme-palette-color-4, #8c7f74);
	--soform-section: var(--theme-palette-color-7, #ede3d9);
	--soform-page: var(--theme-palette-color-8, #f6f0ea);
	--soform-carte: #ffffff;
	--soform-filet: rgba(23, 18, 15, 0.12);
}

/* Fiche réglementaire : neuf rubriques en colonnes à filet (voir style.css,
   « Informations pratiques »). Les listes remplacent le paragraphe unique. */

.soform-formation__reglementaire .soform-section-intro {
	margin-bottom: 40px;
}

.soform-formation__reglementaire .soform-section-intro h2 {
	margin-bottom: 12px;
}

.soform-formation__reglementaire .soform-section-intro p {
	margin: 0;
	font-size: var(--soform-corps, 16px);
	color: var(--soform-texte-2);
}

.soform-notice {
	row-gap: 48px;
}

.soform-notice__liste {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.soform-notice__liste li {
	position: relative;
	margin: 0;
	padding-left: 16px;
	font-size: 14px;
	line-height: 1.58;
	color: var(--soform-texte);
}

.soform-notice__liste li::before {
	content: "";
	position: absolute;
	top: 0.72em;
	left: 0;
	width: 6px;
	height: 1px;
	background-color: var(--soform-accent);
}

.soform-notice .soform-info-card p + p {
	margin-top: 8px;
}

.soform-notice a,
.soform-certif a,
.soform-resultats a,
.soform-liens-externes a {
	color: var(--soform-encre);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.soform-notice a:hover,
.soform-certif a:hover,
.soform-resultats a:hover,
.soform-liens-externes a:hover {
	color: var(--soform-accent);
}

.soform-notice__contact {
	font-variant-numeric: tabular-nums;
}

/* Panneau d'inscription */

.soform-panel__note--centre {
	text-align: center;
}

.soform-panel__contact {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--soform-texte-2);
}

.soform-panel__contact a {
	color: var(--soform-encre);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.soform-panel__note a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Certification visée */

.soform-certif,
.soform-resultats--fiche {
	margin-top: 64px;
	padding-top: 40px;
	border-top: 1px solid rgba(23, 18, 15, 0.15);
}

.soform-certif__titre,
.soform-resultats__titre {
	margin: 0 0 24px;
	font-family: "Plus Jakarta Sans", var(--theme-font-family, inherit);
	font-size: 17px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	color: var(--soform-encre);
}

/* Certification échue : la phrase d'explication passe avant les champs. */
.soform-certif__note {
	max-width: 760px;
	margin: -8px 0 24px;
	color: var(--soform-texte-2);
}

.soform-certif__liste {
	max-width: 760px;
	margin: 0;
	padding: 0;
	border: 0;
}

.soform-certif__liste div {
	display: grid;
	grid-template-columns: 200px minmax(0, 1fr);
	gap: 24px;
}

.soform-certif__liste dt {
	font-size: 12px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--soform-texte-2);
}

.soform-certif__liste dd {
	margin: 0;
	font-size: 15px;
	color: var(--soform-encre);
}

.soform-liens-externes {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 24px 0 0;
	padding: 0;
	list-style: none;
}

.soform-liens-externes li {
	margin: 0;
	font-size: 15px;
	line-height: 1.5;
}

.soform-liens-externes a::after {
	content: " ↗";
	text-decoration: none;
	display: inline-block;
	margin-left: 2px;
}

/* Résultats

   Grille de cartes : sur la page Résultats le composant sort de la colonne de
   lecture et prend la largeur de la section (voir PLEINE_LARGEUR dans
   gen_inner.py) — trois cartes par rangée à 1440 px, une sur mobile. En
   auto-fit, une carte seule (le CAP) s'étire sur toute la rangée. */

.soform-resultats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr));
	gap: 24px;
	align-items: stretch;
}

/* Le texte « aucun résultat » et les liens d'apprentissage occupent la rangée. */
.soform-resultats > :not(.soform-resultat) {
	grid-column: 1 / -1;
}

/* La carte du CAP porte six indicateurs : elle garde toute la largeur. */
.soform-resultat--cap {
	grid-column: 1 / -1;
}

.soform-resultat {
	display: flex;
	flex-direction: column;
}

/* Les chiffres absorbent la hauteur libre : le pied (formations concernées,
   date) descend en bas de chaque carte et s'aligne d'une carte à l'autre sur
   une même rangée, sans perdre sa marge. */
.soform-resultat__chiffres {
	flex: 1 0 auto;
	align-content: start;
}

.soform-resultats--fiche {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.soform-resultats--fiche .soform-resultats__titre {
	margin-bottom: 4px;
}

.soform-resultat {
	padding: 32px;
	border-radius: 16px;
	background-color: var(--soform-carte);
	box-shadow: 0 16px 40px rgba(23, 18, 15, 0.08);
}

.soform-resultat__entete .soform-eyebrow {
	margin: 0 0 8px;
}

.soform-resultat__entete h3 {
	margin: 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	letter-spacing: 0;
	text-transform: none;
	color: var(--soform-encre);
}

.soform-resultat__contexte {
	margin: 6px 0 0;
	font-size: 14px;
	color: var(--soform-texte-2);
}

/* Dit UNE fois ce que six cases répétaient.

   Quand aucun indicateur n'est encore calculable, chaque case affichait la même
   phrase — six fois de suite, sur trois pages. L'absence se dit ici, en tête, et
   les lignes ne portent plus qu'un tiret. Les six intitulés restent visibles :
   l'auditeur doit voir que les indicateurs sont traités. */
.soform-resultat__attente {
	margin: 24px 0 0;
	font-size: 15px;
	line-height: 1.55;
	color: var(--soform-texte-2);
}

.soform-resultat__attente + .soform-resultat__chiffres {
	margin-top: 20px;
}

.soform-resultat__chiffres {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 24px 32px;
	margin: 28px 0 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--soform-filet);
}

.soform-resultat__chiffre {
	margin: 0;
}

.soform-resultat__chiffre dt {
	font-size: 12px;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: var(--soform-texte-2);
}

.soform-resultat__valeur {
	margin: 6px 0 0;
	font-size: 32px;
	font-weight: 700;
	line-height: 1.18;
	font-variant-numeric: tabular-nums;
	color: var(--soform-encre);
}

/* « Non disponible » ne doit pas se lire comme un chiffre. */
.soform-resultat__chiffre.is-indisponible .soform-resultat__valeur {
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--soform-texte-2);
}

.soform-resultat__def {
	margin: 6px 0 0;
	font-size: 13px;
	line-height: 1.5;
	color: var(--soform-texte-2);
}

.soform-resultat__pied {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--soform-filet);
}

.soform-resultat__pied p {
	margin: 0;
	font-size: 13px;
	line-height: 1.6;
	color: var(--soform-texte);
}

.soform-resultat__pied strong {
	font-weight: 600;
	color: var(--soform-encre);
}

.soform-resultat__maj {
	color: var(--soform-texte-2) !important;
}

.soform-resultats__vide,
.soform-resultats__lien {
	margin: 0;
	font-size: 15px;
	line-height: 1.6;
	color: var(--soform-texte);
}

@media (max-width: 689.98px) {
	.soform-certif__liste div {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}

	.soform-resultat {
		padding: 24px 20px;
	}

	.soform-resultat__valeur {
		font-size: 28px;
	}
}

