/*
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. */
/* L image s intercale desormais entre le chapo et le premier intertitre : la regle d adjacence
   doit accepter les deux. */
body .wp-block-post-content > :is(.medicms-chapo, .medicms-couverture) + 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 {
	/* Cible tactile (mesure du 26/09 en 390 px) : le lien de titre ne faisait que
	   27 px de haut alors que ce meme theme impose partout ailleurs min-height:
	   2.75rem. La position relative ne sert qu'a l'aire cliquable ci-dessous ; la
	   mise en page ne bouge pas d'un pixel. */
	position: relative;
	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-rubriques-grille > li > a::after {
	/* Aire cliquable de la carte entiere : ~334 x 150 px au lieu de 334 x 27 px.
	   Position absolue rapportee au li : aucun flux, aucune marge, aucun reflow. */
	content: "";
	position: absolute;
	inset: 0;
}
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. */
}

/* ---------------------------------------------------------------------------
   Recherche. Sur 65 pages il n'y en avait aucune : un lecteur qui cherchait
   « saignement sous sterilet » devait deviner la rubrique. Formulaire GET natif,
   zero script. Mesure du 18/09, apres critique exterieure du front.
   --------------------------------------------------------------------------- */
body .medicms-recherche {
	display: flex;
	flex: 0 0 auto;
	gap: 0;
	margin-inline-start: auto;
}
body .medicms-recherche input[type="search"] {
	box-sizing: border-box;
	min-width: 0;
	width: 12rem;
	min-height: 2.75rem;
	padding-inline: var(--wp--preset--spacing--30);
	border: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	border-inline-end: 0;
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--wp--preset--font-size--small);
}
body .medicms-recherche input[type="search"]::placeholder {
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
	opacity: 1;
}
body .medicms-recherche button {
	flex: 0 0 auto;
	min-height: 2.75rem;
	padding-inline: var(--wp--preset--spacing--40);
	border: 1px solid var(--wp--preset--color--accent);
	border-radius: 0;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--base); /* Blanc sur repere : 7,5566:1. */
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	cursor: pointer;
}

/* Sous 760 px la recherche passe sous le mot-signe et prend toute la largeur : c'est le premier
   geste utile de la page, il ne doit pas etre reduit a une loupe. */
@media (max-width: 759px) {
	body .medicms-recherche { width: 100%; margin-inline-start: 0; margin-block-start: var(--wp--preset--spacing--20); }
	body .medicms-recherche input[type="search"] { width: 100%; }
}

/* Sous 480 px, la promesse du bandeau passe sur deux lignes et coute 45 px avant le champ de
   recherche, mesures prises sur capture 390 px du 18/09. Or c est la recherche que vient
   chercher quelqu un avec une question precise, souvent en urgence. La promesse est repetee
   dans le pied de page et dans la description de chaque page : elle n est pas perdue. */
@media (max-width: 479px) {
	body .medicms-promesse { display: none; }
}

/* ---------------------------------------------------------------------------
   Corrections issues de la critique exterieure du 18/09.
   --------------------------------------------------------------------------- */

/* 1 — La navigation mobile n'expose que deux rubriques et demie : le defilement horizontal
   existe mais rien ne le signale, donc trois rubriques sont perdues. Sous 760 px elle passe en
   grille sur deux lignes, chaque cible entierement visible. */
@media (max-width: 759px) {
	body .medicms-rubriques { overflow-x: visible; background-image: none; }
	body .medicms-rubriques ul {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		width: auto;
		gap: 0;
	}
	body .medicms-rubriques a { justify-content: flex-start; font-size: var(--wp--preset--font-size--small); }
}

/* 2 — L'image a la une prenait plusieurs centaines de pixels et repoussait la reponse sous le
   pli, alors qu'elle ne porte aucune information. On la borne : elle accompagne, elle n'ouvre
   plus la page. */
body .medicms-couverture img { max-height: 19rem; }

/* 3 — Le pied empilait douze liens sur une colonne a 390 px : la nappe verte devenait une
   seconde page a faire defiler. Les deux groupes passent cote a cote, le bloc d identite garde
   toute la largeur puisqu il porte du texte courant. Mesure du 18/09 sur capture reelle. */
@media (max-width: 759px) {
	body .medicms-footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		column-gap: var(--wp--preset--spacing--40);
	}
	body .medicms-footer-identite { grid-column: 1 / -1; }
}

/* 4 — Trois mesures typographiques prises sur capture le 18/09, colonne de 36 rem.
   a) Les intertitres montaient a 2,25 rem : environ 30 signes par ligne, quand les titres en
      font 40 a 45. Quatre H2 sur cinq se repliaient sur deux lignes, et la page prenait un air
      de maquette. Plafond ramene a 1,9 rem : les memes titres tiennent sur une ligne.
   b) Le texte des tableaux etait en « small » (15 a 16 px) face a un corps de 18 a 20 px.
      L element le PLUS dense de la page etait le plus petit. Il rejoint le corps de texte.
   c) Le sommaire en gouttiere n avait pas de taille propre et heritait du petit. */
body .wp-block-post-content h2 {
	font-size: clamp(1.5rem, 1.28rem + 0.75vw, 1.9rem);
}

/* d) Un titre de 65 signes se coupait n importe ou : « IST : se faire depister, / comprendre un /
      resultat, se faire soigner ». Le navigateur sait equilibrer les lignes d un titre lui-meme.
      « pretty » evite en plus le mot seul en fin de paragraphe. Aucun script, aucun repli a
      prevoir : un navigateur qui ignore ces valeurs revient au comportement actuel. */
body :is(h1, h2, h3, h4, h5, h6, .wp-block-post-title, caption, summary) {
	text-wrap: balance;
}
body :is(p, li, td) {
	text-wrap: pretty;
}

body .medicms-tableau table {
	font-size: clamp(1rem, 0.95rem + 0.22vw, 1.125rem);
}
body .medicms-tableau :is(th, td) { padding: var(--wp--preset--spacing--30); }

@media (min-width: 1100px) {
	body .medicms-sommaire-desktop > p { font-size: 1rem; }
	body .medicms-sommaire-desktop ol {
		font-size: 0.9375rem;
		line-height: 1.45;
	}
	body .medicms-sommaire-desktop li { margin-block-end: 0.5rem; }
}
@media (min-width: 1100px) {
	body main.medicms-page:has(.medicms-sommaire) > .medicms-couverture { width: 100%; }
}

/* 3 — Les sources sont l'argument de confiance du site et portaient la plus petite typographie
   de la page. Elles remontent au corps du texte secondaire, sur leur propre surface. */
body .wp-block-post-content .medicms-sources {
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--sable);
	border-block-start: 3px solid var(--wp--preset--color--accent); /* Repere/secondaire : 6,7814:1. */
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--contrast); /* Texte/secondaire : 13,6373:1. */
}
body .wp-block-post-content .medicms-sources li { margin-block-end: var(--wp--preset--spacing--30); }

/* 4 — Plancher typographique du texte de service. Le reflexe « tout ce qui n'est pas article
   passe en 11 px » rendait illisibles la ligne d'identite, le sommaire et la bio. */
body :is(.medicms-identite, .medicms-sommaire, .medicms-auteur-role, .medicms-promesse) {
	font-size: max(0.8125rem, var(--wp--preset--font-size--small));
}
body .medicms-sommaire ol { line-height: 1.6; }

/* L'image accompagne la reponse, elle ne la precede plus : posee apres le chapo par un filtre
   PHP depuis le 18/09. Elle reste dans la colonne de lecture, sans deborder. */
body .wp-block-post-content .medicms-couverture {
	margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
}
body .wp-block-post-content .medicms-couverture img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 17rem;
	object-fit: cover;
	border-radius: 0;
}

/* Le filet horizontal marque les SECTIONS, pas les sous-sections : sans cette distinction, la
   page prenait un rythme mecanique ou tout avait le meme poids. Critique du 18/09. */
body .wp-block-post-content h3 {
	margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
	padding-block-start: 0;
	border-block-start: 0;
	font-size: var(--wp--preset--font-size--large);
}

/* ---------------------------------------------------------------------------
   Critique du 18/09, suite. Deux corrections de composition.
   --------------------------------------------------------------------------- */

/* 1 — Les six questions reprennent le MEME composant. La premiere recevait une surface teintee
   et un titre serif de 1,75 rem, sans qu aucune raison editoriale ne le justifie : pour un
   lecteur venu avec une autre urgence, sa question paraissait secondaire. */
body.home .medicms-liste-liens > li:first-child {
	grid-column: auto;
	padding: 0 0 0 var(--wp--preset--spacing--40);
	border: 0;
	border-inline-start: 2px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1. */
	background: transparent;
}
body.home .medicms-liste-liens > li:first-child > strong {
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1.35;
}
body.home .medicms-liste-liens > li:first-child > strong > a {
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}

/* 2 — La carte auteur parlait un autre langage que le bloc des sources, juste au-dessus : elle
   ressemblait a un composant ajoute apres coup. Meme surface, meme largeur, meme filet. */
body .medicms-auteur {
	margin-block: var(--wp--preset--spacing--50) 0;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--sable);
	border-block-start: 3px solid var(--wp--preset--color--accent); /* Repere/secondaire : 6,7814:1. */
	align-items: center;
}
body .medicms-auteur-portrait { width: 3.5rem; height: 3.5rem; }
body .medicms-auteur-nom { font-size: var(--wp--preset--font-size--medium); }

/* --- Les delais de l accueil -------------------------------------------------------
   Deux blocs de l accueil etaient des listes de faits ecrites en paragraphe : ils
   tenaient sur 36 rem quand les grilles voisines occupaient 72 rem, et la page
   alternait donc deux largeurs sans raison lisible. Remis en grille, ils remplissent
   l axe et redeviennent ce qu ils sont.
   Le chiffre EST la composition : c est ce que cherche un lecteur presse, et c est le
   seul element de la page qui porte une mesure. Il passe devant le titre. Pas de cadre
   ici : un filet haut suffit, et l accueil garde deux familles de modules, pas trois. */
body .medicms-delais {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
	max-width: 72rem;
	margin-block: 1.5rem 3rem;
	padding: 0;
	list-style: none;
}
body .medicms-delais > li {
	min-width: 0;
	margin: 0;
	padding-block-start: 1rem;
	border-block-start: 3px solid var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}
body .medicms-delai-chiffre {
	display: block;
	margin-block-end: 0.25rem;
	font-family: "Source Serif 4", Georgia, serif;
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	line-height: 1.1;
	font-variant-numeric: lining-nums tabular-nums;
	color: var(--wp--preset--color--accent); /* Repere/blanc : 7,5566:1. */
}
body .medicms-delais > li > strong {
	display: block;
	margin-block-end: 0.375rem;
	font-family: "Public Sans", system-ui, sans-serif;
	font-size: 1.0625rem;
	line-height: 1.4;
}
body .medicms-delais > li > strong > a {
	display: inline-flex;
	align-items: center;
	min-height: 2.75rem;
}
body .medicms-delai-ligne {
	display: block;
	font-size: 1rem;
	line-height: 1.55;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}
@media (min-width: 760px) {
	body .medicms-delais { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	body .medicms-delais-paire { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ---------------------------------------------------------------------------
   Corrections issues de la critique exterieure du 18/09 au soir.
   --------------------------------------------------------------------------- */

/* 6 — Chaque cellule portait un trait sur ses quatre cotes : toutes pesaient pareil et la lecture
   devenait celle d un tableur, alors que ces tableaux servent a decider vite. On garde le seul
   separateur horizontal, et la premiere colonne porte le repere. */
body .medicms-tableau :is(th, td) {
	border: 0;
	border-block-end: 1px solid var(--wp--preset--color--trait); /* Trait/blanc : 4,4411:1, contour seul. */
}
body .medicms-tableau thead th {
	border-block-end-width: 2px;
	background: transparent;
}
body .medicms-tableau tbody th[scope="row"] {
	width: 31%;
	background: transparent;
	font-weight: 700;
}
body .medicms-tableau tbody tr:last-child :is(th, td) { border-block-end: 0; }

/* 7 — Sur l accueil le premier intertitre etait vert et les trois suivants noirs, sans qu aucune
   difference de fonction ne le justifie. Le vert reste aux chiffres, aux liens et aux reperes.
   Sur une fiche il garde son role : il prolonge la reponse du chapo. */
body.home .wp-block-post-content > :is(.medicms-chapo, .medicms-couverture) + h2 {
	color: var(--wp--preset--color--contrast); /* Texte/blanc : 15,1961:1. */
}

/* 8 — Quatre modules, trois grammaires de contenant : trait a gauche pour les questions, trait en
   haut pour les delais, cadre complet ET trait en haut pour les rubriques. Les cartes de rubrique
   abandonnent leur cadre lateral, qui leur donnait l air d un champ de formulaire. */
body .medicms-rubriques-grille > li {
	border-inline: 0;
	border-block-end: 0;
}

/* 9 — La cinquieme carte restait seule sur une troisieme ligne : ce blanc-la ressemblait a une
   carte manquante. Six colonnes logiques donnent trois cartes puis deux, sans orphelin. */
@media (min-width: 760px) {
	body.home .wp-block-post-content .medicms-rubriques-grille {
		grid-template-columns: repeat(6, minmax(0, 1fr));
	}
	body.home .medicms-rubriques-grille > li:nth-child(-n+3) { grid-column: span 2; }
	body.home .medicms-rubriques-grille > li:nth-child(n+4) { grid-column: span 3; }
}

/* 10 — Le compteur de fiches etait pousse a droite sans zone reservee : d une carte a l autre la
   ligne de tete bougeait. Des pistes rigides coupaient en revanche « Budget & accès » en deux
   lignes pendant que son libelle restait en haut : on laisse donc le compteur passer a la ligne
   quand la carte est etroite, et se caler a droite quand il y a la place. */
body .medicms-rubriques-grille > li > a {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: baseline;
	column-gap: 1rem;
	row-gap: 0.25rem;
}
body .medicms-rub-compte {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	white-space: nowrap;
	color: var(--wp--preset--color--sourdine); /* Sourdine/blanc : 6,1835:1. */
}

/* 11 — Les soulignements gardaient l epaisseur du navigateur : colles aux lettres, et epais des
   que plusieurs liens tombent dans une meme cellule. */
body .wp-block-post-content a {
	text-decoration-thickness: 0.06em;
	text-underline-offset: 0.14em;
	text-decoration-skip-ink: auto;
}

/* 12 — Sur telephone, les trois delais devenaient trois mini-sections empilees : on perdait la
   comparaison « 5 jours / 12 heures / 72 heures » d un coup d oeil, qui est tout l interet du
   bloc. Le chiffre passe dans une colonne fixe, le motif a cote. */
@media (max-width: 759px) {
	body .medicms-delais > li {
		display: grid;
		grid-template-columns: 5.5rem minmax(0, 1fr);
		column-gap: 1rem;
	}
	body .medicms-delais > li > .medicms-delai-chiffre {
		grid-row: span 2;
		margin-block-end: 0;
		font-size: 1.375rem;
		line-height: 1.2;
	}
	body .medicms-delais-paire > li { grid-template-columns: minmax(0, 1fr); }
	body .medicms-delais-paire > li > .medicms-delai-chiffre { grid-row: auto; }
}
