/* BnR Connect — styles des blocs dynamiques.
   S'appuie sur les presets theme.json (mc-librairie) avec fallbacks hex
   Direction A, pour rester rendable sur un thème quelconque. */

/* ---------- Utilitaires ---------- */
.bnr-eyebrow {
	display: block;
	font-family: var(--wp--preset--font-family--mono, "JetBrains Mono", monospace);
	font-size: var(--wp--preset--font-size--xs, 12px);
	font-weight: 500;
	letter-spacing: var(--wp--custom--tracking-mono, .16em);
	text-transform: uppercase;
	color: var(--wp--preset--color--accent, #C75B39);
}

.bnr-badge {
	display: inline-block;
	padding: 4px 12px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-size: var(--wp--preset--font-size--sm, 13px);
	font-weight: 700;
	background: var(--wp--preset--color--primary, #6A1B2D);
	color: var(--wp--preset--color--on-primary, #F4E9DD);
	width: max-content;
}
.bnr-badge--full { background: var(--wp--preset--color--danger, #B23A3A); }
.bnr-badge--past { background: var(--wp--preset--color--muted-2, #8A7E72); }

.bnr-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	flex-wrap: wrap;
	margin: 0 0 38px;
}
.bnr-section-head h2 { margin: 12px 0 0; }

/* ---------- Hero mise en avant (portage fidèle du hero readnroll V1) ---------- */
.bnr-hero {
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	/* Repli sur l'aplat d'origine : une variation qui ne definit pas
	   `heroBackdrop` garde exactement le rendu precedent. */
	background: var(--wp--custom--hero-backdrop, var(--wp--preset--color--primary-deep, #4E121F));
	color: var(--wp--preset--color--on-dark, #F4E9DD);
	min-height: 520px;
}
.bnr-hero__text {
	padding: 72px 60px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.bnr-hero .bnr-hero__eyebrow {
	color: var(--wp--custom--ink-on-dark--accent, #E0A98F);
	margin-bottom: 26px;
}
.bnr-hero__title {
	font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif);
	font-size: clamp(44px, 6vw, 76px);
	font-weight: 400;
	line-height: 1.02;
	margin: 0 0 26px;
	color: var(--wp--preset--color--on-dark, #F4E9DD);
}
.bnr-hero__quote {
	font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif);
	font-style: italic;
	font-size: var(--wp--preset--font-size--xl, 22px);
	line-height: 1.4;
	color: var(--wp--custom--ink-on-dark--quote, #EAD6C6);
	max-width: 440px;
	margin: 0 0 16px;
}
.bnr-hero__author {
	color: var(--wp--custom--ink-on-dark--meta, #C99C86);
	font-size: 15px;
	margin: 0 0 40px;
}
.bnr-hero__cta { display: flex; gap: 16px; flex-wrap: wrap; margin: 0; }
/* Image : colonne pleine hauteur, dégradé de repli tant qu'aucune photo n'est réglée. */
.bnr-hero__img {
	background-color: var(--wp--preset--color--primary-ink, #43101C);
	background-image: var(--wp--custom--hero-cover, radial-gradient(120% 90% at 80% 20%, #7a2436 0%, #4E121F 55%, #2a0e15 100%));
	background-size: cover;
	background-position: center;
	min-height: 300px;
}
@media (max-width: 781px) {
	.bnr-hero { grid-template-columns: 1fr; min-height: 0; }
	.bnr-hero__text { padding: 48px var(--wp--custom--gutter, 20px); }
}

/* ---------- Univers (mosaïque pilotable console — portage .rnr-univers V1) ---------- */
.bnr-univers {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	grid-template-rows: 200px 200px;
	gap: 18px;
}
/* `arche` (cintre 999px en haut) est la signature de certaines directions : elle
   passe avant le rayon courant dès qu'une variation la définit, et le repli est
   exactement la valeur d'origine pour toutes les autres. */
.bnr-univers__tile {
	position: relative;
	/* Pas d'overflow: hidden (1.15.1) : il rognait le label et sa plaque dès
	   qu'une forme cintrée était choisie (gélule, feuille…) — le texte sortait
	   coupé sur les côtés. Le fond d'image se découpe tout seul par le
	   border-radius ; seul le voile doit suivre la forme (radius inherit
	   ci-dessous). Même principe que le cadre du hero. Le texte et son fond
	   passent ainsi AU-DESSUS de la découpe, jamais rognés. */
	border-radius: var(--wp--custom--arche, var(--wp--custom--radius--sm, 4px));
	box-sizing: border-box;
	display: block;
	text-decoration: none;
	background-size: cover;
	background-position: center;
}
.bnr-univers__tile--1 { grid-row: span 2; background-image: var(--wp--custom--univers-tile--one, linear-gradient(150deg, #244C61, #16323F)); }
.bnr-univers__tile--2 { background-image: var(--wp--custom--univers-tile--two, linear-gradient(150deg, #6A1B2D, #43101C)); }
.bnr-univers__tile--3 { background-image: var(--wp--custom--univers-tile--three, linear-gradient(150deg, #2F6B4F, #1C4332)); }
/* Voile de lisibilité du bas de tuile. Tokenisé : sur une direction à tuiles
   claires et texte sombre, un voile sombre fait chuter le contraste de 10:1 à
   3:1 — il doit alors s'inverser. Repli = la valeur d'origine. */
.bnr-univers__overlay {
	position: absolute;
	inset: 0;
	/* Suit la découpe de la tuile (la sienne ou celle d'une forme choisie) :
	   sans le clip parent, c'est lui qui doit épouser la forme. */
	border-radius: inherit;
	background: var(--bnr-tile-veil, var(--wp--custom--univers-overlay, linear-gradient(180deg, rgba(40,18,24,0) 35%, rgba(40,18,24,.55) 100%)));
}
/* Couleur du texte de tuile, pilotée par tuile depuis la console (`ink`) quand la
   photo choisie rend illisible le texte de la direction. `light` et `dark` posent
   AUSSI le voile correspondant : une teinte de texte sans voile assorti ne sauve
   pas un titre sur une photo contrastée. Une couleur libre (`--bnr-tile-ink` en
   style inline) ne touche qu'au texte et garde le voile de la direction. */
.bnr-univers__tile--ink-light {
	--bnr-tile-ink: var(--wp--custom--ink-on-dark--strong, #F8F6F2);
	--bnr-tile-ink-soft: var(--wp--custom--ink-on-dark--soft, #EAD9CE);
	--bnr-tile-veil: linear-gradient(180deg, rgba(18,10,14,0) 28%, rgba(18,10,14,.74) 100%);
}
.bnr-univers__tile--ink-dark {
	--bnr-tile-ink: var(--wp--preset--color--ink, #241A1D);
	--bnr-tile-ink-soft: var(--wp--preset--color--ink-soft, #574349);
	--bnr-tile-veil: linear-gradient(180deg, rgba(255,255,255,0) 28%, rgba(255,255,255,.78) 100%);
}
.bnr-univers__label { position: absolute; left: 0; bottom: 0; padding: 0 22px 20px; display: flex; flex-direction: column; gap: 2px; }
/* Texte pose sur un bloc a fond plutot que sur le seul voile degrade : sur une photo
   chargee, un degrade ne garantit jamais la lisibilite, un fond si. Le voile est
   retire cote PHP quand la plaque est active. Le fond suit `ink` — sombre sous un
   texte clair (defaut), clair sous un texte sombre. `backdrop-filter` n'est qu'un
   raffinement : le fond translucide tient seul si le navigateur l'ignore. */
.bnr-univers__label--plaque {
	left: 14px; right: 14px; bottom: 14px;
	padding: 12px 16px 13px;
	background: var(--bnr-tile-plaque, rgba(18, 10, 14, .66));
	backdrop-filter: blur(7px);
	border-radius: var(--wp--custom--radius--md, 10px);
}
.bnr-univers__tile--ink-dark .bnr-univers__label--plaque {
	--bnr-tile-plaque: rgba(255, 255, 255, .84);
}
/* Tuile 1 de la mosaique : meme respiration que son label plus genereux. */
.bnr-univers__tile--1 .bnr-univers__label--plaque { left: 20px; right: 20px; bottom: 20px; padding: 14px 20px 15px; }
.bnr-univers__tile--1 .bnr-univers__label { padding: 0 30px 28px; }
/* Formes à grand cintre bas (1.15.1) : aux extrémités d'une gélule ou d'une
   feuille, un texte calé au bord sort de l'image — il rejoint le centre, où la
   forme est la plus large. Sélecteurs à 3 classes : ils doivent primer sur les
   réglages par tuile (--1) ci-dessus. Les autres formes (arche, rectangle,
   coins arrondis) gardent la composition d'origine, leur bas est plein. */
.bnr-univers--shape-pill .bnr-univers__tile .bnr-univers__label,
.bnr-univers--shape-leaf .bnr-univers__tile .bnr-univers__label {
	left: 14%; right: 14%; padding-left: 0; padding-right: 0;
	align-items: center; text-align: center;
}
.bnr-univers--shape-pill .bnr-univers__tile .bnr-univers__label--plaque,
.bnr-univers--shape-leaf .bnr-univers__tile .bnr-univers__label--plaque {
	bottom: 18px; padding-left: 18px; padding-right: 18px;
}
/* Tuile d'appel sous une forme cintrée (1.15.3) : son surtitre (« + 240 titres »)
   est calé en haut à gauche, précisément dans le coin que l'arche et la feuille
   découpent — il se retrouvait hors de l'aplat, invisible sur le fond de page.
   Sous ces formes, les deux lignes se regroupent en bas, où la forme est pleine ;
   la gélule, cintrée aux deux bouts, centre tout comme le label de ses tuiles. */
.bnr-univers--shape-arch .bnr-univers__cta,
.bnr-univers--shape-leaf .bnr-univers__cta { justify-content: flex-end; gap: 6px; }
.bnr-univers--shape-pill .bnr-univers__cta {
	justify-content: center; align-items: center; text-align: center;
	/* Centré à mi-hauteur, là où la gélule est pleine largeur : 18px suffisent
	   (14% comme les labels, calés en bas, rejetaient la flèche à la ligne). En
	   pixels et non en % (1.16.1) : sur une tuile flex — disposition « centrées » —
	   un % de padding se calcule sur la section entière, pas sur la tuile, et
	   l'appel se retrouvait avec 88px de large. */
	gap: 6px; padding-left: 18px; padding-right: 18px;
}
.bnr-univers__name { font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif); font-size: 24px; color: var(--bnr-tile-ink, var(--wp--custom--ink-on-dark--strong, #F8F6F2)); }
.bnr-univers__tile--1 .bnr-univers__name { font-size: 34px; }
/* Repli en cascade : la teinte douce de la direction, sinon la couleur libre choisie
   pour le titre — un sous-titre resté clair sous un titre sombre serait le pire cas. */
.bnr-univers__sub { font-family: var(--wp--preset--font-family--sans, Manrope, sans-serif); font-size: 13px; color: var(--bnr-tile-ink-soft, var(--bnr-tile-ink, var(--wp--custom--ink-on-dark--soft, #EAD9CE))); }
.bnr-univers__cta {
	background: var(--wp--preset--color--primary, #6A1B2D);
	border-radius: var(--wp--custom--arche, var(--wp--custom--radius--sm, 4px));
	/* border-box (1.15.3) : WordPress ne le pose pas sur un lien, donc en grille
	   les 26px de padding s'ajoutaient au min-height de 200px — la tuile d'appel
	   sortait à 252px à côté de tuiles de 200px, et débordait de sa rangée. Sur une
	   forme cintrée l'écart saute aux yeux : deux arches de hauteurs différentes. */
	box-sizing: border-box;
	padding: 26px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	text-decoration: none;
}
/* Posé sur un aplat `primary` : suit `on-primary` et non `inkOnDark` (qui vaut souvent
   la teinte d'accent — invisible si `primary` est lui-même clair). */
.bnr-univers__cta-eyebrow { color: var(--wp--preset--color--on-primary, #E0A98F); opacity: .78; }
.bnr-univers__cta-title { font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif); font-size: 24px; line-height: 1.1; color: var(--wp--preset--color--on-primary, #F4E9DD); }
/* Survol : éclaircissement du bloc entier — fonctionne que `primary` soit sombre ou clair
   (l'ancien `color: #fff` supposait un aplat sombre). */
.bnr-univers__cta:hover { filter: brightness(1.08); }

/* Dégradés de repli des tuiles 4 à 6 (aucune image, aucune vignette de catégorie). */
.bnr-univers__tile--4 { background-image: var(--wp--custom--univers-tile--four, linear-gradient(150deg, #8A5A16, #573609)); }
.bnr-univers__tile--5 { background-image: var(--wp--custom--univers-tile--five, linear-gradient(150deg, #4B3A7A, #2C214A)); }
.bnr-univers__tile--6 { background-image: var(--wp--custom--univers-tile--six, linear-gradient(150deg, #1F5F63, #123C3F)); }

/* Grille de tuiles égales — tout nombre de tuiles différent de 3.
   ⚠ Le contenu des tuiles est intégralement en position:absolute : sans
   grid-auto-rows ET min-height, les rangées implicites se calculent à une
   hauteur de 0 et les tuiles sont invisibles (le HTML, lui, est bien là). */
.bnr-univers--grid {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	grid-template-rows: none;
	grid-auto-rows: 200px;
}
.bnr-univers--grid .bnr-univers__tile,
.bnr-univers--grid .bnr-univers__cta { min-height: 200px; }
.bnr-univers--grid .bnr-univers__tile--1 { grid-row: auto; }
.bnr-univers--grid .bnr-univers__tile--1 .bnr-univers__label { padding: 0 22px 20px; }
.bnr-univers--grid .bnr-univers__tile--1 .bnr-univers__name { font-size: 24px; }

/* Dispositions choisies depuis la console (1.16.0) : `bnr-univers--layout-<slug>`,
   liste et libellés dans bnr_connect_universes_layouts(). Sans choix, l'automatique
   d'origine reste (mosaïque à trois tuiles, grille sinon). « grid » et « squares »
   reposent sur --grid ; « mosaic » et « centered » ont leur propre mise en page. */

/* Une grande, des petites : quatre colonnes, la tuile 1 en prend deux sur deux
   rangées — la mosaïque V1 généralisée à n tuiles. `dense` comble la case que
   laisserait une fin de rangée. */
.bnr-univers--layout-mosaic { grid-template-columns: repeat(4, 1fr); grid-template-rows: none; grid-auto-rows: 200px; grid-auto-flow: dense; }
.bnr-univers--layout-mosaic .bnr-univers__tile--1 { grid-column: span 2; grid-row: span 2; }

/* Grille de carrés : quatre par rangée, la hauteur vient du ratio et non de la
   rangée (sinon un carré de 290px déborderait d'une rangée de 200). */
.bnr-univers--layout-squares { grid-template-columns: repeat(4, 1fr); grid-auto-rows: auto; }
.bnr-univers--layout-squares .bnr-univers__tile,
.bnr-univers--layout-squares .bnr-univers__cta { aspect-ratio: 1 / 1; min-height: 0; }

/* Centrées : tuiles à largeur fixe, rangées centrées — pour une sélection courte
   qui n'a pas à s'étirer sur toute la largeur. Toutes de même taille, la première
   comprise : elle perd la mise en valeur de la mosaïque. */
.bnr-univers--layout-centered { display: flex; flex-wrap: wrap; justify-content: center; }
.bnr-univers--layout-centered .bnr-univers__tile,
.bnr-univers--layout-centered .bnr-univers__cta { flex: 0 0 280px; width: 280px; max-width: 100%; height: 200px; min-height: 0; }
.bnr-univers--layout-centered .bnr-univers__tile--1 .bnr-univers__label { padding: 0 22px 20px; }
.bnr-univers--layout-centered .bnr-univers__tile--1 .bnr-univers__name { font-size: 24px; }
.bnr-univers--layout-centered .bnr-univers__tile--1 .bnr-univers__label--plaque { left: 14px; right: 14px; bottom: 14px; padding: 12px 16px 13px; }

@media (max-width: 960px) {
	.bnr-univers--layout-mosaic,
	.bnr-univers--layout-squares { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 781px) {
	.bnr-univers { grid-template-columns: 1fr 1fr; grid-template-rows: auto; }
	.bnr-univers__tile { min-height: 160px; }
	.bnr-univers__tile--1 { grid-row: auto; grid-column: span 2; min-height: 220px; }
	.bnr-univers--grid { grid-template-rows: none; grid-auto-rows: 160px; }
	/* Les rangées passent à 160px : le min-height de 200px des tuiles et de la
	   tuile d'appel doit suivre (1.15.3), sinon chaque tuile déborde de 40px sur
	   la rangée suivante. Même spécificité que la règle desktop, à deux classes. */
	.bnr-univers--grid .bnr-univers__tile,
	.bnr-univers--grid .bnr-univers__cta { min-height: 160px; }
	.bnr-univers--grid .bnr-univers__tile--1 { grid-column: auto; }
	/* Dispositions (1.16.0) sur deux colonnes : la grande tuile de la mosaïque
	   passe en pleine largeur sur une seule rangée, les carrés gardent leur ratio
	   (rangée automatique, pas les 160px de --grid), les tuiles centrées suivent
	   la hauteur des rangées. */
	.bnr-univers--layout-mosaic { grid-auto-rows: 160px; }
	.bnr-univers--layout-mosaic .bnr-univers__tile--1 { grid-column: span 2; grid-row: auto; min-height: 0; }
	.bnr-univers--layout-squares { grid-auto-rows: auto; }
	.bnr-univers--layout-squares .bnr-univers__tile,
	.bnr-univers--layout-squares .bnr-univers__cta { min-height: 0; }
	.bnr-univers--layout-centered .bnr-univers__tile,
	.bnr-univers--layout-centered .bnr-univers__cta { height: 160px; }
}

/* Lien « Tout … → » des têtes de section (portage .rnr-section__more). */
.bnr-more {
	font-weight: 700;
	color: var(--wp--preset--color--primary, #6A1B2D);
	text-decoration: none;
	border-bottom: 2px solid var(--wp--preset--color--accent, #C75B39);
	padding-bottom: 3px;
	white-space: nowrap;
}
.bnr-more:hover { color: var(--wp--preset--color--accent, #C75B39); }

/* ---------- Cartes évènement ---------- */
.bnr-event-card {
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
	border-radius: var(--wp--custom--radius--md, 6px);
	padding: 28px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-shadow: var(--wp--custom--shadow--card, 0 1px 3px rgba(28,21,24,.08));
}
.bnr-event-card__title {
	font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif);
	font-size: 26px;
	font-weight: 400;
	line-height: 1.15;
	margin: 0;
}
.bnr-event-card__title a {
	color: var(--wp--preset--color--primary, #6A1B2D);
	text-decoration: none;
}
.bnr-event-card__when {
	font-weight: 700;
	color: var(--wp--preset--color--primary, #6A1B2D);
}
.bnr-event-card__venue { color: var(--wp--preset--color--muted, #6E6258); }
.bnr-event-card--past { opacity: .65; }
.bnr-event-card--past .bnr-event-card__title a { color: var(--wp--preset--color--muted, #6E6258); }

/* ---------- Bandeau agenda (accueil) ---------- */
.bnr-events-strip { margin: 48px auto; }
.bnr-strip-side { display: flex; align-items: center; gap: 20px; }
.bnr-events-strip__scroller {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 4px 4px 14px;
	scrollbar-width: none;
	outline: none;
}
.bnr-events-strip__scroller::-webkit-scrollbar { display: none; }
.bnr-events-strip__scroller .bnr-event-card--compact {
	flex: 0 0 300px;
	scroll-snap-align: start;
	padding: 24px;
}
.bnr-events-strip__scroller .bnr-event-card--compact .bnr-event-card__title { font-size: 22px; }
.bnr-strip-nav { display: flex; gap: 8px; }
.bnr-strip-nav button {
	width: 40px; height: 40px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	border: 1px solid var(--wp--preset--color--primary, #6A1B2D);
	background: var(--wp--preset--color--surface, #fff);
	color: var(--wp--preset--color--primary, #6A1B2D);
	font-size: 17px; line-height: 1;
	cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: background .15s, color .15s, opacity .15s;
}
.bnr-strip-nav button:hover:not([disabled]) {
	background: var(--wp--preset--color--primary, #6A1B2D);
	color: var(--wp--preset--color--on-primary, #FFFFFF);
}
.bnr-strip-nav button[disabled] { opacity: .3; cursor: default; }
@media (max-width: 600px) {
	.bnr-events-strip__scroller .bnr-event-card--compact { flex-basis: 260px; }
	.bnr-strip-side { gap: 12px; }
}

/* ---------- Archive agenda ---------- */
.bnr-agenda {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 24px;
	margin: 32px 0 72px;
}
.bnr-agenda-intro { margin: 48px 0 8px; }
.bnr-agenda-intro h2 { margin: 4px 0 0; }
.bnr-agenda-empty { margin: 24px 0 72px; color: var(--wp--preset--color--muted, #6E6258); }

/* ---------- Détails évènement ---------- */
.bnr-event-details__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 18px 0 28px;
	font-weight: 600;
}
.bnr-event-details__meta span { color: var(--wp--preset--color--primary, #6A1B2D); }

/* ---------- Livres liés + inscription ---------- */
.bnr-event-books { margin: 40px 0; }
.bnr-event-books h2 { margin-bottom: 8px; }

/* Frais de participation : produits masqués du catalogue, rendus à la main
   (le shortcode [products] ne retient que les produits visibles). */
.bnr-event-fees { margin: 40px 0; max-width: 640px; }
.bnr-event-fees h2 { margin-bottom: 8px; }
.bnr-event-fees__list { list-style: none; margin: 16px 0 0; padding: 0; }
.bnr-event-fee {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 14px 18px;
	margin-bottom: 10px;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
	border-radius: var(--wp--custom--radius--md, 6px);
}
.bnr-event-fee__label { font-weight: 600; }
.bnr-event-fee__price { color: var(--wp--preset--color--primary, #6A1B2D); }
.bnr-event-fee__add { margin-left: auto; text-decoration: none; }

/* Réservation payante : l'achat vaut inscription (achat obligatoire). */
.bnr-event-reserve {
	margin: 44px 0 64px;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
	border-radius: var(--wp--custom--radius--md, 6px);
	padding: 32px;
	max-width: 640px;
}
.bnr-event-reserve h2 { margin: 0 0 4px; }
.bnr-reserve-books { border: 0; margin: 0 0 12px; padding: 0; }
.bnr-reserve-books legend { font-weight: 600; font-size: 14px; margin-bottom: 8px; }
.bnr-reserve-book {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
	border-bottom: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
	cursor: pointer;
}
.bnr-reserve-book__price { margin-left: auto; color: var(--wp--preset--color--primary, #6A1B2D); }
.bnr-reserve-line {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 8px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
}
.bnr-reserve-total {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin: 16px 0 20px;
	font-size: 18px;
}
.bnr-event-register {
	margin: 44px 0 64px;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--line-soft, #EAE3D9);
	border-radius: var(--wp--custom--radius--md, 6px);
	padding: 32px;
	max-width: 640px;
}
.bnr-event-register h2 { margin: 0 0 4px; }
.bnr-event-register__hint { color: var(--wp--preset--color--muted, #6E6258); margin: 0 0 20px; }
.bnr-event-register .bnr-field {
	margin-bottom: 14px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.bnr-event-register label { font-weight: 600; font-size: 14px; }
.bnr-event-register input,
.bnr-event-register textarea,
.bnr-event-register select {
	border: 1px solid var(--wp--preset--color--line, #E7E0D6);
	border-radius: var(--wp--custom--radius--sm, 4px);
	padding: 10px 12px;
	font: inherit;
	min-height: 44px;
}
.bnr-event-register textarea { min-height: 80px; }
.bnr-event-register .bnr-commit {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	background: var(--wp--preset--color--paper, #F8F6F2);
	padding: 14px;
	border-radius: var(--wp--custom--radius--sm, 4px);
	margin: 6px 0 16px;
	font-size: 14px;
}
.bnr-event-register .bnr-commit input { margin-top: 3px; min-height: 0; }
.bnr-register-msg { margin-top: 14px; font-weight: 600; }
.bnr-register-msg.is-ok { color: var(--wp--preset--color--success, #2F6B4F); }
.bnr-register-msg.is-err { color: var(--wp--preset--color--danger, #B23A3A); }
/* Récapitulatif d'inscription — remplace le formulaire une fois la place prise.
   Il reprend le cadre du formulaire pour que la page ne bouge pas sous les yeux :
   c'est le même bloc qui change d'état, pas un autre qui apparaît ailleurs. */
.bnr-register-recap { outline: 0; }
.bnr-register-recap h2 { margin: 0 0 4px; }
.bnr-register-recap__liste {
	display: grid;
	gap: 10px;
	margin: 20px 0 18px;
	padding: 0;
}
/* Terme et valeur sur une ligne dès qu'il y a la place, l'un sous l'autre sinon :
   une date longue ne doit pas se briser en trois sur un téléphone. */
.bnr-register-recap__liste > div {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2px;
	padding-block-end: 10px;
	border-block-end: 1px solid var(--wp--preset--color--line, #E5DED6);
}
.bnr-register-recap__liste > div:last-child { border-block-end: 0; padding-block-end: 0; }
.bnr-register-recap__liste dt {
	color: var(--wp--preset--color--muted, #6E6258);
	font-size: 14px;
}
.bnr-register-recap__liste dd { margin: 0; font-weight: 600; }
.bnr-register-recap > p {
	margin: 0;
	color: var(--wp--preset--color--ink-soft, #57483C);
	max-width: 56ch;
}
@media (min-width: 600px) {
	.bnr-register-recap__liste > div {
		grid-template-columns: minmax(0, 14ch) minmax(0, 1fr);
		gap: 0 20px;
		align-items: baseline;
	}
}

.bnr-hp { position: absolute; left: -9999px; opacity: 0; height: 0; overflow: hidden; }

/* ---------- Hero éditorial : ruban, cartouche et chiffres clés ----------
   Activé par les attributs de mise en page de la composition (ribbon,
   showCaption, stats). Sans eux, .bnr-hero garde sa mise en page d'origine. */
.bnr-hero--editorial {
	grid-template-columns: 1.15fr .85fr;
	gap: 60px;
	align-items: center;
	/* Fond pleine largeur, contenu centré dans la largeur du site : sans cette
	   contrainte la colonne de droite suit la fenêtre et son cadre 3:4 devient
	   démesuré, ce qui creuse un vide au-dessus du texte centré en regard. */
	padding-block: 64px 72px;
	padding-inline: max(
		var(--wp--custom--gutter, 44px),
		calc((100% - var(--wp--style--global--wide-size, 1320px)) / 2)
	);
}
.bnr-hero--editorial .bnr-hero__text { padding: 0; }
/* Chapô : la colonne de gauche est plus large qu'en mise en page d'origine,
   la ligne de texte peut donc courir plus loin sans nuire à la lecture. */
.bnr-hero--editorial .bnr-hero__quote { max-width: 560px; }
/* Le cadre reste à hauteur d'homme quel que soit l'écran. */
.bnr-hero--editorial .bnr-hero__media {
	width: 100%;
	max-width: 460px;
	margin-inline: auto;
}

/* Second bouton, en contour. */
.bnr-hero__cta-alt {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 28px;
	border: 1px solid var(--wp--preset--color--alt-line, rgba(244, 233, 221, .22));
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-family: var(--wp--preset--font-family--sans, sans-serif);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--on-dark, #F4E9DD);
	text-decoration: none;
	transition: var(--wp--custom--transition--slow, 300ms ease);
}
.bnr-hero__cta-alt:hover {
	border-color: var(--wp--preset--color--accent, #C75B39);
	color: var(--wp--preset--color--accent, #C75B39);
}

/* Chiffres clés sous un filet. */
.bnr-hero__stats {
	display: flex;
	gap: 34px;
	flex-wrap: wrap;
	margin-top: 46px;
	padding-top: 30px;
	border-top: 1px solid var(--wp--preset--color--alt-line, rgba(244, 233, 221, .16));
}
.bnr-hero__stat-n {
	display: block;
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: 34px;
	line-height: 1;
	color: var(--wp--custom--ink-on-dark--accent, #E0A98F);
}
.bnr-hero__stat-t {
	display: block;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 12px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--custom--ink-on-dark--meta, #C99C86);
	margin-top: 7px;
}

/* Variante « pastilles » (attribut statsStyle) : chaque chiffre sur sa carte, sans
   filet de séparation. Une direction sans surface sombre n'a pas de trait à faire
   courir sous le hero — ce sont les cartes qui portent le rythme. */
.bnr-hero__stats--pills {
	gap: 14px;
	padding-top: 0;
	border-top: 0;
}
.bnr-hero__stats--pills .bnr-hero__stat {
	background: var(--wp--preset--color--surface, #FFFFFF);
	border-radius: var(--wp--custom--radius--lg, 10px);
	padding: 18px 26px;
	box-shadow: var(--wp--custom--shadow--card, none);
}
.bnr-hero__stats--pills .bnr-hero__stat-n {
	font-size: 30px;
	color: var(--wp--preset--color--primary, #6A1B2D);
}
.bnr-hero__stats--pills .bnr-hero__stat-t {
	letter-spacing: .08em;
	text-transform: none;
	margin-top: 6px;
}

/* Colonne de droite : cadre 3:4 au lieu d'une image pleine hauteur. */
.bnr-hero__media { position: relative; }
/* Le cintre est porté par le cadre ET par l'image : l'ombre suit le cadre, et
   l'image se découpe elle-même — pas d'`overflow: hidden` sur le cadre, qui
   rognerait le ruban posé en débord à gauche. Repli 0 = rendu d'origine. */
.bnr-hero__frame {
	position: relative;
	aspect-ratio: 3 / 4;
	border-radius: var(--wp--custom--arche, 0);
	box-shadow: var(--wp--custom--shadow--cover-lg, 0 30px 60px -28px rgba(0, 0, 0, .55));
}
.bnr-hero__frame .bnr-hero__img {
	position: absolute;
	inset: 0;
	min-height: 0;
	border-radius: inherit;
}
/* ---------- Forme du cadre de l'image, choisie depuis la console ----------
   Les regles `.bnr-hero--shape-*` ne sont PAS ici : elles sont generees depuis
   `bnr_connect_frame_shapes()` (includes/featured.php) et injectees en style inline.
   Une seule source de verite pour le rendu du site et l'apercu de la console — et
   une forme ajoutee par le filtre `bnr_connect_frame_shapes` marche sans CSS. */

.bnr-hero__ribbon {
	position: absolute;
	top: 18px;
	left: -12px;
	z-index: 3;
	background: var(--wp--preset--color--primary-deep, #4E121F);
	color: var(--wp--preset--color--on-dark, #F4E9DD);
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	padding: 9px 16px;
	box-shadow: var(--wp--custom--shadow--cover, 0 8px 20px rgba(0, 0, 0, .4));
}
/* Cartouche en débord : reprend le livre mis en avant depuis la console BnR. */
.bnr-hero__caption {
	position: absolute;
	bottom: -26px;
	right: -14px;
	max-width: 230px;
	padding: 16px 20px;
	background: var(--wp--preset--color--surface, #FFFFFF);
	border: 1px solid var(--wp--preset--color--accent, #C75B39);
	box-shadow: var(--wp--custom--shadow--hover, 0 14px 36px rgba(0, 0, 0, .5));
}
.bnr-hero__caption-g {
	display: block;
	font-family: var(--wp--preset--font-family--mono, monospace);
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--wp--custom--ink-on-dark--accent, #E0A98F);
	margin-bottom: 4px;
}
.bnr-hero__caption-t {
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: 21px;
	font-weight: 400;
	line-height: 1.1;
	margin: 0;
	color: var(--wp--preset--color--ink, #1C1518);
}
.bnr-hero__caption-a {
	display: block;
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-style: italic;
	font-size: 14px;
	color: var(--wp--preset--color--muted, #6E6258);
	margin-top: 2px;
}

@media (max-width: 781px) {
	.bnr-hero--editorial {
		grid-template-columns: 1fr;
		gap: 54px;
		padding: 60px var(--wp--custom--gutter, 20px) 72px;
	}
	.bnr-hero--editorial .bnr-hero__media { max-width: 340px; }
	.bnr-hero__stats { gap: 24px; }
	/* Le débord de la cartouche et du ruban rentre dans le cadre : sur un écran
	   étroit, 14 px de dépassement suffisent à ouvrir un défilement horizontal. */
	.bnr-hero__caption { right: 0; bottom: -18px; }
	.bnr-hero__ribbon { left: 0; }
}

/* Dernière ligne du titre, en italique de couleur — signature du hero éditorial. */
.bnr-hero__title-accent {
	font-style: italic;
	color: var(--wp--custom--ink-on-dark--accent, #E0A98F);
}

/* Décor libre près du cadre (la lune de la maquette). La fusion « screen » efface
   le ciel noir de la photo : pas besoin de détourage, et le halo se fond dans le
   dégradé du hero. Ne rien poser en z-index sur `.bnr-hero__media`, cela créerait
   un contexte d'empilement et priverait la fusion du fond de la section. */
.bnr-hero__decor {
	position: absolute;
	/* Taille réglable d'un seul point ; le débord suit (un tiers du diamètre passe
	   au-dessus du cadre), pour garder la même proportion à toute échelle. */
	--bnr-decor-size: 152px;
	width: var(--bnr-decor-size);
	height: var(--bnr-decor-size);
	top: calc(var(--bnr-decor-size) / -3);
	right: 28px;
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	mix-blend-mode: screen;
	opacity: .92;
	pointer-events: none;
}
@media (max-width: 781px) {
	.bnr-hero__decor { --bnr-decor-size: 96px; right: 16px; }
}

/* ---------- Nous écrire ----------
   Les champs de l'inscription aux évènements sont portés par `.bnr-event-register`
   et ne se réutilisent pas tels quels ; ceux-ci reprennent les mêmes tokens, la
   même hauteur de frappe et les mêmes classes de message (`.bnr-register-msg`,
   `.bnr-hp`), qui sont, elles, communes. */
.bnr-contact__intro {
	max-width: 52ch;
	color: var(--wp--preset--color--ink-soft, #57483C);
	margin: 10px 0 30px;
}
/* Deux colonnes pour les champs courts, une seule pour le message : sur un
   formulaire de contact, l'identité tient sur une ligne, pas le propos. */
.bnr-contact-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0 28px;
}
.bnr-contact .bnr-field {
	margin-bottom: 16px;
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.bnr-contact label { font-weight: 600; font-size: 14px; }
/* `box-sizing: border-box` n'est pas un detail de confort : WordPress ne le pose
   pas sur les champs, donc un `width: 100%` s'ajoute au padding (24px) et aux
   bordures (2px). Chaque champ debordait ainsi de 26px de sa colonne de grille,
   avalait les 28px de gouttiere et chevauchait le champ voisin de 6px — ce qui se
   lit comme « les champs sont colles » alors que la gouttiere, elle, est bien la. */
.bnr-contact input,
.bnr-contact textarea,
.bnr-contact select {
	box-sizing: border-box;
	border: 1px solid var(--wp--preset--color--line, #E7E0D6);
	border-radius: var(--wp--custom--radius--sm, 4px);
	background: var(--wp--preset--color--surface, #FFFFFF);
	color: var(--wp--preset--color--ink, #2A211B);
	padding: 10px 12px;
	font: inherit;
	min-height: 44px;
	width: 100%;
}
.bnr-contact textarea { min-height: 150px; resize: vertical; }
.bnr-contact__legal,
.bnr-contact-form__legal {
	margin-top: 14px;
	font-size: var(--wp--preset--font-size--sm, 13px);
	color: var(--wp--preset--color--muted, #6E5B49);
}
@media (max-width: 781px) {
	.bnr-contact-form__grid { grid-template-columns: 1fr; }
}

/* ---------- Hero diaporama (mode slideshow, 1.12.0) ----------
   Remplace tout le hero quand la console a basculé la mise en avant en
   diaporama : photos en fondu enchaîné, accroche constante optionnelle,
   légende par photo. Vitesse et effet vivent ici, jamais dans la console. */
.bnr-hero--slideshow {
	display: block;
	min-height: 0;
	position: relative;
}
.bnr-slideshow {
	position: relative;
	height: clamp(340px, 52vw, 560px);
	overflow: hidden;
}
.bnr-slideshow__slide {
	position: absolute;
	inset: 0;
	margin: 0;
	opacity: 0;
	transition: opacity .9s ease;
}
.bnr-slideshow__slide.is-active { opacity: 1; }
.bnr-slideshow__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
/* Accroche constante : elle ne suit pas les photos, elle les surplombe. */
.bnr-slideshow__text {
	position: absolute;
	left: 0;
	right: 0;
	top: 44%;
	transform: translateY(-50%);
	margin: 0;
	padding: 0 var(--wp--custom--gutter, 40px);
	text-align: center;
	font-family: var(--wp--preset--font-family--display, "DM Serif Display", serif);
	font-size: clamp(28px, 4.4vw, 52px);
	line-height: 1.08;
	color: var(--wp--preset--color--on-dark, #F4E9DD);
	text-shadow: 0 2px 22px rgba(0, 0, 0, .55);
	pointer-events: none;
}
/* Légende : voile bas — le padding réserve la place des points de navigation. */
.bnr-slideshow__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	margin: 0;
	padding: 46px 28px 40px;
	text-align: center;
	font-size: 14px;
	color: var(--wp--preset--color--on-dark, #F4E9DD);
	background: linear-gradient(transparent, rgba(0, 0, 0, .55));
}
.bnr-slideshow__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	display: flex;
	justify-content: center;
	gap: 9px;
}
.bnr-slideshow__dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .45);
	cursor: pointer;
	transition: background .25s ease, transform .25s ease;
}
.bnr-slideshow__dot:hover { background: rgba(255, 255, 255, .75); }
.bnr-slideshow__dot.is-active {
	background: var(--wp--preset--color--on-dark, #F4E9DD);
	transform: scale(1.2);
}
@media (max-width: 781px) {
	.bnr-slideshow { height: clamp(260px, 62vw, 420px); }
}
/* Sans animation demandée par le visiteur : bascule sèche, le script coupe
   de son côté le défilement automatique. */
@media (prefers-reduced-motion: reduce) {
	.bnr-slideshow__slide,
	.bnr-slideshow__dot { transition: none; }
}

/* ---------- Chaîne produit : exemplaires d'un article (fiche produit) ---------- */
/* Une offre à côté, pas une partie de la fiche : elle se glisse entre le produit et
   ses informations complémentaires. Traitée comme une SECTION du site — surtitre,
   titre d'affichage, filets — et non comme un encadré : un aplat plein en faisait un
   pavé qui écrasait les pièces au lieu de les montrer. Ce sont les photos qui portent
   l'argument, la page se contente de leur faire de la place. */
.bnr-choix {
	margin: 0 0 8px;
}
.bnr-pieces {
	margin: 56px 0 52px;
	padding: 34px 0 6px;
	border-top: 1px solid var(--wp--preset--color--line, #E5DCCF);
}
.bnr-pieces__head {
	margin: 0 0 6px;
}
/* Le surtitre déclenche, sur les directions qui le prévoient, le filet d'accent sous
   le titre de section (`.bnr-eyebrow + h2::after`) : la section se range d'elle-même
   dans la grammaire visuelle du site client. */
.bnr-pieces__eyebrow {
	margin: 0 0 10px;
}
.bnr-pieces__title {
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	/* Même mesure que « Description » et « Produits similaires » : la section des
	   exemplaires est une section de la fiche, ni plus ni moins. */
	font-size: var(--wp--preset--font-size--2xl, 27px);
	font-weight: 400;
	line-height: 1.15;
	margin: 0;
}
.bnr-pieces__intro {
	margin: 14px 0 0;
	max-width: 52ch;
	font-size: var(--wp--preset--font-size--sm, 14px);
	color: var(--wp--preset--color--ink-soft, #4A413C);
}
.bnr-pieces__count {
	display: block;
	margin: 12px 0 0;
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: var(--wp--preset--font-size--xs, 12px);
	letter-spacing: var(--wp--custom--tracking-mono, .12em);
	text-transform: uppercase;
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-choix__axes {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin: 0 0 16px;
}
.bnr-choix__axes label {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: var(--wp--preset--font-size--sm, 13px);
	font-weight: 600;
	min-width: 160px;
}
.bnr-choix__axes select {
	font: inherit;
	font-weight: 400;
	padding: 10px 36px 10px 14px;
	border: 1px solid var(--wp--preset--color--line, #E5DCCF);
	border-radius: var(--wp--custom--radius--md, 12px);
	background: var(--wp--preset--color--surface, #FFFFFF);
	color: var(--wp--preset--color--ink, #2B2118);
}
.bnr-pieces__grid {
	display: grid;
	/* Bornée en haut : avec deux pièces, `1fr` les étirerait sur une demi-page. */
	grid-template-columns: repeat(auto-fill, minmax(200px, 250px));
	justify-content: start;
	gap: 22px;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}
.bnr-piece {
	display: block;
	text-decoration: none;
	color: inherit;
	border: 1px solid var(--wp--preset--color--line, #E5DCCF);
	border-radius: var(--wp--custom--radius--md, 12px);
	background: var(--wp--preset--color--surface, #FFFFFF);
	overflow: hidden;
	transition: box-shadow var(--wp--custom--transition--base, .2s ease), transform var(--wp--custom--transition--base, .2s ease);
}
.bnr-piece:hover {
	box-shadow: var(--wp--custom--shadow--cover-lg, 0 12px 28px rgba(0,0,0,.14));
	transform: translateY(-2px);
}
.bnr-piece__media {
	display: block;
	position: relative;
}
.bnr-piece__img {
	display: block;
	width: 100%;
	/* Sans `height: auto`, l'attribut height="400" de la balise fait loi et
	   `aspect-ratio` ne s'applique jamais : la vignette restait haute de 400 px
	   quelle que soit la largeur de la colonne, et `cover` la recadrait à outrance. */
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	background: var(--wp--preset--color--cream, #F4E9DD);
}
/* Un exemplaire est un objet unique, pas une déclinaison du même article : la
   tuile le dit d'elle-même, hors de tout contexte. */
.bnr-piece__badge {
	position: absolute;
	left: 8px;
	max-width: calc(100% - 16px);
	padding: 3px 9px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-size: var(--wp--preset--font-size--xs, 12px);
	line-height: 1.4;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Posée sur une photo : le contraste ne peut pas dépendre de la palette du site.
   Le slug `on-dark` ne veut pas dire la même chose d'un thème client à l'autre —
   sur Solstice il vaut #2A211B, ce qui donnait un badge noir sur noir. */
.bnr-piece__badge {
	top: 8px;
	background: rgba(0, 0, 0, .72);
	color: #FFFFFF;
}
.bnr-piece__body {
	display: block;
	padding: 10px 12px 12px;
}
.bnr-piece__name {
	display: block;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--sm, 13px);
	line-height: 1.3;
	margin: 0 0 2px;
}
.bnr-piece__var {
	display: block;
	font-size: var(--wp--preset--font-size--xs, 12px);
	color: var(--wp--preset--color--muted, #6B6259);
	margin: 0 0 6px;
}
.bnr-piece__price {
	display: block;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #6A1B2D);
}
.bnr-piece__price del { font-weight: 400; color: var(--wp--preset--color--muted, #6B6259); margin-right: 6px; }
.bnr-pieces__empty {
	margin: 8px 0 0;
	font-size: var(--wp--preset--font-size--sm, 13px);
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-piece-parent {
	margin: 12px 0 0;
	font-size: var(--wp--preset--font-size--sm, 13px);
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-piece-parent a { font-weight: 700; }
.bnr-pieces--soeurs { margin-top: 20px; }

/* ---------- Recherche : « Pas en rayon ? » — titres du catalogue ONIX ---------- */
/* Une section de la page de résultats, même grammaire que celle des exemplaires :
   surtitre, titre d'affichage, filet. Les cartes sont en largeur (couverture à gauche)
   plutôt qu'en tuiles : un titre qu'on ne connaît pas se juge sur son auteur, son
   éditeur et sa disponibilité, pas sur sa seule couverture. */
.bnr-onix {
	margin: 56px 0 0;
	padding: 34px 0 0;
	border-top: 1px solid var(--wp--preset--color--line, #E5DCCF);
}
.bnr-onix__eyebrow {
	margin: 0 0 10px;
}
.bnr-onix__title {
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: var(--wp--preset--font-size--2xl, 27px);
	font-weight: 400;
	line-height: 1.15;
	margin: 0;
}
.bnr-onix__intro {
	margin: 14px 0 0;
	max-width: 62ch;
	font-size: var(--wp--preset--font-size--sm, 14px);
	color: var(--wp--preset--color--ink-soft, #4A413C);
}
/* Échec d'une mise au panier : contraste fixé, surchargeable comme les pastilles. */
.bnr-onix__alert {
	margin: 16px 0 0;
	max-width: 62ch;
	padding: 10px 14px;
	border-left: 4px solid var(--wp--custom--onix--alert-ink, #8A1F1F);
	border-radius: 4px;
	background: var(--wp--custom--onix--alert-bg, #FBEAEA);
	color: var(--wp--custom--onix--alert-ink, #8A1F1F);
	font-size: var(--wp--preset--font-size--sm, 14px);
	font-weight: 600;
}
.bnr-onix__grid {
	display: grid;
	/* `min(100%, …)` : sous 340 px de large, une colonne pleine plutôt qu'un débordement. */
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 18px;
	list-style: none;
	margin: 26px 0 0;
	padding: 0;
}
.bnr-onix__item {
	margin: 0;
}
.bnr-onix-book {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	gap: 16px;
	box-sizing: border-box;
	height: 100%;
	padding: 14px;
	border: 1px solid var(--wp--preset--color--line, #E5DCCF);
	border-radius: var(--wp--custom--radius--md, 12px);
	background: var(--wp--preset--color--surface, #FFFFFF);
	color: var(--wp--preset--color--ink, #2B2118);
}
.bnr-onix-book__img {
	display: block;
	width: 96px;
	/* Même piège que `.bnr-piece__img` : sans `height: auto`, l'attribut height fait loi. */
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 4px;
	background: var(--wp--preset--color--cream, #F4E9DD);
}
.bnr-onix-book__body {
	min-width: 0;
}
.bnr-onix-book__title {
	font-size: var(--wp--preset--font-size--base, 16px);
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	overflow-wrap: anywhere;
}
.bnr-onix-book__author {
	margin: 2px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
}
.bnr-onix-book__meta {
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--xs, 12px);
	line-height: 1.45;
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-onix-book__price {
	margin: 8px 0 0;
	font-weight: 700;
	color: var(--wp--preset--color--primary, #6A1B2D);
}
/* Pastille de disponibilité : contraste fixé ici, pas emprunté à la palette — les
   slugs de couleur ne veulent pas dire la même chose d'un site client à l'autre. Les
   deux teintes restent surchargeables par `settings.custom.onix` du thème. */
.bnr-onix-book__dispo {
	display: inline-block;
	margin: 6px 0 0;
	padding: 2px 9px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-size: var(--wp--preset--font-size--xs, 12px);
	font-weight: 700;
	line-height: 1.5;
}
.bnr-onix-book__dispo.is-achat {
	background: var(--wp--custom--onix--achat-bg, #E4F1E8);
	color: var(--wp--custom--onix--achat-ink, #1F5135);
}
.bnr-onix-book__dispo.is-reservation {
	background: var(--wp--custom--onix--reservation-bg, #F6ECD9);
	color: var(--wp--custom--onix--reservation-ink, #6B4A12);
}
.bnr-onix-book__note {
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--xs, 12px);
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-onix-book__form {
	margin: 10px 0 0;
}
.bnr-onix-book__cta {
	font-size: var(--wp--preset--font-size--sm, 14px);
	padding: 8px 16px;
}
/* Bouton d'action et « Plus de détails » sur une ligne (1.33.0), qui passe à la ligne si la
   carte est étroite. */
.bnr-onix-book__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 10px 0 0;
}
.bnr-onix-book__actions .bnr-onix-book__form {
	margin: 0;
}
.bnr-onix-book__details {
	margin: 0;
	padding: 4px 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--primary, #6A1B2D);
	font: inherit;
	font-size: var(--wp--preset--font-size--sm, 14px);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}
.bnr-onix-book__details:hover,
.bnr-onix-book__details:focus-visible {
	text-decoration-thickness: 2px;
}
.bnr-onix-book__ean {
	margin: 8px 0 0;
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: 11px;
	letter-spacing: .04em;
	color: var(--wp--preset--color--muted, #6B6259);
}
/* Vignettes « En rayon » (1.31.0) : titre et couverture mènent à la fiche. */
.bnr-onix-book__media {
	display: block;
	align-self: start;
}
.bnr-onix-book__title a {
	color: inherit;
	text-decoration: none;
}
.bnr-onix-book__title a:hover,
.bnr-onix-book__title a:focus-visible {
	text-decoration: underline;
}
.bnr-onix-book__dispo.is-stock {
	background: var(--wp--custom--onix--stock-bg, #E4F1E8);
	color: var(--wp--custom--onix--stock-ink, #1F5135);
}
.bnr-onix__more {
	margin: 20px 0 0;
	font-weight: 600;
}
.bnr-onix__pager {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 24px;
	margin: 24px 0 0;
	font-weight: 600;
}
.bnr-onix__pager-page {
	font-weight: 400;
	font-size: var(--wp--preset--font-size--sm, 14px);
	color: var(--wp--preset--color--muted, #6B6259);
}
/* Le reste des résultats (articles, pages, évènements), sous les vignettes. */
.bnr-search__others {
	margin: 56px 0 18px;
	padding: 34px 0 0;
	border-top: 1px solid var(--wp--preset--color--line, #E5DCCF);
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: var(--wp--preset--font-size--xl, 22px);
	font-weight: 400;
	line-height: 1.2;
}
.bnr-onix__foot {
	margin: 18px 0 0;
	max-width: 72ch;
	font-size: var(--wp--preset--font-size--xs, 12px);
	color: var(--wp--preset--color--muted, #6B6259);
}
/* Fenêtre « Plus de détails » (1.33.0) : `popover` natif, posé par le navigateur au-dessus de
   la page (position fixe, centré). Mêmes couleurs fixées que les cartes. */
.bnr-onix-dialog {
	box-sizing: border-box;
	width: min(640px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	margin: auto;
	padding: 26px;
	overflow: auto;
	border: 1px solid var(--wp--preset--color--line, #E5DCCF);
	border-radius: var(--wp--custom--radius--md, 12px);
	background: var(--wp--preset--color--surface, #FFFFFF);
	color: var(--wp--preset--color--ink, #2B2118);
	box-shadow: 0 24px 60px rgba(20, 14, 10, .28);
}
.bnr-onix-dialog::backdrop {
	background: rgba(20, 14, 10, .55);
}
.bnr-onix-dialog__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 36px;
	height: 36px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: var(--wp--preset--color--cream, #F4E9DD);
	color: var(--wp--preset--color--ink, #2B2118);
	font: inherit;
	font-size: 22px;
	line-height: 36px;
	cursor: pointer;
}
.bnr-onix-dialog__close:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary, #6A1B2D);
	outline-offset: 2px;
}
.bnr-onix-dialog__grid {
	display: flex;
	align-items: flex-start;
	gap: 22px;
}
.bnr-onix-dialog__img {
	display: block;
	flex: 0 0 140px;
	width: 140px;
	height: auto;
	aspect-ratio: 2 / 3;
	object-fit: cover;
	border-radius: 4px;
	background: var(--wp--preset--color--cream, #F4E9DD);
}
.bnr-onix-dialog__body {
	flex: 1 1 auto;
	min-width: 0;
}
.bnr-onix-dialog__title {
	margin: 0;
	padding-right: 40px;
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: var(--wp--preset--font-size--xl, 22px);
	font-weight: 400;
	line-height: 1.2;
	overflow-wrap: anywhere;
}
.bnr-onix-dialog__author {
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
}
.bnr-onix-dialog__offer {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 12px 0 0;
}
.bnr-onix-dialog__offer .bnr-onix-book__dispo {
	margin: 0;
}
.bnr-onix-dialog__price {
	font-weight: 700;
	color: var(--wp--preset--color--primary, #6A1B2D);
}
.bnr-onix-dialog__facts {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 4px 16px;
	margin: 16px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
}
.bnr-onix-dialog__facts div {
	display: contents;
}
.bnr-onix-dialog__facts dt {
	color: var(--wp--preset--color--muted, #6B6259);
}
.bnr-onix-dialog__facts dd {
	margin: 0;
	overflow-wrap: anywhere;
}
.bnr-onix-dialog__heading {
	margin: 18px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
	font-weight: 700;
}
.bnr-onix-dialog__summary {
	margin: 6px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
	line-height: 1.6;
	color: var(--wp--preset--color--ink-soft, #4A413C);
}
.bnr-onix-dialog__actions {
	margin: 18px 0 0;
}
@media (max-width: 480px) {
	.bnr-onix-book {
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 12px;
	}
	.bnr-onix-book__img {
		width: 72px;
	}
	.bnr-onix-dialog {
		padding: 18px;
	}
	.bnr-onix-dialog__grid {
		flex-direction: column;
		gap: 14px;
	}
	.bnr-onix-dialog__img {
		flex-basis: auto;
		width: 110px;
	}
}

/* ============================================================================
 * Location d'espaces (bnr/location, 1.39.0)
 * Les états du calendrier portent des couleurs explicites : les slugs de palette
 * n'ont pas le même sens d'un site à l'autre, et « libre / réservé » doit rester
 * lisible partout.
 * ========================================================================== */
.bnr-location {
	--bnr-loc-libre: #2F6B4F;
	--bnr-loc-libre-fond: #E3F1E9;
	--bnr-loc-reserve: #B23A3A;
	--bnr-loc-reserve-fond: #F6E1E1;
	--bnr-loc-ferme: #8A8580;
	--bnr-loc-trait: rgba(0, 0, 0, .14);
	margin: 0 0 40px;
}
.bnr-location [hidden] { display: none !important; }
.bnr-location__fiche {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 28px;
	align-items: start;
	margin-bottom: 22px;
}
.bnr-location__fiche:not(:has(.bnr-location__photo)) { grid-template-columns: 1fr; }
.bnr-location__photo { margin: 0; }
.bnr-location__photo img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 8px;
}
.bnr-location__nom { margin: 0 0 6px; }
.bnr-location__meta {
	margin: 0 0 12px;
	font-size: var(--wp--preset--font-size--sm, 14px);
	opacity: .75;
}
.bnr-location__description p { margin: 0 0 10px; }
.bnr-location__equipements { margin: 0; font-size: var(--wp--preset--font-size--sm, 14px); }
.bnr-location__vide,
.bnr-location__note,
.bnr-location__aide,
.bnr-location__attente {
	margin: 12px 0 0;
	font-size: var(--wp--preset--font-size--sm, 14px);
	opacity: .75;
}
.bnr-location__panneau {
	margin-top: 18px;
	padding: 22px;
	border: 1px solid var(--bnr-loc-trait);
	border-radius: 10px;
}
.bnr-location__tarifs {
	margin: 0 0 20px;
	padding: 0;
	border: 0;
	display: grid;
	gap: 8px;
}
.bnr-location__tarifs legend {
	padding: 0;
	margin-bottom: 8px;
	font-weight: 600;
}
.bnr-location__tarif {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border: 1px solid var(--bnr-loc-trait);
	border-radius: 8px;
	cursor: pointer;
}
.bnr-location__tarif:has(input:checked) { border-color: currentColor; }
.bnr-location__tarif-nom { flex: 1; }
.bnr-location__tarif-prix { font-weight: 600; white-space: nowrap; }
.bnr-location__agenda {
	display: grid;
	grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}
.bnr-location__mois {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
.bnr-location__mois-nom { text-transform: capitalize; }
.bnr-location__nav {
	width: 36px;
	height: 36px;
	border: 1px solid var(--bnr-loc-trait);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}
.bnr-location__nav:disabled { opacity: .3; cursor: default; }
.bnr-location__grille {
	display: grid;
	grid-template-columns: repeat(7, minmax(0, 1fr));
	gap: 4px;
}
.bnr-location__semaine {
	padding-bottom: 4px;
	text-align: center;
	font-size: 12px;
	text-transform: capitalize;
	opacity: .65;
}
.bnr-location__case {
	aspect-ratio: 1;
	min-height: 36px;
	border: 1px solid transparent;
	border-radius: 8px;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}
.bnr-location__case.is-vide { visibility: hidden; }
.bnr-location__case.is-libre,
.bnr-location__case.is-partiel { background: var(--bnr-loc-libre-fond); color: var(--bnr-loc-libre); font-weight: 600; }
.bnr-location__case.is-complet { background: var(--bnr-loc-reserve-fond); color: var(--bnr-loc-reserve); }
.bnr-location__case.is-ferme,
.bnr-location__case.is-passe { color: var(--bnr-loc-ferme); opacity: .55; }
.bnr-location__case:disabled { cursor: default; }
.bnr-location__case.is-partiel:disabled { background: transparent; color: var(--bnr-loc-ferme); font-weight: 400; opacity: .55; }
.bnr-location__case.is-choisi,
.bnr-location__heure.is-choisi { background: var(--bnr-loc-libre); color: #fff; border-color: var(--bnr-loc-libre); }
.bnr-location__case:focus-visible,
.bnr-location__heure:focus-visible,
.bnr-location__nav:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.bnr-location__creneaux-titre { margin: 0 0 10px; font-weight: 600; }
.bnr-location__heures { display: flex; flex-wrap: wrap; gap: 6px; }
.bnr-location__heure {
	min-width: 64px;
	padding: 8px 10px;
	border: 1px solid transparent;
	border-radius: 8px;
	font: inherit;
	font-size: 14px;
	cursor: pointer;
}
.bnr-location__heure.is-libre { background: var(--bnr-loc-libre-fond); color: var(--bnr-loc-libre); font-weight: 600; }
.bnr-location__heure.is-reserve { background: var(--bnr-loc-reserve-fond); color: var(--bnr-loc-reserve); text-decoration: line-through; cursor: default; }
.bnr-location__heure.is-passe { background: transparent; color: var(--bnr-loc-ferme); opacity: .55; text-decoration: line-through; cursor: default; }
.bnr-location__legende {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	margin: 16px 0 0;
	font-size: 12px;
	opacity: .8;
}
.bnr-location__puce {
	display: inline-block;
	width: 12px;
	height: 12px;
	margin-left: 10px;
	border-radius: 3px;
}
.bnr-location__puce:first-child { margin-left: 0; }
.bnr-location__puce.is-libre { background: var(--bnr-loc-libre); }
.bnr-location__puce.is-reserve { background: var(--bnr-loc-reserve); }
.bnr-location__puce.is-ferme { background: var(--bnr-loc-ferme); opacity: .55; }
.bnr-location__recap {
	margin: 20px 0 14px;
	min-height: 24px;
	font-size: var(--wp--preset--font-size--sm, 14px);
}
.bnr-location__recap.is-err { color: var(--bnr-loc-reserve); font-weight: 600; }
.bnr-location__recap.is-ok {
	display: grid;
	gap: 2px;
	padding: 12px 14px;
	border-left: 3px solid var(--bnr-loc-libre);
	background: var(--bnr-loc-libre-fond);
	color: #1F2A24;
}
.bnr-location__recap-quand::first-letter { text-transform: uppercase; }
.bnr-location__recap-prix { font-size: 20px; }
.bnr-location__valider:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 720px) {
	.bnr-location__fiche,
	.bnr-location__agenda { grid-template-columns: 1fr; gap: 18px; }
	.bnr-location__panneau { padding: 16px; }
}
/* Déclarée après les états : un créneau choisi reste plein, même « libre ». */
.bnr-location .bnr-location__case.is-choisi,
.bnr-location .bnr-location__heure.is-choisi { background: var(--bnr-loc-libre); color: #fff; border-color: var(--bnr-loc-libre); }
.bnr-location__duree { margin: 0 0 16px; font-size: var(--wp--preset--font-size--sm, 14px); font-weight: 600; }

/* ============================================================================
   AGENDA « AFFICHE » — bloc bnr/agenda-affiche (page « Nos prochains évènements »)
   Tout est en jetons : la grille est la même sur les quatre boutiques, chaque
   variation lui donne ses couleurs, ses polices et ses rayons. Les pastilles de
   date et de prix débordent la carte, d'où le `overflow: visible` et les marges
   négatives — un `overflow: hidden` sur le lien les rognerait.
   ========================================================================== */
.bnr-ev-affiche { margin: 8px 0 0; }
.bnr-ev-affiche__kinds {
	margin: 0 0 30px;
	text-align: center;
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: var(--wp--preset--font-size--xs, 12px);
	font-weight: 700;
	letter-spacing: var(--wp--custom--tracking-mono, .14em);
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-soft, #57483C);
}
.bnr-ev-affiche__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px 28px;
}
.bnr-ev-card { position: relative; }
.bnr-ev-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
	background: var(--wp--preset--color--surface, #FFFFFF);
	border: 1px solid var(--wp--preset--color--line, #E3C9BC);
	border-radius: var(--wp--custom--radius--md, 20px);
	box-shadow: var(--wp--custom--shadow--card, 0 1px 3px rgba(28,21,24,.08));
	transition: transform var(--wp--custom--transition--base, 180ms ease), box-shadow var(--wp--custom--transition--base, 180ms ease);
}
.bnr-ev-card__link:hover,
.bnr-ev-card__link:focus-visible {
	transform: translateY(-3px);
	box-shadow: var(--wp--custom--shadow--hover, 0 10px 30px rgba(28,21,24,.14));
}
.bnr-ev-card__media { position: relative; display: block; }
.bnr-ev-card__img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: calc(var(--wp--custom--radius--md, 20px) - 1px) calc(var(--wp--custom--radius--md, 20px) - 1px) 0 0;
}
.bnr-ev-card__img--vide { background: var(--wp--custom--card-cover, var(--wp--preset--color--cream, #F4EDE4)); }
.bnr-ev-card__date,
.bnr-ev-card__price {
	position: absolute;
	display: grid;
	place-content: center;
	text-align: center;
	background: var(--wp--preset--color--primary, #6A1B2D);
	color: var(--wp--preset--color--on-primary, #FFFDF8);
	box-shadow: 0 10px 22px -14px rgba(0, 0, 0, .55);
}
.bnr-ev-card__date {
	top: -12px;
	left: -10px;
	width: 74px;
	height: 74px;
	border-radius: 50%;
}
.bnr-ev-card__day,
.bnr-ev-card__month {
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
}
.bnr-ev-card__num {
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: 30px;
	line-height: .95;
}
.bnr-ev-card__date--range .bnr-ev-card__num { font-size: 18px; letter-spacing: -.02em; }
.bnr-ev-card__price {
	right: -8px;
	bottom: -16px;
	min-width: 60px;
	height: 60px;
	padding: 0 12px;
	border-radius: var(--wp--custom--radius--pill, 999px);
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: 19px;
}
/* Entrée libre : la pastille se creuse, le prix n'est pas une promesse de paiement. */
.bnr-ev-card__price--libre {
	width: 74px;
	height: 74px;
	padding: 0 8px;
	background: var(--wp--preset--color--surface, #FFFFFF);
	color: var(--wp--preset--color--primary, #6A1B2D);
	border: 1px solid var(--wp--preset--color--primary, #6A1B2D);
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.5;
	text-transform: uppercase;
}
.bnr-ev-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 28px 22px 18px;
	text-align: center;
}
.bnr-ev-card__kind { display: block; margin-bottom: 8px; }
.bnr-ev-card__title {
	font-family: var(--wp--preset--font-family--display, Georgia, serif);
	font-size: var(--wp--preset--font-size--xl, 23px);
	line-height: var(--wp--custom--line-height--snug, 1.16);
	margin: 0 0 10px;
	color: var(--wp--preset--color--ink, #1C1518);
}
.bnr-ev-card__desc {
	margin: 0 0 18px;
	font-size: var(--wp--preset--font-size--sm, 13px);
	line-height: 1.6;
	color: var(--wp--preset--color--ink-soft, #57483C);
}
.bnr-ev-card__with { font-style: italic; }
.bnr-ev-card__meta {
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--wp--preset--color--line, #E3C9BC);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
	font-family: var(--wp--preset--font-family--mono, ui-monospace, monospace);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--ink-soft, #57483C);
}
.bnr-ev-card__meta > span { display: inline-flex; align-items: center; gap: 6px; }
.bnr-ev-card__ico { width: 13px; height: 13px; flex: none; color: var(--wp--preset--color--primary, #6A1B2D); }
.bnr-ev-card .bnr-badge { align-self: center; margin-top: 12px; }

@media (max-width: 1100px) {
	.bnr-ev-affiche__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
	.bnr-ev-affiche__grid { grid-template-columns: 1fr; gap: 30px; }
}
