/*
Theme Name:   administrer
Theme URI:    https://revue-administrer.fr
Description:  Thème enfant de Divi pour la Revue Administrer (UNIS).
Author:       Alexis Buon
Author URI:   https://revue-administrer.fr
Template:     Divi
Version:      1.0.0
Requires at least: 6.0
Requires PHP: 7.4
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  administrer
*/

/* ==========================================================================
   Styles personnalisés du thème enfant "administrer"
   La feuille de style parente (Divi) est chargée automatiquement
   via functions.php — ne pas utiliser @import ici.
   ========================================================================== */

/* ==========================================================================
   Menu principal (module Menu du Theme Builder, en-tête)
   Source unique du style du menu : ne pas dupliquer dans un module Code Divi.
   Repris de l'ancien site : capitales blanches, séparateurs verticaux, survol
   en bloc bleu nuit, sous-menus blancs, menu mobile blanc.
   ========================================================================== */

.et-l--header .et_pb_menu {
	--menu-text: #ffffff;
	--menu-hover-bg: #384260;
	--menu-separator: rgba(255, 255, 255, 0.25);
	--menu-dropdown-bg: #ffffff;
	--menu-dropdown-text: #222222;
	--menu-dropdown-line: #384260;
}

/* Le module ne porte plus de marge interne : la hauteur de la barre vient des liens. */
.et-l--header .et_pb_menu.et_pb_module {
	padding-top: 0;
	padding-bottom: 0;
}

.et-l--header .et_pb_menu .et-menu > li {
	padding: 0;
	margin: 0;
	position: relative;
}

.et-l--header .et_pb_menu .et-menu > li > a {
	display: flex;
	align-items: center;
	padding: 24px 20px;
	font-family: 'Open Sans', Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--menu-text);
	opacity: 1;
	white-space: nowrap;
	transition: background-color 0.25s ease, color 0.25s ease;
}

/* Séparateurs verticaux entre les entrées (pas avant la première).
   Les entrées .menu-mobile-only (Connexion, Mon compte) sont masquées sur
   bureau mais restent dans le DOM, en tête de menu : elles ne doivent pas
   compter comme « entrée précédente », sinon Accueil hérite d'un trait. */
@media (min-width: 981px) {
	.et-l--header .et_pb_menu .et-menu > li:not(.menu-mobile-only) + li > a::before {
		content: "";
		position: absolute;
		left: 0;
		top: 50%;
		width: 1px;
		height: 27px;
		margin-top: -13.5px;
		background: var(--menu-separator);
	}

	/* Survol et entrée courante : bloc bleu nuit. */
	.et-l--header .et_pb_menu .et-menu > li:hover > a,
	.et-l--header .et_pb_menu .et-menu > li.current-menu-item > a,
	.et-l--header .et_pb_menu .et-menu > li.current-menu-ancestor > a {
		background: var(--menu-hover-bg);
		color: var(--menu-text) !important;
		opacity: 1;
	}

	/* Le séparateur du voisin disparaît sous le bloc de survol. */
	.et-l--header .et_pb_menu .et-menu > li:not(.menu-mobile-only):hover + li > a::before {
		opacity: 0;
	}

	/* Flèche des entrées à sous-menu : dans le flux, à droite du libellé. */
	.et-l--header .et_pb_menu .et-menu > li.menu-item-has-children > a::after {
		position: relative;
		top: 0;
		margin-left: 6px;
		transform: none;
	}

	/* Sous-menus. */
	.et-l--header .et_pb_menu .nav li ul {
		background: var(--menu-dropdown-bg) !important;
		border-color: var(--menu-dropdown-line);
		padding: 12px 0;
	}
	.et-l--header .et_pb_menu .nav li ul a {
		padding: 8px 20px;
		font-size: 13px;
		font-weight: 600;
		text-transform: none;
		letter-spacing: 0;
		color: var(--menu-dropdown-text) !important;
	}
	.et-l--header .et_pb_menu .nav li ul a:hover {
		background: rgba(56, 66, 96, 0.08);
		opacity: 1;
	}
}

/* Mobile et tablette : barre compacte, icône blanche, panneau blanc. */
@media (max-width: 980px) {
	.et-l--header .et_pb_menu .et_pb_menu__wrap {
		min-height: 60px;
	}
	.et-l--header .et_pb_menu .mobile_nav .mobile_menu_bar::before {
		color: var(--menu-text);
	}
	.et-l--header .et_pb_menu .et_mobile_menu {
		background: var(--menu-dropdown-bg) !important;
		border-color: var(--menu-dropdown-line);
		max-height: 75vh;
		overflow-y: auto;
	}
	.et-l--header .et_pb_menu .et_mobile_menu li a {
		color: var(--menu-dropdown-text) !important;
		font-weight: 600;
		text-transform: uppercase;
		font-size: 14px;
		border-color: rgba(0, 0, 0, 0.06);
	}
	.et-l--header .et_pb_menu .et_mobile_menu li a:hover,
	.et-l--header .et_pb_menu .et_mobile_menu li.current-menu-item > a {
		background: rgba(56, 66, 96, 0.08);
		opacity: 1;
	}
}

/* ==========================================================================
   Page Auteurs : grille de fiches ([adm_authors])
   ========================================================================== */

.authors-grid {
	--card-ink: #0c0639;
	--card-plum: #5e2f48;
	--card-muted: #6b7280;
	--card-border: #dfe3ea;
	--card-mist: #eef0f6;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	margin: 8px 0 0;
}
.authors-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 760px; margin-left: auto; margin-right: auto; }
.authors-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.author-card {
	background: #fff;
	border: 1px solid var(--card-border);
	border-radius: 10px;
	padding: 0 28px 26px;
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
}
.author-card__media {
	width: calc(100% + 56px); /* compense la marge interne de la carte : bannière bord à bord */
	height: 128px;
	margin: 0 -28px 18px;
	border-radius: 10px 10px 0 0;
	background: linear-gradient(135deg, var(--card-plum), var(--card-ink));
	position: relative;
}
.author-card__photo,
.author-card__photo--empty {
	position: absolute;
	left: 50%;
	bottom: -70px;
	transform: translateX(-50%);
	width: 140px;
	height: 140px;
	border-radius: 50%;
	object-fit: cover;
	border: 5px solid #fff;
	background: var(--card-mist);
	box-shadow: 0 2px 8px rgba(12, 6, 57, 0.12);
}
.author-card__photo--empty {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 44px;
	font-weight: 600;
	color: var(--card-plum);
}
.author-card__name {
	margin: 74px 0 4px;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--card-ink);
}
.author-card__job {
	margin: 0 0 14px;
	font-size: 14px;
	color: var(--card-muted);
}
.author-card__bio {
	font-size: 14px;
	line-height: 1.65;
	color: #3a3550;
}
/* Sélecteurs doublés : les fiches sont rendues dans un module Texte Divi dont les règles
   (.et_pb_text_inner ul, li, p) prendraient le dessus sinon. */
.author-card .author-card__bio p { margin: 0 0 10px; padding: 0; }
.author-card .author-card__bio p:last-child { margin-bottom: 0; }
.author-card .author-card__links {
	list-style: none;
	margin: auto 0 0;
	padding: 28px 0 0;
	display: flex;
	gap: 10px;
	justify-content: center;
	line-height: 1;
}
.author-card .author-card__links li { list-style: none; margin: 0; padding: 0; line-height: 1; }
.author-card__links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	border: 1px solid var(--card-border);
	color: var(--card-plum);
	transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.author-card__links a:hover,
.author-card__links a:focus-visible {
	background: var(--card-plum);
	border-color: var(--card-plum);
	color: #fff;
	outline: none;
}
.author-card__links svg { width: 18px; height: 18px; }

@media (max-width: 980px) {
	.authors-grid, .authors-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.authors-grid, .authors-grid--2, .authors-grid--4 { grid-template-columns: 1fr; }
}

/* Page Auteurs : libellés de section et bloc d'introduction (même traitement pour les deux groupes) */
.et_pb_text_inner .authors-eyebrow {
	margin: 0;
	padding: 0 0 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	text-align: center;
	color: #5e2f48;
	position: relative;
}
.et_pb_text_inner .authors-eyebrow::after {
	content: "";
	display: block;
	width: 36px;
	height: 2px;
	margin: 12px auto 0;
	background: #5e2f48;
}
.et_pb_text_inner .authors-eyebrow--section { margin-bottom: 28px; }
.et_pb_text_inner .authors-intro-block { text-align: center; max-width: 960px; margin: 0 auto 52px; }
.et_pb_text_inner .authors-intro-block .authors-eyebrow { padding-bottom: 8px; }
.et_pb_text_inner .authors-title {
	margin: 0 0 22px;
	padding: 0;
	font-size: 36px;
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1.15;
	color: #0c0639;
}
.et_pb_text_inner .authors-intro-block p { font-size: 17px; line-height: 1.7; color: #3a3550; max-width: 90ch; margin: 0 auto 16px; padding: 0; }
.et_pb_text_inner .authors-intro-block p:last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.et_pb_text_inner .authors-title { font-size: 28px; }
	.et_pb_text_inner .authors-intro-block p { font-size: 16px; }
}

/* ==========================================================================
   Page Mentions légales et CGV
   ========================================================================== */

.et_pb_text_inner .legal-page { max-width: 76ch; margin: 0 auto; font-size: 16px; line-height: 1.7; color: #3a3550; }
.et_pb_text_inner .legal-title { margin: 0 0 8px; padding: 0; font-size: 34px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.2; color: #0c0639; }
.et_pb_text_inner .legal-updated { margin: 0 0 32px; padding: 0; font-size: 14px; color: #6b7280; }
.et_pb_text_inner .legal-toc { background: #eef0f6; border-radius: 10px; padding: 22px 26px; margin: 0 0 48px; }
.et_pb_text_inner .legal-toc__title { margin: 0 0 10px; padding: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: #5e2f48; }
.et_pb_text_inner .legal-toc ol { margin: 0; padding: 0 0 0 1.2em; columns: 2; column-gap: 32px; line-height: 1.5; }
.et_pb_text_inner .legal-toc li { margin: 0 0 6px; padding: 0; break-inside: avoid; }
.et_pb_text_inner .legal-toc a { color: #0c0639; text-decoration: none; }
.et_pb_text_inner .legal-toc a:hover { color: #5e2f48; text-decoration: underline; }
.et_pb_text_inner .legal-page h2 { margin: 48px 0 18px; padding: 24px 0 0; border-top: 1px solid #dfe3ea; font-size: 24px; font-weight: 600; letter-spacing: -0.01em; line-height: 1.25; color: #0c0639; scroll-margin-top: 110px; }
.et_pb_text_inner .legal-page h3 { margin: 28px 0 10px; padding: 0; font-size: 17px; font-weight: 600; color: #0c0639; }
.et_pb_text_inner .legal-page p { margin: 0 0 14px; padding: 0; }
.et_pb_text_inner .legal-page ul { margin: 0 0 16px; padding: 0 0 0 1.3em; list-style: disc; line-height: 1.65; }
.et_pb_text_inner .legal-page li { margin: 0 0 6px; padding: 0; }
.et_pb_text_inner .legal-page a { color: #5e2f48; }
.et_pb_text_inner .legal-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 8px 24px; margin: 0 0 20px; padding: 18px 22px; background: #fff; border: 1px solid #dfe3ea; border-radius: 10px; }
.et_pb_text_inner .legal-facts div { display: contents; }
.et_pb_text_inner .legal-facts dt { font-weight: 600; color: #0c0639; }
.et_pb_text_inner .legal-facts dd { margin: 0; }
@media (max-width: 600px) {
	.et_pb_text_inner .legal-toc ol { columns: 1; }
	.et_pb_text_inner .legal-facts { grid-template-columns: 1fr; gap: 2px 0; }
	.et_pb_text_inner .legal-facts dd { margin-bottom: 8px; }
	.et_pb_text_inner .legal-title { font-size: 28px; }
}

/* ==========================================================================
   Page Contact : moitié blanche (texte) / moitié prune (formulaire), comme l'ancien site
   ========================================================================== */

.contact-section { --contact-plum: #5a2e47; --contact-mist: #f4f4f6; background: linear-gradient(90deg, #ffffff calc(50% + 200px), var(--contact-plum) calc(50% + 200px)); }
.contact-section .contact-col-text { padding-right: 60px; }
.contact-section .contact-col-form { padding-left: 40px; position: relative; }
/* Carré décoratif clair : accroché au haut de la section, à cheval sur la frontière blanc/prune, derrière la carte */
.contact-section .contact-col-form::before { content: ""; position: absolute; top: -81px; left: 0; width: 350px; height: 200px; background: var(--contact-mist, #f4f4f6); z-index: 0; }

.et_pb_text_inner .contact-eyebrow { margin: 0 0 12px; padding: 0; font-size: 13px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #6b7280; }
.et_pb_text_inner .contact-title { margin: 0 0 30px; padding: 0; font-size: 34px; font-weight: 500; letter-spacing: -0.01em; line-height: 1.25; color: #0c0639; max-width: 600px; }
.et_pb_text_inner .contact-title span { color: var(--contact-plum, #5a2e47); }
.et_pb_text_inner .contact-intro p { margin: 0 0 16px; padding: 0; font-size: 15px; line-height: 1.75; color: #3a3550; max-width: 600px; }
.et_pb_text_inner .contact-address { margin: 34px 0 0; padding: 0; font-style: normal; font-size: 15px; line-height: 1.9; color: #3a3550; }
.et_pb_text_inner .contact-address strong { color: #0c0639; text-transform: uppercase; letter-spacing: 0.02em; }
.et_pb_text_inner .contact-address a { color: #3a3550; text-decoration: none; }
.et_pb_text_inner .contact-address a:hover { color: var(--contact-plum, #5a2e47); }

/* Carte du formulaire, posée sur la moitié prune, avec le carré décoratif clair derrière */
.et_pb_text_inner .contact-card { position: relative; z-index: 1; background: #ffffff; padding: 50px 40px; box-shadow: 0 20px 50px rgba(12, 6, 57, 0.18); }
.contact-section .contact-col-form .et_pb_module { position: relative; z-index: 1; }

/* WPForms : champs gris sans étiquette visible, bouton à droite */
.contact-card .wpforms-container {
	--wpforms-field-border-radius: 3px;
	--wpforms-field-border-size: 0px;
	--wpforms-field-border-color: transparent;
	--wpforms-field-background-color: #f4f4f4;
	--wpforms-field-text-color: #0c0639;
	--wpforms-label-error-color: #b32d2e;
	--wpforms-button-background-color: #5a2e47;
	--wpforms-button-text-color: #ffffff;
	--wpforms-button-border-radius: 3px;
	--wpforms-button-size-font-size: 14px;
	--wpforms-button-size-height: 52px;
	--wpforms-field-size-input-height: 52px;
	--wpforms-field-size-font-size: 15px;
	--wpforms-field-size-padding-h: 14px;
	margin: 0;
}
.contact-card .wpforms-container .wpforms-field { padding: 10px 0; }
.contact-card .wpforms-container input[type="text"],
.contact-card .wpforms-container input[type="email"],
.contact-card .wpforms-container textarea { border: 0; border-radius: 3px; background: #f4f4f4; padding: 14px; font-size: 15px; color: #0c0639; }
.contact-card .wpforms-container textarea { min-height: 120px; }
.contact-card .wpforms-container input:focus,
.contact-card .wpforms-container textarea:focus { outline: 2px solid #5a2e47; outline-offset: 1px; }
.contact-card .wpforms-container .wpforms-submit-container { text-align: right; padding-top: 14px; }
.contact-card .wpforms-container button.wpforms-submit { display: inline-block; width: auto; background: #5a2e47; color: #fff; border: 0; border-radius: 3px; padding: 16px 32px; font-size: 14px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; transition: background-color 0.2s; }
.contact-card .wpforms-container button.wpforms-submit:hover,
.contact-card .wpforms-container button.wpforms-submit:focus-visible { background: #0c0639; }
.contact-card .wpforms-container .wpforms-confirmation-container-full { background: #f4f4f6; border: 0; border-left: 4px solid #1a7f37; border-radius: 3px; color: #0c0639; }

@media (max-width: 980px) {
	.contact-section { background: #ffffff; padding-bottom: 0 !important; }
	.contact-section .contact-col-text { padding-right: 0; padding-bottom: 48px; }
	/* Bandeau prune bord à bord, carte dégagée, champs à pleine largeur */
	.contact-section .contact-col-form {
		box-sizing: border-box;
		flex: 0 0 100vw;
		width: 100vw;
		max-width: 100vw;
		margin-left: calc(50% - 50vw);
		margin-right: calc(50% - 50vw);
		padding: 48px 20px 56px;
		background: var(--contact-plum, #5a2e47);
	}
	.contact-section .contact-col-form::before { display: none; }
	.contact-section .contact-col-form .et_pb_module { margin-bottom: 0; }
	.et_pb_text_inner .contact-card { padding: 28px 20px 24px; box-shadow: none; }
	.contact-card .wpforms-container .wpforms-field { padding: 8px 0; }
	.contact-card .wpforms-container textarea { min-height: 150px; }
	.contact-card .wpforms-container .wpforms-submit-container { text-align: center; padding-top: 10px; }
	.contact-card .wpforms-container button.wpforms-submit { display: block; width: 100%; }
	.et_pb_text_inner .contact-title { font-size: 28px; }
}

/* Connexion et compte : déclinaison de la palette du site dans le bandeau. */
.et-l--header .adm-header-account { gap: 10px; }
.et-l--header .adm-header-account .adm-button {
	justify-content: center;
	min-height: 46px;
	gap: 7px;
	padding: 10px 14px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: transparent;
	color: #fff !important;
	font-family: inherit;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0;
	text-transform: none;
	text-decoration: none;
	box-shadow: none;
	transition: background-color .15s, border-color .15s, color .15s;
}
.et-l--header .adm-header-account .adm-button:hover,
.et-l--header .adm-header-account .adm-button:focus {
	background: rgba(255, 255, 255, .07);
	border-color: transparent;
	color: #fff !important;
}
.et-l--header .adm-header-account .adm-button:focus-visible {
	outline: 2px solid #f5eff3;
	outline-offset: 4px;
}
.et-l--header .adm-header-account .adm-button .adm-header-account__icon { stroke-width: 1.7; }
.et-l--header .adm-header-account.has-icons .adm-button.adm-header-account__login,
.et-l--header .adm-header-account.has-icons .adm-button.adm-header-account__account {
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-width: 78px;
	padding: 10px 14px;
	font-size: 14px;
	font-weight: 700;
	text-align: center;
}
.et-l--header .adm-header-account .adm-button.adm-header-account__login .adm-header-account__icon,
.et-l--header .adm-header-account .adm-button.adm-header-account__account .adm-header-account__icon {
	width: 28px;
	height: 28px;
	flex: 0 0 28px;
	stroke-width: 1.9;
	padding: 0;
	background: transparent;
	color: inherit;
}
.et-l--header .adm-header-account .adm-button.adm-header-account__logout--icon {
	width: 44px;
	min-width: 44px;
	padding: 11px;
	border-color: transparent;
	background: transparent;
	color: #e6dce3 !important;
	box-shadow: none;
	opacity: 1;
}
.et-l--header .adm-header-account .adm-button.adm-header-account__logout--icon:hover,
.et-l--header .adm-header-account .adm-button.adm-header-account__logout--icon:focus {
	background: rgba(245, 239, 243, .12);
	color: #fff !important;
}

/* Entrées de menu réservées à la tablette et au mobile (classe menu-mobile-only) */
.et-l--header .header-nav-logout { display: none; }
@media (min-width: 981px) {
	.et-l--header .et-menu > li.menu-mobile-only { display: none !important; }
	.et-l--header .et_pb_menu__wrap:has(> .header-nav-logout) { flex-wrap: nowrap; }
	.et-l--header .et_pb_menu__wrap:has(> .header-nav-logout) > .et_pb_menu__menu { margin-left: auto; margin-right: auto; }
	.et-l--header .header-nav-logout {
		display: inline-flex;
		flex-shrink: 0;
		align-items: center;
		align-self: center;
		gap: 8px;
		min-height: 44px;
		margin-left: 28px;
		padding: 8px 12px;
		border-radius: 6px;
		color: #fff !important;
		font-family: 'Open Sans', Helvetica, Arial, sans-serif;
		font-size: 14px;
		font-weight: 700;
		line-height: 1;
		text-transform: uppercase;
		letter-spacing: .02em;
		white-space: nowrap;
		text-decoration: none;
		transition: background-color .15s, color .15s;
	}
	.et-l--header .header-nav-logout:hover { background: rgba(255, 255, 255, .08); color: #fff !important; }
	.et-l--header .header-nav-logout:focus-visible { outline: 2px solid #f5eff3; outline-offset: 2px; }
}
@media (min-width: 981px) and (max-width: 1100px) {
	.et-l--header .et_pb_row:has(.header-nav-logout) { width: 92% !important; }
}

/* ==========================================================================
   En-tête sur tablette et mobile : bannière sur une seule ligne compacte
   (classes header-top / header-brand / header-brand__* posées sur la mise en page du Theme Builder)
   ========================================================================== */

@media (max-width: 980px) {
	.et-l--header {
		position: sticky !important;
		top: 0;
		z-index: 1000;
		box-shadow: 0 3px 18px rgba(12, 6, 57, 0.12);
	}
	.et-l--header .header-top.et_pb_section { padding-top: 12px !important; padding-bottom: 12px !important; }
	.et-l--header .header-brand.et_pb_row { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between; gap: 12px; padding-top: 0 !important; padding-bottom: 0 !important; width: 92% !important; max-width: 100% !important; }
	.et-l--header .header-brand > .et_pb_column { flex: 0 0 auto !important; width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
	.et-l--header .header-brand > .header-brand__title { flex: 1 1 auto !important; min-width: 0; display: flex; justify-content: center; }
	.et-l--header .header-brand .et_pb_module { margin-bottom: 0 !important; }
	.et-l--header .header-brand__unis .et_pb_image,
	.et-l--header .header-brand__unis .et_pb_image_wrap,
	.et-l--header .header-brand__unis img { width: 78px !important; max-width: 78px !important; height: auto; }
	.et-l--header .header-brand__title .et_pb_image { width: 200px !important; max-width: 100% !important; margin: 0 auto !important; }
	.et-l--header .header-brand__title img { width: 100%; height: auto; }
	/* Le compte est accessible depuis le menu déroulant : le bouton de la bannière est retiré */
	.et-l--header .header-brand > .header-brand__account { display: none !important; }
	/* Compte discret en tête du panneau ; déconnexion séparée en bas. */
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account { margin: 0; padding: 0; list-style: none; }
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account a { border: 0 !important; text-transform: none; }
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--login a,
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--main a {
		display: flex; align-items: center; gap: 12px;
		padding: 12px !important;
		background: #f5eff3; color: #5e2f48 !important;
		font-size: 15px; font-weight: 600; letter-spacing: 0;
		margin-bottom: 10px; border-radius: 9px;
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--login a::before,
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--main a::before {
		content: ""; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 50%;
		background: #e9dfe6 no-repeat center / 18px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235e2f48' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--login a::after,
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--main a::after {
		content: ""; margin-left: auto; width: 7px; height: 7px;
		border-right: 1.5px solid #927486; border-bottom: 1.5px solid #927486; transform: rotate(-45deg);
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--login a:hover,
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--main a:hover { background: #ece0e8; opacity: 1; }
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--logout { margin-top: 10px; padding-top: 8px; border-top: 1px solid #eee7ec; }
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--logout a {
		display: flex; padding: 12px 14px !important;
		background: transparent; color: #806c7b !important;
		font-size: 13px; font-weight: 500;
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li.menu-account--logout a:hover { background: #ebe3e8; opacity: 1; }
	/* La barre de menu du bureau est masquée par le réglage de visibilité Divi de sa section (tablette et téléphone). */
	/* Hamburger dans la bannière : le menu déroulant s'ouvre sous la bannière, sur toute sa largeur */
	.et-l--header .header-brand { position: relative; }
	.et-l--header .header-brand > .header-brand__menu { display: flex !important; align-items: center; }
	.et-l--header .header-brand__menu,
	.et-l--header .header-brand__menu .et_pb_module,
	.et-l--header .header-brand__menu .et_pb_menu_inner_container,
	.et-l--header .header-brand__menu .et_pb_menu__wrap { position: static !important; }
	.et-l--header .header-menu-mobile.et_pb_menu { padding: 0 !important; }
	.et-l--header .header-menu-mobile .et_pb_menu__wrap { min-height: 0; justify-content: flex-end; }
	.et-l--header .header-menu-mobile .mobile_nav .mobile_menu_bar {
		position: relative; display: block; width: 44px; height: 44px; padding: 0;
		border: 1px solid #ffffff30; border-radius: 10px; background: #ffffff0a; cursor: pointer;
	}
	.et-l--header .header-menu-mobile .mobile_menu_bar::before,
	.et-l--header .header-menu-mobile .mobile_menu_bar::after {
		content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 2px;
		background: #fff; border-radius: 2px; transform: translate(-50%, -50%);
	}
	.et-l--header .header-menu-mobile .mobile_menu_bar::before { box-shadow: 0 -6px #fff, 0 6px #fff; }
	.et-l--header .header-menu-mobile .mobile_menu_bar::after { opacity: 0; }
	.et-l--header .header-menu-mobile .opened .mobile_menu_bar::before { box-shadow: none; transform: translate(-50%, -50%) rotate(45deg); }
	.et-l--header .header-menu-mobile .opened .mobile_menu_bar::after { opacity: 1; transform: translate(-50%, -50%) rotate(-45deg); }
	.et-l--header .header-menu-mobile .mobile_menu_bar:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
	.et-l--header .header-menu-mobile .et_mobile_menu {
		position: absolute; left: 0; right: 0; top: 100%; width: auto;
		margin-top: 12px; padding: 12px !important; border: 1px solid #e9e1e8;
		border-radius: 14px; background: #fff !important; box-shadow: 0 18px 45px rgba(12, 6, 57, 0.22);
		max-height: var(--mobile-menu-max-height, calc(100vh - 140px));
		overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li { padding: 0; list-style: none; }
	.et-l--header .header-menu-mobile .et_mobile_menu li a {
		display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 12px 14px;
		border: 0; border-radius: 8px; color: #302139 !important; font-size: 15px;
		font-weight: 600; line-height: 1.4; text-align: left; text-transform: none; letter-spacing: 0;
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li:not(.menu-account) > a::after {
		content: ""; flex: 0 0 6px; width: 6px; height: 6px; margin-left: auto;
		border-right: 1px solid #b4a3af; border-bottom: 1px solid #b4a3af; transform: rotate(-45deg);
	}
	.et-l--header .header-menu-mobile .et_mobile_menu li:not(.menu-account) > a:hover { background: #f8f5f7; opacity: 1; }
	.et-l--header .header-menu-mobile .et_mobile_menu li.current-menu-item > a,
	.et-l--header .header-menu-mobile .et_mobile_menu li.current-menu-ancestor > a {
		background: #f3eaf0; color: #5e2f48 !important;
	}
	.et-l--header .header-menu-mobile .et_mobile_menu a:focus-visible { outline: 2px solid #5e2f48; outline-offset: -2px; }
	.et-l--header .header-menu-mobile .et_mobile_menu ul.sub-menu { padding: 4px 0 4px 12px; }
}
/* La barre WordPress est fixe au-delà de 600 px ; le header passe juste en dessous. */
@media (min-width: 601px) and (max-width: 782px) {
	body.admin-bar .et-l--header { top: 46px; }
}
@media (min-width: 783px) and (max-width: 980px) {
	body.admin-bar .et-l--header { top: 32px; }
}
@media (max-width: 480px) {
	.et-l--header .header-brand__unis .et_pb_image,
	.et-l--header .header-brand__unis .et_pb_image_wrap,
	.et-l--header .header-brand__unis img { width: 64px !important; max-width: 64px !important; }
	.et-l--header .header-brand__title .et_pb_image { width: 160px !important; }
}

/* ==========================================================================
   Kiosque : dernier numéro, moteur de recherche et archive par année
   (gabarits dans template-parts/kiosque-*.php, données statiques pour l'instant)
   ========================================================================== */
.kiosque-hero,
.kiosque-archive {
	--kiosque-ink: #0c0639;
	--kiosque-plum: #5e2f48;
	--kiosque-plum-dark: #4a2338;
	--kiosque-rose: #e6cbd8;
	--kiosque-mist: #eef0f6;
	--kiosque-field: #f4f4f6;
	--kiosque-line: #dfe3ea;
	--kiosque-muted: #6b7280;
	font-size: 16px;
	line-height: 1.5;
	color: var(--kiosque-ink);
}

/* L'attribut hidden doit l'emporter sur les display posés par les classes (boutons, etc.). */
.kiosque-hero [hidden],
.kiosque-archive [hidden] {
	display: none !important;
}

/* Boutons partagés (kiosque, recherche…) : même forme que le bouton du formulaire de contact.
   Les couleurs ont une valeur de repli pour fonctionner hors des blocs qui définissent les variables. */
.kiosque-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 26px;
	border: 1px solid var(--kiosque-plum, #5e2f48);
	border-radius: 3px;
	background: var(--kiosque-plum, #5e2f48);
	color: #fff;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.kiosque-button:hover,
.kiosque-button:focus-visible {
	background: var(--kiosque-plum-dark, #4a2338);
	border-color: var(--kiosque-plum-dark, #4a2338);
	color: #fff;
}
.kiosque-button--ghost {
	background: #fff;
	border-color: #cfd4e0;
	color: var(--kiosque-ink, #0c0639);
}
.kiosque-button--ghost:hover,
.kiosque-button--ghost:focus-visible {
	background: var(--kiosque-ink, #0c0639);
	border-color: var(--kiosque-ink, #0c0639);
	color: #fff;
}
.kiosque-button:focus-visible,
.kiosque-years__item:focus-visible,
.kiosque-card__link:focus-visible {
	outline: 2px solid var(--kiosque-ink, #0c0639);
	outline-offset: 3px;
}
.kiosque-hero .kiosque-button:focus-visible {
	outline-color: var(--hero-focus);
}

/* --- Dernier numéro ---
   Carte en trois zones : couverture sur fond brume, identité du numéro et bouton, sommaire.
   Section Divi blanche par défaut ; ajouter la classe « kiosque-section--dark » à la section
   (fond bleu nuit #384260) pour passer le titre et l'intro en blanc, la carte reste claire. */
.kiosque-hero {
	--hero-title: var(--kiosque-ink);
	--hero-lead: #4b5563;
	--hero-focus: var(--kiosque-ink);
}
.kiosque-section--dark .kiosque-hero {
	--hero-title: #fff;
	--hero-lead: rgba(255, 255, 255, 0.82);
	--hero-focus: #fff;
}
.kiosque-hero__intro {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin-bottom: 24px;
}
.kiosque-hero .kiosque-hero__title {
	margin: 0;
	padding: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--hero-title);
}
.kiosque-hero .kiosque-hero__lead {
	margin: 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.5;
	color: var(--hero-lead);
}
.kiosque-featured {
	display: grid;
	grid-template-columns: 300px minmax(280px, 320px) minmax(0, 1fr);
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	background: #fff;
	color: var(--kiosque-ink);
	overflow: hidden;
}
.kiosque-featured--no-toc {
	grid-template-columns: 300px minmax(0, 1fr);
}
.kiosque-featured__media {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px;
	background: var(--kiosque-mist);
}
.kiosque-featured__cover {
	display: block;
	width: 100%;
	max-width: 220px;
	border-radius: 3px;
	box-shadow: 0 2px 6px rgba(12, 6, 57, 0.14), 0 24px 40px -20px rgba(12, 6, 57, 0.5);
	overflow: hidden;
	line-height: 0;
}
.kiosque-featured__img {
	display: block;
	width: 100%;
	height: auto;
}
.kiosque-featured__body {
	display: flex;
	flex-direction: column;
	padding: 32px 36px;
}
.kiosque-hero .kiosque-featured__label {
	position: relative;
	margin: 0 0 18px;
	padding: 0 0 10px;
	font-size: 14px;
	font-weight: 600;
	color: var(--kiosque-plum);
}
.kiosque-featured__label::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 36px;
	height: 2px;
	background: var(--kiosque-plum);
}
.kiosque-hero .kiosque-featured__issue {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0 auto 28px 0;
	padding: 0;
}
.kiosque-featured__number {
	font-size: 52px;
	font-weight: 300;
	line-height: 1;
	letter-spacing: -0.01em;
	color: var(--kiosque-ink);
}
.kiosque-featured__date {
	font-size: 18px;
	color: #4b5563;
}
.kiosque-featured__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 12px;
}
.kiosque-hero .kiosque-featured__access {
	margin: 0;
	padding: 0;
	font-size: 14px;
	line-height: 1.45;
	color: var(--kiosque-muted);
}
.kiosque-hero .kiosque-featured__access a {
	color: var(--kiosque-plum);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.kiosque-featured__contents {
	padding: 32px 36px;
	border-left: 1px solid #e3e6ee;
}
.kiosque-hero .kiosque-featured__heading {
	margin: 0 0 14px;
	padding: 0;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--kiosque-ink);
}
.kiosque-hero .kiosque-featured__toc {
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 15px;
	line-height: 1.5;
}
.kiosque-hero .kiosque-featured__toc li {
	position: relative;
	margin: 0 0 10px;
	padding: 0 0 0 18px;
	color: #2f3342;
}
.kiosque-hero .kiosque-featured__toc li:last-child {
	margin-bottom: 0;
}
.kiosque-featured__toc li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 6px;
	height: 6px;
	background: var(--kiosque-plum);
}

/* --- Moteur de recherche : carte blanche à cheval entre les deux sections --- */
.kiosque-archive .kiosque-search {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 16px 20px;
	margin: -56px 0 0;
	padding: 22px 24px 24px;
	background: #fff;
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(12, 6, 57, 0.06), 0 18px 40px -16px rgba(12, 6, 57, 0.3);
}
.kiosque-search__group {
	flex: 1 1 160px;
	min-width: 0;
}
.kiosque-search__group--number {
	flex: 0 1 150px;
}
.kiosque-search__label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: #4b5563;
}
.kiosque-archive .kiosque-search__field {
	display: block;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid transparent;
	border-radius: 3px;
	background: var(--kiosque-field);
	color: var(--kiosque-ink);
	font: inherit;
	font-size: 15px;
	line-height: 46px;
	appearance: none;
	-webkit-appearance: none;
}
.kiosque-archive select.kiosque-search__field {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230c0639' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.kiosque-archive .kiosque-search__field:focus {
	outline: 2px solid var(--kiosque-plum);
	outline-offset: 1px;
	background-color: #fff;
}
.kiosque-archive input[type="number"].kiosque-search__field::-webkit-inner-spin-button,
.kiosque-archive input[type="number"].kiosque-search__field::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.kiosque-archive input[type="number"].kiosque-search__field {
	-moz-appearance: textfield;
}
.kiosque-search__or {
	display: flex;
	align-items: center;
	height: 48px;
	color: var(--kiosque-muted);
	font-size: 14px;
	font-style: italic;
}
.kiosque-search__actions {
	display: flex;
	flex: 0 0 auto;
	gap: 10px;
}
.kiosque-search__submit,
.kiosque-search__reset {
	height: 48px;
}

/* --- Barre d'outils : phrase de résultat et navigation par année --- */
.kiosque-toolbar {
	display: flex;
	align-items: center;
	gap: 14px 28px;
	margin: 36px 0 0;
}
.kiosque-archive .kiosque-results {
	flex: 0 0 auto;
	margin: 0;
	padding: 0;
	font-size: 15px;
	color: var(--kiosque-muted);
}
/* Une seule ligne d'étiquettes ; elle défile horizontalement si elle dépasse. */
.kiosque-years {
	position: relative;
	display: flex;
	flex: 1 1 0;
	flex-wrap: nowrap;
	gap: 8px;
	min-width: 0;
	padding-bottom: 6px;
	overflow-x: auto;
	scrollbar-width: thin;
	scroll-behavior: smooth;
}
.kiosque-years__item {
	flex: 0 0 auto;
	padding: 8px 14px;
	border: 1px solid var(--kiosque-line);
	border-radius: 999px;
	background: #fff;
	color: var(--kiosque-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.kiosque-years__item:hover {
	border-color: var(--kiosque-ink);
}
.kiosque-years__item.is-active {
	background: var(--kiosque-ink);
	border-color: var(--kiosque-ink);
	color: #fff;
}

/* --- Années et grille de couvertures --- */
.kiosque-year {
	margin-top: 40px;
}
.kiosque-archive .kiosque-year__title {
	display: flex;
	align-items: baseline;
	gap: 12px;
	margin: 0 0 28px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--kiosque-line);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--kiosque-ink);
}
.kiosque-year__count {
	font-size: 15px;
	font-weight: 400;
	color: var(--kiosque-muted);
}
.kiosque-archive .kiosque-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.4;
}
.kiosque-archive .kiosque-card {
	margin: 0;
	padding: 0;
}
.kiosque-card__link {
	display: block;
	color: var(--kiosque-ink);
	text-decoration: none;
}
.kiosque-card__cover,
.kiosque-card__placeholder {
	display: block;
	aspect-ratio: 1056 / 1492;
	border-radius: 2px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(12, 6, 57, 0.1), 0 14px 28px -18px rgba(12, 6, 57, 0.45);
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.kiosque-card__placeholder {
	background: linear-gradient(180deg, #384260 0 22%, #7a3a5c 22%);
}
.kiosque-card__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kiosque-card__link:hover .kiosque-card__cover,
.kiosque-card__link:focus-visible .kiosque-card__cover {
	transform: translateY(-4px);
	box-shadow: 0 2px 4px rgba(12, 6, 57, 0.1), 0 24px 36px -18px rgba(12, 6, 57, 0.55);
}
.kiosque-card__number {
	display: block;
	margin-top: 14px;
	font-size: 17px;
	font-weight: 600;
}
.kiosque-card__link:hover .kiosque-card__number {
	color: var(--kiosque-plum);
}
.kiosque-card__date {
	display: block;
	margin-top: 2px;
	font-size: 14px;
	color: var(--kiosque-muted);
}

/* --- État vide et chargement des années précédentes --- */
.kiosque-archive .kiosque-empty {
	margin: 40px 0 0;
	padding: 28px;
	border: 1px dashed #cfd4e0;
	border-radius: 6px;
	background: #fff;
	text-align: center;
	font-size: 16px;
	color: var(--kiosque-ink);
}
.kiosque-archive .kiosque-empty a {
	color: var(--kiosque-plum);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.kiosque-archive .kiosque-more {
	margin: 48px 0 0;
	padding: 0;
	text-align: center;
}

/* Derniers numéros (page d'accueil) : grille de 3, cartes centrées */
.kiosque-recent .kiosque-grid--3 {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 36px 40px;
	max-width: 900px;
	margin: 0 auto;
}
.kiosque-recent .kiosque-card {
	text-align: center;
}

@media (max-width: 1100px) {
	.kiosque-featured {
		grid-template-columns: 260px minmax(0, 1fr);
	}
	.kiosque-featured__contents {
		grid-column: 1 / -1;
		border-left: 0;
		border-top: 1px solid #e3e6ee;
	}
	.kiosque-archive .kiosque-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (max-width: 767px) {
	.kiosque-hero__intro {
		margin-bottom: 24px;
	}
	.kiosque-hero .kiosque-hero__title {
		font-size: 28px;
	}
	.kiosque-hero .kiosque-hero__lead {
		font-size: 16px;
	}
	.kiosque-featured,
	.kiosque-featured--no-toc {
		grid-template-columns: minmax(0, 1fr);
	}
	.kiosque-featured__media {
		padding: 24px;
	}
	.kiosque-featured__cover {
		max-width: 180px;
	}
	.kiosque-featured__body,
	.kiosque-featured__contents {
		padding: 24px;
	}
	.kiosque-featured__number {
		font-size: 42px;
	}
	.kiosque-archive .kiosque-search {
		margin-top: -40px;
		padding: 18px 18px 20px;
		gap: 14px 12px;
	}
	/* Mois | Année sur une ligne, séparateur « ou » pleine largeur, Numéro seul, boutons pleine largeur */
	.kiosque-search__group {
		flex: 1 1 calc(50% - 6px);
	}
	.kiosque-search__or {
		flex: 1 1 100%;
		justify-content: center;
		gap: 12px;
		height: auto;
		margin: 2px 0;
		font-size: 13px;
		font-style: normal;
	}
	.kiosque-search__or::before,
	.kiosque-search__or::after {
		content: "";
		flex: 1 1 0;
		height: 1px;
		background: var(--kiosque-line);
	}
	.kiosque-search__group--number {
		flex: 1 1 100%;
	}
	.kiosque-search__actions {
		flex: 1 1 100%;
		flex-wrap: wrap;
		margin-top: 4px;
	}
	.kiosque-search__submit,
	.kiosque-search__reset {
		flex: 1 1 auto;
	}
	.kiosque-toolbar {
		flex-wrap: wrap;
		margin-top: 32px;
	}
	.kiosque-years {
		flex: 1 1 100%;
	}
	.kiosque-archive .kiosque-grid,
	.kiosque-recent .kiosque-grid--3 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 28px 18px;
	}
	.kiosque-recent .kiosque-card:last-child:nth-child(odd) {
		grid-column: 1 / -1;
		max-width: calc(50% - 9px);
		margin: 0 auto;
	}
	.kiosque-card__number {
		font-size: 16px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.kiosque-button,
	.kiosque-years__item,
	.kiosque-card__cover {
		transition: none;
	}
	.kiosque-card__link:hover .kiosque-card__cover,
	.kiosque-card__link:focus-visible .kiosque-card__cover {
		transform: none;
	}
}

/* ==========================================================================
   Numéro : page de lecture (barre de titre, livre feuilletable, commandes, zoom)
   ========================================================================== */
.numero-single {
	--reader-ink: #0c0639;
	--reader-plum: #5e2f48;
	--reader-plum-dark: #4a2338;
	--reader-mist: #eef0f6;
	--reader-line: #e3e6ee;
	--reader-muted: #6b7280;
	background: #fff;
	color: var(--reader-ink);
	font-size: 16px;
	line-height: 1.5;
}
.numero-single [hidden] {
	display: none !important;
}

/* --- Barre de titre --- */
.numero-reader__bar {
	background: #fff;
	border-bottom: 1px solid var(--reader-line);
}
/* Même gabarit que les rangées Divi du site (80 % de large, 1080 px au plus). */
.numero-reader__bar-inner {
	display: flex;
	align-items: center;
	gap: 24px;
	width: 80%;
	max-width: 1080px;
	margin: 0 auto;
	padding: 14px 0;
}
.numero-single .numero-reader__title {
	display: flex;
	align-items: baseline;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 6px 14px;
	margin: 0;
	padding: 0;
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--reader-ink);
}
.numero-reader__date {
	font-size: 16px;
	font-weight: 400;
	color: #4b5563;
}
.numero-reader__pages {
	padding-left: 14px;
	border-left: 1px solid var(--reader-line);
	font-size: 14px;
	font-weight: 400;
	color: var(--reader-muted);
}
.numero-reader__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 0 0 auto;
	margin-left: auto;
}
.numero-reader__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 14px;
	border: 1px solid #cfd4e0;
	border-radius: 3px;
	background: #fff;
	color: var(--reader-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.numero-reader__action:hover,
.numero-reader__action:focus-visible,
.numero-reader__action[aria-pressed="true"] {
	background: var(--reader-ink);
	border-color: var(--reader-ink);
	color: #fff;
}
.numero-reader__action:focus-visible {
	outline: 2px solid var(--reader-ink);
	outline-offset: 2px;
}

/* --- Scène --- */
.numero-reader__stage {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 480px;
	padding: 28px 24px 16px;
	background: var(--reader-mist);
}
.numero-reader__status {
	max-width: 420px;
	text-align: center;
}
.numero-reader__poster {
	display: block;
	width: 200px;
	height: auto;
	margin: 0 auto 24px;
	border-radius: 3px;
	box-shadow: 0 2px 6px rgba(12, 6, 57, 0.14), 0 24px 40px -20px rgba(12, 6, 57, 0.5);
}
.numero-single .numero-reader__status-text {
	margin: 0 0 12px;
	padding: 0;
	font-size: 15px;
	color: var(--reader-ink);
}
.numero-reader__progress {
	display: block;
	width: 220px;
	height: 6px;
	margin: 0 auto;
	appearance: none;
	-webkit-appearance: none;
	border: 0;
	border-radius: 3px;
	background: #dfe3ea;
	overflow: hidden;
}
.numero-reader__progress::-webkit-progress-bar {
	background: #dfe3ea;
}
.numero-reader__progress::-webkit-progress-value {
	background: var(--reader-plum);
	transition: width 0.2s ease;
}
.numero-reader__progress::-moz-progress-bar {
	background: var(--reader-plum);
}
.numero-single .numero-reader__fallback {
	margin: 16px 0 0;
	padding: 0;
	font-size: 14px;
}
.numero-single .numero-reader__fallback a {
	color: var(--reader-plum);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.numero-reader__book-wrap {
	width: 100%;
	max-width: 1120px;
	margin: 0 auto;
}
.numero-reader__book {
	margin: 0 auto;
}
.numero-page {
	background: #fff;
	background-image: linear-gradient(180deg, #f6f7fa, #ebedf3); /* Page pas encore rendue */
	box-shadow: inset 0 0 0 1px rgba(12, 6, 57, 0.06);
	overflow: hidden;
}
.numero-page.is-rendered {
	background-image: none;
}
.numero-page__canvas {
	display: block;
	width: 100%;
	height: 100%;
}
.numero-page:not(.is-rendered) .numero-page__canvas {
	visibility: hidden;
}

/* --- Commandes --- */
.numero-reader__controls {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	padding: 12px 24px 28px;
	background: var(--reader-mist);
}
.numero-reader__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid #cfd4e0;
	border-radius: 50%;
	background: #fff;
	color: var(--reader-ink);
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.numero-reader__nav:hover:not(:disabled),
.numero-reader__nav:focus-visible {
	background: var(--reader-ink);
	border-color: var(--reader-ink);
	color: #fff;
}
.numero-reader__nav:disabled {
	opacity: 0.4;
	cursor: default;
}
.numero-single .numero-reader__indicator {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	font-size: 14px;
	color: var(--reader-muted);
}
.numero-reader__page {
	width: 60px;
	height: 36px;
	padding: 0 8px;
	border: 1px solid #cfd4e0;
	border-radius: 3px;
	background: #fff;
	color: var(--reader-ink);
	font: inherit;
	font-size: 14px;
	text-align: center;
	-moz-appearance: textfield;
}
.numero-reader__page::-webkit-inner-spin-button,
.numero-reader__page::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.numero-reader__page:focus {
	outline: 2px solid var(--reader-plum);
	outline-offset: 1px;
}
.numero-reader__range {
	font-variant-numeric: tabular-nums;
	color: var(--reader-ink);
}

.numero-reader__zoom-open {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 44px;
	margin-left: 14px;
	padding: 0 16px;
	border: 1px solid #cfd4e0;
	border-radius: 22px;
	background: #fff;
	color: var(--reader-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.numero-reader__zoom-open:hover,
.numero-reader__zoom-open:focus-visible {
	background: var(--reader-ink);
	border-color: var(--reader-ink);
	color: #fff;
}

/* --- Zoom : calque sombre couvrant le lecteur, page en grand, déplacement libre --- */
.numero-zoom {
	position: fixed;
	inset: 0;
	z-index: 100000; /* Au-dessus de l'en-tête collant Divi. */
	display: flex;
	flex-direction: column;
	background: #0f0a3a; /* Opaque : l'en-tête collant du site ne doit pas transparaître. */
	color: #fff;
}
.numero-zoom-active,
.numero-zoom-active body {
	overflow: hidden;
}
.numero-zoom__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex: 0 0 auto;
	padding: 12px 20px;
	background: rgba(0, 0, 0, 0.25);
}
.numero-single .numero-zoom__label {
	margin: 0;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
}
.numero-zoom__tools {
	display: flex;
	align-items: center;
	gap: 8px;
}
.numero-zoom__level {
	min-width: 56px;
	text-align: center;
	font-size: 14px;
	font-variant-numeric: tabular-nums;
	color: rgba(255, 255, 255, 0.85);
}
.numero-zoom__tool,
.numero-zoom__close,
.numero-zoom__nav {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.1);
	color: #fff;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.numero-zoom__tool {
	width: 36px;
	height: 36px;
	padding: 0;
	border-radius: 50%;
}
.numero-zoom__close {
	height: 36px;
	margin-left: 12px;
	padding: 0 14px;
	border-radius: 18px;
}
.numero-zoom__tool:hover:not(:disabled),
.numero-zoom__close:hover,
.numero-zoom__nav:hover:not(:disabled) {
	background: #fff;
	color: var(--reader-ink);
}
.numero-zoom__tool:disabled,
.numero-zoom__nav:disabled {
	opacity: 0.35;
	cursor: default;
}
.numero-zoom__tool:focus-visible,
.numero-zoom__close:focus-visible,
.numero-zoom__nav:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}
.numero-zoom__scroll {
	flex: 1 1 auto;
	display: flex;
	min-height: 0;
	overflow: auto;
	cursor: grab;
	scrollbar-width: thin;
	touch-action: pan-x pan-y;
}
.numero-zoom__scroll.is-dragging {
	cursor: grabbing;
	user-select: none;
}
.numero-zoom__page {
	flex: 0 0 auto;
	margin: auto; /* Centrée quand elle est plus petite que la zone, défilable sinon. */
	padding: 16px;
	box-sizing: content-box;
}
.numero-zoom__canvas {
	display: block;
	width: 100%;
	height: 100%;
	background: #fff;
	box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
}
.numero-zoom__nav {
	position: absolute;
	top: 50%;
	width: 48px;
	height: 48px;
	padding: 0;
	border-radius: 50%;
	transform: translateY(-50%);
}
.numero-zoom__nav--prev {
	left: 16px;
}
.numero-zoom__nav--next {
	right: 16px;
}

/* --- Plein écran --- */
.numero-reader:fullscreen {
	display: flex;
	flex-direction: column;
	background: var(--reader-mist);
	overflow: auto;
}
.numero-reader:fullscreen .numero-reader__stage {
	flex: 1 1 auto;
	min-height: 0;
}

@media (max-width: 767px) {
	.numero-reader__bar-inner {
		flex-wrap: wrap;
		gap: 10px 16px;
		padding: 12px 0;
	}
	.numero-single .numero-reader__title {
		flex: 1 1 100%;
		font-size: 19px;
	}
	.numero-reader__pages {
		display: none;
	}
	.numero-reader__actions {
		margin-left: 0;
	}
	.numero-reader__action {
		padding: 8px 12px;
	}
	.numero-reader__stage {
		min-height: 360px;
		padding: 20px 12px 12px;
	}
	.numero-reader__controls {
		gap: 12px;
		padding: 10px 12px 24px;
	}
	.numero-reader__zoom-open {
		width: 44px;
		margin-left: 4px;
		padding: 0;
		border-radius: 50%;
	}
	.numero-reader__zoom-open span {
		display: none;
	}
	.numero-zoom__bar {
		padding: 10px 12px;
	}
	.numero-zoom__close span {
		display: none;
	}
	.numero-zoom__close {
		width: 36px;
		padding: 0;
		border-radius: 50%;
	}
	.numero-zoom__nav {
		top: auto;
		bottom: 16px;
		width: 40px;
		height: 40px;
		transform: none;
	}
	.numero-zoom__nav--prev {
		left: 12px;
	}
	.numero-zoom__nav--next {
		right: 12px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.numero-reader__action,
	.numero-reader__nav,
	.numero-reader__zoom-open,
	.numero-zoom__tool,
	.numero-zoom__close,
	.numero-zoom__nav,
	.numero-reader__progress::-webkit-progress-value {
		transition: none;
	}
}

/* ==========================================================================
   Moteur de recherche : intro, formulaire et résultats (gabarit statique pour l'instant)
   ========================================================================== */
.search-hero,
.search-results {
	--search-ink: #0c0639;
	--search-plum: #5e2f48;
	--search-mist: #eef0f6;
	--search-field: #f4f4f6;
	--search-line: #dfe3ea;
	--search-muted: #6b7280;
	font-size: 16px;
	line-height: 1.5;
	color: var(--search-ink);
}
.search-hero [hidden],
.search-results [hidden] {
	display: none !important;
}

/* --- Intro --- */
.search-hero__intro {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin-bottom: 24px;
}
.search-hero .search-hero__title {
	margin: 0;
	padding: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--search-ink);
}
.search-hero .search-hero__lead {
	margin: 0;
	padding: 0;
	font-size: 17px;
	color: #4b5563;
}

/* La section Divi du formulaire passe au-dessus de celle des résultats : la carte déborde sur elle
   et ses champs doivent rester cliquables. */
.search-section--form {
	position: relative;
	z-index: 2;
}
.search-section--results {
	position: relative;
	z-index: 1;
}

/* --- Formulaire : mot-clé en tête, filtres dessous, carte à cheval sur la section brume --- */
.search-hero .search-form {
	position: relative;
	z-index: 2;
	margin: 0 0 -64px;
	padding: 24px 24px 22px;
	background: #fff;
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	box-shadow: 0 2px 8px rgba(12, 6, 57, 0.06), 0 18px 40px -16px rgba(12, 6, 57, 0.3);
}
.search-form__main {
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 12px 16px;
}
.search-form__main .search-form__label {
	flex: 1 1 100%;
	margin-bottom: -6px;
}
.search-form__keyword {
	position: relative;
	flex: 1 1 320px;
}
.search-form__icon {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--search-muted);
	pointer-events: none;
}
.search-form__label {
	display: block;
	margin: 0 0 6px;
	font-size: 13px;
	font-weight: 600;
	color: #4b5563;
}
.search-hero .search-form__field {
	display: block;
	width: 100%;
	height: 48px;
	margin: 0;
	padding: 0 14px;
	border: 1px solid transparent;
	border-radius: 3px;
	background: var(--search-field);
	color: var(--search-ink);
	font: inherit;
	font-size: 15px;
	line-height: 46px;
	appearance: none;
	-webkit-appearance: none;
}
.search-hero .search-form__field--keyword {
	height: 56px;
	padding-left: 48px;
	font-size: 17px;
	line-height: 54px;
}
.search-hero .search-form__field::placeholder {
	color: #9ca3af;
}
.search-hero select.search-form__field {
	padding-right: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1 1l6 6 6-6' fill='none' stroke='%230c0639' stroke-width='2'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
}
.search-hero .search-form__field:focus {
	outline: 2px solid var(--search-plum);
	outline-offset: 1px;
	background-color: #fff;
}
.search-hero input[type="number"].search-form__field::-webkit-inner-spin-button,
.search-hero input[type="number"].search-form__field::-webkit-outer-spin-button,
.search-hero input[type="search"].search-form__field::-webkit-search-cancel-button {
	-webkit-appearance: none;
	margin: 0;
}
.search-hero input[type="number"].search-form__field {
	-moz-appearance: textfield;
}
.search-form__submit {
	flex: 0 0 auto;
	height: 56px;
	padding: 0 30px;
}
.search-form__advanced {
	margin-top: 18px;
	border-top: 1px solid var(--search-line);
}
.search-form__advanced-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 18px 0 0;
	color: var(--search-plum);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.5;
	list-style: none;
	cursor: pointer;
}
.search-form__advanced-toggle::-webkit-details-marker {
	display: none;
}
.search-form__advanced-toggle::after {
	content: '';
	width: 8px;
	height: 8px;
	margin: 0 4px 4px;
	flex-shrink: 0;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
}
.search-form__advanced[open] > .search-form__advanced-toggle::after {
	margin-top: 4px;
	margin-bottom: 0;
	transform: rotate(225deg);
}
.search-form__advanced-toggle:focus-visible {
	outline: 2px solid var(--search-plum);
	outline-offset: 4px;
	border-radius: 2px;
}
.search-form__filters {
	display: flex;
	align-items: flex-end;
	flex-wrap: wrap;
	gap: 14px 16px;
	margin-top: 18px;
}
.search-form__group {
	flex: 1 1 120px;
	min-width: 0;
}
.search-form__group--number {
	flex: 0 1 110px;
}
.search-form__group--wide {
	flex: 2 1 200px;
}
.search-form__reset {
	flex: 0 0 auto;
	align-self: center;
	margin-top: 22px;
	color: var(--search-plum);
	font-size: 14px;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* --- Résultats (section brume gérée par Divi) --- */
.search-results {
	padding-top: 96px; /* Place pour la carte du formulaire qui déborde. */
}
.search-results__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 24px;
	margin: 0 0 20px;
	padding: 0 0 14px;
	border-bottom: 1px solid var(--search-line);
}
.search-results .search-results__summary {
	margin: 0;
	padding: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--search-ink);
}
.search-results .search-results__page {
	margin: 0;
	padding: 0;
	font-size: 14px;
	color: var(--search-muted);
}
.search-results .search-results__list {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.5;
}
.search-results .search-result {
	position: relative;
	margin: 0;
	padding: 22px 28px 20px 28px;
	background: #fff;
	border: 1px solid #e3e6ee;
	border-left: 4px solid var(--search-plum);
	border-radius: 4px;
}
.search-results .search-result--jurisprudences {
	border-left-color: #384260;
}
.search-results .search-result--reponses-ministerielles {
	border-left-color: #b08d57;
}
.search-result__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 16px;
	margin-bottom: 10px;
	font-size: 13px;
}
.search-result__labels {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 14px;
	padding-top: 6px;
}
/* Numéro de la revue mis en exergue */
.search-results .search-result__number {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	flex: 0 0 auto;
	padding: 5px 12px;
	border-radius: 3px;
	background: #f3ecf0;
	color: var(--search-plum);
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.search-results .search-result__number strong {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.01em;
}
.search-results .search-result__number span {
	font-size: 13px;
	color: #7a5c6c;
}
.search-results .search-result__number:hover,
.search-results .search-result__number:focus-visible {
	background: var(--search-plum);
	color: #fff;
}
.search-results .search-result__number:hover span,
.search-results .search-result__number:focus-visible span {
	color: rgba(255, 255, 255, 0.85);
}
.search-result__type {
	font-weight: 600;
	color: var(--search-plum);
}
.search-result--jurisprudences .search-result__type {
	color: #384260;
}
.search-result--reponses-ministerielles .search-result__type {
	color: #8a6a36;
}
.search-result__sections {
	color: var(--search-muted);
}
.search-results .search-result__title {
	margin: 0 0 6px;
	padding: 0;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--search-ink);
}
.search-results .search-result__title a {
	color: inherit;
	text-decoration: none;
}
.search-results .search-result__title a:hover,
.search-results .search-result__title a:focus-visible {
	color: var(--search-plum);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.search-results .search-result__court {
	margin: 0 0 8px;
	padding: 0;
	font-size: 14px;
	font-style: italic;
	color: #4b5563;
}
.search-results .search-result__excerpt {
	max-width: 80ch;
	margin: 0 0 14px;
	padding: 0;
	font-size: 15px;
	color: #2f3342;
}
/* Termes cherchés surlignés par Relevanssi dans l'extrait. */
.search-results .search-result__excerpt strong {
	font-weight: 700;
	color: var(--search-plum);
	background: #f3eaf0;
	padding: 0 3px;
	margin: 0 -3px; /* Le fond déborde sur les espaces sans décoller le pluriel qui suit (« copropriétés »). */
	border-radius: 3px;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
}
.search-result__footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 24px;
}
.search-results .search-result__meta {
	display: flex;
	flex: 1 1 auto;
	flex-wrap: wrap;
	gap: 4px 0;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 14px;
	color: var(--search-muted);
}
.search-results .search-result__read {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: 0 0 auto;
	height: 40px;
	padding: 0 14px 0 18px;
	border: 1px solid var(--search-plum);
	border-radius: 3px;
	background: #fff;
	color: var(--search-plum);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.search-results .search-result__read svg {
	width: 16px;
	height: 16px;
}
.search-results .search-result__read:hover,
.search-results .search-result__read:focus-visible {
	background: var(--search-plum);
	color: #fff;
}
.search-results .search-result__read:focus-visible {
	outline: 2px solid var(--search-ink);
	outline-offset: 2px;
}
.search-results .search-result__meta li {
	margin: 0;
	padding: 0;
}
.search-results .search-result__meta li + li {
	margin-left: 12px;
	padding-left: 12px;
	border-left: 1px solid var(--search-line);
}
.search-results .search-result__meta a {
	color: var(--search-ink);
	font-weight: 600;
	text-decoration: none;
}
.search-results .search-result__meta a:hover,
.search-results .search-result__meta a:focus-visible {
	color: var(--search-plum);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.search-results .search-results__empty {
	margin: 0;
	padding: 28px;
	border: 1px dashed #cfd4e0;
	border-radius: 6px;
	background: #fff;
	text-align: center;
}

/* --- Pagination --- */
.search-pagination {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 36px;
}
.search-pagination__item,
.search-pagination__prev,
.search-pagination__next {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 12px;
	border: 1px solid var(--search-line);
	border-radius: 20px;
	background: #fff;
	color: var(--search-ink);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.search-pagination__item:hover,
.search-pagination__prev:hover,
.search-pagination__next:hover,
.search-pagination__item:focus-visible,
.search-pagination__prev:focus-visible,
.search-pagination__next:focus-visible {
	background: var(--search-ink);
	border-color: var(--search-ink);
	color: #fff;
}
.search-pagination__item.is-current {
	background: var(--search-ink);
	border-color: var(--search-ink);
	color: #fff;
}
.search-pagination__next {
	margin-left: 8px;
	padding: 0 18px;
}
.search-pagination__prev {
	margin-right: 8px;
	padding: 0 18px;
}
.search-pagination__gap {
	padding: 0 4px;
	color: var(--search-muted);
}

@media (max-width: 767px) {
	.search-hero__intro {
		margin-bottom: 20px;
	}
	.search-hero .search-hero__title {
		font-size: 28px;
	}
	.search-hero .search-hero__lead {
		font-size: 16px;
	}
	.search-hero .search-form {
		margin-bottom: -48px;
		padding: 18px 18px 20px;
	}
	.search-form__keyword {
		flex: 1 1 100%;
	}
	.search-form__submit {
		flex: 1 1 100%;
		height: 48px;
	}
	/* Numéro | Année sur une ligne, puis Mois, Auteur et Rubrique en pleine largeur */
	.search-form__group,
	.search-form__group--number {
		flex: 1 1 calc(50% - 8px);
	}
	.search-form__filters .search-form__group:nth-child(3),
	.search-form__group--wide {
		flex: 1 1 100%;
	}
	.search-form__reset {
		flex: 1 1 100%;
		margin-top: 4px;
		text-align: center;
	}
	.search-results {
		padding-top: 76px;
	}
	.search-results .search-result {
		padding: 18px 18px 16px;
	}
	.search-results .search-result__title {
		font-size: 17px;
	}
	.search-results .search-result__read {
		flex: 1 1 100%;
		justify-content: center;
	}
	.search-pagination__prev,
	.search-pagination__next {
		flex: 1 1 100%;
		margin: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.search-pagination__item,
	.search-pagination__prev,
	.search-pagination__next,
	.search-results .search-result__read,
	.search-results .search-result__number {
		transition: none;
	}
}

/* ==========================================================================
   Article : page de lecture (en-tête éditorial, colonne de texte, notes, numéro, voisins)
   ========================================================================== */
.article-single {
	--article-ink: #0c0639;
	--article-text: #1f2333;
	--article-plum: #5e2f48;
	--article-plum-tint: #f3ecf0;
	--article-mist: #eef0f6;
	--article-line: #e3e6ee;
	--article-muted: #6b7280;
	background: #fff;
	color: var(--article-text);
	font-size: 16px;
	line-height: 1.5;
}
.article-single [hidden] {
	display: none !important;
}
.article__topbar-inner,
.article__footer {
	width: 80%;
	max-width: 1080px;
	margin: 0 auto;
}
/* Colonne de lecture : environ 75 caractères par ligne à 18 px */
.article__header,
.article__body,
.article__notes,
.article__study-author {
	width: 80%;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

/* --- Barre du haut : retour au moteur, numéro de parution --- */
.article__topbar {
	border-bottom: 1px solid var(--article-line);
}
.article__topbar-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px 24px;
	padding: 14px 0;
}
.article-single .article__back {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--article-plum);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
}
.article-single .article__back:hover span,
.article-single .article__back:focus-visible span {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.article-single .article__badge {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 10px;
	padding: 6px 14px;
	border-radius: 3px;
	background: var(--article-plum-tint);
	color: var(--article-plum);
	font-size: 13px;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.article-single .article__badge strong {
	font-size: 16px;
	font-weight: 700;
}
.article-single .article__badge span {
	color: #7a5c6c;
}
.article-single .article__badge:hover,
.article-single .article__badge:focus-visible {
	background: var(--article-plum);
	color: #fff;
}
.article-single .article__badge:hover span,
.article-single .article__badge:focus-visible span {
	color: rgba(255, 255, 255, 0.85);
}

/* --- En-tête éditorial --- */
.article__header {
	padding: 40px 0 8px;
}
.article-single .article__kicker {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 14px;
	margin: 0 0 18px;
	padding: 0;
	font-size: 14px;
}
.article-single .article__category {
	position: relative;
	padding-bottom: 8px;
	color: var(--article-plum);
	font-weight: 600;
	text-decoration: none;
}
.article-single .article__category::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 36px;
	height: 2px;
	background: var(--article-plum);
}
.article-single .article__category:hover,
.article-single .article__category:focus-visible {
	text-decoration: underline;
	text-underline-offset: 6px;
}
.article__sections {
	color: var(--article-muted);
}
.article-single .article__title {
	margin: 0 0 18px;
	padding: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.22;
	letter-spacing: -0.005em;
	color: var(--article-ink);
	text-wrap: balance;
}
.article-single .article__title--long {
	font-size: 26px;
	line-height: 1.3;
	text-wrap: pretty;
}
.article-single .article__byline {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0 0 22px;
	padding: 0;
	font-size: 16px;
}
.article__author {
	font-weight: 600;
	color: var(--article-ink);
}
.article__author-title {
	font-size: 14px;
	color: var(--article-muted);
}
.article-single .article__reference {
	display: flex;
	flex-direction: column;
	gap: 2px;
	margin: 0 0 22px;
	padding: 12px 18px;
	border-left: 3px solid var(--article-plum);
	background: var(--article-mist);
	font-size: 15px;
	font-weight: 600;
	color: var(--article-ink);
}
.article-single .article__reference span {
	font-weight: 400;
	color: #3b3f4f;
}
/* Chapô : filet prune à gauche, corps légèrement plus grand que le texte */
.article-single .article__standfirst {
	margin: 4px 0 8px;
	padding: 2px 0 2px 22px;
	border-left: 3px solid var(--article-plum);
	font-size: 19px;
	line-height: 1.6;
	color: #2f3342;
}
.article-single .article__standfirst p {
	margin: 0 0 1em;
	padding: 0;
}
.article-single .article__standfirst p:last-child {
	margin-bottom: 0;
}

/* --- Corps du texte --- */
.article__body {
	padding: 16px 0 8px;
	font-size: 18px;
	line-height: 1.75;
	color: var(--article-text);
}
.article-single .article__body p {
	margin: 0 0 1.35em;
	padding: 0;
}
.article-single .article__body h1,
.article-single .article__body h2 {
	margin: 2.2em 0 0.9em;
	padding: 0;
	font-size: 22px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: 0.02em;
	color: var(--article-ink);
}
.article-single .article__body h1::before,
.article-single .article__body h2::before {
	content: "";
	display: block;
	width: 36px;
	height: 3px;
	margin-bottom: 14px;
	background: var(--article-plum);
}
.article-single .article__body h3 {
	margin: 1.8em 0 0.6em;
	padding: 0;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--article-ink);
}
.article-single .article__body h4,
.article-single .article__body h5,
.article-single .article__body h6 {
	margin: 1.6em 0 0.5em;
	padding: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--article-ink);
}
.article-single .article__body ul,
.article-single .article__body ol {
	margin: 0 0 1.35em;
	padding: 0 0 0 1.4em;
	line-height: 1.7;
}
.article-single .article__body li {
	margin: 0 0 0.4em;
}
.article-single .article__body blockquote {
	margin: 1.5em 0;
	padding: 4px 0 4px 22px;
	border-left: 3px solid #d9c3cf;
	font-style: italic;
	color: #3b3f4f;
}
.article-single .article__body blockquote p:last-child {
	margin-bottom: 0;
}
.article-single .article__body a {
	color: var(--article-plum);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.article-single .article__body sup {
	font-size: 0.68em;
	line-height: 0;
	vertical-align: super;
	color: var(--article-plum);
	font-weight: 600;
}
.article-single .article__body img {
	display: block;
	max-width: 100%;
	height: auto;
	margin: 1.5em auto;
}
.article-single .article__body hr {
	margin: 2em 0;
	border: 0;
	border-top: 1px solid var(--article-line);
}
/* Styles en ligne hérités de l'ancien site : la typographie de la page prime. */
.article-single .article__body [style*="font-size"],
.article-single .article__body [style*="font-family"],
.article-single .article__body [style*="line-height"] {
	font-size: inherit !important;
	font-family: inherit !important;
	line-height: inherit !important;
}
.article-single .article__body [style*="color"] {
	color: inherit !important;
}
.article__extra {
	padding-top: 0;
}

/* Jurisprudences : le commentaire se distingue du texte de la décision. */
.article-single .article__commentary {
	margin: 42px 0 28px;
	padding: 28px;
	border: 1px solid #e1d5dc;
	border-radius: 8px;
	background: #faf7f9;
	color: var(--article-text);
}
.article-single .article__body .article__commentary-title {
	margin: -28px -28px 26px;
	padding: 18px 28px;
	border-radius: 7px 7px 0 0;
	background: var(--article-plum);
	color: #fff;
	font-size: 20px;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: .035em;
}
.article-single .article__body .article__commentary-title::before { display: none; }
.article-single .article__commentary > :last-child { margin-bottom: 0; }
@media (max-width: 767px) {
	.article-single .article__commentary { margin-top: 32px; padding: 20px 18px; }
	.article-single .article__body .article__commentary-title { margin: -20px -18px 20px; padding: 16px 18px; font-size: 18px; }
}
@media print {
	.article-single .article__commentary { background: #fff; border-color: #777; }
	.article-single .article__body .article__commentary-title { background: #fff; color: #222; border-bottom: 2px solid #777; page-break-after: avoid; }
}

/* --- Notes et auteur de la recherche --- */
.article__notes {
	margin-top: 40px;
	padding: 24px 0 0;
	border-top: 1px solid var(--article-line);
	font-size: 15px;
	line-height: 1.65;
	color: #4b5563;
}
.article-single .article__notes-title {
	margin: 0 0 12px;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--article-ink);
}
.article-single .article__notes p {
	margin: 0 0 1em;
	padding: 0;
}
.article-single .article__study-author {
	margin: 24px auto 0;
	padding: 0;
	font-size: 14px;
	color: var(--article-muted);
}

/* --- Pied : numéro de parution et articles voisins --- */
.article__footer {
	margin-top: 56px;
	padding: 40px 0 80px;
	border-top: 1px solid var(--article-line);
}
.article-issue {
	display: flex;
	align-items: center;
	gap: 28px;
	padding: 24px 28px;
	border: 1px solid var(--article-line);
	border-radius: 6px;
	background: var(--article-mist);
}
.article-issue__cover {
	display: block;
	flex: 0 0 96px;
	border-radius: 2px;
	box-shadow: 0 1px 2px rgba(12, 6, 57, 0.1), 0 14px 28px -18px rgba(12, 6, 57, 0.45);
	line-height: 0;
	overflow: hidden;
}
.article-issue__img {
	display: block;
	width: 100%;
	height: auto;
}
.article-issue__body {
	flex: 1 1 auto;
	min-width: 0;
}
.article-single .article-issue__label {
	margin: 0 0 4px;
	padding: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--article-plum);
}
.article-single .article-issue__title {
	margin: 0 0 16px;
	padding: 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--article-ink);
}
.article-issue__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.article-issue__actions .kiosque-button {
	min-height: 44px;
	padding: 0 20px;
}
.article__neighbors {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 24px;
}
.article-single .article__neighbor {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 18px 22px;
	border: 1px solid var(--article-line);
	border-radius: 6px;
	color: var(--article-ink);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.article-single .article__neighbor--next {
	grid-column: 2; /* Toujours à droite, même sans article précédent */
	text-align: right;
	align-items: flex-end;
}
.article-single .article__neighbor:hover,
.article-single .article__neighbor:focus-visible {
	border-color: var(--article-plum);
	background: var(--article-plum-tint);
}
.article__neighbor-label {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	font-weight: 600;
	color: var(--article-plum);
}
.article__neighbor-label svg {
	width: 16px;
	height: 16px;
}
.article__neighbor-title {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.4;
}

@media (max-width: 980px) {
	.article__neighbors {
		grid-template-columns: minmax(0, 1fr);
	}
	.article-single .article__neighbor--next {
		grid-column: auto;
		text-align: left;
		align-items: flex-start;
	}
}
@media (max-width: 767px) {
	.article__header {
		padding-top: 28px;
	}
	.article-single .article__title {
		font-size: 27px;
	}
	.article-single .article__title--long {
		font-size: 22px;
	}
	.article__body {
		font-size: 17px;
		line-height: 1.7;
	}
	.article-single .article__body h1,
	.article-single .article__body h2 {
		font-size: 20px;
	}
	.article-single .article__standfirst {
		font-size: 17px;
	}
	.article__topbar-inner {
		flex-wrap: wrap;
		padding: 12px 0;
	}
	.article__footer {
		margin-top: 40px;
		padding: 32px 0 56px;
	}
	.article-issue {
		align-items: flex-start;
		gap: 18px;
		padding: 18px;
	}
	.article-issue__cover {
		flex-basis: 72px;
	}
	.article-issue__actions .kiosque-button {
		flex: 1 1 100%;
	}
}
@media (prefers-reduced-motion: reduce) {
	.article-single .article__badge,
	.article-single .article__neighbor {
		transition: none;
	}
}

/* ==========================================================================
   Page d'accueil : titres de section, blocs services (Blurb), bouton, témoignages
   ========================================================================== */
.home-section {
	--home-ink: #0c0639;
	--home-plum: #5e2f48;
	--home-navy: #384260;
	--home-mist: #eef0f6;
	--home-muted: #6b7280;
}
/* Titres de section (module Texte) */
.home-section .home-heading .et_pb_text_inner {
	text-align: center;
}
.home-section .et_pb_text_inner h2.home-title {
	margin: 0 0 10px;
	padding: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--home-ink);
}
.home-section .et_pb_text_inner p.home-lead {
	max-width: 60ch;
	margin: 0 auto;
	padding: 0;
	font-size: 17px;
	line-height: 1.5;
	color: #4b5563;
}

/* Blocs services : icône dans un rond brume, titre semi-gras, texte discret */
.home-section .home-blurb .et_pb_blurb_content,
.home-section .home-blurb .et_pb_blurb_container {
	max-width: 340px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}
.home-section .home-blurb .et_pb_blurb_container {
	max-width: none;
}
.home-section .home-blurb .et_pb_main_blurb_image {
	margin-bottom: 20px;
}
.home-section .home-blurb .et-pb-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	border-radius: 50%;
	background: var(--home-mist);
	color: var(--home-navy);
	font-size: 36px;
	line-height: 1;
}
.home-section .home-blurb .et_pb_module_header {
	margin: 0 0 10px;
	padding: 0;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--home-ink);
}
.home-section .home-blurb .et_pb_module_header a {
	color: inherit;
	text-decoration: none;
}
.home-section .home-blurb .et_pb_module_header a:hover,
.home-section .home-blurb .et_pb_module_header a:focus-visible {
	color: var(--home-plum);
	text-decoration: underline;
	text-underline-offset: 4px;
}
.home-section .home-blurb .et_pb_blurb_description {
	font-size: 15px;
	line-height: 1.6;
	color: var(--home-muted);
}
.home-section .home-blurb .et_pb_blurb_description p {
	margin: 0;
	padding: 0;
}

/* Bouton (module Bouton) : même forme que les boutons du site, centré (la classe est portée par le lien) */
.home-section .et_pb_button_module_wrapper {
	text-align: center;
}
.home-section .home-button .et_pb_button,
.home-section .et_pb_button.home-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0 26px !important;
	border: 1px solid var(--home-plum);
	border-radius: 3px;
	background: var(--home-plum);
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	transition: background-color 0.15s ease, border-color 0.15s ease;
}
.home-section .home-button .et_pb_button:hover,
.home-section .et_pb_button.home-button:hover {
	background: #4a2338;
	border-color: #4a2338;
	padding: 0 26px !important;
}
.home-section .home-button .et_pb_button::after,
.home-section .et_pb_button.home-button::after {
	display: none;
}

/* Témoignages (module Témoignage) : carte blanche bordée, citation lisible */
.home-section .home-testimonial.et_pb_testimonial {
	padding: 40px 32px 30px;
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	background: #fff;
}
.home-section .home-testimonial .et_pb_testimonial_portrait {
	width: 72px;
	height: 72px;
	margin-right: 24px;
}
.home-section .home-testimonial .et_pb_testimonial_description {
	font-size: 16px;
	line-height: 1.6;
	color: #2f3342;
}
.home-section .home-testimonial .et_pb_testimonial_description p {
	margin: 0 0 16px;
	padding: 0;
	font-style: italic;
}
.home-section .home-testimonial .et_pb_testimonial_author {
	font-size: 15px;
	font-weight: 600;
	color: var(--home-ink);
}
.home-section .home-testimonial .et_pb_testimonial_meta {
	font-size: 14px;
	color: var(--home-muted);
}

@media (max-width: 980px) {
	/* Sécurité : colonnes des services et des témoignages empilées, même si Divi garde la structure desktop */
	.home-section--services .et_pb_row,
	.home-section--testimonials .et_pb_row,
	.home-section--hero .et_pb_row,
	.home-section--features .et_pb_row {
		flex-wrap: wrap;
	}
	.home-section--services .et_pb_column,
	.home-section--testimonials .et_pb_column,
	.home-section--hero .et_pb_column,
	.home-section--features .et_pb_column {
		flex: 0 0 100%;
		max-width: 100%;
		width: 100%;
	}
	.home-section--services .et_pb_column + .et_pb_column,
	.home-section--testimonials .et_pb_column + .et_pb_column,
	.home-section--features .et_pb_column + .et_pb_column {
		margin-top: 28px;
	}
	.home-section--features .et_pb_row + .et_pb_row {
		margin-top: 8px;
	}
}
@media (max-width: 767px) {
	.home-section .et_pb_text_inner h2.home-title {
		font-size: 28px;
	}
	.home-section .home-blurb .et_pb_blurb_content {
		max-width: none;
	}
	.home-section .home-testimonial.et_pb_testimonial {
		padding: 32px 20px 24px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.home-section .home-button .et_pb_button {
		transition: none;
	}
}

/* --- Accueil, proposition v2 : à la une, derniers articles, chiffres clés, formules --- */
.home-section .home-heading--plain {
	margin-bottom: 28px;
	text-align: center;
}
.home-section .home-heading--plain .home-title {
	margin: 0 0 10px;
	padding: 0;
	font-size: 34px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--home-ink);
}
.home-section .home-heading--plain .home-lead {
	max-width: 60ch;
	margin: 0 auto;
	padding: 0;
	font-size: 17px;
	line-height: 1.5;
	color: #4b5563;
}
.home-section .home-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin: 0;
	padding: 0;
}

/* À la une */
.home-hero {
	display: grid;
	grid-template-columns: minmax(0, 11fr) minmax(0, 9fr);
	gap: 48px;
	align-items: center;
	font-size: 16px;
	line-height: 1.5;
	color: var(--home-ink);
}
.home-section .home-hero__title {
	margin: 0 0 16px;
	padding: 0;
	font-size: 38px;
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.005em;
	color: var(--home-ink);
	text-wrap: balance;
}
.home-section .home-hero__lead {
	max-width: 54ch;
	margin: 0 0 26px;
	padding: 0;
	font-size: 17px;
	line-height: 1.55;
	color: #3b3f4f;
}
.home-search {
	display: flex;
	gap: 10px;
	max-width: 620px;
}
.home-search__field {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
}
.home-search__field svg {
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--home-muted);
	pointer-events: none;
}
.home-section .home-search input[type="search"] {
	width: 100%;
	height: 56px;
	margin: 0;
	padding: 0 16px 0 48px;
	border: 1px solid #dfe3ea;
	border-radius: 3px;
	background: #fff;
	color: var(--home-ink);
	font: inherit;
	font-size: 17px;
	appearance: none;
	-webkit-appearance: none;
}
.home-section .home-search input[type="search"]::placeholder {
	color: #9ca3af;
}
.home-section .home-search input[type="search"]:focus {
	outline: 2px solid var(--home-plum);
	outline-offset: 1px;
}
.home-section .home-search input[type="search"]::-webkit-search-cancel-button {
	-webkit-appearance: none;
}
.home-search .kiosque-button {
	flex: 0 0 auto;
	height: 56px;
	padding: 0 28px;
}
.home-section .home-hero__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 18px 0 0;
	padding: 0;
	font-size: 15px;
}
.home-section .home-hero__links a {
	color: var(--home-plum);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.home-hero__issue {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr);
	gap: 26px;
	align-items: center;
	padding: 26px 28px;
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	background: #fff;
}
.home-hero__cover {
	display: block;
	border-radius: 3px;
	box-shadow: 0 2px 6px rgba(12, 6, 57, 0.14), 0 22px 36px -20px rgba(12, 6, 57, 0.5);
	line-height: 0;
	overflow: hidden;
}
.home-hero__img {
	display: block;
	width: 100%;
	height: auto;
}
.home-section .home-hero__label {
	position: relative;
	margin: 0 0 14px;
	padding: 0 0 8px;
	font-size: 13px;
	font-weight: 600;
	color: var(--home-plum);
}
.home-hero__label::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 32px;
	height: 2px;
	background: var(--home-plum);
}
.home-section .home-hero__number {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin: 0 0 12px;
	padding: 0;
	font-size: 34px;
	font-weight: 300;
	line-height: 1;
	color: var(--home-ink);
}
.home-hero__date {
	font-size: 16px;
	font-weight: 400;
	color: #4b5563;
}
.home-section .home-hero__toc {
	margin: 0 0 18px;
	padding: 0;
	list-style: none;
	font-size: 14px;
	line-height: 1.45;
}
.home-section .home-hero__toc li {
	position: relative;
	margin: 0 0 6px;
	padding: 0 0 0 16px;
	color: #2f3342;
}
.home-hero__toc li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 8px;
	width: 5px;
	height: 5px;
	background: var(--home-plum);
}
.home-hero__read {
	min-height: 44px;
	padding: 0 20px;
}

/* Derniers articles */
.home-section .home-articles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	line-height: 1.45;
}
.home-section .home-article {
	margin: 0;
	padding: 0;
}
.home-section .home-article__link {
	display: flex;
	flex-direction: column;
	gap: 8px;
	height: 100%;
	padding: 20px 24px 18px;
	border: 1px solid #e3e6ee;
	border-left: 4px solid var(--home-plum);
	border-radius: 4px;
	background: #fff;
	color: var(--home-ink);
	text-decoration: none;
	transition: border-color 0.15s ease, background-color 0.15s ease;
}
.home-section .home-article--jurisprudences .home-article__link {
	border-left-color: #384260;
}
.home-section .home-article--reponses-ministerielles .home-article__link {
	border-left-color: #b08d57;
}
.home-section .home-article__link:hover,
.home-section .home-article__link:focus-visible {
	border-color: var(--home-plum);
	background: #f3ecf0;
}
.home-article__type {
	font-size: 13px;
	font-weight: 600;
	color: var(--home-plum);
}
.home-article--jurisprudences .home-article__type {
	color: #384260;
}
.home-article--reponses-ministerielles .home-article__type {
	color: #8a6a36;
}
.home-article__title {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.35;
}
.home-article__meta {
	margin-top: auto;
	font-size: 14px;
	color: var(--home-muted);
}
.home-article__author {
	display: block;
	margin-top: 2px;
	color: var(--home-ink);
	font-weight: 600;
}

/* Chiffres clés */
.home-section .home-stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}
.home-section .home-stat {
	margin: 0;
	padding: 0;
	text-align: center;
}
.home-section .home-stat + .home-stat {
	border-left: 1px solid #e3e6ee;
}
.home-section .home-stat__link {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 8px 24px;
	color: var(--home-ink);
	text-decoration: none;
}
.home-stat__value {
	font-size: 52px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
}
.home-stat__label {
	font-size: 17px;
	font-weight: 600;
}
.home-stat__detail {
	font-size: 14px;
	color: var(--home-muted);
}
.home-section .home-stat__link:hover .home-stat__value,
.home-section .home-stat__link:focus-visible .home-stat__value {
	color: var(--home-plum);
}

@media (max-width: 980px) {
	.home-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
	.home-section .home-stats {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}
	.home-section .home-stat + .home-stat {
		border-left: 0;
		border-top: 1px solid #e3e6ee;
		padding-top: 20px;
	}
}
@media (max-width: 767px) {
	.home-section .home-hero__title {
		font-size: 30px;
	}
	.home-search {
		flex-wrap: wrap;
	}
	.home-search .kiosque-button {
		flex: 1 1 100%;
		height: 48px;
	}
	.home-hero__issue {
		grid-template-columns: minmax(0, 1fr);
		padding: 20px;
	}
	.home-hero__cover {
		max-width: 160px;
	}
	.home-section .home-articles {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-stat__value {
		font-size: 44px;
	}
}

/* --- Accueil, proposition v3 (promotionnelle) : accroche, éventail de couvertures, bande de chiffres, bénéfices, appel final --- */
.home-section .et_pb_text_inner p.home-eyebrow {
	margin: 0 0 14px;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	color: var(--home-plum);
}
.home-section .et_pb_text_inner h1.home-claim {
	margin: 0 0 20px;
	padding: 0;
	font-size: 48px;
	font-weight: 600;
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--home-ink);
	text-wrap: balance;
}
.home-section .et_pb_text_inner p.home-claim-lead {
	max-width: 52ch;
	margin: 0;
	padding: 0;
	font-size: 18px;
	line-height: 1.55;
	color: #3b3f4f;
}
.home-section .et_pb_text_inner p.home-reassure {
	margin: 14px 0 0;
	padding: 0;
	font-size: 14px;
	color: var(--home-muted);
}
.home-section .home-cta-row {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}
/* Boutons Divi de l'accueil : primaire prune, secondaire contour */
.home-section .et_pb_button.home-button--ghost {
	background: #fff;
	border-color: #cfd4e0;
	color: var(--home-ink) !important;
}
.home-section .et_pb_button.home-button--ghost:hover {
	background: var(--home-ink);
	border-color: var(--home-ink);
	color: #fff !important;
}
/* Les colonnes Divi 5 empilent leurs modules (flex en colonne) : on passe en rangée pour aligner les deux boutons */
.home-section--hero .et_pb_column,
.home-section--cta .et_pb_column {
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: flex-start;
}
.home-section--cta .et_pb_column {
	justify-content: center;
}
.home-section--hero .et_pb_column > .et_pb_module:not(.et_pb_button_module_wrapper),
.home-section--cta .et_pb_column > .et_pb_module:not(.et_pb_button_module_wrapper) {
	flex: 0 0 100%;
	width: 100%;
}
.home-section--hero .et_pb_column .et_pb_button_module_wrapper,
.home-section--cta .et_pb_column .et_pb_button_module_wrapper {
	flex: 0 0 auto !important;
	width: auto !important;
	margin: 26px 12px 0 0;
}
.home-section--cta .et_pb_column .et_pb_button_module_wrapper {
	margin: 8px 6px 0;
}
/* Formules : pas de marge basse héritée du gabarit S'abonner ; section masquée quand le shortcode ne rend rien (abonné connecté) */
.home-section--pricing .adm-subscribe {
	padding-bottom: 0;
}
.home-section--pricing:has(.et_pb_code_inner:not(:has(*))) {
	display: none;
}

/* Éventail de couvertures */
.home-covers {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: flex-end;
	min-height: 480px;
	padding: 24px 0 16px;
}
.home-covers__item {
	position: relative;
	display: block;
	width: 50%;
	max-width: 300px;
	border-radius: 3px;
	box-shadow: 0 4px 10px rgba(12, 6, 57, 0.18), 0 30px 50px -24px rgba(12, 6, 57, 0.6);
	line-height: 0;
	overflow: hidden;
}
.home-covers__img {
	display: block;
	width: 100%;
	height: auto;
}
.home-covers__item:nth-child(1) { transform: rotate(-10deg) translate(28%, 6%); z-index: 1; }
.home-covers__item:nth-child(2) { transform: rotate(6deg) translate(-4%, 14%); z-index: 2; }
.home-covers__item:nth-child(3) { transform: rotate(-2deg) translate(-32%, 0); z-index: 3; width: 56%; max-width: 330px; }

/* Bande de chiffres sombre */
.home-section--dark {
	color: #fff;
}
.home-section--dark .home-stats .home-stat + .home-stat {
	border-left-color: rgba(255, 255, 255, 0.18);
}
.home-section--dark .home-stat__link {
	color: #fff;
}
.home-section--dark .home-stat__detail {
	color: rgba(255, 255, 255, 0.7);
}
.home-section--dark .home-stat__link:hover .home-stat__value,
.home-section--dark .home-stat__link:focus-visible .home-stat__value {
	color: var(--home-rose, #e6cbd8);
}

/* Bénéfices illustrés : image dans un cadre, texte en regard */
.home-section .home-feature-img--cover {
	max-width: 340px;
	margin: 0 auto;
}
.home-section .home-feature-img .et_pb_image_wrap {
	border: 1px solid #e3e6ee;
	border-radius: 6px;
	box-shadow: 0 2px 6px rgba(12, 6, 57, 0.08), 0 24px 40px -24px rgba(12, 6, 57, 0.4);
	overflow: hidden;
}
.home-section .et_pb_text_inner p.home-feature-kicker {
	margin: 0 0 10px;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--home-plum);
}
.home-section .et_pb_text_inner h2.home-feature-title {
	margin: 0 0 14px;
	padding: 0;
	font-size: 30px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--home-ink);
	text-wrap: balance;
}
.home-section .et_pb_text_inner p.home-feature-text {
	max-width: 48ch;
	margin: 0;
	padding: 0;
	font-size: 17px;
	line-height: 1.55;
	color: #3b3f4f;
}
.home-section .et_pb_text_inner ul.home-feature-list {
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}
.home-section .et_pb_text_inner ul.home-feature-list li {
	position: relative;
	margin: 0 0 8px;
	padding: 0 0 0 26px;
	font-size: 16px;
	color: var(--home-ink);
	background: no-repeat left 4px / 16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M4 10.5l4 4 8-9' fill='none' stroke='%235e2f48' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* Appel final sur fond prune */
.home-section--cta .et_pb_text_inner h2.home-title {
	color: #fff;
}
.home-section--cta .et_pb_text_inner p.home-lead {
	color: rgba(255, 255, 255, 0.85);
}
.home-section--cta .et_pb_button.home-button {
	background: #fff;
	border-color: #fff;
	color: var(--home-plum) !important;
}
.home-section--cta .et_pb_button.home-button:hover {
	background: var(--home-rose, #e6cbd8);
	border-color: var(--home-rose, #e6cbd8);
}
.home-section--cta .et_pb_button.home-button--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.6);
	color: #fff !important;
}
.home-section--cta .et_pb_button.home-button--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #fff;
}

@media (max-width: 980px) {
	.home-covers {
		min-height: 360px;
	}
	.home-section--hero .et_pb_column + .et_pb_column {
		margin-top: 8px;
	}
}
@media (max-width: 767px) {
	.home-section .et_pb_text_inner h1.home-claim {
		font-size: 34px;
	}
	.home-section .et_pb_text_inner p.home-claim-lead {
		font-size: 16px;
	}
	.home-section .et_pb_text_inner h2.home-feature-title {
		font-size: 25px;
	}
	.home-covers {
		min-height: 300px;
	}
	.home-section--hero .et_pb_column .et_pb_button_module_wrapper,
	.home-section--cta .et_pb_column .et_pb_button_module_wrapper {
		display: flex;
		width: 100%;
		margin: 12px 0 0;
	}
	.home-section--hero .et_pb_button_module_wrapper .et_pb_button,
	.home-section--cta .et_pb_button_module_wrapper .et_pb_button {
		width: 100%;
	}
}

/* --- Accueil v3, habillage couleur : accroche en dégradé avec diagonale, fenêtres, aplats, témoignages rosés --- */
/* Le fond de la section est la brume du bloc suivant : la diagonale découpe le dégradé (calque ::before),
   pas la section, donc aucun blanc n'apparaît sous l'angle. */
.home-section--hero.et_pb_section {
	position: relative;
	overflow: hidden;
	background: #eef0f6 !important;
}
.home-section--hero.et_pb_section::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(104deg, transparent 60%, rgba(94, 47, 72, 0.38) 60%),
		linear-gradient(115deg, #0c0639 0%, #384260 58%, #4a2f48 100%);
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - 64px), 0 100%);
	pointer-events: none;
}
.home-section--hero .et_pb_row {
	position: relative;
	z-index: 1;
}
.home-section--dark .et_pb_text_inner p.home-eyebrow {
	color: #e6cbd8;
}
.home-section--dark .et_pb_text_inner h1.home-claim {
	font-size: 50px; /* Deux lignes dans la colonne de l'accroche */
	color: #fff;
}
.home-section--dark .et_pb_text_inner p.home-claim-lead {
	color: rgba(255, 255, 255, 0.86);
}
.home-section--dark .et_pb_text_inner p.home-reassure {
	color: rgba(255, 255, 255, 0.7);
}
.home-section--dark .et_pb_button.home-button {
	background: #fff;
	border-color: #fff;
	color: var(--home-ink) !important;
}
.home-section--dark .et_pb_button.home-button:hover {
	background: #e6cbd8;
	border-color: #e6cbd8;
	color: var(--home-ink) !important;
}
.home-section--dark .et_pb_button.home-button--ghost {
	background: transparent;
	border-color: rgba(255, 255, 255, 0.6);
	color: #fff !important;
}
.home-section--dark .et_pb_button.home-button--ghost:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: #fff;
	color: #fff !important;
}
/* Halo derrière l'éventail */
.home-section--dark .home-covers::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 55%;
	width: 120%;
	height: 110%;
	transform: translate(-50%, -50%);
	background: radial-gradient(closest-side, rgba(230, 203, 216, 0.28), rgba(230, 203, 216, 0) 70%);
	pointer-events: none;
}
.home-section--dark .home-covers__item {
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.35), 0 40px 60px -24px rgba(0, 0, 0, 0.7);
}

/* Chiffres sur brume : valeurs en prune */
.home-section--stats .home-stat__value {
	color: var(--home-plum);
}

/* Bénéfices : fenêtre de navigateur autour des captures, aplat de couleur décalé derrière l'image */
.home-section--features .et_pb_column {
	position: relative;
}
.home-section .home-feature-img--window .et_pb_image_wrap {
	position: relative;
	padding-top: 30px;
	border: 0;
	border-radius: 10px;
	background: #1f2340;
	box-shadow: 0 6px 14px rgba(12, 6, 57, 0.14), 0 36px 60px -28px rgba(12, 6, 57, 0.55);
}
.home-section .home-feature-img--window .et_pb_image_wrap::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 10px;
	width: 42px;
	height: 10px;
	background:
		radial-gradient(circle at 5px 5px, #e26d5a 4.5px, transparent 5px),
		radial-gradient(circle at 21px 5px, #e6b04b 4.5px, transparent 5px),
		radial-gradient(circle at 37px 5px, #62c27a 4.5px, transparent 5px);
}
.home-section .home-feature-img--window img {
	display: block;
	border-radius: 0 0 8px 8px;
}
.home-section .home-feature-img::after {
	content: "";
	position: absolute;
	z-index: -1;
	left: -28px;
	top: 36px;
	right: 40px;
	bottom: -28px;
	border-radius: 12px;
	background: var(--home-mist);
}
.home-section .home-feature-img--alt::after {
	left: 40px;
	right: -28px;
	background: #f3ecf0;
}
.home-section .home-feature-img {
	position: relative;
	z-index: 0;
}
.home-section .home-feature-img--cover .et_pb_image_wrap {
	transform: rotate(-4deg);
	box-shadow: 0 8px 16px rgba(12, 6, 57, 0.18), 0 40px 60px -26px rgba(12, 6, 57, 0.6);
}
.home-section .home-feature-img--cover::after {
	left: 8%;
	right: 8%;
	top: 8%;
	bottom: 4%;
	transform: rotate(5deg);
	background: #f3ecf0;
}

/* Appel final : dégradé et diagonale haute */
.home-section--cta.et_pb_section {
	position: relative;
	overflow: hidden;
	background: linear-gradient(115deg, #5e2f48 0%, #4a2f48 60%, #384260 100%) !important;
	clip-path: polygon(0 48px, 100% 0, 100% 100%, 0 100%);
}
.home-section--cta .et_pb_row {
	position: relative;
	z-index: 1;
	padding-top: 24px;
}

/* Accroche pleine hauteur : le coin bas droit de la diagonale touche le bas de l'écran, le côté gauche dépasse de 64 px */
@media (min-width: 981px) {
	.home-section--hero.et_pb_section {
		min-height: calc(100vh - var(--administrer-header-height, 213px) + 64px);
		display: flex;
		flex-direction: column;
		justify-content: center;
	}
	.home-section--hero.et_pb_section > .et_pb_row {
		width: 80%;
		max-width: 1080px;
	}
}
@media (max-width: 980px) {
	.home-section--hero.et_pb_section::before {
		clip-path: polygon(0 0, 100% 0, 100% calc(100% - 36px), 0 100%);
	}
	.home-section .home-feature-img::after,
	.home-section .home-feature-img--alt::after {
		left: -12px;
		right: -12px;
	}
}
@media (max-width: 767px) {
	.home-section--dark .et_pb_text_inner h1.home-claim {
		font-size: 36px;
	}
	.home-section--cta.et_pb_section {
		clip-path: polygon(0 28px, 100% 0, 100% 100%, 0 100%);
	}
}

/* --- Accueil : chiffres clés en cartes chevauchant la diagonale de l'accroche --- */
.home-section--stats.et_pb_section {
	position: relative;
	z-index: 2;
}
.home-section .home-stats--cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	margin: -48px 0 0;
}
.home-section .home-stats--cards .home-stat {
	text-align: left;
}
.home-section .home-stats--cards .home-stat + .home-stat {
	border: 0;
}
.home-section .home-stats--cards .home-stat__link {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
	height: 100%;
	padding: 28px 28px 26px;
	border: 1px solid #e3e6ee;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 2px 6px rgba(12, 6, 57, 0.06), 0 30px 50px -28px rgba(12, 6, 57, 0.45);
	transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.home-section .home-stats--cards .home-stat__link:hover,
.home-section .home-stats--cards .home-stat__link:focus-visible {
	transform: translateY(-4px);
	border-color: var(--home-plum);
	box-shadow: 0 4px 10px rgba(12, 6, 57, 0.08), 0 36px 56px -26px rgba(12, 6, 57, 0.55);
}
.home-stat__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	margin-bottom: 14px;
	border-radius: 50%;
	background: #f3ecf0;
	color: var(--home-plum);
}
.home-section .home-stats--cards .home-stat__value {
	font-size: 46px;
	color: var(--home-plum);
}
.home-section .home-stats--cards .home-stat__label {
	font-size: 17px;
	color: var(--home-ink);
}
.home-section .home-stats--cards .home-stat__detail {
	margin-top: 4px;
	font-size: 14px;
	line-height: 1.5;
	color: var(--home-muted);
}
@media (max-width: 980px) {
	.home-section .home-stats--cards {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
		margin-top: -48px;
	}
	.home-section .home-stats--cards .home-stat + .home-stat {
		border-top: 0;
		padding-top: 0;
	}
}
@media (prefers-reduced-motion: reduce) {
	.home-section .home-stats--cards .home-stat__link {
		transition: none;
	}
	.home-section .home-stats--cards .home-stat__link:hover {
		transform: none;
	}
}

/* --- Accroche : dernier numéro devant, deux précédents en perspective derrière, badge et légende --- */
.home-section .home-covers--stack {
	display: block;
	min-height: 540px;
	padding: 0;
	perspective: 1400px;
}
.home-section .home-covers--stack .home-covers__item {
	position: absolute;
	bottom: 56px;
	transform-origin: center bottom;
}
.home-section .home-covers--stack .home-covers__item--front {
	right: 2%;
	z-index: 3;
	width: 60%;
	max-width: 340px;
	transform: rotate(-2deg);
}
.home-section .home-covers--stack .home-covers__item--back1 {
	left: 20%;
	bottom: 84px;
	z-index: 2;
	width: 52%;
	max-width: 300px;
	transform: rotateY(26deg) rotate(-5deg) scale(0.92);
	filter: brightness(0.88);
}
.home-section .home-covers--stack .home-covers__item--back2 {
	left: 0;
	bottom: 110px;
	z-index: 1;
	width: 46%;
	max-width: 270px;
	transform: rotateY(34deg) rotate(-9deg) scale(0.84);
	filter: brightness(0.74);
}
.home-section .home-covers--stack,
.home-section .home-covers--stack .home-covers__item {
	pointer-events: none; /* Image d'ambiance : pas d'interaction */
}
.home-covers__badge {
	position: absolute;
	top: 14px;
	left: -14px;
	padding: 7px 12px;
	border-radius: 999px;
	background: var(--home-plum);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.03em;
	line-height: 1;
	box-shadow: 0 6px 14px rgba(0, 0, 0, 0.3);
}
.home-section .home-covers__caption {
	position: absolute;
	right: 2%;
	bottom: 14px;
	width: 60%;
	max-width: 340px;
	margin: 0;
	padding: 0;
	text-align: center;
	font-size: 14px;
}
.home-section .home-covers__caption {
	color: #e6cbd8;
	font-weight: 600;
}
.home-section--dark .home-covers--stack::before {
	top: 50%;
	width: 130%;
	height: 120%;
	background: radial-gradient(closest-side, rgba(230, 203, 216, 0.34), rgba(230, 203, 216, 0) 72%);
}
@media (max-width: 980px) {
	.home-section .home-covers--stack {
		min-height: 440px;
		max-width: 520px;
		margin: 0 auto;
	}
}
@media (max-width: 767px) {
	.home-section .home-covers--stack {
		min-height: 360px;
	}
	.home-section .home-covers--stack .home-covers__item--front {
		max-width: 220px;
	}
	.home-section .home-covers--stack .home-covers__item--back1 {
		max-width: 190px;
	}
	.home-section .home-covers--stack .home-covers__item--back2 {
		max-width: 170px;
	}
	.home-section .home-covers__caption {
		max-width: 220px;
	}
}

/* Revues fines détourées : la transparence du fichier laisse apparaître le fond de l'accroche. */
.home-editorial-visual {
	display: flex;
	align-items: center;
	min-height: 540px;
	width: 100%;
}
.home-editorial-visual__img {
	display: block;
	width: 100%;
	height: auto;
	filter: drop-shadow(0 22px 24px rgba(12, 6, 57, 0.3));
}
@media (max-width: 980px) {
	.home-editorial-visual {
		min-height: 0;
		max-width: 520px;
		margin: 16px auto 0;
	}
}

/* --- Témoignages : en-tête éditorial, deux citations et signatures alignées --- */
.home-testimonials-controls {
	display: none;
}
.home-section--testimonials.et_pb_section {
	gap: 0 !important;
	padding: 76px 0 88px !important;
	border-top: 1px solid #eee7ed;
	background: #f7f4f6 !important;
}
.home-section--testimonials .et_pb_row {
	width: 80%;
	max-width: 1080px;
	padding: 0 !important;
}
.home-section--testimonials .home-heading .et_pb_text_inner {
	display: grid;
	grid-template-columns: 1.15fr 1fr;
	column-gap: 56px;
	row-gap: 16px;
	align-items: end;
	text-align: left;
}
.home-section--testimonials .home-heading .et_pb_text_inner::before {
	content: "PAROLES DE LECTEURS";
	grid-column: 1 / -1;
	color: #82556f;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.16em;
}
.home-section--testimonials .et_pb_text_inner h2.home-title {
	margin: 0;
	font-size: 38px;
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: -0.025em;
	color: #302139;
	text-wrap: balance;
}
.home-section--testimonials .et_pb_text_inner p.home-lead {
	max-width: 39ch;
	margin: 0 0 3px;
	font-size: 16px;
	line-height: 1.65;
	color: #756a78;
}
.home-section--testimonials .et_pb_row:has(.home-testimonial) {
	align-items: stretch;
	gap: 24px !important;
	padding-top: 36px !important;
}
.home-section--testimonials .et_pb_row:has(.home-testimonial) > .et_pb_column {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	min-width: 0;
	width: auto;
}
.home-section--testimonials .home-testimonial.et_pb_testimonial {
	--testimonial-background: #fff;
	--testimonial-ink: #342d3e;
	--testimonial-muted: #786b7b;
	--testimonial-line: #e9e1e8;
	--testimonial-mark: #b68da5;
	position: relative;
	display: flex;
	flex: 1;
	width: 100%;
	margin: 0;
	padding: 70px 36px 32px;
	border: 1px solid var(--testimonial-line);
	border-radius: 12px;
	background: var(--testimonial-background) !important;
	box-shadow: none;
	overflow: visible;
}
.home-section--testimonials .et_pb_column:first-child .home-testimonial {
	--testimonial-background: #4d3045;
	--testimonial-ink: #fff9fc;
	--testimonial-muted: #decbd8;
	--testimonial-line: #ffffff29;
	--testimonial-mark: #ba94ad;
	border-color: #4d3045;
}
.home-section--testimonials .home-testimonial.et_pb_testimonial::before {
	content: "\201C";
	position: absolute;
	top: 17px;
	left: 31px;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--testimonial-mark);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 84px;
	font-weight: 400;
	line-height: 1;
	transform: none;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_inner {
	display: grid;
	flex: 1;
	width: 100%;
	grid-template-columns: 52px minmax(0, 1fr);
	grid-template-rows: 1fr auto auto auto;
	grid-template-areas:
		"text text"
		"line line"
		"portrait author"
		"portrait meta";
	column-gap: 14px;
	row-gap: 0;
	align-items: center;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_inner::after {
	content: "";
	grid-area: line;
	height: 1px;
	margin-bottom: 23px;
	background: var(--testimonial-line);
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_description {
	display: contents;
	margin: 0 !important;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_description_inner {
	grid-area: text;
	align-self: start;
	margin: 0 0 28px;
	font-family: Georgia, "Times New Roman", serif;
	font-size: 21px;
	line-height: 1.55;
	color: var(--testimonial-ink);
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_description_inner p {
	margin: 0;
	padding: 0;
	font-style: normal;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_portrait {
	grid-area: portrait;
	position: relative;
	width: 52px;
	height: 52px;
	margin: 0;
	border-radius: 50%;
	box-shadow: 0 0 0 1px var(--testimonial-line);
	overflow: hidden;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_portrait::before {
	display: none;
}
/* Divi positionne l'image en absolu : on la remet dans le flux, ronde, à la taille du portrait */
.home-section--testimonials .home-testimonial .et_pb_testimonial_portrait img {
	position: static;
	display: block;
	width: 52px;
	height: 52px;
	max-width: none;
	border-radius: 50%;
	object-fit: cover;
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_author {
	grid-area: author;
	align-self: end;
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--testimonial-ink);
}
.home-section--testimonials .home-testimonial .et_pb_testimonial_meta {
	grid-area: meta;
	align-self: start;
	margin: 0;
	font-size: 13px;
	color: var(--testimonial-muted);
}
@media (max-width: 980px) {
	.home-section--testimonials .home-heading .et_pb_text_inner {
		grid-template-columns: 1fr;
		row-gap: 14px;
	}
	.home-section--testimonials .et_pb_text_inner h2.home-title {
		max-width: 23ch;
		text-wrap: auto;
	}
	.home-section--testimonials .et_pb_text_inner p.home-lead {
		max-width: 58ch;
	}
	.home-section--testimonials .et_pb_row:has(.home-testimonial) > .et_pb_column {
		flex: 0 0 100%;
		width: 100%;
		margin-top: 0;
	}
}
@media (max-width: 767px) {
	.home-section--testimonials.et_pb_section {
		padding: 52px 0 60px !important;
	}
	.home-section--testimonials .et_pb_text_inner h2.home-title {
		font-size: 30px;
	}
	.home-section--testimonials .et_pb_text_inner p.home-lead {
		font-size: 15px;
		line-height: 1.6;
	}
	.home-section--testimonials .et_pb_row:has(.home-testimonial) {
		gap: 18px !important;
		padding-top: 28px !important;
	}
	.home-section--testimonials .et_pb_row.home-testimonials-track {
		position: relative;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		overflow-x: auto;
		overflow-y: hidden;
		scroll-snap-type: x mandatory;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
	}
	.home-testimonials-track::-webkit-scrollbar {
		display: none;
	}
	.home-section--testimonials .et_pb_row.home-testimonials-track > .et_pb_column {
		flex: 0 0 100% !important;
		width: 100%;
		max-width: 100%;
		margin: 0 !important;
		scroll-snap-align: start;
		scroll-snap-stop: always;
	}
	.home-testimonials-controls:not([hidden]) {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 20px;
		width: 80%;
		margin: 20px auto 0;
	}
	.home-testimonials-dots {
		display: flex;
	}
	.home-testimonials-controls button {
		display: grid;
		place-items: center;
		flex: 0 0 44px;
		width: 44px;
		height: 44px;
		margin: 0;
		padding: 0;
		border: 0;
		background: transparent;
		color: #5e2f48;
		cursor: pointer;
	}
	.home-testimonials-controls .home-testimonials-arrow {
		border: 1px solid #d5c5cf;
		border-radius: 50%;
	}
	.home-testimonials-controls button:disabled {
		opacity: 0.35;
		cursor: default;
	}
	.home-testimonials-dot::before {
		content: "";
		width: 7px;
		height: 7px;
		border-radius: 8px;
		background: #c5b2c0;
	}
	.home-testimonials-dot[aria-current="true"]::before {
		width: 22px;
		background: #5e2f48;
	}
	.home-testimonials-controls button:focus-visible,
	.home-testimonials-track:focus-visible {
		outline: 2px solid #5e2f48;
		outline-offset: 3px;
	}
	.home-section--testimonials .home-testimonial.et_pb_testimonial {
		padding: 62px 24px 26px;
	}
	.home-section--testimonials .home-testimonial.et_pb_testimonial::before {
		top: 13px;
		left: 20px;
		font-size: 76px;
	}
	.home-section--testimonials .home-testimonial .et_pb_testimonial_description_inner {
		font-size: 19px;
		line-height: 1.6;
	}
}

/* Footer mobile : centrage du bloc blanc de copyright et mentions légales. */
@media (max-width: 767px) {
	.et-l--footer .et_pb_section:last-child {
		gap: 0 !important;
		/* Le lien de 44px apporte déjà 12px d'espace sous son texte. */
		padding: 12px 0 0 !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_row {
		width: calc(100% - 48px) !important;
		max-width: 480px;
		padding: 0 !important;
		gap: 0 !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_column {
		flex: 0 0 100% !important;
		width: 100% !important;
		min-width: 0;
		margin: 0 !important;
		gap: 24px !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_text {
		margin: 0 !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_text p {
		margin: 0 !important;
		padding: 0;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_text,
	.et-l--footer .et_pb_section:last-child .et_pb_text p,
	.et-l--footer .et_pb_section:last-child .et_pb_link {
		font-size: 12px;
		line-height: 1.65;
		text-align: center !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_link {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		align-self: center;
		min-height: 44px;
		margin: 0 !important;
	}
	.et-l--footer .et_pb_section:last-child .et_pb_link p {
		padding: 0;
	}
}

/* Téléchargement : carte latérale qui accompagne la lecture sur grand écran. */
.article-single .article__reading { position: relative; display: flow-root; }
.article-single .article__actions { display: flex; justify-content: flex-start; width: 80%; max-width: 720px; margin: 24px auto 0; }
.article-single .article__download { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 14px; border: 1px solid #e6e2e7; border-radius: 8px; color: #666473; background: #fff; font-size: 12px; font-weight: 500; line-height: 1.4; text-decoration: none; transition: background .15s ease, color .15s ease, border-color .15s ease; }
.article-single .article__download svg { width: 20px; height: 20px; flex: 0 0 20px; }
.article-single .article__download-label strong { padding-left: 3px; font-weight: 700; }
.article-single .article__download:hover { color: #5e2f48; background: #faf7f9; border-color: #d8c6d1; }
.article-single .article__download:focus-visible { outline: 2px solid #5e2f48; outline-offset: 4px; }
@media (min-width: 1100px) {
	.article-single .article__actions { position: absolute; top: 48px; bottom: 24px; right: calc(50% + 384px); display: block; width: 96px; margin: 0; }
	.article-single .article__download { position: sticky; top: 120px; display: flex; flex-direction: column; gap: 7px; box-sizing: border-box; width: 96px; padding: 12px 8px; font-size: 11px; text-align: center; }
	.article-single .article__download-label strong { display: block; padding: 2px 0 0; font-size: 12px; letter-spacing: .03em; }
}
@media (prefers-reduced-motion: reduce) { .article-single .article__download { transition: none; } }
@media print { .article-single .article__actions { display: none; } }
