/* =========================================================================
   PARACHUTISME FRANCE — BASE
   theme.json porte le contrat typographique (police, graisse, couleur), et
   c'est la source à modifier pour en changer les valeurs. Ce fichier ne
   redéfinit que ce que theme.json ne produit pas correctement lui-même :

   BUG WORDPRESS CONSTATÉ le 9 août 2026 (voir DECISIONS.md) : pour un
   fontSize au slug lettre+chiffre ("h1"), WordPress génère la variable
   preset avec un tiret inséré (--wp--preset--font-size--h-1), mais la
   règle "h1{}" qu'il génère lui-même depuis styles.elements.h1 référence
   var(--wp--preset--font-size--h1) SANS le tiret — une variable qui
   n'existe pas. Le poids/couleur de styles.elements.h1 s'appliquent bien
   (pas de mangling sur ces propriétés-là) ; seule la taille est cassée.
   D'où : tailles explicitées ici via --pf-fs-h1..h6 (alias corrects vers
   les vraies variables, voir tokens.css), tout le reste laissé à
   theme.json. Résets structurels que theme.json ne couvre pas : marges,
   listes, image fluide.

   Spécificité : "body h1" et non "h1" seul. global-styles-inline-css (qui
   contient la règle "h1{}" cassée ci-dessus) est injecté dans le <head>
   APRÈS nos styles enqueués — à spécificité égale (0,0,1) WordPress
   gagnerait donc la égalité et son var() invalide ferait hériter la
   taille du parent (body, ~17px) au lieu de la casser proprement. Une
   spécificité (0,0,2) évite de dépendre de l'ordre d'injection de WP.
   ========================================================================= */

/* html en sélecteur réel (pas :where) volontairement : sa spécificité
   (0,0,1) doit battre l'universel :where(*) ci-dessous (0,0,0) pour
   l'élément html lui-même, sinon "inherit" sur <html> (qui n'a pas de
   parent) retombe sur la valeur initiale content-box et casse border-box
   pour tout le document — bug réel constaté et corrigé le 9 août 2026,
   voir DECISIONS.md. C'est le seul sélecteur non-:where de ce fichier,
   et il doit le rester. */
html {
	box-sizing: border-box;
}
:where(*, *::before, *::after) {
	box-sizing: inherit;
}
body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
/* Les liens de navigation, cartes et annuaires ne doivent pas hériter du
   soulignement du navigateur. Les rares liens qui appartiennent réellement
   au texte courant réactivent explicitement cette décoration dans pages.css
   et destination.css. */
a { text-decoration: none; }
h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--pf-space-sm);
}
body h1 { font-size: var(--pf-fs-h1); }
body h2 { font-size: var(--pf-fs-h2); }
body h3 { font-size: var(--pf-fs-h3); }
body h4 { font-size: var(--pf-fs-h4); }
body h5 { font-size: var(--pf-fs-h5); }
body h6 { font-size: var(--pf-fs-h6); }
p {
	margin: 0 0 var(--pf-space-md);
}
:where(img) {
	max-width: 100%;
	height: auto;
	display: block;
}
button {
	font-family: inherit;
}
ul, ol {
	margin: 0 0 var(--pf-space-md);
	padding-left: 1.25em;
}

@media (prefers-reduced-motion: reduce) {
	:where(*, *::before, *::after) {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}
