/*
 * La voix : ce que theme.json ne sait pas dire pour repousseleslimites.com.
 *
 * Les mesures reprennent celles du site sous Elementor, relevées le 01/11/2026 sur la copie
 * locale (styles calculés, trois largeurs) : barre de 69 px au bureau, 76 sous 1 180 px, 72 au
 * téléphone ; colonne de 1 150 px ; gouttière de 20 px ; pied de page pétrole sur quatre
 * colonnes. Les règles de « La voix » tiennent ici comme partout : angles vifs, aucune ombre,
 * l'or pour l'action et rien d'autre.
 */

/* Les mesures relevées sur le site sous Elementor le 01/11/2026, déclarées une seule fois. */
:root {
	--rv-logo-l: 173px; /* ds-allow-hardcode : logo de l'en-tête au bureau, relevé */
	--rv-action-pad: 12px 24px; /* ds-allow-hardcode : bouton de l'en-tête, relevé */
	--rv-france-num-l: 112px; /* ds-allow-hardcode : logo France Num (rll-france-num, LOGO_LARGEUR) */
	--rv-france-num-avant: 10px; /* ds-allow-hardcode : idem, --fn-sous */
	--rv-france-num-t: 14px; /* ds-allow-hardcode : idem, --fn-legende */
	--rv-copyright-t: 15px; /* ds-allow-hardcode : la ligne du copyright, relevée */
	--rv-pied-haut: 80px; /* ds-allow-hardcode : retrait haut du pied au bureau, relevé (82) */
	--rv-pied-haut-mob: 64px; /* ds-allow-hardcode : idem au téléphone */
	--rv-pied-gouttiere: 40px; /* ds-allow-hardcode : entre les colonnes du pied */
	--rv-legal-ecart: 22px; /* ds-allow-hardcode : entre les mentions légales, relevé */
	--rv-titre-article: clamp(30px, 1.2rem + 3.2vw, 52px); /* ds-allow-hardcode : articles.css d'octobre, --ar-h1 */
	--rv-titre-section-article: clamp(20px, 1.2rem + 0.6vw, 26px); /* ds-allow-hardcode : articles.css, --ar-t-h2 */
}

/* ------------------------------------------------------------------ */
/* Les liens du texte                                                  */
/* ------------------------------------------------------------------ */

/* Au survol, le soulignement s'épaissit et passe à l'or : la couleur ne dit jamais seule. */
:where(.wp-block-post-content, .entry-content) a:hover {
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: var(--wp--custom--trait--fort);
}

/* ------------------------------------------------------------------ */
/* L'en-tête : logo, barre « Deux portes », action                     */
/* ------------------------------------------------------------------ */

.socle-entete {
	--rv-barre-h: 69px;
}

.rv-barre.wp-block-group {
	box-sizing: border-box;
	min-height: var(--rv-barre-h);
	padding-inline: max(var(--wp--custom--gouttiere), calc((100% - var(--wp--style--global--wide-size)) / 2));
	column-gap: var(--rn-e5);
	align-items: center;
}

.rv-barre .rv-logo {
	flex: none;
	margin: 0;
	order: 1;
}

.rv-barre .rv-logo img {
	display: block;
	width: var(--rv-logo-l);
	height: var(--rv-barre-h);
	object-fit: contain;
	object-position: left center;
}

.rv-barre .wp-block-rll-navigation {
	flex: 1 1 auto;
	order: 2;
}

.rv-barre .rv-action {
	flex: none;
	margin: 0;
	order: 3;
}

/* L'action de l'en-tête : un filet pétrole autour de l'or, comme sous Elementor. */
.rv-barre .rv-action .wp-block-button__link {
	padding: var(--rv-action-pad);
	border: var(--wp--custom--trait--fin) solid var(--wp--preset--color--primary);
	white-space: nowrap;
}

.rv-barre .rv-action {
	transition: opacity var(--rn-duree) var(--rn-courbe), visibility var(--rn-instant) linear;
}

/* Le panneau ouvert ne double pas son action ; la page qui montre déjà l'action (pied de
   page, haut de l'accueil) efface celle de la barre sans rien déplacer (navigation.js). */
html.rn-ouvert {
	overflow: hidden;
}

html.rn-ouvert .socle-entete .rv-action,
html.rn-action-ailleurs .socle-entete .rv-action {
	visibility: hidden;
	opacity: 0;
	transition: opacity var(--rn-duree) var(--rn-courbe), visibility var(--rn-instant) linear var(--rn-duree);
}

/* Sous 1 180 px, la barre ne tient plus cinq entrées lisibles : logo, action, « Menu ». */
@media (max-width: 1179px) { /* ds-allow-hardcode : point de rupture mesuré (navigation.css) */
	.socle-entete {
		--rv-barre-h: 76px;
	}

	.rv-barre.wp-block-group {
		padding-block: var(--rn-e2);
	}

	.rv-barre .rv-logo img {
		width: var(--rn-logo-l-tab);
		height: var(--rn-logo-h-tab);
	}

	.rv-barre .rv-action {
		order: 2;
		margin-left: auto;
	}

	.rv-barre .wp-block-rll-navigation {
		flex: 0 0 auto;
		order: 3;
	}
}

/* Au téléphone : le logo garde le nom sans sa devise (illisible à cette taille), l'action
   s'efface (elle est dans le panneau, épinglée en bas). */
@media (max-width: 767px) { /* ds-allow-hardcode : point de rupture du téléphone */
	.socle-entete {
		--rv-barre-h: 72px;
	}

	.rv-barre .rv-logo img {
		width: var(--rn-logo-l);
		height: var(--rn-logo-h);
		object-fit: cover;
		object-position: left 17%;
	}

	.rv-barre .rv-action {
		display: none;
	}

	.rv-barre .wp-block-rll-navigation {
		margin-left: auto;
	}
}

/* ------------------------------------------------------------------ */
/* Le titre des pages simples (CGV, mentions…)                         */
/* ------------------------------------------------------------------ */

.socle-principal > .wp-block-post-title {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* ------------------------------------------------------------------ */
/* Le pied de page                                                     */
/* ------------------------------------------------------------------ */

.rv-pied.wp-block-group {
	box-sizing: border-box;
	padding: var(--rv-pied-haut) max(var(--wp--custom--gouttiere), calc((100% - var(--wp--style--global--wide-size)) / 2)) var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--rllclair);
}

.rv-pied__colonnes {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--50) var(--rv-pied-gouttiere);
}

@media (min-width: 768px) { /* ds-allow-hardcode : point de rupture de la tablette */
	.rv-pied__colonnes {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 1025px) { /* ds-allow-hardcode : point de rupture du bureau */
	.rv-pied__colonnes {
		grid-template-columns: 1.45fr 1fr 1.1fr 1fr;
	}
}

.rv-pied__colonnes > * > * {
	margin-block: 0;
}

.rv-pied .socle-marque {
	color: var(--wp--preset--color--rllsurprofond);
}

.rv-pied__devise {
	margin-top: var(--wp--preset--spacing--20) !important; /* le groupe remet à zéro ses enfants */
	max-width: 18em;
}

.rv-pied__zone {
	margin-top: var(--wp--preset--spacing--30) !important;
}

.rv-pied .socle-etiquette,
.rv-pied__zone {
	color: var(--wp--preset--color--rllclair);
}

.rv-pied .socle-etiquette + * {
	margin-top: var(--wp--preset--spacing--30) !important;
}

.rv-pied__france-num {
	margin-top: var(--wp--preset--spacing--30) !important;
	line-height: 0;
}

.rv-pied__france-num img {
	display: block;
	width: var(--rv-france-num-l);
	height: auto;
}

.rv-pied__france-num a:focus-visible {
	outline-color: var(--wp--preset--color--rllclair);
}

.rv-pied__france-num-ligne {
	margin-top: var(--rv-france-num-avant) !important;
	font-size: var(--rv-france-num-t);
	line-height: 1.45;
}

.rv-pied .socle-liens a {
	color: var(--wp--preset--color--rllclair);
	overflow-wrap: break-word; /* l'adresse courriel se coupe après « @ » (balise wbr), jamais au milieu d'un mot */
}

.rv-pied .socle-liens a:hover,
.rv-pied .socle-liens a:focus-visible {
	color: var(--wp--preset--color--rllsurprofond);
	text-decoration-color: var(--wp--preset--color--accent);
}

.rv-pied a:focus-visible {
	outline-color: var(--wp--preset--color--rllsurprofond);
}

/* Au doigt, chaque lien du pied fait 48 px de haut (règle 3.4 du Studio, diagnostic du 03/11/2026) :
   au pas de 34 px, il passait la règle d'espacement WCAG mais pas notre plancher. */
@media (pointer: coarse) {
	.rv-pied .socle-liens a,
	.rv-pied__legal a {
		display: inline-flex;
		align-items: center;
		min-height: 48px; /* ds-allow-hardcode : cible tactile, règle 3.4 du Studio */
	}

	.rv-pied .socle-liens li + li {
		margin-top: 0;
	}
}

.rv-pied__contact .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--30) !important;
}

.rv-pied__bas {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	margin-top: var(--wp--preset--spacing--50);
	padding-top: var(--wp--preset--spacing--40);
	border-top: var(--wp--custom--trait--fin) solid rgba(190, 220, 217, .25); /* ds-allow-hardcode : rllclair à 25 %, le filet sur pétrole */
}

.rv-pied__bas > * {
	margin: 0;
}

.rv-pied__copyright {
	font-size: var(--rv-copyright-t);
}

.rv-pied__legal {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20) var(--rv-legal-ecart);
}

.rv-pied__legal li + li {
	margin-top: 0;
}

@media (max-width: 767px) { /* ds-allow-hardcode : point de rupture du téléphone */
	.rv-pied.wp-block-group {
		padding-top: var(--rv-pied-haut-mob);
	}

	/* Au téléphone, l'action du pied prend toute la largeur, comme sous Elementor. */
	.rv-pied__contact .wp-block-button,
	.rv-pied__contact .wp-block-button__link {
		width: 100%;
	}

	.rv-pied__copyright {
		width: 100%;
		text-align: center;
	}
}

/* ------------------------------------------------------------------ */
/* L'article                                                           */
/* ------------------------------------------------------------------ */

.socle-bandeau .socle-bandeau__titre {
	font-size: var(--rv-titre-article);
}

/* Les sections de l'article ouvrent sur une bande pétrole, comme le gabarit d'octobre. */
.socle-article__texte .wp-block-post-content > h2 {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--rllprofond);
	color: var(--wp--preset--color--rllsurprofond);
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--rv-titre-section-article);
	font-weight: 600;
	line-height: 1.25;
}

.socle-article__texte .wp-block-post-content > h3 {
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--wp--preset--font-size--intitule);
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}

.socle-article__texte .wp-block-post-content > p:has(> em:only-child) {
	color: var(--wp--preset--color--rlldoux);
}

/* Les pages converties (lot 3) : deux rangées de colonnes qui se suivent dans une section
   étaient séparées d'un filet, comme « Comment je travaille ». */
.socle-bande > .wp-block-columns + .wp-block-columns {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-top: var(--wp--custom--trait--fin) solid var(--wp--preset--color--rllfilet);
}

/* Les cartes d'une grille convertie : un filet, de l'air, et le numéro en sauge (la sauge numérote,
   selon « La voix »). */
.rv-carte {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	border: var(--wp--custom--trait--fin) solid var(--wp--preset--color--rllfilet);
}

.rv-carte > :first-child {
	margin-block-start: 0;
}

.rv-numero {
	margin-block-end: 0;
	color: var(--wp--preset--color--secondary);
	font-family: var(--wp--preset--font-family--titres);
	font-size: var(--wp--preset--font-size--intitule);
	font-variant-numeric: tabular-nums;
}

/* Deux listes face à face, l'une de ce qu'un repreneur refuse, l'autre de ce qu'il attend : la
   croix et la coche portaient le sens, elles restent (en signes de texte, pas en émojis). */
:is(.rv-liste-non, .rv-liste-oui) {
	list-style: none;
	padding-inline-start: 0;
}

:is(.rv-liste-non, .rv-liste-oui) > li {
	display: flex;
	gap: var(--wp--preset--spacing--20);
}

:is(.rv-liste-non, .rv-liste-oui) > li::before {
	flex: none;
	font-weight: 600;
}

.rv-liste-non > li::before {
	content: "\2715";
	content: "\2715" / "refusé : ";
	color: var(--wp--preset--color--rlldoux);
}

.rv-liste-oui > li::before {
	content: "\2713";
	content: "\2713" / "attendu : ";
	color: var(--wp--preset--color--primary);
}

/* Les articles convertis en blocs (lot 4, scripts/convertir-articles.php). L'encart « En bref »
   et l'avertissement de fin : un fond tenu aux bords du texte, sans le filet à gauche que la
   doctrine refuse. */
.socle-article__texte :is(.rv-encart, .rv-avertissement) {
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

.socle-article__texte .rv-encart > * + * {
	margin-block-start: var(--wp--preset--spacing--20);
}

.socle-article__fin {
	margin-block-start: var(--wp--preset--spacing--50);
}

.rv-avertissement {
	font-size: var(--wp--preset--font-size--meta);
	color: var(--wp--preset--color--rlldoux);
}

.rv-avertissement > * {
	margin: 0;
}

.rv-avertissement .rv-avertissement__titre {
	margin-block-end: var(--wp--preset--spacing--10);
	font-weight: 600;
	color: var(--wp--preset--color--primary);
}

/* L'appel et les questions fréquentes : des bandes pétrole, dans la ligne de lecture. */
.socle-article__texte > .wp-block-post-content > :is(.rv-appel, .rv-questions) {
	margin-block-start: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40);
}

.rv-questions > h2 {
	margin-block: 0 var(--wp--preset--spacing--30);
	font-family: var(--wp--preset--font-family--texte);
	font-size: var(--rv-titre-section-article);
	font-weight: 600;
	line-height: 1.25;
}

.rv-questions .rv-sous-titre {
	margin-block: 0 var(--wp--preset--spacing--30);
}

/* Le socle sépare déjà les questions d'un filet bas ; sur le pétrole, il prend le clair. */
.rv-questions .wp-block-details {
	border-bottom-color: var(--wp--preset--color--rllclair);
}

.rv-questions .wp-block-details + .wp-block-details {
	margin-block-start: 0;
}

.rv-questions summary {
	color: var(--wp--preset--color--rllsurprofond);
	font-size: var(--wp--preset--font-size--intitule);
	line-height: 1.3;
}

/* Une image qui avait sa variante pour téléphone : l'une ou l'autre selon la largeur, comme dans
   Elementor (téléphone jusqu'à 767 px). */
@media (max-width: 767px) { /* ds-allow-hardcode : point de rupture du téléphone d'Elementor */
	.rv-image-large {
		display: none;
	}
}

@media (min-width: 768px) { /* ds-allow-hardcode : point de rupture du téléphone d'Elementor */
	.rv-image-etroite {
		display: none;
	}
}

/* Le quiz (bloc HTML repris tel quel) : ses dimensions et son ombre sont écrites en ligne, d'où
   !important. Il ne change pas de comportement. Repris d'articles.css (01/10/2026). */
.socle-article__texte #qz {
	margin: 0 !important;
	max-width: none !important;
	box-shadow: none !important;
	border-color: var(--wp--preset--color--rllfilet) !important;
	border-radius: 0 !important;
	font-family: var(--wp--preset--font-family--texte) !important;
	color: var(--wp--preset--color--text) !important;
}

.socle-article__texte #qz :is(button, p, span, div, input, label) {
	font-family: var(--wp--preset--font-family--texte);
}

/* L'intitulé en sauge (2,5:1) et le compteur en gris (2,6:1) passaient sous le seuil. */
.socle-article__texte #qz .ql {
	color: var(--wp--preset--color--primary);
}

.socle-article__texte #qz .qc {
	color: var(--wp--preset--color--rlldoux);
	font-variant-numeric: tabular-nums;
}

.socle-article__texte #qz .bo {
	border-radius: 0;
}

.socle-article__texte #qz .bo:hover {
	transform: none;
}

.socle-article__texte #qz .al {
	border-left: 0;
	background: var(--wp--preset--color--rllchamp);
}

.socle-article__cote .wp-block-rll-socle-sommaire__titre {
	color: var(--wp--preset--color--text);
}

.rv-appel-cote {
	margin-top: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--meta);
}

.rv-appel-cote .wp-block-buttons {
	margin-top: var(--wp--preset--spacing--30);
}

/* Au téléphone, le sommaire est un encart tenu avant le texte. */
@media (max-width: 1024px) { /* ds-allow-hardcode : point de rupture du bureau */
	.socle-article__cote .wp-block-rll-socle-sommaire {
		padding: var(--wp--preset--spacing--30);
		background: var(--wp--preset--color--rllchamp);
	}
}

/* ------------------------------------------------------------------ */
/* Le bandeau de consentement, sur téléphone (affichage seulement)     */
/* ------------------------------------------------------------------ */

/* Repris de rll-articles-mise-en-page (articles.css, 01/10/2026), éteint avec ce mu-plugin.
   Centré, il couvrait 88 % du premier écran à 320 x 568. On ne touche ni à son texte ni à
   ses boutons : il descend en bas de l'écran, son texte défile dans une hauteur bornée, et
   « Accepter » et « Refuser » se partagent une ligne, à égalité de taille et de poids (la
   CNIL demande que refuser soit aussi simple qu'accepter). */
@media (max-width: 767px) { /* ds-allow-hardcode : point de rupture du téléphone */
	.cmplz-cookiebanner.cmplz-show {
		top: auto;
		bottom: var(--wp--preset--spacing--20);
		transform: translateX(-50%);
		max-height: calc(100dvh - var(--wp--preset--spacing--50));
	}

	.cmplz-cookiebanner .cmplz-body {
		max-height: 22vh;
	}

	.cmplz-cookiebanner .cmplz-buttons {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--wp--preset--spacing--20);
	}

	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn {
		width: 100%;
		margin: 0;
	}

	.cmplz-cookiebanner .cmplz-buttons :is(.cmplz-view-preferences, .cmplz-save-preferences, .cmplz-manage-options) {
		grid-column: 1 / -1;
	}

	.cmplz-cookiebanner .cmplz-buttons .cmplz-btn.cmplz-deny {
		border: var(--wp--custom--trait--fin) solid var(--wp--preset--color--primary);
		color: var(--wp--preset--color--primary);
		font-weight: 600;
	}
}
