/* Betton & Dragons – habillage des VUES d'événements de The Events Calendar
   (/events/, /events/liste/, /events/mois/, /events/aujourdhui/ et les archives
   de catégorie d'événement).

   Aligné sur la charte de la page d'accueil : voir CHARTE-GRAPHIQUE.md.
   Chargée par bd_parties_enqueue_events_style(), qui pose aussi la classe
   `bd-vue-events` sur le <body>.

   Ne PAS confondre avec bd-event.css, qui habille la *fiche* d'un événement
   (is_singular('tribe_events')). Les deux feuilles ne se chargent jamais
   ensemble : une archive n'est pas un contenu singulier. */

body.bd-vue-events {
	--bd-vert: #08403f;
	--bd-vert-clair: rgba(8, 64, 63, .08);
	--bd-terracotta: #c0623e;
	--bd-terracotta-fonce: #a9542f;
	/* v1.29.1 — l'heure d'un événement est écrite en 14 px gras (12 px dans la
	   grille du mois), sous les 18,66 px du « grand texte » : le terracotta de
	   la charte n'y fait que 4,15:1 sur blanc, en dessous du 4,5:1 du critère
	   1.4.3. Le terracotta assombri du survol tient 5,21:1 sur blanc et 4,81:1
	   sur crème. Il est réservé à cet usage — les boutons, eux, portent des
	   libellés blancs sur aplat terracotta et ne sont pas concernés. */
	--bd-heure: #a9542f;
	--bd-noir: #282828;
	--bd-creme: #f6f7e9;
	--bd-filet: #ededed;
	--bd-titre: "Oswald", "Montserrat", sans-serif;
	--bd-texte-police: "Roboto", "Montserrat", sans-serif;
	--bd-rayon: 15px;
}

/* ---------------------------------------------------------------------------
 * 0. Neutraliser le jeu de variables de The Events Calendar
 *
 * Même dispositif que sur la fiche d'événement (bd-event.css §0), et pour la
 * même raison : TEC ne pose presque aucune valeur en dur, ses feuilles
 * consomment 208 variables `--tec-*` déclarées sur `:root`, dont trois sont
 * nommément hors charte (§7) — la pile de polices système
 * `"Helvetica Neue", Helvetica, …`, le gris de texte `#141827` et l'accent
 * bleu `#334aff`.
 *
 * Les vues d'archive en consomment encore plus que la fiche : la barre de
 * navigation, le sélecteur de vue, le sélecteur de dates, les liens de titre
 * et toute la grille du mois sont écrits en `var(--tec-…)`. Redéfinir les
 * variables **racines** sur le `<body>` habille donc d'un coup ce que cette
 * feuille n'énumère pas — états de focus, icônes, bordures, désactivés.
 *
 * Aucune déclaration ne fuit hors des vues d'événement : la feuille n'est mise
 * en file que sur `bd_parties_est_vue_events()` et tout est porté par
 * `body.bd-vue-events`.
 * ------------------------------------------------------------------------ */

body.bd-vue-events {
	/* Police : la pile système de TEC, remplacée par celle de la charte (§2). */
	--tec-font-family-sans-serif: "Roboto", "Montserrat", sans-serif;

	/* Textes : le noir de marque, pas le #141827 de TEC. */
	--tec-color-text-primary: #282828;
	--tec-color-text-primary-light: rgba(40, 40, 40, .62);
	--tec-color-text-secondary: rgba(40, 40, 40, .7);
	--tec-color-text-disabled: rgba(40, 40, 40, .38);
	--tec-color-text-events-title: #08403f;
	--tec-color-text-event-title: #08403f;
	--tec-color-text-event-date: #282828;

	/* Accents : le bleu #334aff devient le terracotta d'action, l'accent
	   secondaire le vert profond d'identité. */
	--tec-color-accent-primary: #c0623e;
	--tec-color-accent-primary-hover: #a9542f;
	--tec-color-accent-primary-active: #a9542f;
	--tec-color-accent-primary-background: rgba(192, 98, 62, .08);
	--tec-color-accent-secondary: #08403f;
	--tec-color-accent-secondary-hover: rgba(8, 64, 63, .8);
	--tec-color-accent-secondary-active: rgba(8, 64, 63, .9);
	--tec-color-accent-secondary-background: rgba(8, 64, 63, .07);

	/* Liens : vert profond au repos, terracotta au survol. */
	--tec-color-link-primary: #08403f;
	--tec-color-link-accent: #c0623e;
	--tec-color-link-accent-hover: #a9542f;

	/* Icônes : plus de gris #5d5d5d ni de focus bleu. */
	--tec-color-icon-primary: #08403f;
	--tec-color-icon-primary-alt: #08403f;
	--tec-color-icon-active: #08403f;
	--tec-color-icon-hover: #c0623e;
	--tec-color-icon-focus: #c0623e;
	--tec-color-icon-disabled: rgba(40, 40, 40, .38);
	--tec-color-event-icon: #08403f;
	--tec-color-event-icon-hover: #c0623e;

	/* Filets : le gris de séparation de la charte (§1). */
	--tec-color-border-default: #ededed;
	--tec-color-border-secondary: #ededed;
	--tec-color-border-tertiary: rgba(8, 64, 63, .3);
	--tec-color-border-hover: #c0623e;
	--tec-color-border-active: #08403f;

	/* Fonds. `--tec-color-background-secondary` est le gris `#f7f6f6` que TEC
	   pose au survol d'une case du mois et sur le sélecteur de dates : il
	   passe au crème de la charte. `--tec-color-background-events` (fond du
	   conteneur) et `--tec-color-background-transparent` (fondu de bas de
	   case) sont laissées d'usine — la première est déjà transparente, la
	   seconde sert un dégradé que le blanc de TEC rend correctement. */
	--tec-color-background: #ffffff;
	--tec-color-background-secondary: #f6f7e9;
	--tec-color-background-secondary-hover: #eff0dd;

	/* Boutons de TEC. */
	--tec-color-button-primary: #c0623e;
	--tec-color-button-primary-hover: #a9542f;
	--tec-color-button-primary-active: #a9542f;
	--tec-color-button-secondary: #08403f;

	/* Numéros de jour de la grille du mois. Ce sont des couleurs de TEXTE,
	   pas de fond : TEC n'expose aucune variable de fond pour le marqueur de
	   jour, l'aplat du jour courant est posé plus bas en CSS (§4). Le blanc
	   ci-dessous est donc la couleur du chiffre sur la pastille terracotta. */
	--tec-color-day-marker-month: #282828;
	--tec-color-day-marker-month-hover: #c0623e;
	--tec-color-day-marker-month-active: #c0623e;
	--tec-color-day-marker-past-month: rgba(40, 40, 40, .45);
	--tec-color-day-marker-current-month: #ffffff;
	--tec-color-day-marker-month-current-hover: #ffffff;
	--tec-color-day-marker-month-current-active: #ffffff;
}

/* ---------------------------------------------------------------------------
 * 1. Mise en page générale
 *
 * Les vues d'événement utilisent le gabarit de page de TEC
 * (`tribe-events-page-template`) : le `<div class="tribe-events-view">` est
 * posé **directement dans `<main id="main">`**, sans le `#content-wrap`
 * d'OceanWP. Il n'hérite donc d'aucune respiration verticale — la liste
 * commençait collée sous l'en-tête de page vert et finissait collée au pied
 * de page, lui aussi vert.
 *
 * Le corps de la page n'a par ailleurs aucune couleur de fond propre : il
 * laisse passer le crème `#F6F7E9` du `<body>`. C'est voulu — les cartes
 * d'événement sont blanches et se détachent dessus, sur le modèle des cartes
 * d'actualité.
 * ------------------------------------------------------------------------ */

body.bd-vue-events .tribe-events-view {
	padding-block: 50px;
	font-family: var(--bd-texte-police);
	color: var(--bd-noir);
}

body.bd-vue-events .tribe-events-l-container {
	max-width: 1200px;
	padding-inline: 20px;
}

/* La sidebar n'est pas rendue par ce gabarit, mais le <body> porte tout de
   même `has-sidebar content-right-sidebar`. Garde-fou au cas où un réglage
   du thème la ferait revenir un jour : le contenu reste centré. */
body.bd-vue-events .tribe-events-view--list,
body.bd-vue-events .tribe-events-view--month,
body.bd-vue-events .tribe-events-view--day {
	width: 100%;
}

/* ---------------------------------------------------------------------------
 * 2. Barre d'en-tête : sélecteur de vue, navigation, sélecteur de dates
 *
 * TEC rend l'en-tête en `flex` `row-reverse wrap` : la barre du haut (titre de
 * période, flèches, « Aujourd'hui ») et le sélecteur de vue sont donc DÉJÀ sur
 * une seule ligne, le second à droite. On en fait une barre d'outils dans un
 * bandeau blanc à rayon 15 px (§4), comme une carte de contenu, ce qui sépare
 * nettement les commandes de la liste qui suit.
 *
 * Refait le 2026-09-11 (1.29.3) : rembourrage et marge basse rétablis (ils
 * étaient écrasés par TEC, cf. plus bas), filet interne parasite retiré,
 * titre de période remis en tête de ligne.
 * ------------------------------------------------------------------------ */

/* ⚠️ `.tribe-events` est indispensable dans le sélecteur, et pas décoratif :
   `views-skeleton.css` pose
   `.tribe-common--breakpoint-medium.tribe-events .tribe-events-header
   { margin: 0; padding: 0 }` en (0,3,0), contre (0,2,1) pour un
   `body.bd-vue-events .tribe-events-header`. Le rembourrage et la marge basse
   écrits ici depuis la 1.29.0 étaient donc MORTS en desktop — mesuré le
   2026-09-11 : le contenu de la carte commençait à 1 px de son propre filet et
   la pastille du mois se collait à son bord inférieur. Ils ne tenaient que
   sous 767 px, où TEC ne pose pas la classe de point de rupture. Le conteneur
   de vue porte les deux classes : (0,3,1) repasse devant. */
body.bd-vue-events .tribe-events .tribe-events-header {
	gap: 14px 24px;
	margin: 0 0 32px;
	padding: 16px 22px;
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
}

/* Le titre de vue est un `<h1>` lecteur d'écran seul dans un conteneur que TEC
   met à 100 % de large : élément flex de hauteur nulle, il prenait une LIGNE
   entière du `flex-wrap` et ajoutait un interligne de 14 px au-dessus de la
   barre d'outils. `display: contents` retire la boîte sans retirer le titre de
   l'arbre d'accessibilité — le `<h1>` est en position absolue hors écran, donc
   il ne devient pas un élément flex à son tour. Un `display: none` aurait
   supprimé le seul H1 de la page. */
body.bd-vue-events .tribe-events .tribe-events-header__content-title {
	display: contents;
}

/* TEC empile deux rangées de 32 px de marge basse dans un en-tête qui est
   pourtant un `flex` en `row-reverse wrap` : sur une seule ligne, ces marges
   ne séparent plus rien et décalaient le contenu vers le haut de la carte
   (14 px au-dessus, 32 px en dessous). Le `gap` de la carte les remplace. */
body.bd-vue-events .tribe-events .tribe-events-header__events-bar,
body.bd-vue-events .tribe-events .tribe-events-header__top-bar {
	margin-bottom: 0;
}

/* ---------- Sélecteur de vue (Liste / Mois / Jour) ---------- */

/* ⚠️ `padding` est une déclaration MORTE en desktop, et c'est volontaire de la
   laisser telle quelle : TEC pose
   `.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-view-selector__button
   { padding: var(--tec-spacer-1) }` en (0,3,0), contre (0,2,1) ici — il gagne,
   et son rembourrage de 8 px convient. Pour reprendre la main il faudrait
   ajouter `.tribe-events` au sélecteur, ce qui élargirait la capsule d'une
   vue déjà recettée. Sous 767 px, la règle du §9 s'applique bien, la media
   query passant devant à spécificité supérieure. Le reste de ce bloc (contour,
   rayon, couleurs, typographie) est actif dans les deux cas. */
body.bd-vue-events .tribe-events-c-view-selector__button {
	padding: 8px 14px;
	border: 1px solid var(--bd-vert);
	border-radius: var(--bd-rayon);
	background: transparent;
	color: var(--bd-vert);
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-c-view-selector__button:hover,
body.bd-vue-events .tribe-events-c-view-selector__button:focus {
	background: var(--bd-vert);
	color: #fff;
}

body.bd-vue-events .tribe-events-c-view-selector__button:hover .tribe-common-c-svgicon__svg-fill,
body.bd-vue-events .tribe-events-c-view-selector__button:focus .tribe-common-c-svgicon__svg-fill {
	fill: #fff;
}

body.bd-vue-events .tribe-events-c-view-selector__content {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	overflow: hidden;
}

body.bd-vue-events .tribe-events-c-view-selector__list-item-link {
	font-family: var(--bd-texte-police);
	font-size: 14px;
	color: var(--bd-noir);
}

body.bd-vue-events .tribe-events-c-view-selector__list-item-link:hover,
body.bd-vue-events .tribe-events-c-view-selector__list-item-link:focus,
body.bd-vue-events .tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link {
	background: var(--bd-creme);
	color: var(--bd-vert);
}

/* ---------- Barre du haut : dates et navigation ---------- */

/* Le filet qui séparait les deux rangées est retiré : elles sont côte à côte,
   pas empilées. Il ne courait que sur la largeur de la barre du haut (1057 px
   sur 1116) et s'arrêtait sous le vide, à gauche du sélecteur de vue. */
body.bd-vue-events .tribe-events .tribe-events-c-top-bar {
	gap: 12px;
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

/* Le libellé de période est le titre visible de la vue : il passe en tête de
   la barre d'outils, devant les flèches et « Aujourd'hui », que la marge
   automatique de TEC repousse alors contre le sélecteur de vue. Sans cet
   `order`, le titre sortait en troisième position, après deux commandes. */
body.bd-vue-events .tribe-events-c-top-bar__datepicker {
	order: -1;
}

/* Le libellé de période (« À venir », « septembre 2026 ») est le vrai titre
   visible de la vue : il passe en Oswald majuscules vert profond (§2). */
/* Même piège : le bouton porte `tribe-common-h3`, dont la taille est posée en
   (0,3,0). Les 22 px écrits en 1.29.0 n'ont jamais rien donné, le libellé sort
   en 28 px. On garde ces 28 px — entre le H1 de 40 px de l'en-tête de page et
   les 24 px des titres d'événement, la hiérarchie est juste — mais on les
   écrit explicitement, avec le sélecteur qui gagne : une valeur subie n'est
   pas une valeur choisie. */
body.bd-vue-events .tribe-common .tribe-events-c-top-bar__datepicker-button {
	font-family: var(--bd-titre);
	font-size: 28px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bd-vert);
}

body.bd-vue-events .tribe-events-c-top-bar__datepicker-button:hover,
body.bd-vue-events .tribe-events-c-top-bar__datepicker-button:focus {
	color: var(--bd-terracotta);
}

body.bd-vue-events .tribe-events-c-top-bar__datepicker-button .tribe-events-c-top-bar__datepicker-time {
	color: inherit;
}

/* Flèches précédent / suivant : pastilles rondes (§4, rayon 100 px). */
body.bd-vue-events .tribe-events-c-top-bar__nav-link {
	width: 34px;
	height: 34px;
	border: 1px solid var(--bd-filet);
	border-radius: 100px;
	background: #fff;
}

body.bd-vue-events .tribe-events-c-top-bar__nav-link:not([disabled]):hover,
body.bd-vue-events .tribe-events-c-top-bar__nav-link:not([disabled]):focus {
	border-color: var(--bd-terracotta);
	background: var(--bd-terracotta);
}

body.bd-vue-events .tribe-events-c-top-bar__nav-link:not([disabled]):hover .tribe-common-c-svgicon__svg-fill,
body.bd-vue-events .tribe-events-c-top-bar__nav-link:not([disabled]):focus .tribe-common-c-svgicon__svg-fill {
	fill: #fff;
}

body.bd-vue-events .tribe-events-c-top-bar__nav-link[disabled] {
	opacity: .5;
}

/* Bouton « Aujourd'hui » : bouton secondaire de la charte (contour vert). */
body.bd-vue-events .tribe-events-c-top-bar__today-button {
	padding: 8px 20px;
	border: 1px solid var(--bd-vert);
	border-radius: var(--bd-rayon);
	background: transparent;
	color: var(--bd-vert);
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-c-top-bar__today-button:hover,
body.bd-vue-events .tribe-events-c-top-bar__today-button:focus {
	background: var(--bd-vert);
	color: #fff;
}

/* Sélecteur de dates déroulant (bootstrap-datepicker), rendu en JS. */
body.bd-vue-events .datepicker.dropdown-menu {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	font-family: var(--bd-texte-police);
}

body.bd-vue-events .datepicker td.active,
body.bd-vue-events .datepicker td.active:hover {
	background: var(--bd-terracotta);
	color: #fff;
}

body.bd-vue-events .datepicker td.today {
	background: var(--bd-creme);
	color: var(--bd-vert);
}

/* ---------------------------------------------------------------------------
 * 3. Vue LISTE
 * ------------------------------------------------------------------------ */

/* ---------- Séparateur de mois ---------- */

/* Le séparateur est un titre de section de la liste, pas un badge. La pastille
   verte posée en 1.29.0 répétait l'aplat des pastilles de date de chaque
   événement, trois centimètres plus bas et dans la même colonne : deux blocs
   verts de même famille pour deux natures d'information différentes. Il passe
   en titre de section de la charte (§2 : Oswald 600 majuscules, `ls 1px`, vert
   profond) prolongé d'un filet — le dessin classique du séparateur, et celui
   que TEC dessine déjà. La marge basse est laissée à TEC, qui pose
   `.month-separator + .event-row { margin-top: var(--tec-spacer-8) }`. */
body.bd-vue-events .tribe-events-calendar-list__month-separator {
	margin: 48px 0 0;
	border-top: 0;
}

/* `::after` est le filet de TEC (`flex: 1 1 auto`, 1 px, 20 px de retrait),
   masqué jusqu'ici. Il est repris tel quel, seule sa couleur est reprise à la
   charte : rien à construire, le balisage porte déjà l'élément. */
body.bd-vue-events .tribe-events-calendar-list__month-separator::after {
	display: block;
	height: 1px;
	margin-left: 20px;
	background-color: var(--bd-filet);
}

/* ⚠️ `.tribe-common` dans le sélecteur pour la même raison que `.tribe-events`
   sur l'en-tête : le `<time>` porte `tribe-common-h7 tribe-common-h6--min-medium`
   et `common-full.css` pose
   `.tribe-common--breakpoint-medium.tribe-common .tribe-common-h6--min-medium
   { font-size: var(--tec-font-size-3) }` en (0,3,0). La taille écrite ici en
   (0,2,1) était morte : mesurée à 16 px au lieu des 20 px annoncés — et déjà
   au lieu des 15 px de la 1.29.0, le défaut est donc antérieur à cette
   refonte. (0,3,1) reprend la main. */
body.bd-vue-events .tribe-common .tribe-events-calendar-list__month-separator-text {
	display: inline-block;
	padding: 0;
	border-radius: 0;
	background: none;
	color: var(--bd-vert);
	font-family: var(--bd-titre);
	font-size: 20px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
	line-height: 1.2;
}

/* Le premier séparateur ouvre la liste : pas de marge haute superflue. */
body.bd-vue-events .tribe-events-calendar-list > .tribe-events-calendar-list__month-separator:first-child {
	margin-top: 0;
}

/* ---------- Carte d'un événement ----------
   TEC rend chaque entrée en deux colonnes de sa propre grille : une pastille
   de date (`__event-date-tag`) et le corps (`__event-wrapper`). On garde sa
   répartition et on transforme le corps en carte blanche, sur le modèle des
   cartes d'actualité — aplat blanc, rayon 15 px, filet #EDEDED, pas d'ombre
   marquée (§4). */

body.bd-vue-events .tribe-events-calendar-list__event-row {
	margin-bottom: 20px;
	padding-bottom: 0;
	border-bottom: 0;
}

body.bd-vue-events .tribe-events-calendar-list__event-date-tag {
	padding-top: 0;
}

/* `display: inline-flex` et non `flex` : la cellule de grille de TEC étire ses
   enfants, et la « pastille » sortait en bandeau vertical de 74 × 244 px — la
   hauteur de la carte, 304 px sur celles qui portent une image. En inline-flex
   elle reprend la hauteur de son contenu et se cale en haut. */
body.bd-vue-events .tribe-events-calendar-list__event-date-tag-datetime {
	display: inline-flex;
	align-self: flex-start;
	height: auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 74px;
	padding: 10px 0 12px;
	border-radius: var(--bd-rayon);
	background: var(--bd-vert);
	color: #fff;
}

body.bd-vue-events .tribe-events-calendar-list__event-date-tag-weekday {
	margin-bottom: 2px;
	color: rgba(255, 255, 255, .8);
	font-family: var(--bd-texte-police);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-calendar-list__event-date-tag-daynum {
	color: #fff;
	font-family: var(--bd-titre);
	font-size: 30px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-calendar-list__event {
	margin: 0;
	padding: 22px 26px;
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	transition: border-color .2s ease, box-shadow .2s ease;
}

body.bd-vue-events .tribe-events-calendar-list__event:hover,
body.bd-vue-events .tribe-events-calendar-list__event:focus-within {
	border-color: var(--bd-terracotta);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .07);
}

/* ---------- Titre ---------- */

body.bd-vue-events .tribe-events-calendar-list__event-title {
	margin: 0 0 8px;
	font-family: var(--bd-titre);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-calendar-list__event-title-link,
body.bd-vue-events .tribe-events-calendar-list__event-title-link:visited {
	color: var(--bd-vert);
	border-bottom: 0;
	box-shadow: none;
	text-decoration: none;
}

body.bd-vue-events .tribe-events-calendar-list__event-title-link:hover,
body.bd-vue-events .tribe-events-calendar-list__event-title-link:focus {
	color: var(--bd-terracotta);
	border-bottom: 0;
	box-shadow: none;
}

/* ---------- Date, heure, lieu ---------- */

body.bd-vue-events .tribe-events-calendar-list__event-datetime-wrapper {
	margin-bottom: 6px;
}

body.bd-vue-events .tribe-events-calendar-list__event-datetime {
	font-family: var(--bd-texte-police);
	font-size: 14px;
	font-weight: 700;
	color: var(--bd-heure);
}

body.bd-vue-events .tribe-events-calendar-list__event-venue {
	margin-bottom: 10px;
	font-family: var(--bd-texte-police);
	font-size: 14px;
	font-style: normal;
	color: rgba(40, 40, 40, .7);
}

body.bd-vue-events .tribe-events-calendar-list__event-venue-title {
	color: var(--bd-noir);
}

/* ---------- Description ---------- */

body.bd-vue-events .tribe-events-calendar-list__event-description {
	font-family: var(--bd-texte-police);
	font-size: 15px;
	line-height: 1.7;
	color: var(--bd-noir);
}

body.bd-vue-events .tribe-events-calendar-list__event-description p {
	margin-bottom: .6em;
}

body.bd-vue-events .tribe-events-calendar-list__event-description a {
	color: var(--bd-terracotta);
}

/* ---------- Image à la une ----------
   Les visuels de parties ne sont pas au même format (affiche carrée de
   « Sakura Onsen », paysage de « Naheulbeuk ») : on impose un format 4/3
   recadré en `cover` — dans une liste, une vignette régulière vaut mieux
   qu'une hauteur de carte qui saute d'une ligne à l'autre. Le recadrage n'est
   pas un problème ici, contrairement à la fiche d'événement où l'affiche
   porte du texte : la fiche, elle, garde le visuel entier. */

body.bd-vue-events .tribe-events-calendar-list__event-featured-image-wrapper {
	margin-bottom: 0;
}

body.bd-vue-events .tribe-events-calendar-list__event-featured-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--bd-rayon);
}

/* ---------- Appel à l'action et places restantes ----------
   TEC rend « Réserver » et le tarif dans un `__event-cost` en petits
   caractères. Le lien devient le bouton de la charte (§3) et les places
   restantes une pastille, comme les compteurs de la page d'accueil. */

body.bd-vue-events .tribe-events-calendar-list__event-cost {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-top: 14px;
}

body.bd-vue-events .tribe-events-c-small-cta__link {
	padding: 10px 28px;
	border: 0;
	border-radius: var(--bd-rayon);
	background: var(--bd-terracotta);
	color: #fff;
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	text-decoration: none;
	box-shadow: none;
}

body.bd-vue-events .tribe-events-c-small-cta__link:hover,
body.bd-vue-events .tribe-events-c-small-cta__link:focus {
	background: #fff;
	color: var(--bd-vert);
	box-shadow: inset 0 0 0 1px var(--bd-vert);
}

body.bd-vue-events .tribe-events-c-small-cta__price,
body.bd-vue-events .tribe-events-c-small-cta__stock {
	padding: 5px 14px;
	border-radius: 100px;
	background: var(--bd-creme);
	border: 1px solid var(--bd-filet);
	font-family: var(--bd-texte-police);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bd-vert);
}

/* ---------- Message « aucun événement » ---------- */

body.bd-vue-events .tribe-events-c-messages__message {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	font-family: var(--bd-texte-police);
	color: var(--bd-noir);
}

/* ---------------------------------------------------------------------------
 * 4. Vue MOIS
 *
 * La grille du mois reprend le dessin retenu pour les calendriers Simple
 * Calendar (bd-simcal.css) : en-tête de jours en vert profond, cellules
 * blanches sur filets gris, jour courant marqué en terracotta.
 * ------------------------------------------------------------------------ */

body.bd-vue-events .tribe-events-calendar-month {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	overflow: hidden;
}

body.bd-vue-events .tribe-events-calendar-month__header-column {
	padding: 12px 0;
	background: var(--bd-vert);
	border: 0;
}

body.bd-vue-events .tribe-events-calendar-month__header-column-title {
	color: #fff;
	font-family: var(--bd-titre);
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-calendar-month__day {
	border-color: var(--bd-filet);
	background: #fff;
}

body.bd-vue-events .tribe-events-calendar-month__day--past {
	background: rgba(246, 247, 233, .5);
}

body.bd-vue-events .tribe-events-calendar-month__day--other-month {
	background: var(--bd-creme);
}

body.bd-vue-events .tribe-events-calendar-month__day-date {
	font-family: var(--bd-titre);
	font-weight: 600;
	color: var(--bd-noir);
}

body.bd-vue-events .tribe-events-calendar-month__day-date-daynum,
body.bd-vue-events .tribe-events-calendar-month__day-date-link {
	color: var(--bd-noir);
	font-family: var(--bd-titre);
	font-weight: 600;
	border-bottom: 0;
	box-shadow: none;
	text-decoration: none;
}

body.bd-vue-events .tribe-events-calendar-month__day-date-link:hover,
body.bd-vue-events .tribe-events-calendar-month__day-date-link:focus {
	color: var(--bd-terracotta);
}

/* Jour courant : pastille terracotta pleine (§4, rayon 100 px).
   L'aplat est posé sur le `<time class="…__day-date-daynum">`, qui est
   l'élément constant : le `<a class="…__day-date-link">` n'est rendu DANS ce
   `<time>` que les jours qui portent un événement. Poser la pastille sur les
   deux en ferait deux imbriquées. */
body.bd-vue-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	padding: 0 6px;
	border-radius: 100px;
	background: var(--bd-terracotta);
	color: #fff;
}

body.bd-vue-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link {
	color: #fff;
	border-bottom: 0;
}

/* Titres d'événement dans une case : Oswald, vert, sans majuscules — à cette
   taille les capitales espacées deviennent illisibles (charte §2 : les
   majuscules valent pour les titres, pas pour les libellés serrés). */
body.bd-vue-events .tribe-events-calendar-month__calendar-event-title {
	margin-bottom: 2px;
	font-family: var(--bd-titre);
	font-size: 14px;
	font-weight: 500;
	line-height: 1.25;
	letter-spacing: .3px;
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-title-link,
body.bd-vue-events .tribe-events-calendar-month__calendar-event-title-link:visited {
	color: var(--bd-vert);
	border-bottom: 0;
	box-shadow: none;
	text-decoration: none;
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-title-link:hover,
body.bd-vue-events .tribe-events-calendar-month__calendar-event-title-link:focus {
	color: var(--bd-terracotta);
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-datetime {
	font-family: var(--bd-texte-police);
	font-size: 12px;
	font-weight: 700;
	color: var(--bd-heure);
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event {
	padding-left: 10px;
	border-left: 3px solid var(--bd-terracotta);
}

/* Cartouche détaillé ouvert au survol / au clic sur une case. */
body.bd-vue-events .tribe-events-calendar-month__multiday-event-bar-inner {
	border-radius: var(--bd-rayon);
	background: var(--bd-vert-clair);
}

body.bd-vue-events .tribe-events-calendar-month__multiday-event-bar-title {
	font-family: var(--bd-titre);
	font-weight: 500;
	color: var(--bd-vert);
}

/* Infobulle ouverte au survol d'un titre dans une case (tooltipster). */
body.bd-vue-events .tribe-events-calendar-month__calendar-event-tooltip,
body.bd-vue-events .tribe-events-tooltip-theme .tooltipster-box {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	font-family: var(--bd-texte-police);
	color: var(--bd-noir);
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-tooltip-title {
	font-family: var(--bd-titre);
	font-size: 16px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .5px;
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-tooltip-title-link {
	color: var(--bd-vert);
	border-bottom: 0;
}

body.bd-vue-events .tribe-events-calendar-month__calendar-event-tooltip-datetime {
	font-weight: 700;
	color: var(--bd-heure);
}

/* Repli mobile : la liste des événements du jour sélectionné. */
body.bd-vue-events .tribe-events-calendar-month-mobile-events__mobile-day {
	border-top: 1px solid var(--bd-filet);
}

/* Les cartes de cette liste reprennent le dessin de celles de la vue liste :
   c'est le même contenu, au même niveau de lecture, sur le même fond. */
body.bd-vue-events .tribe-events-calendar-month-mobile-events__mobile-event {
	margin-bottom: 12px;
	padding: 16px 18px;
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
}

body.bd-vue-events .tribe-events-calendar-month-mobile-events__mobile-event-title {
	font-family: var(--bd-titre);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .5px;
}

body.bd-vue-events .tribe-events-calendar-month-mobile-events__mobile-event-title-link {
	color: var(--bd-vert);
	border-bottom: 0;
}

/* Seule heure du lot à être restée au gris d'usine de TEC : elle suit les
   quatre autres (v1.29.2). */
body.bd-vue-events .tribe-events-calendar-month-mobile-events__mobile-event-datetime {
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	color: var(--bd-heure);
}

/* ---------------------------------------------------------------------------
 * 5. Vue JOUR
 *
 * Elle partage l'essentiel du vocabulaire de la vue liste, à un préfixe près.
 * ------------------------------------------------------------------------ */

body.bd-vue-events .tribe-events-calendar-day__event-row {
	margin-bottom: 20px;
	padding-bottom: 0;
	border-bottom: 0;
}

body.bd-vue-events .tribe-events-calendar-day__event {
	margin: 0;
	padding: 22px 26px;
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
}

body.bd-vue-events .tribe-events-calendar-day__event:hover,
body.bd-vue-events .tribe-events-calendar-day__event:focus-within {
	border-color: var(--bd-terracotta);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .07);
}

body.bd-vue-events .tribe-events-calendar-day__event-title {
	margin: 0 0 8px;
	font-family: var(--bd-titre);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: 1px;
}

body.bd-vue-events .tribe-events-calendar-day__event-title-link,
body.bd-vue-events .tribe-events-calendar-day__event-title-link:visited {
	color: var(--bd-vert);
	border-bottom: 0;
	box-shadow: none;
	text-decoration: none;
}

body.bd-vue-events .tribe-events-calendar-day__event-title-link:hover,
body.bd-vue-events .tribe-events-calendar-day__event-title-link:focus {
	color: var(--bd-terracotta);
}

body.bd-vue-events .tribe-events-calendar-day__event-datetime {
	font-family: var(--bd-texte-police);
	font-size: 14px;
	font-weight: 700;
	color: var(--bd-heure);
}

body.bd-vue-events .tribe-events-calendar-day__event-venue {
	font-family: var(--bd-texte-police);
	font-size: 14px;
	font-style: normal;
	color: rgba(40, 40, 40, .7);
}

body.bd-vue-events .tribe-events-calendar-day__event-featured-image {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--bd-rayon);
}

/* ---------------------------------------------------------------------------
 * 6. Navigation de bas de page
 * ------------------------------------------------------------------------ */

body.bd-vue-events .tribe-events-c-nav {
	margin-top: 36px;
	padding-top: 22px;
	border-top: 1px solid var(--bd-filet);
}

body.bd-vue-events .tribe-events-c-nav__list {
	align-items: center;
}

body.bd-vue-events .tribe-events-c-nav__prev,
body.bd-vue-events .tribe-events-c-nav__next {
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bd-vert);
	border-bottom: 0;
	box-shadow: none;
	text-decoration: none;
}

body.bd-vue-events .tribe-events-c-nav__prev:not([disabled]):hover,
body.bd-vue-events .tribe-events-c-nav__prev:not([disabled]):focus,
body.bd-vue-events .tribe-events-c-nav__next:not([disabled]):hover,
body.bd-vue-events .tribe-events-c-nav__next:not([disabled]):focus {
	color: var(--bd-terracotta);
}

body.bd-vue-events .tribe-events-c-nav__prev[disabled],
body.bd-vue-events .tribe-events-c-nav__next[disabled] {
	color: rgba(40, 40, 40, .38);
}

body.bd-vue-events .tribe-events-c-nav__today {
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bd-terracotta);
	border-bottom: 0;
}

/* ---------------------------------------------------------------------------
 * 7. « S'abonner au calendrier »
 *
 * Repris tel quel de bd-event.css : c'est le même composant, au même endroit
 * de la page, et il doit se lire comme le même bouton secondaire.
 * ------------------------------------------------------------------------ */

body.bd-vue-events .tribe-events-c-subscribe-dropdown__container {
	margin-top: 28px;
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__button {
	border: 1px solid var(--bd-vert);
	border-radius: var(--bd-rayon);
	background: transparent;
	color: var(--bd-vert);
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__button-text {
	font-family: var(--bd-texte-police);
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: var(--bd-vert);
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:hover,
body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:focus-within {
	background: var(--bd-vert);
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:hover .tribe-events-c-subscribe-dropdown__button-text,
body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:focus-within .tribe-events-c-subscribe-dropdown__button-text {
	color: #fff;
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:hover .tribe-common-c-svgicon__svg-fill,
body.bd-vue-events .tribe-events-c-subscribe-dropdown__button:focus-within .tribe-common-c-svgicon__svg-fill {
	fill: #fff;
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__content {
	border: 1px solid var(--bd-filet);
	border-radius: var(--bd-rayon);
	background: #fff;
	overflow: hidden;
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__list-item-link {
	font-family: var(--bd-texte-police);
	font-size: 14px;
	color: var(--bd-noir);
	border-bottom: 0;
}

body.bd-vue-events .tribe-events-c-subscribe-dropdown__list-item-link:hover,
body.bd-vue-events .tribe-events-c-subscribe-dropdown__list-item-link:focus {
	background: var(--bd-creme);
	color: var(--bd-vert);
}

/* ---------------------------------------------------------------------------
 * 8. En-tête de page : le titre ne doit pas passer sous le fil d'Ariane
 *
 * Même défaut que sur la fiche d'événement (bd-event.css) : OceanWP pose le
 * fil d'Ariane en `position: absolute` dans un `.page-header-inner` relatif,
 * le `<h1>` occupe les 1200 px du conteneur, et les deux se recouvrent dès que
 * le titre est long. « Évènements » est court, mais les archives de catégorie
 * titrent avec le nom du terme (« FAITES DES JEUX », « one-shot / essai »).
 *
 * Uniquement au-dessus de 959 px : sous ce seuil OceanWP repasse le fil dans
 * le flux, et la borne y réduirait le titre à une colonne de quelques mots.
 * ------------------------------------------------------------------------ */

@media only screen and (min-width: 960px) {
	html body.bd-vue-events .page-header .page-header-inner .page-header-title {
		max-width: calc(50% - 24px);
	}
}

/* ---------------------------------------------------------------------------
 * 9. Mobile
 * ------------------------------------------------------------------------ */

@media only screen and (max-width: 767px) {
	body.bd-vue-events .tribe-events-view {
		padding-block: 30px;
	}

	/* `.tribe-events` ici aussi : sans lui, la règle desktop en (0,3,1) passe
	   devant celle-ci, qui ne vaut que (0,2,1) malgré la media query — les
	   requêtes de média n'ajoutent rien à la spécificité. */
	body.bd-vue-events .tribe-events .tribe-events-header {
		padding: 14px 16px;
	}

	body.bd-vue-events .tribe-common .tribe-events-c-top-bar__datepicker-button {
		font-size: 22px;
	}

	body.bd-vue-events .tribe-events-calendar-list__month-separator {
		margin-top: 36px;
	}

	body.bd-vue-events .tribe-common .tribe-events-calendar-list__month-separator-text {
		font-size: 18px;
	}

	body.bd-vue-events .tribe-events-calendar-list__event {
		padding: 18px 18px;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-title,
	body.bd-vue-events .tribe-events-calendar-day__event-title {
		font-size: 19px;
	}

	/* ⚠️ La pastille de date passe en bandeau horizontal — et cela suppose de
	   casser la rangée AVANT de toucher à la pastille. TEC ne repasse pas la
	   liste en colonne sous 767 px : `.tribe-events-calendar-list__event-row`
	   reste une rangée flex et la cellule de date garde les 54 px que lui
	   donne `tribe-common-g-col`. Un `width: auto` posé sur le seul enfant est
	   alors sans effet : mesuré à 390 px, l'aplat vert sortait en gélule
	   VERTICALE de 54 × 206 px pendant que « ven » et « 25 » débordaient de
	   part et d'autre, le second passant sous la carte blanche. C'est la
	   rangée et la cellule qu'il faut libérer. */
	body.bd-vue-events .tribe-events-calendar-list__event-row {
		flex-direction: column;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-date-tag,
	body.bd-vue-events .tribe-events-calendar-list__event-wrapper {
		flex: 0 0 auto;
		width: 100%;
		max-width: 100%;
		padding-right: 0;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-date-tag {
		margin-bottom: 10px;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-date-tag-datetime {
		flex-direction: row;
		align-items: baseline;
		gap: 8px;
		width: auto;
		padding: 6px 16px;
		border-radius: 100px;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-date-tag-weekday {
		margin-bottom: 0;
	}

	body.bd-vue-events .tribe-events-calendar-list__event-date-tag-daynum {
		font-size: 20px;
	}

	/* Le bouton en pleine largeur, c'est son CONTENEUR qu'il faut élargir :
	   TEC fixe `.tribe-events-c-small-cta` à `flex: 0 1 auto`, soit 216 px
	   dans une colonne de 258 px. Un `width: 100 %` sur le seul lien ne
	   dépassait donc jamais ces 216 px. */
	body.bd-vue-events .tribe-events-c-small-cta {
		flex: 1 1 100%;
		width: 100%;
	}

	body.bd-vue-events .tribe-events-c-small-cta__link {
		width: 100%;
		text-align: center;
	}

	/* Sélecteur de vue : TEC masque le libellé en 1 × 1 px (classe a11y) et
	   son icône sort à 0 × 0 sous ce seuil — le bouton s'affichait comme une
	   capsule vide, non identifiable. On rend l'icône, seul repère qui reste.
	
	   ⚠️ Et il faut **libérer la largeur en même temps**. TEC pose
	   `width: 100 %` sur le bouton, dont le parent ne fait que 29 px tant que
	   l'icône est à zéro : rendre l'icône sans toucher à la largeur donnait
	   18 px de dessin plus 28 px de rembourrage dans une boîte de 30 px en
	   `border-box`, soit une icône qui débordait de 3 px du contour vert.
	   Tout passe en `width: auto` — la capsule se dimensionne sur son contenu,
	   sans qu'aucune largeur ne soit devinée ici (le chevron d'ouverture est
	   rendu ou non selon les cas). */
	body.bd-vue-events .tribe-events-c-events-bar__views,
	body.bd-vue-events .tribe-events-c-view-selector {
		flex: 0 0 auto;
		width: auto;
	}

	body.bd-vue-events .tribe-events-c-view-selector__button {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 6px;
		width: auto;
		padding: 8px 12px;
	}

	body.bd-vue-events .tribe-events-c-view-selector__button-icon {
		width: auto;
		height: auto;
	}

	body.bd-vue-events .tribe-events-c-view-selector__button-icon-svg {
		width: 18px;
		height: 18px;
	}
}
