/* 00-tokens.css */
/* Variables de couleur et de forme (thème sombre par défaut, palette claire choisie par le visiteur). */

:root {
	--pl-base: var(--wp--preset--color--base);
	--pl-surface: var(--wp--preset--color--surface);
	--pl-line: var(--wp--preset--color--line);
	--pl-muted: var(--wp--preset--color--muted);
	--pl-text: var(--wp--preset--color--contrast);
	--pl-accent: var(--wp--preset--color--accent);
	--pl-field: var(--wp--preset--color--field);
	--pl-live: var(--wp--preset--color--live);
	--pl-pause: var(--wp--preset--color--pause);
	--pl-radius-art: 14px;
	--pl-radius-box: 18px;
	color-scheme: var(--wp--custom--color-scheme, dark);
	font-variant-numeric: tabular-nums;
}

/*
 * Mode clair, choisi par le visiteur (bouton de l'en-tête). Les couleurs du thème sont des variables :
 * il suffit de les redéfinir. Contrastes vérifiés : textes ≥ 4,5:1, bordures de champs ≥ 3:1.
 */
html[data-theme="light"] {
	--wp--preset--color--base: #F6F5F9;
	--wp--preset--color--surface: #FFFFFF;
	--wp--preset--color--line: #DEDAE6;
	--wp--preset--color--field: #8A8497;
	--wp--preset--color--muted: #5F596B;
	--wp--preset--color--contrast: #1D1A23;
	--wp--preset--color--accent: #5B3CD6;
	--wp--preset--color--live: #1F7A3D;
	--wp--preset--color--pause: #8A5800;
	--wp--custom--color-scheme: light;
	--wp--custom--art-shadow: 0 24px 48px -28px rgba(29, 26, 35, 0.45);
}

/* 01-theme-toggle.css */
/* Bouton de bascule sombre / clair de l'en-tête. */

/* Bouton de bascule sombre / clair. */
.pl-theme-toggle {
	display: inline-grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	background: transparent;
	color: var(--pl-text);
	border: 1px solid var(--pl-line);
	border-radius: 999px;
	cursor: pointer;
	flex: none;
}

.pl-theme-toggle:hover {
	border-color: var(--pl-accent);
}

.pl-theme-toggle svg {
	width: 1.15rem;
	height: 1.15rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
}

/* En mode sombre on propose le soleil, en mode clair la lune. */
.pl-theme-toggle .pl-icon-moon,
html[data-theme="light"] .pl-theme-toggle .pl-icon-sun {
	display: none;
}

html[data-theme="light"] .pl-theme-toggle .pl-icon-moon {
	display: block;
}

/* 02-base.css */
/* Fond de page, anneau de focus, texte réservé aux lecteurs d'écran. */

html {
	/* L'en-tête collant ne doit pas masquer l'élément qui reçoit le focus (WCAG 2.4.11). */
	scroll-padding-top: 5.5rem;
}

body {
	background: var(--pl-base);
	-webkit-font-smoothing: antialiased;
}

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

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

/* 03-header.css */
/*
 * En-tête collant sur deux niveaux : en haut les outils (recherche, « Mon espace », thème clair ou sombre),
 * en dessous le nom du site et le menu des rubriques.
 */

.pl-header {
	position: sticky;
	top: 0;
	z-index: 20;
	padding-block: 0.55rem 0.8rem;
	background: color-mix(in srgb, var(--pl-base) 88%, transparent);
	backdrop-filter: blur(14px);
	border-bottom: 1px solid var(--pl-line);
}

html {
	scroll-padding-top: 8rem; /* Hauteur de l'en-tête sur deux niveaux. */
}

.pl-header__top {
	gap: 0.6rem;
}

.pl-header > .pl-header__main {
	margin-block-start: 0.45rem;
	gap: 1.25rem;
}

.pl-header .wp-block-site-title {
	white-space: nowrap;
}

/* Le menu tient sur une ligne : l'espacement se resserre avec la fenêtre avant tout retour à la ligne. */
.pl-header .wp-block-navigation__container {
	flex-wrap: nowrap;
	white-space: nowrap;
	gap: clamp(0.8rem, 1.7vw, 1.75rem);
}

/* Entre 600 et 899 px, les huit rubriques passent sous le nom du site. (Menu mobile en dessous de 600 px.) */
@media (min-width: 600px) and (max-width: 899px) {
	html {
		scroll-padding-top: 10.5rem;
	}

	.pl-header > .pl-header__main {
		flex-wrap: wrap !important;
		row-gap: 0.5rem;
	}

	.pl-header .wp-block-navigation {
		width: 100%;
		justify-content: flex-start;
	}

	.pl-header .wp-block-navigation__container {
		justify-content: flex-start;
		flex-wrap: wrap;
		gap: 0.4rem 1rem;
	}

	.pl-header .wp-block-navigation .wp-block-navigation-item__content {
		font-size: 0.95rem;
	}
}

/* Recherche de l'en-tête : présente sur toutes les pages. */
.pl-header-search {
	flex: 0 1 17rem;
	min-width: 9rem;
	margin: 0;
}

.pl-header-search .wp-block-search__inside-wrapper {
	padding: 0.15rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field);
	border-radius: 999px;
}

.pl-header-search .wp-block-search__inside-wrapper:focus-within {
	border-color: var(--pl-accent);
}

.pl-header-search .wp-block-search__input {
	min-height: 2rem;
	padding: 0.3rem 0.8rem;
	background: transparent;
	border: 0;
	color: var(--pl-text);
	font: inherit;
	font-size: var(--wp--preset--font-size--small);
}

.pl-header-search .wp-block-search__input:focus {
	outline: none;
}

.pl-header-search .wp-block-search__button {
	min-width: 2rem;
	min-height: 2rem;
	margin: 0;
	padding: 0.4rem;
	background: transparent;
	color: var(--pl-text);
	border: 0;
	border-radius: 999px;
}

.pl-header-search .wp-block-search__button:hover {
	background: var(--pl-line);
	color: var(--pl-text);
}

.pl-header-search .wp-block-search__button svg {
	fill: currentColor;
}

/* L'accueil a déjà son grand champ de recherche. */
.home .pl-header-search {
	display: none;
}

.pl-header__top .pl-theme-toggle {
	width: 2.4rem;
	height: 2.4rem;
}

@media (max-width: 599px) {
	.pl-header-search {
		flex: 1 1 auto;
		min-width: 0;
	}

	/* Sur téléphone, le nom du site passe en premier, les outils dessous. */
	.pl-header {
		display: flex;
		flex-direction: column;
		gap: 0.65rem;
	}

	.pl-header > .pl-header__top,
	.pl-header > .pl-header__main {
		width: 100%;
		margin-block: 0;
	}

	.pl-header > .pl-header__main {
		order: -1;
	}
}

.pl-header .wp-block-navigation a:hover,
.pl-header .wp-block-navigation .current-menu-item a {
	color: var(--pl-accent);
}

.pl-nav-cta {
	display: inline-flex;
	align-items: center;
	min-height: 2.4rem;
	padding: 0 0.95rem;
	border: 1px solid var(--pl-line);
	border-radius: 999px;
	color: var(--pl-text);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
	white-space: nowrap;
}

.pl-nav-cta:hover {
	border-color: var(--pl-accent);
	color: var(--pl-accent);
}

.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--pl-base) !important;
	color: var(--pl-text) !important;
}

/* Sous-menus (Médias, Actualité, Annonceurs) : carte aux couleurs du thème, sous la rubrique. */
.pl-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 14rem;
	padding: 0.4rem;
	background: var(--pl-surface) !important;
	color: var(--pl-text) !important;
	border: 1px solid var(--pl-line);
	border-radius: 12px;
	box-shadow: var(--wp--custom--art-shadow, 0 24px 48px -28px rgba(0, 0, 0, 0.6));
	white-space: nowrap;
}

.pl-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.45rem 0.7rem;
	border-radius: 8px;
}

.pl-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
.pl-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
	background: var(--pl-line);
}

.pl-header .wp-block-navigation-submenu__toggle[aria-expanded="true"] {
	color: var(--pl-accent);
}

/* Menu mobile : les sous-menus sont dépliés, en liste simple sous leur rubrique. */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	padding: 0.25rem 0 0.5rem 1rem;
	background: transparent !important;
	border: 0;
	box-shadow: none;
}

/* Le flou de l'en-tête fait de lui le repère des éléments fixes : sans ce retrait, le menu mobile ouvert
   ne couvrirait que la hauteur de l'en-tête au lieu de l'écran. */
.pl-header:has(.wp-block-navigation__responsive-container.is-menu-open) {
	backdrop-filter: none;
}

.wp-block-navigation__responsive-container.is-menu-open {
	overflow-y: auto;
}

/* Menu mobile : rubriques alignées à gauche, comme le reste du site (le menu de bureau est aligné à droite). */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	align-items: flex-start !important;
	text-align: left;
}

/* 04-footer.css */
/* Pied de page. */

.pl-footer {
	margin-top: var(--wp--preset--spacing--60);
	padding-block: var(--wp--preset--spacing--50);
	border-top: 1px solid var(--pl-line);
}

.pl-footer h2 {
	color: var(--pl-muted);
	font-weight: 500;
	letter-spacing: 0;
}

.pl-footer__links {
	list-style: none;
	padding: 0;
	margin: 0;
	line-height: 2;
}

.pl-footer__links a {
	text-decoration: none;
}

/* Bas de page : mentions obligatoires sur une ligne, puis l'éditeur. */
.pl-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--40);
	border-top: 1px solid var(--pl-line);
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-footer__legal ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-footer__legal a {
	color: inherit;
	text-decoration: none;
}

.pl-footer__legal a:hover {
	color: var(--pl-text);
	text-decoration: underline;
}

.pl-footer__legal p {
	margin: 0;
}

/* 05-layout.css */
/* Colonne principale et sections (titre de section, lien « voir tout »). */

.pl-main {
	padding-top: var(--wp--preset--spacing--40);
}

.pl-main > * + * {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* Un bloc qui empile plusieurs sections (actualité, tendances, régies) les espace lui-même. */
.pl-block > * + .pl-section,
.pl-block > * + .pl-pro {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.pl-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.pl-section__head h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
}

.pl-section__more {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.pl-main > .pl-block--filters {
	margin-block-start: var(--wp--preset--spacing--40);
}

.pl-main > .pl-block--directory {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* Une seconde grille sous la première (« Nouveaux dans l'annuaire » après la pagination) : une vraie section. */
.pl-main:not(.pl-home) > .pl-block--directory + .pl-block--directory {
	margin-block-start: clamp(2.5rem, 5vw, 4rem);
}

/* 06-controls.css */
/* Boutons, pastilles, liens discrets, notes, statut d'activité, badge vérifié. */

.pl-button,
.pl-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	border-radius: 999px;
	font: inherit;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s, border-color 0.15s;
}

.pl-button {
	padding: 0.7rem 1.3rem;
	background: var(--pl-accent);
	color: var(--pl-base);
	border: 1px solid var(--pl-accent);
	font-weight: 600;
}

.pl-button:hover {
	background: var(--pl-text);
	border-color: var(--pl-text);
	color: var(--pl-base);
}

.pl-button--ghost {
	background: transparent;
	color: var(--pl-text);
	border-color: var(--pl-line);
}

.pl-button--ghost:hover {
	background: transparent;
	color: var(--pl-text);
	border-color: var(--pl-accent);
}

.pl-button:disabled {
	opacity: 0.55;
	cursor: progress;
}

.pl-link {
	color: var(--pl-muted);
	background: none;
	border: 0;
	padding: 0;
	font: inherit;
	cursor: pointer;
	text-decoration: underline;
	margin-left: 0.75rem;
}

.pl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.pl-chip {
	padding: 0.45rem 0.95rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-line);
	color: var(--pl-text);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.pl-chip:hover {
	border-color: var(--pl-accent);
	color: var(--pl-text);
}

.pl-chip--quiet {
	background: transparent;
	color: var(--pl-muted);
}

.pl-note {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Statut d'activité : un point de couleur, le mot reste lisible. */
.pl-status {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-muted);
}

.pl-status::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}

.pl-status--actif {
	color: var(--pl-live);
}

.pl-status--pause {
	color: var(--pl-pause);
}

.pl-verified {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	margin-left: 0.4rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-accent);
}

.pl-verified::before {
	content: "✓";
	font-weight: 700;
}

/* 07-meter.css */
/* Le vumètre : signature visuelle du site. */

/*
 * Le vumètre : signature visuelle du site. Dix segments, comme une rampe de LED de console,
 * les deux derniers en couleur de crête.
 */
.pl-meter {
	display: inline-flex;
	align-items: flex-end;
	gap: 2px;
	height: 14px;
}

.pl-meter i {
	display: block;
	width: 4px;
	height: 100%;
	border-radius: 1px;
	background: var(--pl-line);
}

.pl-meter i:nth-child(1) { height: 40%; }

.pl-meter i:nth-child(2) { height: 46%; }

.pl-meter i:nth-child(3) { height: 52%; }

.pl-meter i:nth-child(4) { height: 58%; }

.pl-meter i:nth-child(5) { height: 64%; }

.pl-meter i:nth-child(6) { height: 70%; }

.pl-meter i:nth-child(7) { height: 77%; }

.pl-meter i:nth-child(8) { height: 84%; }

.pl-meter i:nth-child(9) { height: 92%; }

.pl-meter i.is-on {
	background: var(--pl-accent);
}

.pl-meter i.is-peak {
	background: var(--pl-text);
}

.pl-meter b {
	margin-left: 0.45rem;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1;
}

/* 08-cards.css */
/* Grille de pochettes et cartes média (et pochettes partagées par le classement, la fiche et la revendication). */

.pl-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 176px), 1fr));
	gap: clamp(1rem, 2.4vw, 1.75rem);
}

.pl-card {
	position: relative;
	min-width: 0;
}

.pl-card__link {
	display: block;
	text-decoration: none;
	color: inherit;
}

.pl-card__art,
.pl-rank__art,
.pl-hero__img,
.pl-claim-target__art {
	display: block;
	box-sizing: border-box; /* La bordure des pochettes vides reste dans le carré : titres alignés d'une carte à l'autre. */
	width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--pl-radius-art);
	background: var(--pl-surface);
}

/* Logos de médias en ligne : souvent plus larges que hauts, ou sombres sur fond transparent. */
.pl-art--logo {
	box-sizing: border-box;
	padding: 12%;
	object-fit: contain;
	background: #fff;
}

.pl-card__art--empty,
.pl-rank__art--empty,
.pl-hero__img--empty,
.pl-claim-target__art--empty {
	display: grid;
	place-items: center;
	font-size: 2rem;
	font-weight: 700;
	color: var(--pl-muted);
	border: 1px solid var(--pl-line);
}

.pl-card__title {
	margin: 0.8rem 0 0.15rem;
	font-size: 1.0625rem;
	font-weight: 650;
	line-height: 1.25;
	letter-spacing: -0.01em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.pl-card__link:hover .pl-card__title {
	color: var(--pl-accent);
}

.pl-card__author {
	margin: 0;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pl-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 0.45rem;
}

.pl-card.is-featured .pl-card__art {
	outline: 2px solid var(--pl-accent);
	outline-offset: 3px;
}

@media (max-width: 781px) {
	.pl-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* 09-ranking.css */
/* Classements numérotés et progression dans les tendances. */

/* Classement : un vrai classement, donc numéroté. */
.pl-ranking {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-rank {
	display: grid;
	grid-template-columns: 2.2rem 56px minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.9rem;
	padding-block: 0.65rem;
	border-bottom: 1px solid var(--pl-line);
}

.pl-rank__n {
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--pl-muted);
	text-align: right;
	letter-spacing: -0.03em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.pl-rank:nth-child(-n + 3) .pl-rank__n {
	color: var(--pl-text);
}

/* Progression dans les tendances : flèche + nombre de places gagnées. */
.pl-ranking--trends .pl-rank {
	grid-template-columns: 2.2rem 56px minmax(0, 1fr) auto auto;
}

.pl-trend {
	color: var(--pl-live);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.pl-trend::before {
	content: "▲ ";
	font-size: 0.75em;
}

.pl-rank__art {
	border-radius: 9px;
}

.pl-rank__body {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.pl-rank__title {
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.pl-rank__sub {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

@media (max-width: 781px) {
	.pl-rank {
		grid-template-columns: 2rem 48px minmax(0, 1fr);
		gap: 0.75rem;
	}

	/* « 10 » tient sur une ligne. */
	.pl-rank__n {
		font-size: 1.2rem;
	}

	.pl-rank .pl-meter {
		display: none;
	}
}

/* 10-topics.css */
/* Page d'un sujet : épisodes qui en parlent. */

.pl-topic-meta {
	color: var(--pl-muted);
}

.pl-topic-episodes {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pl-line);
}

.pl-topic-episodes li {
	display: grid;
	grid-template-columns: minmax(8rem, 16rem) minmax(0, 1fr) auto;
	gap: 0.35rem 1.25rem;
	align-items: baseline;
	padding: 0.7rem 0;
	border-bottom: 1px solid var(--pl-line);
}

.pl-topic-episodes a {
	font-weight: 650;
	text-decoration: none;
}

.pl-topic-episodes a:hover {
	text-decoration: underline;
}

.pl-topic-episodes time {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

@media (max-width: 600px) {
	.pl-topic-episodes li {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.pl-topic-episodes span {
		grid-column: 1 / -1;
		grid-row: 2;
	}
}

/* Dans une ligne de sujet : le nom du média mène à sa fiche, le titre à l'épisode lui-même. */
.pl-topic-episodes .pl-topic-episodes__episode {
	font-weight: 400;
	text-decoration: underline;
	text-decoration-color: var(--pl-line);
	text-underline-offset: 0.2em;
}

.pl-topic-episodes .pl-topic-episodes__episode:hover {
	text-decoration-color: var(--pl-accent);
}

.pl-topic__count {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.pl-topic__more {
	margin: 1.25rem 0 0;
}

/* Sur la page Actualité, chaque sujet est un bloc distinct. */
.pl-block > * + .pl-topic {
	margin-top: clamp(3rem, 6vw, 4.5rem);
}

/* Aperçu de l'actualité sur l'accueil. */
.pl-topics-teaser__lead {
	max-width: 44rem;
	margin: 0 0 1.25rem;
	color: var(--pl-muted);
}

/* 11-regies.css */
/* Régies publicitaires. */

.pl-regie-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-regie-card {
	padding: 1.1rem 1.25rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius-box);
}

.pl-regie-card a {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	text-decoration: none;
}

.pl-regie-card a:hover {
	text-decoration: underline;
}

.pl-regie-card p {
	margin: 0.4rem 0 0;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Journalistes : une carte par média, le nom du média en titre. */
.pl-journalist-list h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--medium);
}

.pl-journalist-list p a {
	font-size: inherit;
	font-weight: 400;
}

/* 12-tables.css */
/* Tableaux de données. */

.pl-table-wrap {
	overflow-x: auto;
}

.pl-table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
}

.pl-table th,
.pl-table td {
	padding: 0.75rem 1rem 0.75rem 0;
	border-bottom: 1px solid var(--pl-line);
	text-align: left;
	vertical-align: top;
	white-space: nowrap;
}

.pl-table thead th {
	color: var(--pl-muted);
	font-weight: 500;
	white-space: normal;
	vertical-align: bottom;
}

.pl-table form .pl-link,
.pl-alerts__list .pl-link,
.pl-block--planner > form .pl-link {
	margin-left: 0;
}

.pl-table tbody th {
	min-width: 14rem;
	font-weight: 650;
	white-space: normal;
}

.pl-table tbody th small {
	display: block;
	color: var(--pl-muted);
	font-weight: 400;
}

/* 13-planner.css */
/* Planificateur de campagne : formulaire, totaux, actions, impression. */

.pl-plan-add {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.25rem;
	align-items: center;
	margin-top: 1.25rem;
}

.pl-plan-add .pl-form__msg {
	flex-basis: 100%;
	margin: 0;
}

.pl-planner-form {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: end;
	margin-bottom: var(--wp--preset--spacing--40);
}

.pl-planner-form label {
	display: grid;
	gap: 0.35rem;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-planner-form input {
	width: 11rem;
	min-height: 2.6rem;
	padding: 0.45rem 0.85rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field);
	border-radius: 10px;
	color: var(--pl-text);
	font: inherit;
}

/* Les totaux du plan se lisent comme des chiffres clés, pas comme une fiche. */
.pl-facts.pl-planner-totals {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: 1rem;
	margin-bottom: var(--wp--preset--spacing--50);
}

.pl-facts.pl-planner-totals > div {
	display: block;
	padding: 1.1rem 1.25rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius-box);
}

.pl-facts.pl-planner-totals dt {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-facts.pl-planner-totals dd {
	margin: 0.35rem 0 0;
	font-size: clamp(1.35rem, 2.6vw, 1.85rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.pl-planner-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-top: var(--wp--preset--spacing--40);
}

@media print {
	header.wp-block-template-part,
	footer.wp-block-template-part,
	.pl-planner-form,
	.pl-planner-actions,
	.pl-table form,
	.pl-block--planner > form {
		display: none !important;
	}

	body {
		background: #fff !important;
		color: #000 !important;
	}
}

/* 14-guests.css */
/* Prises de parole, recherche « Qui parle de… », recherche par sponsor. */

.pl-more {
	margin-top: 1rem;
}

.pl-more summary {
	width: fit-content;
	padding: 0.45rem 0;
	color: var(--pl-muted);
	cursor: pointer;
	text-decoration: underline;
}

.pl-more[open] summary {
	margin-bottom: 0.75rem;
}

.pl-guests {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--pl-line);
}

.pl-guest {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: center;
	padding: 0.85rem 0;
	border-bottom: 1px solid var(--pl-line);
}

.pl-guest__body {
	display: grid;
	gap: 0.15rem;
}

.pl-guest__title {
	font-weight: 650;
	text-decoration: none;
}

.pl-guest__title:hover {
	text-decoration: underline;
}

.pl-guest__meta {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-guest__names {
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 600px) {
	.pl-guest {
		grid-template-columns: 56px minmax(0, 1fr);
	}

	.pl-guest > .pl-meter {
		display: none;
	}
}

/* « Qui parle de… » : la question est écrite dans le champ, avant la saisie. */
.pl-search--qui {
	align-items: center;
}

.pl-search--qui label {
	padding-left: 1.1rem;
	font-weight: 700;
	white-space: nowrap;
}

.pl-search--qui input {
	padding-left: 0.4rem;
}

@media (max-width: 480px) {
	.pl-search--qui {
		flex-wrap: wrap;
		border-radius: var(--pl-radius-box);
	}

	.pl-search--qui label {
		flex-basis: 100%;
		padding-top: 0.5rem;
	}

	.pl-search--qui input {
		padding-left: 1.1rem;
	}
}

.pl-sponsor-search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	margin-bottom: var(--wp--preset--spacing--40);
}

.pl-sponsor-search .pl-search {
	flex: 1 1 min(22rem, 100%);
	min-width: 0;
}

.pl-sponsor-search select {
	max-width: 100%;
	padding: 0.85rem 1rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field);
	border-radius: 999px;
	color: var(--pl-text);
	font: inherit;
}

.pl-sponsor-count,
.pl-sponsor-seen {
	color: var(--pl-muted);
}

.pl-sponsor-seen {
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

/* 15-home.css */
/* Accueil : grand champ de recherche, thématiques, bandeau Pro. */

.pl-search-hero {
	padding-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30);
}

.pl-search-hero h1 {
	max-width: 20ch;
	margin: 0 0 1.25rem;
	font-size: clamp(2.5rem, 6vw, 4.75rem);
	font-weight: 750;
	line-height: 0.95;
	letter-spacing: -0.045em;
}

.pl-search-hero__lead {
	max-width: 44rem;
	margin: 0 0 2rem;
	color: var(--pl-muted);
	font-size: clamp(1.0625rem, 2vw, 1.25rem);
}

.pl-search {
	display: flex;
	gap: 0.5rem;
	max-width: 680px;
	padding: 0.4rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field);
	border-radius: 999px;
}

.pl-search:focus-within {
	border-color: var(--pl-accent);
}

.pl-search input {
	flex: 1;
	min-width: 0;
	padding: 0.6rem 1rem;
	background: transparent;
	border: 0;
	color: var(--pl-text);
	font: inherit;
	font-size: 1.125rem;
}

.pl-search input:focus {
	outline: none;
}

.pl-search-hero__count {
	margin-top: 1rem;
	color: var(--pl-muted);
}

.pl-themes {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-themes a {
	display: inline-flex;
	gap: 0.45rem;
	padding: 0.45rem 0.95rem;
	border: 1px solid var(--pl-line);
	border-radius: 999px;
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.pl-themes a:hover {
	border-color: var(--pl-accent);
	color: var(--pl-text);
}

.pl-themes span {
	color: var(--pl-muted);
}

.pl-pro-band {
	padding: clamp(1.75rem, 5vw, 3.5rem);
	background: var(--pl-accent);
	color: var(--pl-base);
	border-radius: var(--pl-radius-box);
}

.pl-pro-band h2 {
	max-width: 20ch;
	margin: 0;
	font-size: clamp(1.9rem, 4vw, 3rem);
	letter-spacing: -0.035em;
}

.pl-pro-band p {
	max-width: 56ch;
}

.pl-pro-band .wp-block-button__link {
	background: var(--pl-base);
	color: var(--pl-text);
}

.pl-pro-band .wp-block-button__link:hover {
	background: var(--pl-surface);
}

@media (max-width: 781px) {
	.pl-search button {
		padding-inline: 1rem;
	}
}

/* Accueil : chaque section respire. Le titre d'une section ne doit jamais sembler appartenir à celle du dessus. */
.pl-main.pl-home > * + * {
	margin-block-start: clamp(3rem, 6vw, 5rem);
}

.pl-main.pl-home > .pl-block--search-hero + * {
	margin-block-start: var(--wp--preset--spacing--50);
}

.pl-home .pl-section__head {
	margin-block-end: 1.25rem;
}

/* 16-fields.css */
/* Apparence commune des champs de saisie (avant les variantes des filtres et des formulaires). */

.pl-filters select,
.pl-form input,
.pl-form select {
	min-height: 2.6rem;
	padding: 0.45rem 2rem 0.45rem 0.85rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field); /* Contraste 3:1 : le champ reste repérable (WCAG 1.4.11). */
	border-radius: 10px;
	color: var(--pl-text);
	font: inherit;
}

/* 17-archive.css */
/* Archives : fil d'Ariane, introduction, filtres, pagination, état vide. */

.pl-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-breadcrumbs li + li::before {
	content: "/";
	margin-right: 0.35rem;
	opacity: 0.5;
}

.pl-breadcrumbs a {
	color: var(--pl-muted);
	text-decoration: none;
}

.pl-breadcrumbs a:hover {
	color: var(--pl-text);
}

.pl-archive-intro {
	padding-bottom: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--pl-line);
}

.pl-archive-intro h1 {
	max-width: 22ch;
	margin: 0;
	font-size: clamp(2.25rem, 5.5vw, 4.25rem);
}

.pl-archive-intro__lead {
	max-width: 68ch;
	margin: 1rem 0 0;
	color: var(--pl-muted);
	font-size: 1.125rem;
}

.pl-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem;
}

.pl-filters__fields {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}

.pl-filters__field {
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-muted);
}

.pl-filters select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--pl-muted) 50%), linear-gradient(135deg, var(--pl-muted) 50%, transparent 50%);
	background-position: calc(100% - 15px) 52%, calc(100% - 10px) 52%;
	background-size: 5px 5px;
	background-repeat: no-repeat;
}

.pl-filters__end {
	display: flex;
	align-items: center;
	gap: 1rem;
}

.pl-filters__count {
	margin: 0;
	color: var(--pl-muted);
}

.pl-paging {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-top: var(--wp--preset--spacing--50);
}

.pl-paging .page-numbers {
	box-sizing: border-box;
	min-width: 2.75rem; /* Aussi large que haute : un rond pour les numéros. */
	padding: 0.45rem 0.8rem;
	border: 1px solid var(--pl-line);
	border-radius: 999px;
	text-align: center;
	text-decoration: none;
}

.pl-paging .page-numbers.current {
	background: var(--pl-text);
	color: var(--pl-base);
	border-color: var(--pl-text);
}

.pl-paging .dots {
	min-width: 0;
	padding-inline: 0.25rem;
	border: 0;
	color: var(--pl-muted);
}

.pl-empty {
	padding: var(--wp--preset--spacing--50) 0;
	color: var(--pl-muted);
}

@media (max-width: 781px) {
	.pl-filters__field {
		flex: 1 1 calc(50% - 0.75rem);
	}

	.pl-filters select {
		width: 100%;
	}
}

.pl-filters__submit {
	align-self: flex-end;
	min-height: 2.6rem;
	padding-block: 0.45rem;
}

/* Fiches mises en avant (Créateur Boost) en tête d'une liste : nettement séparées de la liste elle-même. */
.pl-section--featured {
	margin-block-end: clamp(2.5rem, 5vw, 4rem);
	padding-block-end: clamp(2rem, 4vw, 3rem);
	border-bottom: 1px solid var(--pl-line);
}

/* Choix de la présentation : grille de pochettes ou liste classée. */
.pl-view {
	display: inline-flex;
	padding: 0.2rem;
	border: 1px solid var(--pl-line);
	border-radius: 999px;
}

.pl-view__option {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	padding: 0.35rem 0.8rem;
	border-radius: 999px;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
}

.pl-view__option svg {
	width: 1rem;
	height: 1rem;
	fill: currentColor;
}

.pl-view__option:hover {
	color: var(--pl-text);
}

.pl-view__option[aria-current="true"] {
	background: var(--pl-surface);
	color: var(--pl-text);
	box-shadow: inset 0 0 0 1px var(--pl-line);
}

/* Filtre changé : la liste se recharge, le formulaire le montre le temps du chargement. */
.pl-filters.is-loading {
	opacity: 0.6;
	pointer-events: none;
}

/* Le bouton « Appliquer » ne sert que sans JavaScript : le script le masque, et son style ne doit pas le rattraper. */
.pl-filters__submit[hidden] {
	display: none;
}

/* 18-single.css */
/* Fiche d'un média : en-tête, faits, épisodes, encarts Pro et revendication. */

.pl-hero {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	grid-template-areas: "crumbs crumbs" "art body";
	align-items: center;
	gap: 0 clamp(1.5rem, 5vw, 4rem);
	padding-bottom: var(--wp--preset--spacing--50);
	border-bottom: 1px solid var(--pl-line);
}

.pl-hero .pl-breadcrumbs {
	grid-area: crumbs;
}

.pl-hero__art {
	grid-area: art;
}

.pl-hero__img {
	border-radius: var(--pl-radius-box);
	box-shadow: var(--wp--custom--art-shadow);
}

.pl-hero__body {
	grid-area: body;
	min-width: 0;
}

.pl-hero__facts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1.1rem;
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-accent);
	font-weight: 500;
}

.pl-hero__facts .pl-verified {
	margin-left: 0;
}

.pl-hero__title {
	margin: 0.6rem 0 0.4rem;
	font-size: clamp(2.25rem, 5.5vw, 4.5rem);
	overflow-wrap: break-word;
}

.pl-hero__author {
	margin: 0 0 1.5rem;
	color: var(--pl-muted);
	font-size: 1.125rem;
}

.pl-single__cols {
	margin-block-start: var(--wp--preset--spacing--50) !important;
}

.pl-single__h,
.pl-episodes h2,
.pl-pro h2,
.pl-claim h2 {
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--large);
}

.pl-prose {
	max-width: 66ch;
	color: color-mix(in srgb, var(--pl-text) 88%, var(--pl-muted));
}

.pl-single__aside > * + * {
	margin-top: 1.5rem;
}

.pl-facts {
	margin: 0;
}

.pl-facts > div {
	display: grid;
	grid-template-columns: minmax(8rem, 40%) 1fr;
	gap: 1rem;
	padding-block: 0.7rem;
	border-bottom: 1px solid var(--pl-line);
}

.pl-facts dt {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
	padding-top: 0.15rem;
}

.pl-facts dd {
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.pl-pro,
.pl-claim,
.pl-affiliates,
.pl-creator-offer,
.pl-claim-method,
.pl-team,
.pl-alerts {
	padding: 1.5rem;
	background: var(--pl-surface);
	border-radius: var(--pl-radius-box);
}

.pl-pro .pl-facts > div:last-child {
	border-bottom: 0;
}

/* Panneau étroit (mobile) : l'intitulé passe au-dessus de la valeur, qui prend toute la largeur. Côte à côte,
   une adresse de contact se coupait au milieu d'un mot sur trois lignes. */
@media (max-width: 600px) {
	.pl-pro .pl-facts > div {
		grid-template-columns: 1fr;
		gap: 0.2rem;
	}
}

.pl-pro.is-locked dd {
	color: var(--pl-muted);
}

.pl-lock {
	display: inline-block;
	width: 3.2rem;
	height: 0.7rem;
	margin-right: 0.6rem;
	border-radius: 4px;
	background: repeating-linear-gradient(90deg, var(--pl-line) 0 6px, transparent 6px 9px);
	vertical-align: middle;
}

.pl-claim p {
	color: var(--pl-muted);
}

.pl-episodes ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.pl-episode {
	display: grid;
	gap: 1.25rem;
	padding-block: 1.25rem;
	border-bottom: 1px solid var(--pl-line);
}

.pl-episodes--emission_video .pl-episode {
	grid-template-columns: 200px minmax(0, 1fr);
	align-items: start;
}

.pl-episode__thumb img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 10px;
}

.pl-episode__meta {
	margin: 0;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-episode__title {
	margin: 0.2rem 0 0.4rem;
	font-size: 1.125rem;
	line-height: 1.3;
}

.pl-episode__title a {
	text-decoration: none;
}

.pl-episode__excerpt {
	margin: 0 0 0.75rem;
	color: var(--pl-muted);
	font-size: 0.95rem;
}

.pl-episode audio {
	width: 100%;
	max-width: 420px;
	height: 36px;
}

.pl-claim-target {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 1.5rem;
}

.pl-claim-target__art {
	width: 96px;
}

.pl-claim-target h2 {
	margin: 0;
}

.pl-claim-target .pl-note {
	margin: 0;
}

.pl-claim-method + .pl-claim-method {
	margin-top: 1.25rem;
}

.pl-claim-method h3 {
	margin-top: 0;
}

@media (max-width: 781px) {
	.pl-hero {
		grid-template-columns: 1fr;
		grid-template-areas: "crumbs" "art" "body";
	}

	.pl-hero__art {
		max-width: 240px;
		margin-bottom: 1.5rem;
	}

	.pl-episodes--emission_video .pl-episode {
		grid-template-columns: 1fr;
	}
}

/* Arrivée sur un épisode depuis l'actualité ou une page de sujet : il se détache, sous l'en-tête collant. */
.pl-episodes,
.pl-episode {
	scroll-margin-top: 7rem;
}

.pl-episode:target {
	margin-inline: -1rem;
	padding-inline: 1rem;
	background: var(--pl-surface);
	border-radius: 10px;
	box-shadow: inset 3px 0 0 var(--pl-accent);
}

/* 19-forms.css */
/* Formulaires : champs, messages, cases, groupes, zones de texte. */

/* Une zone de message vide ne doit pas creuser la mise en page (elle reste présente pour les lecteurs d'écran). */
.pl-form__msg:empty {
	margin: 0;
}

.pl-form {
	display: grid;
	gap: 1rem;
	max-width: 560px;
}

.pl-form label {
	display: grid;
	gap: 0.35rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-muted);
}

.pl-form input,
.pl-form select {
	padding-right: 0.85rem;
	font-size: 1rem;
}

.pl-form input:focus,
.pl-form select:focus,
.pl-filters select:focus {
	outline: none;
	border-color: var(--pl-accent);
}

.pl-form .pl-button {
	justify-self: start;
}

.pl-form__row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.pl-form__msg {
	margin: 0;
	min-height: 1.5em;
	color: var(--pl-live);
}

.pl-form.is-error .pl-form__msg,
.pl-form__msg.is-error {
	color: var(--pl-pause);
}

.pl-form--inline {
	display: inline;
}

.pl-form--inline .pl-form__msg {
	display: none;
}

.pl-hp {
	position: absolute !important;
	left: -9999px;
}

.pl-steps {
	padding-left: 1.2rem;
	color: var(--pl-muted);
}

.pl-form textarea {
	width: 100%;
	padding: 0.6rem 0.85rem;
	background: var(--pl-surface);
	border: 1px solid var(--pl-field);
	border-radius: 10px;
	color: var(--pl-text);
	font: inherit;
	line-height: 1.5;
	resize: vertical;
}

.pl-form textarea:focus {
	outline: none;
	border-color: var(--pl-accent);
}

.pl-form--wide {
	max-width: 720px;
}

.pl-form .pl-check {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	color: var(--pl-text);
	font-size: 1rem;
}

.pl-form .pl-check input {
	width: 1.25rem;
	height: 1.25rem;
	min-height: 0;
	padding: 0;
	accent-color: var(--pl-accent);
}

.pl-form .pl-check + .pl-note,
.pl-form label + .pl-note {
	margin-top: -0.6rem;
}

.pl-fieldset {
	display: grid;
	gap: 0.6rem;
	margin: 0;
	padding: 0;
	border: 0;
}

.pl-fieldset legend {
	margin-bottom: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	color: var(--pl-muted);
}

/* 20-account.css */
/* Espace compte : revendication, équipe, alertes. */

.pl-team > h2,
.pl-alerts > h2 {
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--large);
}

.pl-dash .pl-team,
.pl-dash .pl-alerts {
	margin-top: 1.25rem;
}

.pl-team__list {
	padding-left: 1.2rem;
}

.pl-account .pl-facts {
	margin-bottom: 1.5rem;
}

/* Tableau de bord : en-tête, puis cartes. */
.pl-dash__head {
	margin-bottom: var(--wp--preset--spacing--40);
}

.pl-dash__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
}

.pl-dash__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
	gap: 1.25rem;
	margin-bottom: 1.25rem;
}

.pl-dash__card {
	padding: 1.5rem;
	background: var(--pl-surface);
	border-radius: var(--pl-radius-box);
}

.pl-dash__card--wide {
	grid-column: 1 / -1;
}

.pl-dash__card > h2 {
	margin: 0 0 1rem;
	font-size: var(--wp--preset--font-size--large);
}

.pl-dash__list,
.pl-dash__fiches {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
}

.pl-dash__list li {
	padding: 0.55rem 0;
	border-bottom: 1px solid var(--pl-line);
}

.pl-dash__list small {
	color: var(--pl-muted);
}

.pl-dash__list--actions li {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	justify-content: space-between;
}

.pl-dash__list .pl-link {
	margin-left: 0;
}

.pl-dash__fiche + .pl-dash__fiche {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--pl-line);
}

.pl-dash__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 700;
	text-decoration: none;
}

.pl-dash__meta {
	display: block;
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-dash__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	gap: 0.75rem 1.5rem;
	margin: 1rem 0;
}

.pl-dash__stats dt {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

.pl-dash__stats dd {
	margin: 0.15rem 0 0;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.15;
}

.pl-account .pl-alerts {
	margin-top: 2rem;
}

.pl-alerts__list {
	list-style: none;
	margin: 0 0 1.5rem;
	padding: 0;
	max-width: 560px;
}

.pl-alerts__list li {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	justify-content: space-between;
	padding: 0.6rem 0;
	border-bottom: 1px solid var(--pl-line);
}

.pl-alerts__list small {
	display: block;
	color: var(--pl-muted);
}

.pl-account .pl-team {
	margin-top: 2rem;
}

.pl-account__fiches {
	margin: 0;
	padding-left: 1.1rem;
}

/* Suppression du compte : repliée, en bas de l'espace, sans attirer l'œil. */
.pl-dash__delete {
	margin-block-start: 2.5rem;
	padding-block-start: 1.25rem;
	border-top: 1px solid var(--pl-line);
	font-size: var(--wp--preset--font-size--small);
}

.pl-dash__delete summary {
	cursor: pointer;
	color: var(--pl-muted);
	width: fit-content;
}

.pl-dash__delete .pl-form {
	margin-block-start: 1rem;
	max-width: 34rem;
}

.pl-dash__delete ul {
	margin: 0 0 1rem;
	padding-inline-start: 1.2rem;
}

.pl-check {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	margin-block-end: 1rem;
}

.pl-check input {
	margin-block-start: 0.25em;
	flex: none;
}

/* 21-dashboard.css */
/* Tableau de bord du compte. */

.pl-save-search {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1rem;
	align-items: baseline;
	margin-top: 0.5rem;
}

.pl-save-search .pl-link {
	margin-left: 0;
}

/* 22-pricing.css */
/* Tarifs, offre Créateur Boost, liens d'affiliation. */

.pl-pricing {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 1.25rem;
	align-items: stretch;
}

.pl-plan {
	display: flex;
	flex-direction: column;
	padding: 1.75rem;
	border: 1px solid var(--pl-line);
	border-radius: var(--pl-radius-box);
}

.pl-plan.is-primary {
	border-color: var(--pl-accent);
	background: var(--pl-surface);
}

.pl-plan h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
}

.pl-plan__for {
	margin: 0.25rem 0 0;
	color: var(--pl-muted);
}

.pl-plan__price {
	display: flex;
	flex-direction: column;
	margin: 1.25rem 0;
	font-size: 3rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -0.04em;
}

.pl-plan__price small {
	margin-top: 0.5rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 400;
	letter-spacing: 0;
	color: var(--pl-muted);
}

.pl-plan ul {
	flex: 1;
	margin: 0 0 1.5rem;
	padding-left: 1.1rem;
}

.pl-plan li + li {
	margin-top: 0.4rem;
}

.pl-plan__cta {
	margin: 0;
}

.pl-creator-offer {
	margin-top: 2rem;
}

.pl-creator-offer h2,
.pl-affiliates h2 {
	margin-top: 0;
	font-size: var(--wp--preset--font-size--large);
}

.pl-affiliates ul {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 0.75rem;
	list-style: none;
	padding: 0;
}

.pl-affiliates a {
	display: flex;
	flex-direction: column;
	height: 100%;
	padding: 1rem;
	border: 1px solid var(--pl-line);
	border-radius: 12px;
	text-decoration: none;
}

.pl-affiliates a:hover {
	border-color: var(--pl-accent);
}

.pl-affiliates span {
	color: var(--pl-muted);
	font-size: var(--wp--preset--font-size--small);
}

/* Encart créateur : deux actions de même poids, Créateur Boost en bouton plein. */
.pl-creator-offer__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin-block-start: 1.25rem;
}

/* 23-blog.css */
/* Sélection hebdomadaire (articles). */

.pl-posts {
	list-style: none;
	padding: 0;
}

.pl-posts > li {
	padding-block: 1.5rem;
	border-bottom: 1px solid var(--pl-line);
}

.pl-posts .wp-block-post-title {
	margin: 0.25rem 0;
}

/* 24-accessibility.css */
/* Contraste élevé et réduction des animations. */

/* Mode contraste élevé : bordures et focus en couleurs système, sinon ils disparaissent. */

@media (forced-colors: active) {
	.pl-button,
	.pl-chip,
	.pl-themes a,
	.pl-search,
	.pl-plan,
	.pl-filters select,
	.pl-form input,
	.pl-form select,
	.pl-form textarea {
		border: 1px solid ButtonText;
	}

	.pl-meter i.is-on {
		background: Highlight;
	}

	.pl-meter i {
		background: GrayText;
	}

	:focus-visible {
		outline-color: Highlight;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		transition: none !important;
	}
}

/* 25-legal.css */
/* Tableaux des pages légales (traitements, sous-traitants, offres) : texte serré, une carte par ligne sur téléphone. */
.pl-legal-table table {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.45;
}

.pl-legal-table th,
.pl-legal-table td {
	vertical-align: top;
	text-align: left;
	padding: 0.6em 0.75em;
}

@media (max-width: 781px) {
	.pl-legal-table {
		overflow-x: visible;
	}

	.pl-legal-table thead {
		position: absolute;
		width: 1px;
		height: 1px;
		overflow: hidden;
		clip: rect(0 0 0 0);
	}

	.pl-legal-table table,
	.pl-legal-table tbody,
	.pl-legal-table tr,
	.pl-legal-table td {
		display: block;
		width: 100%;
		box-sizing: border-box;
	}

	.pl-legal-table tr {
		border: 1px solid var(--pl-line);
		border-radius: 6px;
		margin-block-end: 0.75rem;
		padding: 0.25rem 0;
	}

	.pl-legal-table td {
		border: 0;
		padding: 0.3em 0.9em;
	}

	.pl-legal-table td:first-child {
		font-weight: 600;
	}

	.pl-legal-table td:not(:first-child)::before {
		content: attr(data-label);
		display: block;
		color: var(--pl-muted, currentColor);
		font-size: 0.85em;
	}
}

