/*
Theme Name:   Paris Sportif Belgique
Theme URI:    https://www.parissportifbelgique.be/
Description:  Thème enfant d'Astra pour parissportifbelgique.be — guide indépendant des opérateurs de paris sportifs et de casino agréés par la Commission des jeux de hasard. Les mentions obligatoires belges (21 ans, message préventif, EPIS) sont câblées dans le thème et non dans le contenu. Corps à 18 px, contrastes WCAG AA vérifiés, cibles tactiles de 48 px. Aucune dépendance payante, aucun page builder.
Author:       Paris Sportif Belgique
Template:     astra
Version:      1.0.4
Requires PHP: 8.1
License:      GPL-2.0-or-later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  paris-sportif-belgique
Tags:         news, magazine, accessibility-ready, one-column
*/

/* ==========================================================================
   SOMMAIRE
   1.  Polices
   2.  Tokens
   3.  Reset et base
   4.  Accessibilité
   5.  Conteneurs
   6.  Boutons et pastilles
   7.  T1  En-tête
   8.  T1b Tiroir mobile
   9.  T2  Pied de page
   10. Cartes et grilles
   11. T3  Accueil
   12. T4  Archive de rubrique
   13. T5  Archive d'auteur
   14. T6  Article
   15. Modules du plugin happy-discover
   16. Contenu éditorial (the_content)
   17. T7  Page de confiance
   18. T8  Recherche, 404, favoris
   19. Flottants (progression, retour en haut)
   20. Impression
   21. Vestiges d'Astra
   ========================================================================== */


/* ==========================================================================
   1. POLICES — Figtree variable, auto-hébergée, subset latin
   Roman latin : 20 Ko pour toute la plage 300–900. Seul fichier préchargé.
   ========================================================================== */

@font-face {
	font-family: 'Figtree';
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url('assets/fonts/figtree-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
		U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Exposants ordinaux (1ᵉʳ), tirets longs, symboles monétaires rares. */
@font-face {
	font-family: 'Figtree';
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url('assets/fonts/figtree-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
		U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
		U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F,
		U+A720-A7FF;
}

@font-face {
	font-family: 'Figtree';
	font-style: italic;
	font-weight: 300 900;
	font-display: swap;
	src: url('assets/fonts/figtree-italic-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
		U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* ==========================================================================
   2. TOKENS
   Les ratios de contraste indiqués sont calculés sur fond blanc.
   ========================================================================== */

:root {
	/* Couleur */
	--pst-ink:          #101828; /* 17,8:1 — bleu nuit */
	--pst-ink-2:        #4A5568; /*  7,5:1 */
	--pst-ink-3:        #8A93A0; /*  3,1:1 — décor seulement, jamais du texte lisible */
	--pst-line:         #E4E7EC;
	--pst-line-strong:  #CBD2DA;
	--pst-paper:        #FFFFFF;
	--pst-wash:         #F5F6F8;
	--pst-accent:       #B3202E; /*  6,6:1 — rouge belge, aplats et pastilles */
	--pst-accent-ink:   #8E1824; /*  9,1:1 — liens dans le corps, survols */
	--pst-accent-wash:  #FDECEE;
	--pst-warm:         #8A5A10; /*  5,9:1 — ocre, second plan et favoris */
	--pst-warm-wash:    #FBF2E2;
	--pst-warm-ink:     #4A3A1E;
	--pst-cream:        #FBF7EE;
	--pst-cream-line:   #EADFC9;
	--pst-ftr-ink:      #E6EAEF; /* 14,7:1 sur --pst-ink */
	--pst-ftr-mut:      #9AA7B4; /*  7,2:1 sur --pst-ink */
	--pst-ftr-line:     #27324A;
	--pst-ftr-field:    #1A2338;
	--pst-ftr-field-bd: #35415C;

	/* Typographie */
	--pst-sans: 'Figtree', -apple-system, BlinkMacSystemFont, 'Segoe UI',
		system-ui, 'Helvetica Neue', Arial, sans-serif;

	--pst-step--1: 0.875rem;  /* 14 px — méta, légendes */
	--pst-step-0:  1.125rem;  /* 18 px — corps */
	--pst-step-1:  1.25rem;   /* 20 px — chapô */
	--pst-step-2:  1.5rem;    /* 24 px */
	--pst-step-3:  1.75rem;   /* 28 px — h2 dans l'article */
	--pst-step-4:  2rem;      /* 32 px — titre de vedette */
	--pst-step-5:  2.5rem;    /* 40 px — h1 */

	/* Espacement — échelle de 4 px */
	--pst-1: 4px;
	--pst-2: 8px;
	--pst-3: 12px;
	--pst-4: 16px;
	--pst-5: 24px;
	--pst-6: 32px;
	--pst-7: 48px;
	--pst-8: 64px;
	--pst-9: 96px;

	/* Formes */
	--pst-r-card:  16px;
	--pst-r-lg:    20px;
	--pst-r-thumb: 10px;
	--pst-r-btn:   10px;
	--pst-shadow-rest:  0 1px 3px rgba(16, 24, 40, 0.06);
	--pst-shadow-hover: 0 12px 30px rgba(16, 24, 40, 0.12);

	/* Mesures */
	--pst-container: 1180px;
	--pst-reading:   720px; /* 672 px de texte + 2 × 24 px de marge intérieure */
	--pst-touch:     48px;
}


/* ==========================================================================
   3. RESET ET BASE
   ========================================================================== */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	background: var(--pst-paper);
	color: var(--pst-ink);
	font-family: var(--pst-sans);
	font-size: var(--pst-step-0);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	font-synthesis-weight: none;
}

img,
svg,
video,
iframe {
	display: block;
	max-width: 100%;
}

img {
	height: auto;
}

a {
	color: var(--pst-accent-ink);
}

h1, h2, h3, h4, h5, h6 {
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.025em;
	text-wrap: balance;
	margin: 0;
}

p {
	margin: 0;
}

button {
	font: inherit;
}

/* Les chiffres alignés en colonne ne doivent pas danser. */
.pst-rank,
.pst-pager a,
.pst-pager span,
.hpd-keystat b,
.pst-count,
.hpd-story time {
	font-variant-numeric: tabular-nums;
}


/* ==========================================================================
   4. ACCESSIBILITÉ
   ========================================================================== */

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.pst-skip {
	position: absolute;
	top: -100px;
	left: var(--pst-4);
	z-index: 999;
	padding: var(--pst-3) var(--pst-5);
	background: var(--pst-accent);
	color: #fff;
	font-weight: 700;
	border-radius: 0 0 var(--pst-r-btn) var(--pst-r-btn);
	text-decoration: none;
}

.pst-skip:focus {
	top: 0;
}

:focus-visible {
	outline: 3px solid var(--pst-accent);
	outline-offset: 2px;
	border-radius: 3px;
}

/* Le lectorat visé inclut des personnes sensibles au mouvement. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
}


/* ==========================================================================
   5. CONTENEURS
   ========================================================================== */

.pst-container {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: 0 var(--pst-5);
}

.pst-wash {
	background: var(--pst-wash);
}

.pst-site-main {
	display: block;
}


/* ==========================================================================
   6. BOUTONS ET PASTILLES
   ========================================================================== */

.pst-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: var(--pst-touch);
	padding: 0 20px;
	border: 1px solid transparent;
	border-radius: var(--pst-r-btn);
	font-family: var(--pst-sans);
	font-size: 1rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.pst-btn svg {
	width: 19px;
	height: 19px;
	flex: 0 0 auto;
}

.pst-btn--solid {
	background: var(--pst-accent);
	border-color: var(--pst-accent);
	color: #fff;
	font-weight: 700;
}

.pst-btn--solid:hover,
.pst-btn--solid:focus-visible {
	background: var(--pst-accent-ink);
	border-color: var(--pst-accent-ink);
	color: #fff;
}

.pst-btn--ghost {
	background: transparent;
	border-color: var(--pst-line);
	color: var(--pst-ink);
}

.pst-btn--ghost:hover,
.pst-btn--ghost:focus-visible {
	border-color: var(--pst-accent);
	color: var(--pst-accent);
}

.pst-tag {
	display: inline-block;
	align-self: flex-start;
	background: var(--pst-accent-wash);
	color: var(--pst-accent);
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	line-height: 1.5;
	padding: 4px 11px;
	border-radius: 999px;
	text-decoration: none;
}

.pst-tag:hover {
	background: var(--pst-accent);
	color: #fff;
}

.pst-tag--warm {
	background: var(--pst-warm-wash);
	color: var(--pst-warm);
}

.pst-tag--warm:hover {
	background: var(--pst-warm);
	color: #fff;
}


/* ==========================================================================
   7. T1 — EN-TÊTE
   ========================================================================== */

.pst-header {
	background: var(--pst-paper);
	border-bottom: 1px solid var(--pst-line);
}

.pst-header__top {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: var(--pst-4) var(--pst-5);
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: var(--pst-5);
}

.pst-header__social {
	display: flex;
	align-items: center;
	gap: var(--pst-2);
}

.pst-header__social a {
	width: var(--pst-touch);
	height: var(--pst-touch);
	display: grid;
	place-items: center;
	border-radius: var(--pst-2);
	color: var(--pst-ink-2);
}

.pst-header__social a:hover,
.pst-header__social a:focus-visible {
	color: var(--pst-accent);
	background: var(--pst-accent-wash);
}

.pst-header__social svg {
	width: 20px;
	height: 20px;
}

.pst-brand {
	justify-self: center;
	text-align: center;
	line-height: 1;
	text-decoration: none;
}

.pst-brand__l1 {
	display: block;
	font-size: 2.125rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--pst-accent);
}

.pst-brand__l2 {
	display: block;
	margin-top: var(--pst-2);
	font-size: 0.65625rem;
	font-weight: 700;
	letter-spacing: 0.32em;
	text-transform: uppercase;
	color: var(--pst-ink-2);
}

.pst-brand__logo {
	display: block;
	margin: 0 auto;
	max-height: 56px;
	width: auto;
}

.pst-header__actions {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: var(--pst-3);
}

.pst-header__burger {
	display: none;
	width: var(--pst-touch);
	height: var(--pst-touch);
	place-items: center;
	background: none;
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-2);
	color: var(--pst-ink);
	cursor: pointer;
}

.pst-header__burger svg {
	width: 24px;
	height: 24px;
}

/* -- navigation principale -- */

.pst-nav {
	border-top: 1px solid var(--pst-line);
}

.pst-nav > ul {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: 0 var(--pst-5);
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--pst-2);
}

.pst-nav li {
	position: relative;
	margin: 0;
}

.pst-nav a {
	display: flex;
	align-items: center;
	gap: 7px;
	min-height: 56px;
	padding: 0 18px;
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
	position: relative;
}

.pst-nav a::after {
	content: "";
	position: absolute;
	left: 18px;
	right: 18px;
	bottom: 0;
	height: 3px;
	background: var(--pst-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.18s ease;
}

.pst-nav a:hover,
.pst-nav a:focus-visible {
	color: var(--pst-accent);
}

.pst-nav a:hover::after,
.pst-nav a:focus-visible::after,
.pst-nav .current-menu-item > a::after,
.pst-nav .current-menu-parent > a::after,
.pst-nav .current-menu-ancestor > a::after {
	transform: scaleX(1);
}

.pst-nav .menu-item-has-children > a::before {
	content: "";
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--pst-accent);
	border-bottom: 2px solid var(--pst-accent);
	transform: rotate(45deg) translateY(-2px);
	flex: 0 0 auto;
	order: 2;
}

.pst-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 238px;
	margin: 0;
	padding: var(--pst-1) 0;
	list-style: none;
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-top: 3px solid var(--pst-accent);
	box-shadow: 0 14px 34px rgba(21, 32, 43, 0.14);
	z-index: 20;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.15s ease;
}

.pst-nav li:hover > .sub-menu,
.pst-nav li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
}

.pst-nav .sub-menu a {
	min-height: var(--pst-touch);
	font-size: 1rem;
	font-weight: 500;
}

.pst-nav .sub-menu a::after {
	display: none;
}

.pst-nav .sub-menu a:hover {
	background: var(--pst-accent-wash);
}

.pst-nav__search {
	margin-left: auto;
}

.pst-nav__search a {
	padding: 0 14px;
	color: var(--pst-ink-2);
}

.pst-nav__search svg {
	width: 21px;
	height: 21px;
}

.pst-nav__search a::after {
	display: none;
}

@media (max-width: 921px) {
	.pst-header__top {
		grid-template-columns: auto 1fr auto;
		padding: var(--pst-3) var(--pst-4);
		gap: var(--pst-3);
	}

	.pst-header__social {
		display: none;
	}

	.pst-header__burger {
		display: grid;
	}

	.pst-brand {
		justify-self: center;
	}

	.pst-brand__l1 {
		font-size: 1.5rem;
	}

	.pst-brand__l2 {
		font-size: 0.5625rem;
		letter-spacing: 0.26em;
	}

	.pst-header__actions .pst-btn {
		display: none;
	}

	.pst-header__actions {
		justify-self: end;
	}

	.pst-nav {
		display: none;
	}
}


/* ==========================================================================
   8. T1b — TIROIR MOBILE
   ========================================================================== */

.pst-drawer {
	position: fixed;
	inset: 0;
	z-index: 200;
	background: var(--pst-paper);
	overflow-y: auto;
	overscroll-behavior: contain;
	display: flex;
	flex-direction: column;
}

.pst-drawer[hidden] {
	display: none !important;
}

.pst-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pst-3);
	padding: var(--pst-3) var(--pst-4);
	border-bottom: 1px solid var(--pst-line);
	position: sticky;
	top: 0;
	background: var(--pst-paper);
}

.pst-drawer__head .pst-brand__l1 {
	font-size: 1.375rem;
}

.pst-drawer__close {
	width: var(--pst-touch);
	height: var(--pst-touch);
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	background: none;
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-2);
	color: var(--pst-ink);
	cursor: pointer;
}

.pst-drawer__close svg {
	width: 20px;
	height: 20px;
}

.pst-drawer__menu,
.pst-drawer__menu ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pst-drawer__menu > li {
	border-bottom: 1px solid var(--pst-line);
}

.pst-drawer__menu > li > a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pst-3);
	min-height: 60px;
	padding: 0 var(--pst-4);
	font-size: 1.1875rem;
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-drawer__menu > li > a::after {
	content: "";
	width: 10px;
	height: 10px;
	flex: 0 0 auto;
	border-right: 2.5px solid var(--pst-ink-3);
	border-top: 2.5px solid var(--pst-ink-3);
	transform: rotate(45deg);
}

.pst-drawer__menu .sub-menu {
	background: var(--pst-wash);
	border-top: 1px solid var(--pst-line);
}

.pst-drawer__menu .sub-menu a {
	display: flex;
	align-items: center;
	min-height: 52px;
	padding: 0 var(--pst-4) 0 34px;
	font-size: 1.0625rem;
	color: var(--pst-ink-2);
	text-decoration: none;
}

.pst-drawer__cta {
	display: grid;
	gap: var(--pst-3);
	padding: var(--pst-4);
}

.pst-drawer__cta .pst-btn {
	width: 100%;
}

.pst-drawer__social {
	display: flex;
	gap: var(--pst-2);
	padding: var(--pst-3) var(--pst-3) var(--pst-5);
	border-top: 1px solid var(--pst-line);
	margin-top: auto;
}

.pst-drawer__social a {
	width: var(--pst-touch);
	height: var(--pst-touch);
	display: grid;
	place-items: center;
	color: var(--pst-ink-2);
}

.pst-drawer__social svg {
	width: 20px;
	height: 20px;
}

body.pst-drawer-open {
	overflow: hidden;
}


/* ==========================================================================
   9. T2 — PIED DE PAGE
   ========================================================================== */

.pst-footer {
	background: var(--pst-ink);
	color: var(--pst-ftr-ink);
	margin-top: var(--pst-8);
}

.pst-footer__main {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: var(--pst-7) var(--pst-5) var(--pst-6);
	display: grid;
	grid-template-columns: 1.5fr 1fr 1fr 1.2fr;
	gap: var(--pst-6);
}

.pst-footer__brand .pst-brand__l1 {
	color: #fff;
	font-size: 1.625rem;
}

.pst-footer__brand p {
	margin-top: var(--pst-3);
	font-size: var(--pst-step--1);
	line-height: 1.6;
	color: var(--pst-ftr-mut);
	max-width: 30ch;
}

.pst-footer h2 {
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: #fff;
	margin-bottom: var(--pst-3);
}

.pst-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pst-footer ul a {
	display: flex;
	align-items: center;
	min-height: var(--pst-touch);
	font-size: 1rem;
	color: var(--pst-ftr-ink);
	text-decoration: none;
}

.pst-footer ul a:hover,
.pst-footer ul a:focus-visible {
	color: #fff;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pst-footer__news p {
	margin-bottom: var(--pst-3);
	font-size: var(--pst-step--1);
	line-height: 1.55;
	color: var(--pst-ftr-mut);
}

.pst-footer__field {
	display: flex;
	gap: var(--pst-2);
}

.pst-footer__field input {
	flex: 1;
	min-width: 0;
	min-height: var(--pst-touch);
	padding: 0 14px;
	border: 1px solid var(--pst-ftr-field-bd);
	border-radius: var(--pst-r-btn);
	background: var(--pst-ftr-field);
	color: #fff;
	font-family: var(--pst-sans);
	font-size: 1rem;
}

.pst-footer__field input::placeholder {
	color: #8795AB; /* 5,2:1 sur --pst-ftr-field */
}

.pst-footer__social {
	display: flex;
	gap: var(--pst-2);
	margin-top: var(--pst-4);
}

.pst-footer__social a {
	width: var(--pst-touch);
	height: var(--pst-touch);
	display: grid;
	place-items: center;
	border: 1px solid var(--pst-ftr-field-bd);
	border-radius: var(--pst-r-btn);
	color: var(--pst-ftr-ink);
}

.pst-footer__social a:hover {
	border-color: var(--pst-ftr-ink);
	color: #fff;
}

.pst-footer__social svg {
	width: 19px;
	height: 19px;
}

/* Bandeau de jeu responsable — mentions imposées par l'arrêté royal du
   27 février 2023. Présent sur toutes les pages, au-dessus de la barre légale.
   Fond : accent à 8 % sur l'encre, soit #1D1928 une fois composé. */
.pst-rg {
	border-top: 1px solid var(--pst-ftr-line);
	background: rgba(179, 32, 46, 0.08);
}

.pst-rg__inner {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: var(--pst-5);
	display: flex;
	align-items: center;
	gap: var(--pst-4);
}

.pst-rg__age {
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--pst-accent);
	color: #fff; /* 6,6:1 */
	font-size: 1.0625rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.pst-rg__texte {
	min-width: 0;
}

.pst-rg__avert {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--pst-ftr-ink); /* 14,2:1 */
}

.pst-rg__avert strong {
	font-weight: 700;
}

.pst-rg__avert a {
	color: var(--pst-ftr-ink);
	text-decoration: underline;
	text-underline-offset: 2px;
}

.pst-rg__liens {
	margin-top: var(--pst-2);
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--pst-5);
	font-size: 0.875rem;
}

.pst-rg__liens a {
	display: inline-flex;
	align-items: center;
	min-height: var(--pst-touch);
	color: var(--pst-ftr-mut); /* 7,0:1 */
}

.pst-rg__avert a:hover,
.pst-rg__avert a:focus-visible,
.pst-rg__liens a:hover,
.pst-rg__liens a:focus-visible {
	color: #fff;
}

@media (max-width: 600px) {
	.pst-rg__inner {
		align-items: flex-start;
		padding: var(--pst-5) var(--pst-4);
		gap: var(--pst-3);
	}

	.pst-rg__age {
		width: 44px;
		height: 44px;
		font-size: 0.9375rem;
	}
}
.pst-footer__legal {
	border-top: 1px solid var(--pst-ftr-line);
}

.pst-footer__legal > div {
	max-width: var(--pst-container);
	margin: 0 auto;
	padding: var(--pst-4) var(--pst-5);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pst-2) var(--pst-5);
	font-size: 0.875rem;
	color: var(--pst-ftr-mut);
}

.pst-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pst-2) var(--pst-5);
}

.pst-footer__legal a {
	color: var(--pst-ftr-mut);
	min-height: var(--pst-touch);
}

.pst-footer__legal a:hover {
	color: #fff;
}

@media (max-width: 900px) {
	.pst-footer__main {
		grid-template-columns: 1fr 1fr;
		gap: var(--pst-5);
		padding: var(--pst-6) var(--pst-4) var(--pst-5);
	}

	.pst-footer__brand,
	.pst-footer__news {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.pst-footer__main {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   10. CARTES ET GRILLES
   ========================================================================== */

.pst-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--pst-5);
}

@media (max-width: 1024px) {
	.pst-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 640px) {
	.pst-grid {
		grid-template-columns: 1fr;
	}
}

.pst-card {
	display: flex;
	flex-direction: column;
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-card);
	overflow: hidden;
	box-shadow: var(--pst-shadow-rest);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.pst-card:hover,
.pst-card:focus-within {
	box-shadow: var(--pst-shadow-hover);
	transform: translateY(-4px);
}

.pst-card__media {
	display: block;
	overflow: hidden;
	background: var(--pst-wash);
}

.pst-card__media img {
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	transition: transform 0.35s ease;
}

.pst-card:hover .pst-card__media img {
	transform: scale(1.05);
}

.pst-card__noimg {
	display: block;
	aspect-ratio: 16 / 10;
	background: linear-gradient(135deg, var(--pst-wash), var(--pst-line));
}

.pst-card__body {
	display: flex;
	flex-direction: column;
	gap: var(--pst-3);
	flex: 1;
	padding: 18px 20px 20px;
}

.pst-card__title {
	font-size: 1.3125rem;
	font-weight: 700;
	line-height: 1.26;
	letter-spacing: -0.015em;
}

.pst-card__title a {
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-card:hover .pst-card__title a {
	color: var(--pst-accent);
}

.pst-card__meta {
	margin-top: auto;
	font-size: 0.875rem;
	color: var(--pst-ink-2);
}

/* En-tête de section */
.pst-sechead {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--pst-4);
	border-bottom: 3px solid var(--pst-ink);
	padding-bottom: var(--pst-3);
	margin-bottom: var(--pst-5);
}

.pst-sechead h2 {
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	display: flex;
	align-items: center;
	gap: 11px;
}

.pst-sechead h2::before {
	content: "";
	width: 11px;
	height: 11px;
	border-radius: 50%;
	background: var(--pst-accent);
	flex: 0 0 auto;
}

.pst-sechead__all {
	display: flex;
	align-items: center;
	gap: 7px;
	min-height: var(--pst-touch);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	color: var(--pst-accent);
	text-decoration: none;
	white-space: nowrap;
}

.pst-sechead__all:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pst-sechead__all svg {
	width: 16px;
	height: 16px;
}


/* ==========================================================================
   11. T3 — ACCUEIL
   ========================================================================== */

.pst-home {
	background: var(--pst-wash);
	padding: var(--pst-6) 0 var(--pst-7);
}

.pst-home__section + .pst-home__section {
	margin-top: var(--pst-7);
}

/* -- vedette -- */

.pst-hero {
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-lg);
	overflow: hidden;
	margin-bottom: var(--pst-6);
	box-shadow: 0 2px 10px rgba(21, 32, 43, 0.06);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.pst-hero:hover,
.pst-hero:focus-within {
	box-shadow: 0 16px 40px rgba(21, 32, 43, 0.13);
	transform: translateY(-3px);
}

.pst-hero__media {
	display: block;
	overflow: hidden;
	background: var(--pst-wash);
}

.pst-hero__media img {
	width: 100%;
	height: 100%;
	min-height: 372px;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.pst-hero:hover .pst-hero__media img {
	transform: scale(1.04);
}

.pst-hero__body {
	align-self: center;
	display: flex;
	flex-direction: column;
	gap: var(--pst-3);
	padding: var(--pst-6) var(--pst-7);
}

.pst-hero__title {
	font-size: 2.4375rem;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.032em;
}

.pst-hero__title a {
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-hero:hover .pst-hero__title a {
	color: var(--pst-accent);
}

.pst-hero__excerpt {
	font-size: 1.125rem;
	line-height: 1.56;
	color: var(--pst-ink-2);
}

.pst-hero__meta {
	font-size: 0.90625rem;
	color: var(--pst-ink-2);
}

@media (max-width: 860px) {
	.pst-hero {
		grid-template-columns: 1fr;
	}

	.pst-hero__media img {
		min-height: 210px;
	}

	.pst-hero__body {
		padding: var(--pst-5) var(--pst-4) var(--pst-5);
	}

	.pst-hero__title {
		font-size: 1.75rem;
	}
}

/* -- bande édito + plus lus -- */

.pst-band {
	display: grid;
	grid-template-columns: 1.7fr 1fr;
	gap: var(--pst-5);
	align-items: start;
	margin-bottom: var(--pst-7);
}

@media (max-width: 900px) {
	.pst-band {
		grid-template-columns: 1fr;
	}
}

/*
 * Sans édito publié, la bande n'a qu'un occupant. Le laisser dans une colonne
 * de 1.7fr donnerait un bloc orphelin collé à gauche : on recentre.
 */
.pst-band--solo {
	grid-template-columns: 1fr;
}

.pst-band--solo .pst-ranked {
	width: 100%;
	max-width: 640px;
	margin-inline: auto;
}

.pst-edito {
	background: var(--pst-cream);
	border: 1px solid var(--pst-cream-line);
	border-left: 5px solid var(--pst-accent);
	border-radius: 0 var(--pst-r-lg) var(--pst-r-lg) 0;
	padding: var(--pst-6) var(--pst-6);
}

.pst-edito__label {
	display: inline-block;
	margin-bottom: var(--pst-4);
	padding: 4px 12px;
	border: 1px solid rgba(14, 110, 92, 0.35);
	border-radius: 999px;
	font-size: 0.6875rem;
	font-weight: 800;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: var(--pst-accent);
}

.pst-edito__body > * + * {
	margin-top: var(--pst-3);
}

.pst-edito__body p {
	font-size: 1.0625rem;
	line-height: 1.62;
	color: #242C3D; /* 13,1:1 sur --pst-cream */
}

.pst-edito__sign {
	margin-top: var(--pst-4);
	font-size: var(--pst-step--1);
	font-style: italic;
	color: #6B6557; /* 5,4:1 sur --pst-cream */
}

.pst-ranked {
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-lg);
	padding: var(--pst-5) var(--pst-5) var(--pst-3);
}

.pst-ranked > h2 {
	font-size: 1.25rem;
	font-weight: 800;
	letter-spacing: -0.015em;
	border-bottom: 3px solid var(--pst-ink);
	padding-bottom: var(--pst-3);
	margin-bottom: var(--pst-1);
	display: flex;
	align-items: center;
	gap: 10px;
}

.pst-ranked > h2::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--pst-accent);
	flex: 0 0 auto;
}

.pst-ranked ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pst-ranked li + li {
	border-top: 1px solid var(--pst-line);
}

.pst-ranked a {
	display: flex;
	align-items: center;
	gap: var(--pst-3);
	min-height: var(--pst-touch);
	padding: var(--pst-3) 0;
	text-decoration: none;
	color: var(--pst-ink);
}

.pst-rank {
	flex: 0 0 auto;
	min-width: 22px;
	text-align: center;
	font-size: 1.375rem;
	font-weight: 800;
	color: var(--pst-accent);
}

.pst-ranked img,
.pst-ranked .pst-thumb-empty {
	width: 64px;
	height: 64px;
	flex: 0 0 64px;
	border-radius: var(--pst-r-thumb);
	object-fit: cover;
}

.pst-thumb-empty {
	background: linear-gradient(135deg, var(--pst-wash), var(--pst-line));
}

.pst-ranked__title {
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.45;
}

.pst-ranked a:hover .pst-ranked__title {
	color: var(--pst-accent);
}


/* ==========================================================================
   12. T4 — ARCHIVE DE RUBRIQUE
   ========================================================================== */

.pst-archhead {
	background: var(--pst-paper);
	border-bottom: 1px solid var(--pst-line);
	padding: var(--pst-6) 0 var(--pst-5);
}

.pst-archhead h1 {
	font-size: var(--pst-step-5);
	margin: var(--pst-3) 0;
	letter-spacing: -0.035em;
}

.pst-archhead__desc {
	font-size: 1.1875rem;
	line-height: 1.58;
	color: var(--pst-ink-2);
	max-width: 62ch;
}

.pst-count {
	display: block;
	margin-top: var(--pst-4);
	font-size: 0.875rem;
	color: var(--pst-ink-2);
}

/* -- article en vedette de l'archive -- */

.pst-feature {
	display: grid;
	grid-template-columns: 1.25fr 1fr;
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-lg);
	overflow: hidden;
	margin-bottom: var(--pst-5);
	box-shadow: var(--pst-shadow-rest);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.pst-feature:hover,
.pst-feature:focus-within {
	box-shadow: var(--pst-shadow-hover);
	transform: translateY(-3px);
}

.pst-feature__media {
	display: block;
	overflow: hidden;
	background: var(--pst-wash);
}

.pst-feature__media img {
	width: 100%;
	height: 100%;
	min-height: 320px;
	object-fit: cover;
}

.pst-feature__body {
	align-self: center;
	display: flex;
	flex-direction: column;
	gap: var(--pst-3);
	padding: var(--pst-6);
}

.pst-feature__title {
	font-size: var(--pst-step-4);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -0.03em;
}

.pst-feature__title a {
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-feature:hover .pst-feature__title a {
	color: var(--pst-accent);
}

.pst-feature__excerpt {
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--pst-ink-2);
}

.pst-feature__meta {
	font-size: 0.90625rem;
	color: var(--pst-ink-2);
}

@media (max-width: 860px) {
	.pst-feature {
		grid-template-columns: 1fr;
	}

	.pst-feature__media img {
		min-height: 200px;
	}

	.pst-feature__body {
		padding: var(--pst-5) var(--pst-4);
	}

	.pst-feature__title {
		font-size: 1.625rem;
	}
}

/* -- pagination -- */

.pst-pager {
	margin-top: var(--pst-6);
}

.pst-pager .nav-links,
.pst-pager__links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: var(--pst-2);
}

.pst-pager a,
.pst-pager span {
	min-width: var(--pst-touch);
	min-height: var(--pst-touch);
	display: grid;
	place-items: center;
	padding: 0 14px;
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-btn);
	background: var(--pst-paper);
	font-size: 1rem;
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-pager a:hover {
	border-color: var(--pst-accent);
	color: var(--pst-accent);
}

.pst-pager .current {
	background: var(--pst-accent);
	border-color: var(--pst-accent);
	color: #fff;
}

.pst-pager .dots {
	border-color: transparent;
	background: none;
	color: var(--pst-ink-2);
}

.pst-pager .next,
.pst-pager .prev {
	font-weight: 700;
	color: var(--pst-accent);
}


/* ==========================================================================
   13. T5 — ARCHIVE D'AUTEUR
   ========================================================================== */

.pst-author-card {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--pst-6);
	align-items: start;
	background: var(--pst-paper);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-lg);
	padding: var(--pst-6);
	margin-bottom: var(--pst-6);
}

.pst-author-card img {
	width: 124px;
	height: 124px;
	border-radius: 50%;
	object-fit: cover;
	flex: 0 0 auto;
}

.pst-author-card h1 {
	font-size: var(--pst-step-4);
	margin-bottom: var(--pst-1);
	letter-spacing: -0.03em;
}

.pst-author-card__role {
	margin-bottom: var(--pst-3);
	font-size: var(--pst-step--1);
	font-weight: 700;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	color: var(--pst-accent);
}

.pst-author-card__bio {
	margin-bottom: var(--pst-4);
	font-size: 1.0625rem;
	line-height: 1.6;
	color: var(--pst-ink-2);
	max-width: 66ch;
}

.pst-author-card__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pst-2);
}

.pst-author-card__links a {
	display: inline-flex;
	align-items: center;
	gap: var(--pst-2);
	min-height: var(--pst-touch);
	padding: 0 15px;
	border: 1px solid var(--pst-line);
	border-radius: 999px;
	font-size: var(--pst-step--1);
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-author-card__links a:hover {
	border-color: var(--pst-accent);
	color: var(--pst-accent);
}

.pst-author-card__links svg {
	width: 17px;
	height: 17px;
}

.pst-author-card__stat {
	margin-top: var(--pst-3);
	font-size: 0.875rem;
	color: var(--pst-ink-2);
}

.pst-author-card__todo {
	margin-bottom: var(--pst-4);
	padding: var(--pst-3) var(--pst-4);
	background: var(--pst-warm-wash);
	border-left: 4px solid var(--pst-warm);
	border-radius: 0 var(--pst-r-thumb) var(--pst-r-thumb) 0;
	font-size: 1rem;
	line-height: 1.5;
	color: var(--pst-warm-ink);
}

@media (max-width: 640px) {
	.pst-author-card {
		grid-template-columns: 1fr;
		gap: var(--pst-4);
		padding: var(--pst-5) var(--pst-4);
	}

	.pst-author-card img {
		width: 88px;
		height: 88px;
	}
}


/* ==========================================================================
   14. T6 — ARTICLE
   ========================================================================== */

.pst-single {
	background: var(--pst-wash);
	padding-bottom: var(--pst-7);
}

.pst-article {
	max-width: var(--pst-reading);
	margin: 0 auto;
	background: var(--pst-paper);
	border-left: 1px solid var(--pst-line);
	border-right: 1px solid var(--pst-line);
	padding: var(--pst-6) var(--pst-5) var(--pst-7);
}

@media (max-width: 760px) {
	.pst-article {
		border-left: 0;
		border-right: 0;
		padding: var(--pst-5) var(--pst-4) var(--pst-6);
	}
}

/* -- fil d'Ariane -- */

.pst-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pst-2);
	margin-bottom: var(--pst-4);
	font-size: var(--pst-step--1);
	color: var(--pst-ink-2);
}

/* Rank Math rend <nav class="rank-math-breadcrumb"><p>…</p></nav> :
   la mise en ligne doit descendre jusqu'au <p>. */
.pst-crumbs > nav {
	width: 100%;
}

.pst-crumbs p {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pst-2);
}

.pst-crumbs a {
	color: var(--pst-ink-2);
	text-decoration: none;
}

.pst-crumbs a:hover {
	color: var(--pst-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pst-crumbs .separator {
	color: var(--pst-ink-3);
}

.pst-crumbs .last,
.pst-crumbs [aria-current="page"] {
	color: var(--pst-ink);
	font-weight: 600;
}

/* -- titre et signature -- */

.pst-article__title {
	font-size: var(--pst-step-5);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.035em;
	margin: var(--pst-3) 0 var(--pst-4);
}

@media (max-width: 760px) {
	.pst-article__title {
		font-size: 2.125rem;
	}
}

.pst-byline {
	display: flex;
	align-items: center;
	gap: var(--pst-3);
	padding-bottom: var(--pst-5);
	border-bottom: 1px solid var(--pst-line);
	margin-bottom: var(--pst-5);
}

.pst-byline img {
	width: 52px;
	height: 52px;
	flex: 0 0 52px;
	border-radius: 50%;
	object-fit: cover;
}

.pst-byline__who {
	font-size: 1.03125rem;
	line-height: 1.4;
}

.pst-byline__who a {
	font-weight: 700;
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-byline__who a:hover {
	color: var(--pst-accent);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pst-byline__dates {
	display: block;
	margin-top: 3px;
	font-size: 0.90625rem;
	color: var(--pst-ink-2);
}

.pst-byline__updated {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-weight: 600;
	color: var(--pst-accent);
}

.pst-byline__updated::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--pst-accent);
	flex: 0 0 auto;
}

/* -- image à la une -- */

.pst-featured {
	margin: 0 0 var(--pst-5);
}

.pst-featured img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 14px;
}

.pst-featured figcaption {
	margin-top: var(--pst-2);
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--pst-ink-2);
}

/* -- chapô -- */

.pst-chapo {
	font-size: var(--pst-step-1);
	font-weight: 500;
	line-height: 1.5;
	margin-bottom: var(--pst-5);
}


/* ==========================================================================
   15. MODULES — blocs du thème et du plugin happy-discover
   Le plugin rend ses propres conteneurs ; le thème leur donne leur apparence,
   ce qui permet de garder le CSS du plugin sous les 4 Ko imposés.
   ========================================================================== */

.hpd-block,
.hpd-latest,
.hpd-related,
.hpd-mostread {
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-card);
	padding: var(--pst-5);
	margin: 0 0 var(--pst-5);
	background: var(--pst-paper);
}

.hpd-block > h2,
.hpd-block > h3,
.hpd-latest > h2,
.hpd-related > h2,
.hpd-mostread > h2 {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-bottom: var(--pst-3);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--pst-accent);
}

.hpd-block > h2::before,
.hpd-block > h3::before,
.hpd-latest > h2::before,
.hpd-related > h2::before,
.hpd-mostread > h2::before {
	content: "";
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--pst-accent);
	flex: 0 0 auto;
}

/* -- L'essentiel -- */

.hpd-essentiel {
	background: var(--pst-accent-wash);
	border-color: rgba(14, 110, 92, 0.22);
	border-left: 5px solid var(--pst-accent);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
}

.hpd-essentiel ul {
	margin: 0;
	padding-left: var(--pst-5);
	display: grid;
	gap: var(--pst-3);
}

.hpd-essentiel li {
	font-size: 1.125rem;
	line-height: 1.5;
}

/* -- chiffre-clé -- */

.hpd-keystat {
	display: flex;
	align-items: baseline;
	gap: var(--pst-4);
	background: var(--pst-warm-wash);
	border: 1px solid rgba(180, 87, 28, 0.2);
	border-left: 5px solid var(--pst-warm);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
	padding: var(--pst-5);
	margin: 0 0 var(--pst-5);
}

.hpd-keystat b {
	font-size: 2.625rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.03em;
	color: var(--pst-warm);
	flex: 0 0 auto;
}

.hpd-keystat span {
	font-size: 1.125rem;
	line-height: 1.5;
	color: var(--pst-warm-ink);
}

@media (max-width: 560px) {
	.hpd-keystat {
		flex-direction: column;
		gap: var(--pst-2);
	}
}

/* -- frise du sujet -- */

.hpd-story ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: var(--pst-1);
}

.hpd-story li {
	display: grid;
	grid-template-columns: 124px 1fr;
	gap: var(--pst-3);
	padding: 11px 0 11px var(--pst-4);
	border-left: 3px solid var(--pst-line);
}

.hpd-story li.is-current {
	border-left-color: var(--pst-accent);
	background: var(--pst-accent-wash);
	border-radius: 0 var(--pst-r-thumb) var(--pst-r-thumb) 0;
}

.hpd-story time {
	font-size: 1rem;
	color: var(--pst-ink-2);
}

.hpd-story-event {
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
}

.hpd-story li.is-current .hpd-story-event {
	color: var(--pst-accent-ink);
}

@media (max-width: 560px) {
	.hpd-story li {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}

/* -- partage -- */

.pst-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--pst-3);
	margin: 0 0 var(--pst-6);
}

.pst-share__label {
	font-size: 1rem;
	font-weight: 700;
}

.pst-share a,
.pst-share button {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: var(--pst-touch);
	padding: 0 18px;
	border: 1px solid var(--pst-line);
	border-radius: 999px;
	background: var(--pst-paper);
	font-family: var(--pst-sans);
	font-size: 1rem;
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
	cursor: pointer;
}

.pst-share a:hover,
.pst-share button:hover,
.pst-share a:focus-visible,
.pst-share button:focus-visible {
	border-color: var(--pst-accent);
	color: var(--pst-accent);
	background: var(--pst-accent-wash);
}

.pst-share svg {
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
}

.pst-bookmark[aria-pressed="true"] {
	background: var(--pst-warm-wash);
	border-color: rgba(180, 87, 28, 0.4);
	color: var(--pst-warm);
}

/* -- modules 2 et 3 du plugin : listes à vignettes et classements -- */

.hpd-related ul,
.hpd-mostread ol,
.hpd-latest ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hpd-related li + li,
.hpd-mostread li + li,
.hpd-latest li + li {
	border-top: 1px solid var(--pst-line);
}

.hpd-related a,
.hpd-mostread a {
	display: flex;
	align-items: center;
	gap: var(--pst-4);
	min-height: var(--pst-touch);
	padding: var(--pst-3) 0;
	color: var(--pst-ink);
	text-decoration: none;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
}

.hpd-related img {
	width: 88px;
	height: 88px;
	flex: 0 0 88px;
	border-radius: var(--pst-r-thumb);
	object-fit: cover;
}

.hpd-mostread .hpd-rank {
	flex: 0 0 auto;
	min-width: 22px;
	font-size: 1.375rem;
	font-weight: 800;
	color: var(--pst-accent);
	font-variant-numeric: tabular-nums;
}

.hpd-latest a {
	display: flex;
	align-items: center;
	min-height: var(--pst-touch);
	padding: var(--pst-3) 0;
	font-size: 1.125rem;
	font-weight: 600;
	line-height: 1.5;
	color: var(--pst-ink);
	text-decoration: none;
}

.hpd-related a:hover,
.hpd-mostread a:hover,
.hpd-latest a:hover {
	color: var(--pst-accent);
}

/* -- lecture continue (module 4) -- */

.hpd-cont-sep {
	position: relative;
	text-align: center;
	border-top: 1px solid var(--pst-line);
	margin: var(--pst-7) 0 var(--pst-5);
}

.hpd-cont-sep > span {
	position: relative;
	top: -14px;
	background: var(--pst-paper);
	padding: 0 18px;
	font-size: 0.78125rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--pst-accent);
}

.hpd-cont-article > * + * {
	margin-top: var(--pst-3);
}

.hpd-cont-article h2 {
	font-size: var(--pst-step-4);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -0.03em;
}

.hpd-cont-article h2 a {
	color: var(--pst-ink);
	text-decoration: none;
}

.hpd-cont-article img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 14px;
}

/* -- bloc auteur en fin d'article -- */

.pst-authorbox {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: var(--pst-4);
	align-items: start;
	margin: var(--pst-6) 0;
	padding: var(--pst-5);
	background: var(--pst-wash);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-card);
}

.pst-authorbox img {
	width: 72px;
	height: 72px;
	flex: 0 0 72px;
	border-radius: 50%;
	object-fit: cover;
}

.pst-authorbox h2 {
	font-size: 1.1875rem;
	letter-spacing: -0.015em;
	margin-bottom: 2px;
}

.pst-authorbox h2 a {
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-authorbox h2 a:hover {
	color: var(--pst-accent);
}

.pst-authorbox__bio {
	font-size: 1.125rem;
	line-height: 1.5;
	color: var(--pst-ink-2);
	margin-top: var(--pst-2);
}

.pst-authorbox__links {
	display: flex;
	flex-wrap: wrap;
	gap: var(--pst-2);
	margin-top: var(--pst-3);
}

.pst-authorbox__links a {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	min-height: var(--pst-touch);
	padding: 0 13px;
	border: 1px solid var(--pst-line);
	border-radius: 999px;
	background: var(--pst-paper);
	font-size: 1rem;
	font-weight: 600;
	color: var(--pst-ink);
	text-decoration: none;
}

.pst-authorbox__links a:hover {
	border-color: var(--pst-accent);
	color: var(--pst-accent);
}

.pst-authorbox__links svg {
	width: 16px;
	height: 16px;
}

@media (max-width: 560px) {
	.pst-authorbox {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
   16. CONTENU ÉDITORIAL (the_content)
   ========================================================================== */

.pst-content > * + * {
	margin-top: var(--pst-5);
}

.pst-content p,
.pst-content li {
	font-size: var(--pst-step-0);
	line-height: 1.65;
}

.pst-content h2 {
	font-size: var(--pst-step-3);
	margin-top: var(--pst-7);
	letter-spacing: -0.028em;
}

.pst-content h3 {
	font-size: var(--pst-step-2);
	margin-top: var(--pst-6);
	letter-spacing: -0.022em;
}

/* Un lien ne se signale jamais par la couleur seule. */
.pst-content a {
	color: var(--pst-accent-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1.5px;
}

.pst-content a:hover {
	color: var(--pst-accent);
}

.pst-content ul,
.pst-content ol {
	padding-left: var(--pst-5);
}

.pst-content li + li {
	margin-top: var(--pst-2);
}

.pst-content blockquote {
	margin: 0;
	padding: var(--pst-4) var(--pst-5);
	border-left: 5px solid var(--pst-accent);
	background: var(--pst-accent-wash);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
	font-size: 1.1875rem;
	line-height: 1.55;
}

.pst-content blockquote cite {
	display: block;
	margin-top: var(--pst-2);
	font-size: 0.90625rem;
	font-style: normal;
	font-weight: 600;
	color: var(--pst-accent);
}

.pst-content figure {
	margin: 0;
}

.pst-content figure img,
.pst-content img {
	border-radius: 14px;
}

.pst-content figcaption {
	margin-top: var(--pst-2);
	font-size: 0.875rem;
	line-height: 1.45;
	color: var(--pst-ink-2);
}

/* Un tableau ne fait jamais déborder la page. */
.pst-content .wp-block-table,
.pst-content table {
	display: block;
	max-width: 100%;
	overflow-x: auto;
}

.pst-content table {
	border-collapse: collapse;
	font-size: 1.0625rem;
}

.pst-content th,
.pst-content td {
	padding: var(--pst-3) var(--pst-4);
	border: 1px solid var(--pst-line);
	text-align: left;
}

.pst-content th {
	background: var(--pst-wash);
	font-weight: 700;
}

.pst-content pre {
	overflow-x: auto;
	padding: var(--pst-4);
	background: var(--pst-wash);
	border-radius: var(--pst-r-thumb);
	font-size: 0.9375rem;
}

.pst-content .alignwide,
.pst-content .alignfull {
	max-width: 100%;
}

.pst-content .wp-block-embed iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border-radius: 14px;
}


/* ==========================================================================
   17. T7 — PAGE DE CONFIANCE
   ========================================================================== */

.pst-doc {
	max-width: var(--pst-reading);
	margin: 0 auto;
	padding: var(--pst-6) var(--pst-5) var(--pst-7);
}

.pst-doc h1 {
	font-size: var(--pst-step-5);
	margin: var(--pst-3) 0 var(--pst-2);
	letter-spacing: -0.035em;
}

@media (max-width: 760px) {
	.pst-doc {
		padding: var(--pst-5) var(--pst-4) var(--pst-6);
	}

	.pst-doc h1 {
		font-size: 2.125rem;
	}
}

.pst-doc__updated {
	margin-bottom: var(--pst-6);
	font-size: var(--pst-step--1);
	color: var(--pst-ink-2);
}

.pst-doc__toc {
	background: var(--pst-wash);
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-r-card);
	padding: var(--pst-5);
	margin-bottom: var(--pst-6);
}

/*
 * Le résumé sert de bouton d'ouverture. Le marqueur natif n'est stylable de
 * façon fiable sur aucun navigateur : on le masque et on dessine le chevron.
 * La hauteur minimale de 48 px est la cible tactile exigée pour ce lectorat.
 */
.pst-doc__toc summary {
	display: flex;
	align-items: center;
	gap: var(--pst-3);
	min-height: 48px;
	cursor: pointer;
	list-style: none;
	user-select: none;
}

.pst-doc__toc summary::-webkit-details-marker {
	display: none;
}

.pst-doc__toc-label {
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	text-transform: uppercase;
	color: var(--pst-ink-2);
}

.pst-doc__toc-count {
	font-size: 0.9375rem;
	color: var(--pst-ink-3);
}

/* Chevron tracé avec deux bordures : aucun fichier à charger. */
.pst-doc__toc summary::after {
	content: "";
	width: 9px;
	height: 9px;
	margin-left: auto;
	border-right: 2px solid var(--pst-ink-2);
	border-bottom: 2px solid var(--pst-ink-2);
	transform: rotate(45deg) translateY(-2px);
	transition: transform 0.15s ease;
}

.pst-doc__toc details[open] summary::after {
	transform: rotate(225deg) translateY(-2px);
}

.pst-doc__toc summary:focus-visible {
	outline: 2px solid var(--pst-accent);
	outline-offset: 3px;
	border-radius: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.pst-doc__toc summary::after {
		transition: none;
	}
}

.pst-doc__toc ol {
	margin: var(--pst-4) 0 0;
	padding-left: var(--pst-5);
	display: grid;
	gap: 9px;
}

.pst-doc__toc li {
	font-size: 1.0625rem;
	line-height: 1.4;
}

.pst-doc__toc a {
	font-weight: 600;
	color: var(--pst-accent-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.pst-doc__toc a:hover {
	color: var(--pst-accent);
}

/* Un titre visé par une ancre ne se cache pas sous l'en-tête. */
.pst-content h2[id],
.pst-content h3[id] {
	scroll-margin-top: var(--pst-5);
}


/* ==========================================================================
   18. T8 — RECHERCHE, 404, FAVORIS
   ========================================================================== */

.pst-util {
	max-width: var(--pst-reading);
	margin: 0 auto;
	padding: var(--pst-6) var(--pst-5) var(--pst-7);
}

.pst-util h1 {
	font-size: var(--pst-step-5);
	margin-bottom: var(--pst-4);
	letter-spacing: -0.035em;
}

@media (max-width: 760px) {
	.pst-util {
		padding: var(--pst-5) var(--pst-4) var(--pst-6);
	}

	.pst-util h1 {
		font-size: 2.125rem;
	}
}

.pst-util__text {
	font-size: 1.0625rem;
	line-height: 1.55;
	color: var(--pst-ink-2);
	margin-bottom: var(--pst-5);
}

.pst-searchform {
	display: flex;
	gap: var(--pst-2);
	margin-bottom: var(--pst-5);
}

.pst-searchform input[type="search"] {
	flex: 1;
	min-width: 0;
	min-height: 52px;
	padding: 0 var(--pst-4);
	border: 2px solid var(--pst-line);
	border-radius: 12px;
	background: var(--pst-paper);
	color: var(--pst-ink);
	font-family: var(--pst-sans);
	font-size: 1.0625rem;
}

.pst-searchform input[type="search"]:focus-visible {
	border-color: var(--pst-accent);
}

.pst-searchform .pst-btn {
	min-height: 52px;
}

.pst-results {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pst-results li {
	border-top: 1px solid var(--pst-line);
}

.pst-results a {
	display: block;
	padding: var(--pst-4) 0;
	text-decoration: none;
	color: var(--pst-ink);
}

.pst-results__title {
	font-size: 1.1875rem;
	font-weight: 700;
	line-height: 1.32;
	letter-spacing: -0.015em;
}

.pst-results a:hover .pst-results__title {
	color: var(--pst-accent);
}

.pst-results__meta {
	display: block;
	margin-top: 4px;
	font-size: 0.875rem;
	color: var(--pst-ink-2);
}

.pst-404 {
	font-size: 4rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: -0.04em;
	color: var(--pst-accent);
	margin-bottom: var(--pst-3);
}

.pst-empty {
	padding: var(--pst-5);
	background: var(--pst-wash);
	border: 1px dashed var(--pst-line-strong);
	border-radius: 12px;
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var(--pst-ink-2);
}

.pst-favlist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pst-favlist li {
	border-top: 1px solid var(--pst-line);
}

.pst-favlist a {
	display: flex;
	align-items: center;
	gap: var(--pst-3);
	min-height: var(--pst-touch);
	padding: var(--pst-3) 0;
	text-decoration: none;
	color: var(--pst-ink);
	font-size: 1.0625rem;
	font-weight: 600;
	line-height: 1.35;
}

.pst-favlist a:hover {
	color: var(--pst-accent);
}

.pst-favlist img {
	width: 72px;
	height: 72px;
	flex: 0 0 72px;
	border-radius: var(--pst-r-thumb);
	object-fit: cover;
}

.pst-favlist__remove {
	margin-left: auto;
	flex: 0 0 auto;
	width: var(--pst-touch);
	height: var(--pst-touch);
	display: grid;
	place-items: center;
	background: none;
	border: 1px solid var(--pst-line);
	border-radius: var(--pst-2);
	color: var(--pst-ink-2);
	cursor: pointer;
}

.pst-favlist__remove:hover {
	border-color: var(--pst-warm);
	color: var(--pst-warm);
}

.pst-favlist__remove svg {
	width: 18px;
	height: 18px;
}


/* ==========================================================================
   19. FLOTTANTS
   ========================================================================== */

.pst-progress {
	position: fixed;
	top: 0;
	left: 0;
	z-index: 150;
	height: 5px;
	width: 0;
	background: var(--pst-accent);
	transition: width 0.1s linear;
}

.pst-backtop {
	position: fixed;
	right: var(--pst-5);
	bottom: var(--pst-5);
	z-index: 140;
	width: 56px;
	height: 56px;
	display: grid;
	place-items: center;
	border: 1px solid var(--pst-line);
	border-radius: 50%;
	background: var(--pst-paper);
	color: var(--pst-ink);
	box-shadow: 0 4px 16px rgba(21, 32, 43, 0.2);
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease;
}

.pst-backtop.is-visible {
	opacity: 1;
	visibility: visible;
}

.pst-backtop svg {
	width: 24px;
	height: 24px;
}

.admin-bar .pst-progress {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .pst-progress {
		top: 46px;
	}
}


/* ==========================================================================
   20. IMPRESSION
   Le lectorat visé imprime les articles pratiques. C'est un usage, pas un cas
   limite.
   ========================================================================== */

@media print {
	.pst-header,
	.pst-footer,
	.pst-drawer,
	.pst-progress,
	.pst-backtop,
	.pst-share,
	.hpd-latest,
	.hpd-mostread,
	.hpd-cont-sep,
	.hpd-cont-article,
	.pst-authorbox {
		display: none !important;
	}

	body {
		background: #fff;
		font-size: 12pt;
	}

	.pst-single,
	.pst-article {
		background: #fff;
		border: 0;
		max-width: none;
		padding: 0;
	}

	.pst-article__title {
		font-size: 22pt;
	}

	.pst-content a::after {
		content: " (" attr(href) ")";
		font-size: 9pt;
		font-weight: 400;
		word-break: break-all;
	}

	/* La mention obligatoire doit rester lisible sur le papier. On rouvre donc
	   le pied de page, masqué plus haut, pour n'en laisser que ce bandeau. */
	.pst-footer {
		display: block !important;
		background: #fff;
		margin-top: var(--pst-6);
	}

	.pst-footer__main,
	.pst-footer__legal {
		display: none !important;
	}

	.pst-rg {
		background: #fff;
		border-top: 1px solid #000;
	}

	.pst-rg__inner {
		padding: var(--pst-4) 0;
	}

	.pst-rg__age {
		background: #000;
		color: #fff;
	}

	.pst-rg__avert,
	.pst-rg__avert a {
		color: #000;
	}

	.pst-rg__liens {
		display: none;
	}
}


/* ==========================================================================
   21. AVATARS LOCAUX
   Gravatar est remplacé par une photo de la médiathèque ou, à défaut, par un
   rond d'initiales dessiné en CSS : aucune requête vers un domaine tiers dans
   le chemin critique de l'article.
   ========================================================================== */

.pst-avatar--initials {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--pst-accent-wash);
	color: var(--pst-accent-ink);
	font-weight: 800;
	font-size: 1.125rem;
	line-height: 1;
	letter-spacing: .01em;
	-webkit-user-select: none;
	user-select: none;
}

.pst-byline .pst-avatar--initials {
	width: 52px;
	height: 52px;
	flex-basis: 52px;
	font-size: 1.25rem;
}

.pst-authorbox .pst-avatar--initials {
	width: 72px;
	height: 72px;
	flex-basis: 72px;
	font-size: 1.625rem;
}

.pst-author-card .pst-avatar--initials {
	width: 124px;
	height: 124px;
	font-size: 2.75rem;
}

@media (max-width: 640px) {
	.pst-author-card .pst-avatar--initials {
		width: 88px;
		height: 88px;
		font-size: 2rem;
	}
}


/* ==========================================================================
   22. BLOCS ÉDITORIAUX DU PLUGIN — habillage
   Le plugin ne pose que la structure et les planchers d'accessibilité, pour
   tenir sous les 4 Ko que lui impose le cahier des charges. Les couleurs, les
   filets et les rayons viennent d'ici, avec les tokens du thème.
   ========================================================================== */

/* -- En bref : le résumé d'une phrase, avant la lecture -- */

.hpd-enbref {
	background: var(--pst-warm-wash);
	border-color: rgba(180, 87, 28, .25);
	border-left: 5px solid var(--pst-warm);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
	color: var(--pst-warm-ink);
}

.hpd-enbref-label {
	padding: 1px 8px;
	border-radius: 4px;
	background: rgba(180, 87, 28, .14);
	color: var(--pst-warm);
	vertical-align: middle;
}

/* -- Hook : la question posée, la réponse plus bas -- */

.hpd-hook {
	border: 1px dashed var(--pst-line-strong);
	background: var(--pst-wash);
}

.hpd-hook-jump {
	color: var(--pst-accent-ink);
}

.hpd-hook-jump:hover {
	color: var(--pst-accent);
}

/* -- Ce que ça change pour vous -- */

.hpd-pourvous {
	background: var(--pst-accent-wash);
	border-color: rgba(14, 110, 92, .22);
	border-left: 5px solid var(--pst-accent);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
}

.hpd-pourvous-retenir {
	border-top-color: rgba(14, 110, 92, .25);
	color: var(--pst-accent-ink);
}

/* -- Questions fréquentes -- */

.hpd-faq-item {
	border-top-color: var(--pst-line);
}

.hpd-faq dt {
	color: var(--pst-ink);
}

.hpd-faq dd {
	color: var(--pst-ink-2);
}

/* -- Chiffre-clé et frise, repris du thème -- */

.hpd-keystat {
	background: var(--pst-warm-wash);
	border-color: rgba(180, 87, 28, .2);
	border-left: 5px solid var(--pst-warm);
	border-radius: 0 var(--pst-r-card) var(--pst-r-card) 0;
}

.hpd-keystat b {
	font-size: 2.625rem;
	letter-spacing: -.03em;
	color: var(--pst-warm);
}

.hpd-keystat span {
	color: var(--pst-warm-ink);
}

.hpd-story li {
	border-left-color: var(--pst-line);
}

.hpd-story li.is-current {
	border-left-color: var(--pst-accent);
	background: var(--pst-accent-wash);
	border-radius: 0 var(--pst-r-thumb) var(--pst-r-thumb) 0;
}

.hpd-story time {
	color: var(--pst-ink-2);
}

.hpd-story li.is-current .hpd-story-event {
	color: var(--pst-accent-ink);
}

/* L'ancre du hook se place sous l'en-tête, pas dessous. */
.hpd-anchor {
	scroll-margin-top: var(--pst-5);
}

/* ==========================================================================
   21. VESTIGES D'ASTRA
   Le thème retire la feuille du parent (PST_DEQUEUE_ASTRA_CSS), mais pas son
   balisage : Astra pose un bouton de bascule dans chaque entrée de menu ayant
   des enfants, une flèche dans le lien lui-même, et son propre bouton de
   retour en haut. Privés de leur feuille, ces éléments s'affichaient tels
   quels — d'où les chevrons encadrés sous « Bookmakers » et « Guides », et un
   second bouton de retour en haut.

   Le thème dessine son propre chevron en ::before sur les entrées à sous-menu,
   et son propre bouton de retour en haut dans .pst-backtop.
   ========================================================================== */

.ast-menu-toggle,
.dropdown-menu-toggle,
.ast-header-navigation-arrow,
.ast-icon,
#ast-scroll-top,
.ast-scroll-to-top-right,
.ast-scroll-top-icon {
	display: none !important;
}
