/*
Theme Name: MediCMS
Theme URI: https://medicms.be/
Description: Thème enfant de lecture urgente, polices système et navigation sans script.
Author: MediCMS
Template: twentytwentyfive
Version: 1.1
Text Domain: medicms
*/

/* Largeur : Segoe UI 20 px mesurée par GDI+ sur les paragraphes fournis, chasse moyenne 8,75–8,77 px ; 66 × 8,76 = 578,16 px ≈ 36 rem (576 px, 65,7–65,9 caractères). */
/* Cette mesure de fonte n'est pas un rendu navigateur ; la cible de 62–70 caractères reste dépendante de la pile système effective. */
/* Les clamp vont de 360 à 1260 px à racine 16 px ; fluid:false évite une seconde interpolation WordPress. */
/* Les alias manrope/fira-code remplacent les familles héritées par des piles système sans fichiers de fonte. */
/* Échelle d'espace : 10/20/30/40/50/60/70 = 4/8/12/16/24/32/48 px à racine 16 px ; les traits ne sont pas des espacements. */
/* Contrastes sRGB calculés, ordre des fonds : blanc #ffffff / secondaire #eef4f1 / alerte #fff2e8. */
/* Texte #1a2733 sur ces trois fonds : 15,1961 / 13,6373 / 13,8343:1. */
/* Repère #0f5f52 sur ces trois fonds : 7,5566 / 6,7814 / 6,8794:1 ; blanc sur repère : 7,5566:1. */
/* Sourdine #55636e sur ces trois fonds : 6,1835 / 5,5492 / 5,6293:1. */
/* Alerte #943a25 sur ces trois fonds : 7,2636 / 6,5185 / 6,6127:1. */
/* Trait #687c75 sur ces trois fonds : 4,4411 / 3,9856 / 4,0431:1 ; réservé aux contours, jamais au texte. */

/* 1 — Le chapeau est une surface de réponse compacte, intégrale, sans accroche ajoutée ni hauteur imposée. */
body .wp-block-post-content .medicms-chapo {
	box-sizing: border-box;
	margin-block: 0 var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--accent); /* Repère/secondaire : 6,7814:1. */
	border-block-start-width: 3px;
	border-radius: 0;
	background: var(--wp--preset--color--sable);
	color: var(--wp--preset--color--contrast); /* Texte/secondaire : 13,6373:1. */
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.5;
}

/* 2 — Le double contour et le libellé existant en gras signalent l'alerte même sans perception des couleurs. */
body .wp-block-post-content .medicms-alerte {
	margin-block: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--40);
	border: 3px double var(--wp--preset--color--alerte); /* Alerte/fond alerte : 6,6127:1 ; extérieur blanc : 7,2636:1. */
	border-radius: 0;
	background: var(--wp--preset--color--fond-alerte);
	color: var(--wp--preset--color--contrast); /* Texte/fond alerte : 13,8343:1. */
}
body .medicms-alerte > :first-child > strong:first-child {
	color: var(--wp--preset--color--alerte); /* Alerte/fond alerte : 6,6127:1. */
	font-weight: 700;
}

/* 3 — Le défilement conserve les relations de colonnes : les pages n'ont pas de data-label permettant des cartes accessibles. */
body .wp-block-post-content .medicms-tableau {
	max-width: 100%;
	min-width: 0;
	margin-block: var(--wp--preset--spacing--60);
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding-block-end: var(--wp--preset--spacing--20);
	scrollbar-color: var(--wp--preset--color--trait) var(--wp--preset--color--base); /* Trait/blanc : 4,4411:1. */
}

/* L'ombre de bord fonctionnelle occupe la bande sous la grille : elle ne passe jamais sous le texte et s'efface aux extrémités. */
body :is(.medicms-tableau, .medicms-rubriques) {
	background-color: var(--wp--preset--color--base);
	background-image:
		linear-gradient(to right, var(--wp--preset--color--base) 70%, transparent),
		linear-gradient(to left, var(--wp--preset--color--base) 70%, transparent),
		linear-gradient(to right, var(--wp--preset--color--trait), transparent),
		linear-gradient(to left, var(--wp--preset--color--trait), transparent); /* Bord trait/blanc : 4,4411:1 ; dégradé limité à la bande sans texte. */
	background-position: left bottom, right bottom, left bottom, right bottom;
	background-repeat: no-repeat;
	background-size: var(--wp--preset--spacing--60) var(--wp--preset--spacing--10), var(--wp--preset--spacing--60) var(--wp--preset--spacing--10), var(--wp--preset--spacing--40) var(--wp--preset--spacing--10), var(--wp--preset--spacing--40) var(--wp--preset--spacing--10);
	background-attachment: local, local, scroll, scroll;
}

/* Des cellules d'au moins 10 rem gardent les cinq ou six colonnes lisibles sans réduire les caractères. */
body .medicms-tableau table {
	width: 100%;
	min-width: 36rem;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	font-variant-numeric: lining-nums tabular-nums;
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
	background: var(--wp--preset--color--base);
}
/* Les seuils explicites sécurisent la largeur des grilles à cinq et six colonnes ; les cellules restent le repli sans :has(). */
body .medicms-tableau table:has(tr > :nth-child(5)) { min-width: 50rem; }
body .medicms-tableau table:has(tr > :nth-child(6)) { min-width: 60rem; }
body .medicms-tableau :is(th, td) {
	box-sizing: border-box;
	min-width: 10rem;
	padding: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1 ; trait/secondaire : 3,9856:1. */
	text-align: start;
	vertical-align: top;
	overflow-wrap: anywhere;
}
body .medicms-tableau th {
	background: var(--wp--preset--color--sable);
	color: var(--wp--preset--color--contrast); /* Texte/secondaire : 13,6373:1. */
	font-weight: 700;
}

/* Le titre du tableau conserve sa source et peut se replier sans couper une URL. */
body .medicms-tableau caption {
	caption-side: top;
	padding-block-end: var(--wp--preset--spacing--20);
	text-align: start;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
	background: var(--wp--preset--color--base);
	overflow-wrap: anywhere;
}

/* 4 — Les sections sont séparées en amont, les sous-sections restent attachées à leur texte. */
body .wp-block-post-content h2 {
	margin-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
}

/* Le premier intertitre prolonge la réponse en vert ; les sections suivantes rythment la lecture approfondie. */
body .wp-block-post-content > .medicms-chapo + h2 {
	margin-block-start: var(--wp--preset--spacing--50);
	padding-block-start: 0;
	border: 0;
	color: var(--wp--preset--color--accent); /* Repère/blanc : 7,5566:1. */
}
body .wp-block-post-content :is(h3, h4, h5, h6) {
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--20);
}

/* Les titres longs se replient sans taille spectaculaire ni mot dépassant de l'écran. */
body :is(.wp-block-post-title, .wp-block-post-content h2, .wp-block-post-content h3) {
	text-wrap: balance;
	overflow-wrap: anywhere;
}

/* 5 — Les références restent toutes ouvertes, dans un registre discret mais jamais miniaturisé. */
body .wp-block-post-content .medicms-sources {
	margin-block-start: var(--wp--preset--spacing--70);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body .wp-block-post-content .medicms-sources h2 {
	margin: 0 0 var(--wp--preset--spacing--20);
	padding: 0;
	border: 0;
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
}
body .medicms-sources ol { padding-inline-start: var(--wp--preset--spacing--50); }
body .wp-block-post-content .medicms-sources li + li { margin-block-start: var(--wp--preset--spacing--30); }

/* 6 — Le fil complet se replie ; aucune ellipse ne supprime la position dans le site. */
body .medicms-page .medicms-ariane {
	margin-block: 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
	overflow-wrap: anywhere;
}

/* La révision suit le contenu dans le DOM : sa longue réserve reste visible sans retarder la réponse. */
body .medicms-page .medicms-revision {
	margin-block: var(--wp--preset--spacing--50) 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}

/* Mesure du 17/09 sur la rubrique santé sexuelle : l'encadré suivait le chapeau avec le MÊME fond
   et le même contour. Deux surfaces identiques empilées, et le chapeau perdait son statut de
   réponse. Le fond plein est donc réservé au chapeau ; l'encadré passe sur fond blanc, tenu par un
   filet vertical. Il reste distinct du texte courant sans lui disputer la première place. */
body .wp-block-post-content .medicms-encadre {
	margin-block: var(--wp--preset--spacing--60);
	padding: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: 0;
	border-inline-start: 3px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	background: transparent;
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
}
body .wp-block-post-content .medicms-encadre .medicms-encadre-titre,
body .wp-block-post-content .medicms-encadre > p:first-child > strong:first-child {
	color: var(--wp--preset--color--accent); /* Repère/blanc : 7,5566:1. */
}
body :is(.medicms-alerte, .medicms-encadre) > :first-child { margin-block-start: 0; }
body :is(.medicms-alerte, .medicms-encadre) > :last-child { margin-block-end: 0; }
body .medicms-encadre-titre { font-weight: 700; }

/* Les surcharges complètent le parent conservé ; les marges d'ouverture restent petites à 360 px. */
body { color-scheme: light; scroll-behavior: auto; }
body { margin: 0; }
body .wp-site-blocks { padding-block: 0; }
body .wp-site-blocks > .medicms-page { margin-block-start: var(--wp--preset--spacing--20); }
body .medicms-page > .wp-block-post-title { margin-block: 0 var(--wp--preset--spacing--30); }
body .medicms-page > .wp-block-post-content { margin-block-start: 0; }
body .wp-block-post-content { min-width: 0; overflow-wrap: anywhere; }
body .wp-block-post-content :is(p, li) { max-width: 100%; }
body .wp-block-post-content li + li { margin-block-start: var(--wp--preset--spacing--20); }
body .medicms-liste-liens li { margin-block-end: var(--wp--preset--spacing--40); }
body .medicms-liste-liens li strong { display: block; }
body .medicms-liste-liens li span { color: var(--wp--preset--color--sourdine); font-size: var(--wp--preset--font-size--small); } /* Sourdine/blanc : 6,1835:1 ; secondaire : 5,5492:1. */

/* La marque et les rubriques partagent une seule rangée ; aucune navigation interactive WordPress n'est nécessaire. */
body .medicms-header {
	padding-block: var(--wp--preset--spacing--10);
	border-block-end: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
}
body .medicms-header .medicms-header-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	max-width: var(--wp--style--global--wide-size);
}
body .medicms-header .wp-block-site-title { flex: 0 0 auto; margin: 0; }
body .medicms-header .wp-block-site-title a { display: flex; align-items: center; min-height: 2.75rem; }
body .medicms-rubriques { min-width: 0; flex: 1 1 auto; overflow-x: auto; padding-block-end: var(--wp--preset--spacing--10); }
body .medicms-rubriques ul { display: flex; gap: var(--wp--preset--spacing--20); width: max-content; margin: 0; padding: 0 var(--wp--preset--spacing--10); list-style: none; }
body .medicms-rubriques li { flex: 0 0 auto; }
body .medicms-rubriques a { display: flex; align-items: center; min-height: 2.75rem; padding-inline: var(--wp--preset--spacing--20); white-space: nowrap; font-size: var(--wp--preset--font-size--small); }

/* Le pied distingue l'avertissement, les accès légaux et la signature en conservant exactement leurs textes. */
body .medicms-footer {
	margin-block-start: var(--wp--preset--spacing--70);
	padding-block: var(--wp--preset--spacing--60);
	border-block-start: 1px solid var(--wp--preset--color--trait); /* Trait/secondaire : 3,9856:1 ; extérieur blanc : 4,4411:1. */
	background: var(--wp--preset--color--sable);
	color: var(--wp--preset--color--sourdine); /* Sourdine/secondaire : 5,5492:1. */
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}
body .medicms-avertissement { margin-block: 0; }
body .medicms-avertissement strong { color: var(--wp--preset--color--contrast); } /* Texte/secondaire : 13,6373:1. */
body .medicms-liens-legaux ul { display: flex; flex-wrap: wrap; gap: 0 var(--wp--preset--spacing--40); padding: 0; margin: 0; list-style: none; }
body .medicms-liens-legaux a { display: inline-flex; align-items: center; min-height: 2.75rem; }
body .medicms-signature { margin-block-end: 0; }

/* Le soulignement identifie les liens sans dépendre du vert ; les trois surfaces autorisées restent contrastées. */
body a,
body a:visited {
	color: var(--wp--preset--color--accent); /* Repère/blanc : 7,5566:1 ; secondaire : 6,7814:1 ; fond alerte : 6,8794:1. */
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.15em;
}
body a:hover { text-decoration-thickness: 2px; }

/* Le focus intérieur reste visible dans les conteneurs défilants et atteint 6,7814:1 au minimum sur les fonds clairs. */
body :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent); /* Repère/blanc : 7,5566:1 ; secondaire : 6,7814:1 ; fond alerte : 6,8794:1. */
	outline-offset: -2px;
}

/* Les boutons hérités gardent le couple blanc/vert et un focus blanc visible sur leur fond foncé. */
body .wp-element-button,
body .wp-block-button__link,
body :is(.wp-element-button, .wp-block-button__link):is(:link, :visited, :hover, :active) {
	color: var(--wp--preset--color--base); /* Blanc/repère : 7,5566:1. */
	background: var(--wp--preset--color--accent);
}
body :is(.wp-element-button, .wp-block-button__link):focus-visible { outline-color: var(--wp--preset--color--base); } /* Blanc/repère : 7,5566:1. */

/* Les éventuels effets du parent sont neutralisés par surcharge, sans retirer sa feuille de style. */
body *, body *::before, body *::after { animation: none !important; transition: none !important; box-shadow: none !important; text-shadow: none !important; scroll-behavior: auto !important; }

/* La liste des questions d'entrée n'est pas une énumération : chaque entrée est une porte.
   Les puces ajoutaient un niveau de lecture sans rien apprendre. */
body .medicms-liste-liens {
	list-style: none;
	margin-block: var(--wp--preset--spacing--40);
	padding-inline-start: 0;
}
body .medicms-liste-liens > li {
	margin-block-end: var(--wp--preset--spacing--50);
	padding-inline-start: var(--wp--preset--spacing--40);
	border-inline-start: 2px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
}
body .medicms-liste-liens > li > strong { display: block; }
body .medicms-liste-liens > li > span {
	display: block;
	margin-block-start: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
}

/* ---------------------------------------------------------------------------
   SOMMAIRE DE PAGE
   Constat mesure le 17/09 sur un ecran de 1440 px : la colonne de texte fait 36 rem centree, il
   reste plus de 400 px de vide de chaque cote, pendant qu une fiche de prix aligne sept
   intertitres et deux tableaux. Le sommaire occupe cette marge. Il ne prend rien au texte : la
   colonne centrale garde EXACTEMENT sa largeur et sa position.
   Sous 1100 px, il redevient un bloc replie dans le flux, au-dessus du contenu.
   --------------------------------------------------------------------------- */

body .medicms-visually-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

body .medicms-sommaire {
	margin-block: 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
}
body .medicms-sommaire-mobile > summary {
	cursor: pointer;
	padding-block: var(--wp--preset--spacing--20);
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
	font-weight: 700;
}
body .medicms-sommaire ol {
	margin-block: var(--wp--preset--spacing--20) 0;
	padding-inline-start: var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body .medicms-sommaire li { margin-block-end: var(--wp--preset--spacing--20); }
body .medicms-sommaire li > a { text-decoration-thickness: 1px; }

/* Le raccourci rend DEUX presentations de la meme liste : un details natif pour le mobile, une
   liste simple pour le desktop. L exclusion etait annoncee en commentaire du PHP mais n avait
   jamais ete ecrite ici : les deux s affichaient, et le sommaire apparaissait en double sur
   chaque fiche. Mesure du 18/09, vue par Sam sur /archives/. */
body .medicms-sommaire-desktop { display: none; }

/* Une ancre ne colle pas le titre au bord haut de la fenetre. */
body .wp-block-post-content h2[id] { scroll-margin-block-start: var(--wp--preset--spacing--50); }

@media (min-width: 1100px) {
	/* Trois colonnes : marge du sommaire, colonne de texte inchangee, marge droite symetrique.
	   Conditionne a la PRESENCE d un sommaire : l accueil et les pages de service n en ont pas,
	   et la grille leur reservait quand meme la gouttiere de gauche. Resultat mesure le 18/09 :
	   400 px de vide a gauche et un contenu decale a droite sur la page d accueil. */
	body main.medicms-page:has(.medicms-sommaire) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(0, 36rem) minmax(0, 1fr);
		column-gap: var(--wp--preset--spacing--60);
		align-items: start;
	}
	body main.medicms-page:has(.medicms-sommaire) > * { grid-column: 2; }
	body main.medicms-page > .medicms-sommaire {
		grid-column: 1;
		grid-row: 3 / span 50;
		position: sticky;
		top: var(--wp--preset--spacing--50);
		justify-self: end;
		max-width: 15rem;
		margin-block: 0;
		padding-inline-end: var(--wp--preset--spacing--40);
		border-inline-end: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	}
	/* Sur grand ecran le sommaire est toujours ouvert : le replier n aurait aucun sens. On
	   bascule donc sur la liste simple, et on retire le details mobile au lieu de l afficher
	   en plus de lui. */
	body .medicms-sommaire-mobile { display: none; }
	body .medicms-sommaire-desktop { display: block; }
	body .medicms-sommaire-desktop > p {
		margin-block: 0 var(--wp--preset--spacing--20);
		color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
		font-weight: 700;
	}
	body .medicms-sommaire ol { padding-inline-start: var(--wp--preset--spacing--50); }

	/* Un tableau de cinq colonnes a la place de respirer ici : il deborde des deux cotes, sans
	   toucher a la longueur de ligne du texte, qui est un acquis. */
	body .wp-block-post-content .medicms-tableau {
		/* La regle de base pose max-width:100%, qui annulait tout elargissement : mesure a la
		   sonde, marge 0 et largeur 576 px alors que le tableau interne en demandait 641. */
		max-width: none;
		width: calc(100% + 2 * var(--wp--preset--spacing--70));
		margin-inline: calc(-1 * var(--wp--preset--spacing--70));
	}
}

/* L ancre d une section ne s affiche qu au survol ou au focus clavier. Visible en permanence,
   elle mettait un croisillon au bout de chaque intertitre : du bruit sur toutes les pages.
   Elle garde sa place reservee, donc son apparition ne decale jamais le titre. */
body .wp-block-post-content h2 > .medicms-ancre {
	margin-inline-start: 0.35em;
	opacity: 0;
	color: var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1, element d interface. */
	text-decoration: none;
	font-weight: 400;
}
body .wp-block-post-content h2:hover > .medicms-ancre,
body .wp-block-post-content h2 > .medicms-ancre:focus-visible {
	opacity: 1;
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}
@media (hover: none) {
	/* Sans survol possible, l ancre n a aucun moyen d apparaitre : on la retire du rendu. */
	body .wp-block-post-content h2 > .medicms-ancre { display: none; }
}

/* Mesure du 17/09 sur un ecran de 390 px : le sommaire depliait six entrees ENTRE le titre et la
   reponse, et repoussait le chapeau hors du premier ecran. Sur telephone, le chapeau EST le
   sommaire : il donne la reponse en entier. Le sommaire ne sert qu au balayage sur grand ecran,
   ou la marge est libre. Il n y est donc affiche qu a partir de 1100 px. */
body .medicms-sommaire { display: none; }
@media (min-width: 1100px) {
	body main.medicms-page > .medicms-sommaire { display: block; }
}

/* ---------------------------------------------------------------------------
   DIRECTION VISUELLE — 18/09/2026
   Les règles précédentes sont conservées et préfixées par body ; les surcharges
   suivantes remplacent leur présentation. Les mesures Segoe UI restent historiques.
   Les @font-face sont des déclarations de fonte, sans sélecteur à préfixer.

   Limite du périmètre des quatre fichiers : le PHP et le contenu actuels ne
   produisent pas .medicms-identite, les cinq blocs .medicms-rubriques-grille,
   leurs compteurs, ni aria-current sur la navigation HTML. Les styles sont prêts,
   mais ces données doivent être rendues côté serveur : rubrique réelle, date
   _medicms_maj, nombre de sources et nombre de fiches publiées par rubrique.
   Aucun chiffre, aucune date et aucun état courant ne sont simulés par CSS.
   La révision complète existante reste à sa place, avec sa réserve médicale.
   Le bandeau de confiance est rendu par footer.html, uniquement sur l'accueil.
   --------------------------------------------------------------------------- */

@font-face {
	font-family: "Source Serif 4";
	src: url("/wp-content/themes/medicms/fonts/SourceSerif4-latin.woff2") format("woff2");
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
}
@font-face {
	font-family: "Public Sans";
	src: url("/wp-content/themes/medicms/fonts/PublicSans-var.woff2") format("woff2");
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
}

body {
	--paper: #ffffff;
	--ink: #1a2733;
	--accent: #0f5f52;
	--on-accent: #ffffff;
	--sable: #eef4f1;
	--trait: #687c75;
	--sourdine: #55636e;
	--alerte: #943a25;
	--fond-alerte: #fff2e8;
	background: var(--paper);
	color: var(--ink); /* Texte/blanc : 15,1961:1. */
	font-family: "Public Sans", system-ui, sans-serif;
}
body :is(h1, h2, h3, h4, h5, h6, .wp-block-post-title) {
	font-family: "Source Serif 4", Georgia, serif;
	font-weight: 700;
	line-height: 1.1;
}
body :is(h1, .wp-block-post-title) {
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3rem);
}
body :is(.medicms-header, .medicms-footer, .medicms-confiance) {
	box-sizing: border-box;
	max-width: none;
	border-radius: 0;
}
body .wp-site-blocks > :is(header, footer) { margin-block: 0; }

/* Deux niveaux ; seule la bande sans texte conserve un dégradé fonctionnel. */
body .medicms-header {
	padding-block: 0;
	border: 0;
	background: var(--paper);
	color: var(--ink); /* Texte/blanc : 15,1961:1. */
}
body .medicms-header .medicms-header-row {
	box-sizing: border-box;
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0.25rem 1.5rem;
	width: 100%;
	max-width: 72rem;
	margin: 0 auto;
	padding: 1rem;
}
body .medicms-marque {
	margin: 0;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1.1;
}
body .medicms-header .medicms-marque a,
body .medicms-header .medicms-marque a:visited {
	display: inline-flex;
	align-items: baseline;
	min-height: 2.75rem;
	color: var(--ink); /* Texte/blanc : 15,1961:1. */
	text-decoration: none;
}
body .medicms-header .medicms-marque-point {
	color: var(--accent); /* Repère/blanc : 7,5566:1. */
}
body .medicms-promesse {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body .medicms-header .medicms-rubriques {
	box-sizing: border-box;
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 0;
	background-color: var(--accent);
	color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
	background-image:
		linear-gradient(to right, var(--accent) 70%, transparent),
		linear-gradient(to left, var(--accent) 70%, transparent),
		linear-gradient(to right, var(--on-accent), transparent),
		linear-gradient(to left, var(--on-accent), transparent);
	background-size: 2rem 0.25rem, 2rem 0.25rem, 1rem 0.25rem, 1rem 0.25rem;
	/* Bord blanc/repère : 7,5566:1 ; bande fonctionnelle réservée sous les liens. */
	overscroll-behavior-inline: contain;
	scrollbar-color: var(--on-accent) var(--accent); /* Blanc/repère : 7,5566:1. */
}
body .medicms-header .medicms-rubriques ul {
	box-sizing: border-box;
	gap: 0;
	width: max-content;
	min-width: min(100%, 72rem);
	margin: 0 auto;
	padding: 0 1rem 0.25rem;
}
body .medicms-header .medicms-rubriques a {
	box-sizing: border-box;
	min-height: 2.75rem;
	padding: 0.5rem 1rem;
	border-block-end: 3px solid transparent;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.25;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
	text-decoration: none;
}
body .medicms-header .medicms-rubriques a:hover { text-decoration: underline; }
body .medicms-header .medicms-rubriques a[aria-current="page"],
body .medicms-header .medicms-rubriques a[aria-current="location"] {
	border-block-end-color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}
body .medicms-header .medicms-rubriques a:focus-visible {
	outline-color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}

/* Fiche : colonne et grille du sommaire inchangées. */
body .medicms-page > .wp-block-post-title {
	margin-block: 0 1rem;
	line-height: 1.1;
}
body .medicms-page .medicms-identite {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.25rem 0.5rem;
	margin-block: 0 1.5rem;
	padding-block: 0.25rem 1rem;
	border-block-end: 1px solid var(--trait); /* Trait/blanc : 4,4411:1 ; contour uniquement. */
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 0.8rem;
	line-height: 1.5;
	color: var(--ink); /* Texte/blanc : 15,1961:1. */
}
body .medicms-identite .medicms-identite-rubrique {
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
body .wp-block-post-content .medicms-chapo {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--ink); /* Texte/blanc : 15,1961:1. */
	font-size: 1.1875rem;
	line-height: 1.6;
}
body .wp-block-post-content .medicms-sources {
	box-sizing: border-box;
	padding: 1.5rem;
	border-block-start: 3px solid var(--accent); /* Repère/secondaire : 6,7814:1. */
	background: var(--sable);
	color: var(--sourdine); /* Sourdine/secondaire : 5,5492:1. */
}
body .wp-block-post-content .medicms-sources h2 {
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.75rem;
	color: var(--ink); /* Texte/secondaire : 13,6373:1. */
}
body .wp-block-post-content .medicms-sources a,
body .wp-block-post-content .medicms-sources a:visited {
	color: var(--accent); /* Repère/secondaire : 6,7814:1. */
}

/* Le details natif est replié dans le HTML existant, sans modifier la gouttière. */
@media (max-width: 1099px) {
	body .medicms-sommaire { display: block; }
	body .medicms-sommaire-mobile { display: block; }
	body .medicms-sommaire-desktop { display: none; }
}
body .medicms-sommaire-mobile > summary {
	box-sizing: border-box;
	min-height: 2.75rem;
}
body .medicms-sommaire li > a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}

/* Accueil existant : aucune réécriture du texte, première question pleine largeur. */
body.home main.medicms-page { display: block; }
body.home main.medicms-page > .medicms-sommaire { display: none; }
body.home main.medicms-page > :is(.wp-block-post-title, .wp-block-post-content) {
	width: 100%;
	max-width: 72rem;
}
body.home main.medicms-page > .wp-block-post-title {
	margin-block: 2rem 1.5rem;
	font-size: clamp(2.6rem, 1.6rem + 4vw, 4.25rem);
	line-height: 1.05;
	text-wrap: balance;
}
body.home .wp-block-post-content > .medicms-chapo {
	max-width: 36rem;
	margin-inline: 0 !important;
	margin-block-end: 3rem;
}
body.home .wp-block-post-content > h2 {
	max-width: 72rem;
	margin-block: 3rem 1.5rem;
	padding: 0;
	border: 0;
}
body.home .wp-block-post-content > p {
	max-width: 36rem;
	margin-inline: 0 !important;
}
body.home .wp-block-post-content > .medicms-liste-liens {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	max-width: 72rem;
	margin-block: 1.5rem 3rem;
	padding: 0;
}
body.home .medicms-liste-liens > li {
	min-width: 0;
	margin: 0;
	padding-inline-start: 1rem;
	border-inline-start: 2px solid var(--trait); /* Trait/blanc : 4,4411:1 ; contour uniquement. */
}
body.home .medicms-liste-liens > li > strong {
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.4;
}
body.home .medicms-liste-liens > li > strong > a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}
body.home .medicms-liste-liens > li > span {
	font-size: 1rem;
	color: var(--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body.home .medicms-liste-liens > li:first-child {
	grid-column: 1 / -1;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 0;
	background: var(--sable);
	color: var(--ink); /* Texte/secondaire : 13,6373:1. */
}
body.home .medicms-liste-liens > li:first-child > strong {
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.75rem;
	line-height: 1.1;
}
body.home .medicms-liste-liens > li:first-child > strong > a {
	color: var(--accent); /* Repère/secondaire : 6,7814:1. */
}
body.home .medicms-liste-liens > li:first-child > span {
	max-width: 36rem;
	color: var(--ink); /* Texte/secondaire : 13,6373:1. */
}

/* Contrat de présentation des cinq rubriques ; compteurs exclusivement serveur. */
body.home .wp-block-post-content .medicms-rubriques-grille {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	max-width: 72rem;
	padding: 0;
	list-style: none;
}
body.home .medicms-rubriques-grille > * { min-width: 0; margin: 0; }
body.home .medicms-rubriques-grille :is(h2, h3) {
	margin: 0 0 0.5rem;
	padding: 0;
	border: 0;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.25rem;
}
body.home .medicms-rubriques-grille p {
	margin-block: 0.5rem;
	font-size: 1rem;
	color: var(--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body.home .medicms-rubriques-grille .medicms-compte {
	font-variant-numeric: lining-nums tabular-nums;
	font-weight: 600;
	color: var(--accent); /* Repère/blanc : 7,5566:1. */
}

/* Bandeau et pied : le blanc reste opaque pour tous les états de liens. */
body .medicms-confiance {
	display: none;
	margin-block: 3rem 0;
	padding-block: 1.5rem;
	background: var(--accent);
	color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}
body.home .medicms-confiance { display: block; }
body .medicms-confiance ul {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem 2rem;
	max-width: 72rem;
	margin: 0 auto;
	padding: 0 1rem;
	list-style: none;
}
body .medicms-confiance a {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.5;
}
body .medicms-footer {
	margin-block-start: 3rem;
	padding-block: 3rem 2rem;
	border: 0;
	background: var(--accent);
	color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}
body.home .medicms-footer { margin-block-start: 0; }
body .medicms-footer-grid {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	max-width: 72rem;
	margin: 0 auto;
	padding-inline: 1rem;
}
body .medicms-footer-grid > * { min-width: 0; }
body .medicms-footer .medicms-marque { margin-block: 0 1rem; }
body .medicms-footer .medicms-marque a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	text-decoration: none;
}
body .medicms-footer .medicms-footer-titre {
	margin: 0 0 0.75rem;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: 1.25rem;
	line-height: 1.1;
}
body .medicms-footer :is(.medicms-liens-rubriques, .medicms-liens-legaux) ul {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
}
body .medicms-footer nav a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
	padding-block: 0.25rem;
}
body .medicms-footer :is(a, a:visited, a:hover, a:active, strong, h2),
body .medicms-confiance :is(a, a:visited, a:hover, a:active) {
	color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}
body :is(.medicms-footer, .medicms-confiance) a:focus-visible {
	outline-color: var(--on-accent); /* Blanc/repère : 7,5566:1. */
}
body .medicms-footer .medicms-signature {
	box-sizing: border-box;
	max-width: 72rem;
	margin: 2rem auto 0;
	padding: 1.5rem 1rem 0;
	border-block-start: 1px solid var(--on-accent); /* Blanc/repère : 7,5566:1. */
}

@media (max-width: 699px) {
	body .medicms-header .medicms-header-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.25rem;
		padding-block: 0.75rem;
	}
	body .medicms-promesse { font-size: 0.75rem; }
}
@media (min-width: 760px) {
	body.home .wp-block-post-content > .medicms-liste-liens,
	body.home .wp-block-post-content .medicms-rubriques-grille {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	body .medicms-footer-grid {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
	}
	body .medicms-confiance ul {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* ---------------------------------------------------------------------------
   Ligne d'identite sous le titre d'une fiche. Signature 2 de la direction du
   18/09 : la promesse du site — rubrique, date de verification, nombre de
   sources — devient un element de composition, lu AVANT le texte, et non une
   note de bas de page. Le filet la separe du corps.
   --------------------------------------------------------------------------- */
body .medicms-identite {
	margin-block: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	padding-block-end: var(--wp--preset--spacing--30);
	border-block-end: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body .medicms-identite-rubrique {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-weight: 700;
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}
body .medicms-identite > span[aria-hidden] {
	margin-inline: 0.4em;
	color: var(--wp--preset--color--trait); /* Trait reserve aux signes, jamais au texte lu. */
}

/* ---------------------------------------------------------------------------
   Image a la une. Elle deborde legerement la colonne de lecture pour exister
   sans la retrecir : la longueur de ligne a 36 rem est un acquis mesure, on ne
   la touche pas. Ratio fige a 1200x630 pour que la page ne saute pas pendant
   le chargement. Pas de personne sur ces images : ce sont des objets et des
   lieux, decides a la generation.
   --------------------------------------------------------------------------- */
body .medicms-couverture {
	margin-block: 0 var(--wp--preset--spacing--60);
}
body .medicms-couverture img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1200 / 630;
	object-fit: cover;
	border-radius: 0;
	background: var(--wp--preset--color--sable);
}

@media (min-width: 1100px) {
	body main.medicms-page:has(.medicms-sommaire) > .medicms-couverture {
		width: calc(100% + var(--wp--preset--spacing--70));
		max-width: none;
	}
}

/* ---------------------------------------------------------------------------
   Les rubriques de l'accueil, en blocs. Elles etaient un mur de prose : quatre
   paragraphes enchaines ou le lecteur ne voyait aucune porte d'entree. Le
   nombre de fiches est calcule depuis le manifeste, jamais ecrit a la main :
   c'est un repere de serieux, il doit donc etre vrai.
   --------------------------------------------------------------------------- */
body .medicms-rubriques-grille {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-block: var(--wp--preset--spacing--50);
	padding: 0;
	list-style: none;
}
@media (min-width: 760px) {
	body .medicms-rubriques-grille { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
body .medicms-rubriques-grille > li {
	margin: 0;
	padding: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	border-block-start: 3px solid var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
	background: var(--wp--preset--color--base);
}
body .medicms-rubriques-grille > li > a {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	text-decoration: none;
}
body .medicms-rub-nom {
	font-family: var(--wp--preset--font-family--titre);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	line-height: 1.15;
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
body .medicms-rub-compte {
	flex: 0 0 auto;
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: lining-nums tabular-nums;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
body .medicms-rub-ligne {
	display: block;
	margin-block-start: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
}

/* ---------------------------------------------------------------------------
   Carte auteur, en pied de fiche. Elle a pris la place du bandeau de revision
   retire le 18/09 : ce bandeau commentait le processus editorial du site et
   annoncait sa propre faiblesse. Un nom, un visage et un lien disent la meme
   chose sans parler du site.
   --------------------------------------------------------------------------- */
body .medicms-auteur {
	display: flex;
	align-items: flex-start;
	gap: var(--wp--preset--spacing--40);
	margin-block: var(--wp--preset--spacing--70) 0;
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 3px solid var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}
body .medicms-auteur-portrait {
	flex: 0 0 auto;
	width: 4.5rem;
	height: 4.5rem;
	border-radius: 50%;
	object-fit: cover;
	background: var(--wp--preset--color--sable);
}
body .medicms-auteur-texte { min-width: 0; }
body .medicms-auteur-nom {
	margin: 0;
	font-family: var(--wp--preset--font-family--titre);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	line-height: 1.2;
}
body .medicms-auteur-nom a {
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
	text-underline-offset: 0.15em;
}
body .medicms-auteur-role {
	margin-block: var(--wp--preset--spacing--20) 0;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.5;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
