/*
Theme Name: BCH Invest Group
Theme URI: https://bchinvestgroup.com
Description: Thème enfant de Twenty Twenty-Five pour BCH INVEST GROUP — direction éditoriale « L'auteur & le stratège ». Palette ivoire / terre / bleu nuit, typographies Fraunces et Work Sans auto-hébergées.
Author: Accomply
Author URI: https://accomply.fr
Template: twentytwentyfive
Version: 1.8.0
Requires at least: 6.7
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bch-invest
Tags: full-site-editing, block-patterns, editor-style, custom-colors, translation-ready
*/

/* =============================================================
   Les couleurs, typographies, espacements et gabarits sont dans
   theme.json et dans templates/. Ce fichier contient les styles
   de composants que theme.json ne sait pas exprimer.

   ⚠️ WordPress applique border-style: solid sur les QUATRE côtés
   dès qu'un bloc porte une couleur de bordure, même si une seule
   est définie. D'où les remises à zéro explicites ci-dessous.
   ============================================================= */

/* -------------------------------------------------------------
   1. En-tête
   ------------------------------------------------------------- */

header.wp-block-template-part > header.wp-block-group {
	border-top: 0;
	border-left: 0;
	border-right: 0;
	border-bottom: 1px solid var(--wp--preset--color--ligne);
}

header .wp-block-site-title {
	white-space: nowrap;
	flex-shrink: 0;
}

header .wp-block-site-title a {
	text-decoration: none;
}

header .wp-block-navigation {
	font-size: 0.95rem;
	--wp--style--block-gap: 1.6rem;
}

header .wp-block-navigation .wp-block-navigation-item__content {
	padding-block: 0.5rem;
}

header .wp-block-buttons .wp-block-button__link {
	font-size: 0.9rem;
}

@media (min-width: 1301px) {
	header .wp-block-group.alignwide {
		flex-wrap: nowrap;
	}

	header .wp-block-group.alignwide > .wp-block-group {
		flex-wrap: nowrap;
		min-width: 0;
	}
}

@media (min-width: 1301px) and (max-width: 1460px) {
	header .wp-block-navigation {
		--wp--style--block-gap: 1.2rem;
	}
}

/* Menu déroulant plein écran en dessous de 1300 px : la barre
   complète ne tient plus sans déborder. */
@media (min-width: 600px) and (max-width: 1300px) {
	header .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	header .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
	}

	header .wp-block-navigation__responsive-container.is-menu-open {
		display: flex;
	}
}

header .wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wp--preset--color--ivoire);
}

header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-size: 1.35rem;
	font-family: var(--wp--preset--font-family--fraunces);
	color: var(--wp--preset--color--encre);
}

header .wp-block-navigation__responsive-container-open,
header .wp-block-navigation__responsive-container-close {
	color: var(--wp--preset--color--encre);
}

/* Le livre, mis en avant dans le menu */
.bch-menu-livre a {
	color: var(--wp--preset--color--terre);
}

.bch-menu-livre a:hover {
	color: var(--wp--preset--color--encre);
}

/* -------------------------------------------------------------
   2. Éléments communs
   ------------------------------------------------------------- */

body {
	overflow-x: hidden;
}

.bch-surtitre {
	font-size: 0.75rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
	line-height: 1.4;
}

.bch-legende {
	color: var(--wp--preset--color--sourdine);
	letter-spacing: 0.01em;
	line-height: 1.45;
}

.bch-rule {
	flex-grow: 1;
	height: 1px;
	background: var(--wp--preset--color--ligne);
	border: 0;
	opacity: 1;
}

.bch-titre-section h2 {
	margin: 0;
	white-space: nowrap;
}

.bch-lien-section,
.bch-lien-presse {
	font-size: 0.875rem;
	font-weight: 500;
	white-space: nowrap;
	margin: 0;
}

.bch-nombre {
	font-size: clamp(1.6rem, 2.2vw, 1.95rem);
	font-weight: 600;
	line-height: 1.1;
	margin: 0;
}

.bch-accroche {
	font-size: 1.3rem;
	line-height: 1.3;
	margin: 0;
}

.bch-chiffres {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid var(--wp--preset--color--ligne);
}

/* -------------------------------------------------------------
   3. Images
   ------------------------------------------------------------- */

.wp-block-image img {
	max-width: 100%;
	height: auto;
}

.bch-photo {
	margin: 0;
}

.bch-photo img {
	width: 100%;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	display: block;
}

.bch-portrait img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 50% 15%;
	display: block;
}

.bch-enseignement .bch-photo img {
	aspect-ratio: 16 / 10;
}

.bch-couverture-grande {
	margin: 0;
}

.bch-couverture-grande img {
	max-width: 330px;
	width: 100%;
	height: auto;
	display: block;
	margin-inline: auto;
	box-shadow: 0 18px 40px rgba(22, 19, 15, 0.22);
}

/* -------------------------------------------------------------
   4. Lignes de liste : tribunes, presse, agenda
   ------------------------------------------------------------- */

.bch-ligne,
.bch-date {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid var(--wp--preset--color--ligne);
}

.bch-ligne:last-child,
.bch-date:last-child {
	border-bottom: 1px solid var(--wp--preset--color--ligne);
}

.bch-ligne .bch-source {
	flex: 0 0 9.5rem;
	color: var(--wp--preset--color--sourdine);
	margin: 0;
	padding-top: 0.2rem;
}

.bch-ligne .bch-titre-ligne {
	font-size: 1.22rem;
	line-height: 1.35;
	margin: 0;
}

.bch-ligne a {
	color: var(--wp--preset--color--encre);
	text-decoration: none;
}

.bch-ligne a:hover {
	color: var(--wp--preset--color--terre);
}

@media (min-width: 782px) {
	.bch-ligne,
	.bch-date {
		flex-wrap: nowrap;
	}
}

@media (max-width: 781px) {
	.bch-ligne .bch-source {
		flex: 1 0 100%;
	}
}

/* -------------------------------------------------------------
   5. Cartes
   ------------------------------------------------------------- */

.bch-carte {
	border-top: 3px solid var(--wp--preset--color--terre);
	box-shadow: 0 1px 2px rgba(22, 19, 15, 0.06);
}

.bch-corps .wp-block-column > .bch-carte {
	height: 100%;
	box-sizing: border-box;
}

.bch-corps .wp-block-columns {
	align-items: stretch;
}

/* -------------------------------------------------------------
   6. Colonne « Le livre »
   ------------------------------------------------------------- */

@media (min-width: 900px) {
	.bch-rail {
		position: sticky;
		top: 1.5rem;
		align-self: flex-start;
	}
}

.bch-livre .bch-couverture {
	margin-left: auto;
	margin-right: auto;
}

.bch-livre .bch-couverture img {
	box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
	display: block;
}

.bch-stats-livre {
	gap: 0;
	margin-top: 0.5rem;
}

.bch-stats-livre .wp-block-column {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid #3a342c;
	padding: 0.9rem 0.2rem 0;
}

.bch-nombre-livre {
	font-size: 1.45rem;
	font-weight: 600;
	line-height: 1.1;
	margin: 0;
}

.bch-mini-legende {
	font-size: 0.66rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #9a9083;
	margin: 0.15rem 0 0;
}

.bch-livre .wp-block-buttons .wp-block-button__link {
	border-radius: 2px;
}

.bch-livre .bch-cta-linkedin .wp-block-button__link {
	color: var(--wp--preset--color--ivoire);
	border: 1px solid #4a443b;
	background: transparent;
}

.bch-livre .bch-cta-linkedin .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--ivoire);
	background: transparent;
	color: #fff;
}

.bch-flyers {
	border: 1px solid var(--wp--preset--color--ligne);
	border-top: 0;
}

.bch-flyers .bch-flyer img {
	width: 100%;
	aspect-ratio: 5 / 7;
	object-fit: cover;
	object-position: 50% 0;
	display: block;
}

.bch-flyers .wp-block-columns {
	gap: 0.9rem;
}

.bch-livre-hero {
	align-items: center;
}

.bch-livre-hero h2 {
	margin: 0;
}

/* -------------------------------------------------------------
   7. Bandeau presse bleu nuit
   ------------------------------------------------------------- */

.bch-presse h2 {
	color: #fff;
}

.bch-presse a {
	color: #fff;
	text-decoration: none;
}

.bch-presse a:hover {
	color: var(--wp--preset--color--or);
}

.bch-presse .bch-lien-presse a {
	border-bottom: 1px solid #5b69a3;
	padding-bottom: 2px;
}

.bch-vignettes .bch-titre-vignette {
	font-size: 1.1rem;
	line-height: 1.35;
	margin: 0.4rem 0 0;
}

.bch-citations {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid #38477e;
}

.bch-citation {
	border-top: 0;
	border-right: 0;
	border-bottom: 0;
	border-left: 2px solid var(--wp--preset--color--or);
}

.bch-citation p {
	margin: 0;
}

.bch-liens-presse {
	margin-top: var(--wp--preset--spacing--50);
}

.bch-ligne-presse {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid #38477e;
}

.bch-ligne-presse:last-child {
	border-bottom: 1px solid #38477e;
}

.bch-ligne-presse p {
	margin: 0;
}

.bch-ligne-presse a {
	color: #dde3f4;
	text-decoration: none;
}

.bch-ligne-presse a:hover {
	color: var(--wp--preset--color--or);
}

.bch-date-presse {
	color: #8794c4;
	white-space: nowrap;
}

/* -------------------------------------------------------------
   8. Agenda
   ------------------------------------------------------------- */

.bch-agenda .bch-mois {
	flex: 0 0 3.4rem;
	font-size: 1.35rem;
	font-weight: 600;
	line-height: 1.15;
	margin: 0;
}

.bch-agenda .bch-annee {
	font-size: 0.78rem;
	font-weight: 400;
	font-family: var(--wp--preset--font-family--work-sans);
	color: var(--wp--preset--color--sourdine);
	letter-spacing: 0.02em;
}

.bch-agenda p {
	margin: 0;
}

.bch-agenda a {
	color: var(--wp--preset--color--encre);
	text-decoration: none;
	font-weight: 500;
}

.bch-agenda a:hover {
	color: var(--wp--preset--color--terre);
}

.bch-agenda .bch-lieu {
	font-size: 0.8125rem;
	color: var(--wp--preset--color--sourdine);
	font-weight: 400;
}

@media (max-width: 781px) {
	.bch-agenda .wp-block-column + .wp-block-column .bch-date:first-child {
		border-top: 0;
	}
}

/* -------------------------------------------------------------
   9. Pages internes
   ------------------------------------------------------------- */

.bch-metier {
	border-left: 0;
	border-right: 0;
	border-bottom: 0;
	border-top: 1px solid var(--wp--preset--color--ligne);
}

.bch-metier:last-child {
	border-bottom: 1px solid var(--wp--preset--color--ligne);
}

.bch-metier h2 {
	margin: 0;
}

.bch-num-metier {
	font-size: 0.95rem;
	letter-spacing: 0.12em;
	margin: 0;
	font-weight: 600;
}

.bch-liste {
	padding-left: 1.1rem;
}

.bch-liste li {
	margin-bottom: 0.5rem;
	color: var(--wp--preset--color--texte);
}

.bch-liste li::marker {
	color: var(--wp--preset--color--terre);
}

.bch-cta {
	border: 0;
}

.bch-cta h2 {
	margin: 0;
}

/* -------------------------------------------------------------
   10. Formulaire de contact (Contact Form 7)
   ------------------------------------------------------------- */

.wpcf7 {
	margin-top: var(--wp--preset--spacing--50);
}

.wpcf7 label {
	display: block;
	margin-bottom: var(--wp--preset--spacing--30);
	font-size: 0.9375rem;
	font-weight: 500;
	color: var(--wp--preset--color--encre);
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea,
.wpcf7 select {
	display: block;
	width: 100%;
	box-sizing: border-box;
	margin-top: 0.45rem;
	padding: 0.85rem 1rem;
	font-family: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--encre);
	background: var(--wp--preset--color--blanc);
	border: 1px solid var(--wp--preset--color--ligne);
	border-radius: 2px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.wpcf7 textarea {
	min-height: 11rem;
	resize: vertical;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
	outline: none;
	border-color: var(--wp--preset--color--terre);
	box-shadow: 0 0 0 3px rgba(166, 46, 24, 0.12);
}

.wpcf7 .wpcf7-quiz-label {
	display: block;
	font-weight: 400;
	color: var(--wp--preset--color--sourdine);
	font-size: 0.875rem;
}

.wpcf7 .wpcf7-acceptance {
	display: block;
	margin: var(--wp--preset--spacing--40) 0;
}

.wpcf7 .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.wpcf7 .wpcf7-acceptance label {
	display: flex;
	gap: 0.7rem;
	align-items: flex-start;
	font-weight: 400;
	font-size: 0.875rem;
	line-height: 1.55;
	color: var(--wp--preset--color--texte);
}

.wpcf7 .wpcf7-acceptance input[type="checkbox"] {
	width: 1.05rem;
	height: 1.05rem;
	margin-top: 0.2rem;
	flex-shrink: 0;
	accent-color: var(--wp--preset--color--terre);
}

.wpcf7 input[type="submit"] {
	appearance: none;
	cursor: pointer;
	border: 0;
	border-radius: 2px;
	padding: 0.95rem 2rem;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	color: var(--wp--preset--color--blanc);
	background: var(--wp--preset--color--terre);
	transition: background-color 0.15s ease;
}

.wpcf7 input[type="submit"]:hover:not([disabled]) {
	background: var(--wp--preset--color--encre);
}

.wpcf7 input[type="submit"][disabled] {
	background: var(--wp--preset--color--ligne);
	color: var(--wp--preset--color--sourdine);
	cursor: not-allowed;
}

.wpcf7 .wpcf7-not-valid-tip {
	color: var(--wp--preset--color--terre);
	font-size: 0.8125rem;
	margin-top: 0.35rem;
}

.wpcf7 .wpcf7-not-valid {
	border-color: var(--wp--preset--color--terre);
}

.wpcf7 form .wpcf7-response-output {
	margin: var(--wp--preset--spacing--40) 0 0;
	padding: 1rem 1.2rem;
	border: 1px solid;
	border-radius: 2px;
	font-size: 0.9375rem;
}

.wpcf7 form.sent .wpcf7-response-output {
	border-color: #2f6b5e;
	background: rgba(47, 107, 94, 0.07);
	color: #1f4437;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	border-color: var(--wp--preset--color--terre);
	background: rgba(166, 46, 24, 0.06);
	color: var(--wp--preset--color--terre);
}

.wpcf7-spinner {
	margin-left: 0.8rem;
}

/* -------------------------------------------------------------
   11. Pied de page
   ------------------------------------------------------------- */

footer .wp-block-navigation a {
	color: #c4baa9;
	text-decoration: none;
}

footer .wp-block-navigation a:hover {
	color: #fff;
}

/* ------------------------------------------------------------------ *
 * 12. Galeries d'archives
 *
 * Les photographies de rencontres portent une légende posée sur l'image.
 * Sur un cliché clair, du texte blanc devient illisible : on ajoute un
 * voile sombre en dégradé, cantonné au bas de la vignette.
 * ------------------------------------------------------------------ */

.wp-block-gallery figure.wp-block-image figcaption {
	background: linear-gradient(to top, rgba(22, 19, 15, 0.88) 0%, rgba(22, 19, 15, 0.72) 55%, rgba(22, 19, 15, 0) 100%);
	padding: 2.2rem 0.85rem 0.75rem;
	font-size: 0.8rem;
	line-height: 1.35;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}

.wp-block-gallery figure.wp-block-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Les blocs d'archives reprennent la respiration du reste du site. */

.wp-block-details {
	border-top: 1px solid var(--wp--preset--color--ligne);
	padding-top: var(--wp--preset--spacing--30);
	margin-top: var(--wp--preset--spacing--40);
}

.wp-block-details summary {
	font-family: var(--wp--preset--font-family--work-sans);
	font-size: 0.82rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--sourdine);
	cursor: pointer;
}

/* ------------------------------------------------------------------ *
 * 13. Logo typographique
 *
 * Reprise de la maquette validée : le point médian qui sépare BCH et
 * INVEST est en terre, le reste en encre. Le bloc « titre du site » de
 * WordPress ne permet pas de colorer un seul caractère, d'où ce libellé
 * écrit directement dans les parties d'en-tête et de pied de page.
 * ------------------------------------------------------------------ */

.bch-logo {
	margin: 0;
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.2rem;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.1;
	white-space: nowrap;
	flex-shrink: 0;
}

.bch-logo a {
	color: var(--wp--preset--color--encre);
	text-decoration: none;
}

.bch-logo a:hover {
	color: var(--wp--preset--color--encre);
}

.bch-point {
	color: var(--wp--preset--color--terre);
}

.bch-logo--pied {
	font-size: 1.25rem;
	margin-bottom: var(--wp--preset--spacing--30);
}

.bch-logo--pied a,
.bch-logo--pied a:hover {
	color: var(--wp--preset--color--ivoire);
}

/* ------------------------------------------------------------------ *
 * 14. Archives
 *
 * Les rubriques « Archives » reprennent le contenu d'origine du site,
 * conservé tel quel pour ne rien perdre. Ces blocs viennent de
 * Twenty Twenty-Five et portent des réglages incompatibles avec la
 * nouvelle grille : colonnes étroites, bordures de 100 px, largeurs en
 * pixels, textes centrés. On les ramène ici à la charte, sans toucher
 * au contenu lui-même.
 * ------------------------------------------------------------------ */

.bch-archives {
	--wp--style--block-gap: var(--wp--preset--spacing--40);
}

/* Les anciennes colonnes s'empilent : elles étaient calibrées pour une
   autre largeur de page et réduisaient le texte à une colonne d'une
   lettre de large. */

.bch-archives .wp-block-columns {
	display: block !important;
}

.bch-archives .wp-block-column {
	width: auto !important;
	flex-basis: auto !important;
	margin: 0 0 var(--wp--preset--spacing--40) !important;
}

.bch-archives .wp-block-column:empty {
	display: none;
}

/* Bordures et fonds hérités. */

.bch-archives [style*="border-width"] {
	border-width: 0 !important;
	border-style: none !important;
}

/* Les blocs « cover » hérités servaient de décor plein écran : on les
   ramène à un simple encadré clair, et on retire ceux qui ne portent
   aucun texte — ils n'existaient que pour leur image de fond. */

.bch-archives .wp-block-cover {
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: auto !important;
	padding: var(--wp--preset--spacing--50) !important;
	background-color: var(--wp--preset--color--sable) !important;
}

.bch-archives .wp-block-cover .wp-block-cover__background,
.bch-archives .wp-block-cover .wp-block-cover__image-background,
.bch-archives .wp-block-cover video.wp-block-cover__video-background {
	display: none !important;
}

.bch-archives .wp-block-cover,
.bch-archives .wp-block-cover :is(p, h1, h2, h3, h4, h5, li, strong) {
	color: var(--wp--preset--color--texte) !important;
}

.bch-archives .wp-block-cover:not(:has(:is(p, h1, h2, h3, h4, h5, li, a):not(:empty))) {
	display: none !important;
}

.bch-archives .wp-block-cover .wp-block-cover__inner-container {
	max-width: none;
}

.bch-archives .wp-block-spacer {
	height: var(--wp--preset--spacing--30) !important;
}

/* Alignements et échelle typographique. */

.bch-archives .has-text-align-center {
	text-align: left !important;
}

.bch-archives p,
.bch-archives li {
	line-height: 1.75;
}

.bch-archives .has-xx-large-font-size,
.bch-archives .has-x-large-font-size {
	font-size: 1.55rem !important;
	font-family: var(--wp--preset--font-family--fraunces);
	line-height: 1.25;
}

.bch-archives .has-large-font-size,
.bch-archives .has-medium-font-size {
	font-size: 1.15rem !important;
}

.bch-archives h2:not(.bch-titre-section) {
	font-family: var(--wp--preset--font-family--fraunces);
	font-size: 1.3rem;
	margin-top: var(--wp--preset--spacing--60);
	margin-bottom: var(--wp--preset--spacing--30);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--ligne);
}

/* Images isolées : plus de flottement, plus de largeur en dur. */

.bch-archives figure {
	float: none !important;
	margin-inline: 0 !important;
}

.bch-archives figure img,
.bch-archives img[style*="width"] {
	max-width: min(100%, 340px);
	width: auto !important;
	height: auto !important;
}

.bch-archives .wp-block-gallery figure img {
	max-width: 100%;
	width: 100% !important;
	height: 100% !important;
}

/* Les libellés de liens tiennent lieu de titres : on leur donne le
   rythme des lignes du reste du site. */

.bch-archives p > a,
.bch-archives li > a {
	color: var(--wp--preset--color--terre);
	text-decoration: none;
	border-bottom: 1px solid transparent;
}

.bch-archives p > a:hover,
.bch-archives li > a:hover {
	border-bottom-color: var(--wp--preset--color--terre);
}

.bch-archives ul {
	padding-left: 1.1rem;
}

.bch-archives ul li {
	margin-bottom: 0.45rem;
}

/* Les blocs « média et texte » hérités posaient une image en pleine
   hauteur à côté du texte : on les empile et on borne l'image. */

.bch-archives .wp-block-media-text {
	display: block !important;
	grid-template-columns: none !important;
}

.bch-archives .wp-block-media-text__media {
	margin-bottom: var(--wp--preset--spacing--40);
}

.bch-archives .wp-block-media-text__media img {
	max-width: min(100%, 300px);
	width: auto;
	height: auto;
}

.bch-archives .wp-block-media-text__content {
	padding: 0 !important;
}

/* Les liens sociaux hérités du pied de page d'origine n'ont plus lieu
   d'être : le pied de page du site les porte déjà. */

.bch-archives .wp-block-social-links {
	display: none;
}

/* Pictogrammes hérités des anciennes pages : ce sont des icônes, pas des
   photographies. On les affiche à leur échelle réelle d'icône, sinon une
   silhouette de continent en 340 px passe pour une illustration de une. */

.bch-archives .bch-picto img {
	max-width: 110px !important;
	width: 110px !important;
	height: auto !important;
}

.bch-archives .bch-picto {
	margin-inline: auto !important;
	margin-bottom: var(--wp--preset--spacing--20) !important;
	text-align: center;
}

/* Les titres issus des anciens accordéons : même rythme que le reste. */

.bch-archives .wp-block-heading {
	text-align: left;
}

/* ------------------------------------------------------------------ *
 * 15. Téléphone
 *
 * Sous 782 px, WordPress empile toutes les colonnes : les grilles de
 * trois photos deviennent trois photos pleine largeur, les bandeaux de
 * chiffres trois lignes, et la page se transforme en un défilé vertical
 * interminable. On rétablit ici des grilles serrées et on resserre les
 * espacements, pour que le mobile reste une mise en page et non une
 * pile.
 * ------------------------------------------------------------------ */

@media (max-width: 781px) {

	/* Grilles de photographies : deux par ligne. */

	.wp-block-columns:has(.bch-photo),
	.bch-vignettes,
	.bch-archives .wp-block-columns {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: var(--wp--preset--spacing--30);
	}

	.wp-block-columns:has(.bch-photo) > .wp-block-column,
	.bch-vignettes > .wp-block-column,
	.bch-archives .wp-block-columns > .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--30) / 2) !important;
		flex-grow: 0 !important;
		min-width: 0 !important;
		margin-bottom: 0 !important;
	}

	/* Bandeaux de chiffres : ils tiennent de front, c'est tout leur
	   intérêt. Empilés, ils ne veulent plus rien dire. */

	.bch-chiffres,
	.bch-stats-livre {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
	}

	.bch-chiffres > * {
		flex: 1 1 calc(33.333% - var(--wp--preset--spacing--20));
		min-width: 0;
	}

	.bch-stats-livre > .wp-block-column {
		flex-basis: calc(50% - var(--wp--preset--spacing--20)) !important;
		flex-grow: 0 !important;
		min-width: 0 !important;
	}

	.bch-nombre,
	.bch-nombre-livre {
		font-size: 1.75rem !important;
		line-height: 1.1;
	}

	/* Les deux flyers côte à côte plutôt que l'un sous l'autre. */

	.bch-flyers {
		flex-direction: row !important;
		flex-wrap: wrap !important;
		gap: var(--wp--preset--spacing--30) !important;
	}

	.bch-flyers > .bch-flyer {
		flex: 1 1 calc(50% - var(--wp--preset--spacing--30));
		min-width: 0;
	}

	/* Titre d'accroche et respiration générale. */

	.bch-hero h1,
	.wp-site-blocks h1 {
		font-size: clamp(2rem, 8.5vw, 2.7rem) !important;
		line-height: 1.08;
	}

	.bch-titre-section,
	.bch-archives h2 {
		font-size: 1.45rem !important;
	}

	main .wp-block-group {
		--wp--style--block-gap: var(--wp--preset--spacing--40);
	}

	main > .wp-block-group > .wp-block-group {
		padding-top: var(--wp--preset--spacing--50) !important;
		padding-bottom: var(--wp--preset--spacing--50) !important;
	}

	/* Une ligne d'agenda ou de presse reste lisible en deux niveaux. */

	.bch-ligne,
	.bch-date,
	.bch-ligne-presse {
		display: block !important;
	}

	.bch-source,
	.bch-date-presse {
		margin-bottom: 0.25rem !important;
	}

	/* Les en-têtes de section (titre · filet · lien « tout voir ») sont
	   posés sur une seule ligne qui ne se replie pas : sur téléphone le
	   titre débordait de l'écran et emportait le lien avec lui, ce qui
	   provoquait un défilement horizontal. On les laisse passer à la
	   ligne, et on rend au titre le droit de se couper. */

	.bch-titre-section,
	.bch-titre-section.is-nowrap,
	.wp-block-group:has(> .bch-lien-section) {
		flex-wrap: wrap !important;
		row-gap: 0.5rem;
	}

	.bch-titre-section,
	.bch-titre-section > *,
	.wp-block-group:has(> .bch-lien-section) > :is(h2, h3) {
		white-space: normal !important;
	}

	.wp-block-group:has(> .bch-lien-section) > :is(h2, h3) {
		flex: 1 1 100% !important;
	}

	.wp-block-group:has(> .bch-lien-section) > .bch-rule {
		flex: 1 1 1.5rem !important;
		min-width: 1.5rem;
	}

	.wp-block-group:has(> .bch-lien-section) > .bch-lien-section {
		flex: 0 0 auto !important;
	}

	/* Pas de débordement horizontal, quelle que soit l'image héritée. */

	.bch-archives img,
	main img {
		max-width: 100%;
		height: auto;
	}

	.wp-block-columns,
	.wp-block-group {
		max-width: 100%;
	}
}

@media (max-width: 480px) {

	.bch-chiffres > * {
		flex-basis: calc(50% - var(--wp--preset--spacing--20));
	}

	.bch-nombre,
	.bch-nombre-livre {
		font-size: 1.55rem !important;
	}
}

/* ------------------------------------------------------------------ *
 * 16. Sélecteur de langue
 *
 * Deux codes courts, la langue courante en évidence. Pas de drapeau :
 * un drapeau désigne un pays, pas une langue — et l'anglais de ce site
 * s'adresse autant à Nairobi qu'à Londres.
 * ------------------------------------------------------------------ */

.bch-langues {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	font-family: var(--wp--preset--font-family--work-sans);
	font-size: 0.78rem;
	letter-spacing: 0.08em;
	margin-left: 0.4rem;
	flex-shrink: 0;
}

.bch-langues .bch-langue {
	color: var(--wp--preset--color--sourdine);
	text-decoration: none;
	padding-bottom: 1px;
	border-bottom: 1px solid transparent;
}

.bch-langues .bch-langue:hover {
	color: var(--wp--preset--color--encre);
	border-bottom-color: var(--wp--preset--color--terre);
}

.bch-langues .bch-langue--active {
	color: var(--wp--preset--color--encre);
	font-weight: 600;
}

.bch-langues .bch-langue + .bch-langue::before {
	content: "/";
	color: var(--wp--preset--color--ligne);
	margin-right: 0.45rem;
}

footer .bch-langues {
	margin-left: 0;
	margin-top: var(--wp--preset--spacing--30);
}

footer .bch-langues .bch-langue {
	color: var(--wp--preset--color--ligne);
}

footer .bch-langues .bch-langue--active {
	color: #fff;
}
