/* ==========================================================================
   Boutemont — Agenda 4
   Frise de saison (accueil) · Saison mois par mois (Actualités) · Fiche
   Toutes les couleurs sont des variables : les réglages Elementor les
   remplacent sans conflit de priorité.
   ========================================================================== */

.bag4 {
	--bag-serif: 'EB Garamond', Georgia, serif;
	--bag-sans: 'Open Sans', system-ui, sans-serif;
	--bag-radius: 10px;
	--bag-gap: 24px;
	--bag-per: 4;
	--bag-cols: 3;
	--bag-sticky: 0px;
	--bag-ratio: 16 / 9;
	--bag-action: #B1CF9F;
	--bag-action-ink: #323533;
	--bag-stamp-bg: #FFFFFF;
	--bag-stamp-ink: var(--bag-ink, #323533);
	--bag-stamp-month: #A3803A;

	box-sizing: border-box;
	width: 100%;
	container-type: inline-size;
	background: var(--bag-bg);
	color: var(--bag-text, #3D463B);
	font-family: var(--bag-sans);
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}

/* 4.0.6 — Dans un conteneur Elementor en ligne (cas du mobile), le widget
   prenait la largeur de son contenu : la frise se calculait sur une largeur
   fausse et laissait un grand vide. Le widget occupe toujours toute la ligne. */
.elementor-element[class*="elementor-widget-boutemont_agenda"] {
	width: 100%;
	max-width: 100%;
}

/* 4.0.5 — Les widgets sont des <section> : certains thèmes leur donnent une
   marge ou une hauteur minimale (grand vide sous la frise sur mobile). */
section.bag4,
.elementor-widget-container > .bag4,
.bag4.bag4 {
	float: none !important;
	height: auto !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
}

.elementor-widget-container:has(> .bag4) {
	margin: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}

.bag4 *,
.bag4 *::before,
.bag4 *::after {
	box-sizing: border-box;
}

.bag4 a {
	text-decoration: none;
	color: inherit;
}

.bag4 a:focus-visible,
.bag4 button:focus-visible,
.bag4 .bag4-frise__viewport:focus-visible {
	outline: 2px solid var(--bag-accent);
	outline-offset: 3px;
}

.bag4 ul,
.bag4 ol {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bag4 .bag4__eyebrow {
	display: block;
	font-family: var(--bag-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.22em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4__title {
	margin: 0;
	padding: 0;
	font-family: var(--bag-serif);
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: 0;
	text-transform: none;
	color: var(--bag-title, var(--bag-ink));
}

.bag4 .bag4__cat {
	display: block;
	font-family: var(--bag-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
	color: var(--bag-cat);
}

.bag4 .bag4__meta {
	display: block;
	font-family: var(--bag-sans);
	font-size: 13px;
	line-height: 1.45;
	color: var(--bag-meta, var(--bag-text));
}

.bag4 .bag4__meta--strong {
	font-size: 14px;
	font-weight: 600;
}

.bag4 .bag4__link,
.bag4 .bag4__more {
	font-family: var(--bag-sans);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--bag-cat);
	transition: opacity 0.2s ease;
}

.bag4 a.bag4__link:hover {
	opacity: 0.75;
}

.bag4 .bag4__empty {
	margin: 0;
	font-size: 15px;
	color: var(--bag-meta, var(--bag-text));
}

/* Photos et emplacements ------------------------------------------------ */

.bag4 .bag4-media {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: var(--bag-radius);
	background: rgba(10, 46, 28, 0.08);
}

.bag4 .bag4-media img,
.bag4 .bag4-media__img,
.bag4.bag4 .bag4-media img.bag4-media__img {
	position: absolute !important;
	top: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	left: 0 !important;
	display: block;
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;
	height: 100% !important;
	min-height: 0 !important;
	max-height: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	aspect-ratio: auto !important;
	object-fit: cover !important;
	object-position: center;
	transition: transform 0.6s ease;
}

.bag4 .bag4-media picture {
	position: absolute;
	inset: 0;
	display: block;
}

.bag4 .bag4-media__ph {
	position: absolute;
	inset: 0;
	background:
		radial-gradient(120% 90% at 30% 20%, rgba(255, 255, 255, 0.28), transparent 60%),
		var(--bag-tone, #C7D2BD);
}

.bag4 a:hover .bag4-media img {
	transform: scale(1.035);
}

/* Plaque de date */

.bag4 .bag4-stamp {
	position: absolute;
	left: 14px;
	bottom: 14px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	min-width: 58px;
	padding: 10px 14px 9px;
	border-radius: 8px;
	background: var(--bag-stamp-bg);
	box-shadow: 0 6px 18px rgba(10, 46, 28, 0.14);
}

.bag4 .bag4-stamp__day {
	font-family: var(--bag-serif);
	font-size: 34px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	color: var(--bag-stamp-ink);
}

.bag4 .bag4-stamp__month {
	margin-top: 3px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--bag-stamp-month);
}

/* ==========================================================================
   1. Accueil — la frise de saison
   ========================================================================== */

.bag4-frise {
	--bag-bg: #0A2E1C;
	--bag-accent: #C9A961;
	--bag-title: #FFFFFF;
	--bag-cat: #B1CF9F;
	--bag-meta: rgba(244, 241, 231, 0.72);
	--bag-line: rgba(244, 241, 231, 0.22);
	--bag-stamp-bg: #F4F1E7;
	--bag-stamp-ink: #323533;
	--bag-stamp-month: #A3803A;

	padding: var(--bag-pad, 64px 56px 60px);
}

.bag4-frise > * {
	max-width: var(--bag-max, 1168px);
	margin-inline: auto;
}

.bag4 .bag4-frise__head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 18px 24px;
	margin-bottom: 34px;
}

.bag4 .bag4-frise__titles {
	display: flex;
	flex-direction: column;
	gap: 10px;
	max-width: 680px;
}

.bag4-frise .bag4__title {
	font-size: clamp(32px, 4vw, 46px);
}

.bag4 .bag4-frise__nav {
	display: flex;
	gap: 12px;
}

.bag4 button.bag4-arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	margin: 0;
	padding: 0;
	border: 1px solid var(--bag-line);
	border-radius: 50%;
	background: transparent;
	color: var(--bag-title);
	cursor: pointer;
	box-shadow: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease, opacity 0.2s ease;
}

.bag4 button.bag4-arrow svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.bag4 button.bag4-arrow--next,
.bag4 button.bag4-arrow:hover,
.bag4 button.bag4-arrow:focus {
	border-color: var(--bag-action);
	background: var(--bag-action);
	color: var(--bag-action-ink);
}

.bag4 button.bag4-arrow--next:hover {
	opacity: 0.85;
}

.bag4 button.bag4-arrow[disabled],
.bag4 button.bag4-arrow[disabled]:hover {
	border-color: var(--bag-line);
	background: transparent;
	color: var(--bag-title);
	opacity: 0.35;
	cursor: default;
}

.bag4-frise.is-static .bag4-frise__nav {
	visibility: hidden;
}

.bag4 .bag4-frise__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
}

.bag4 .bag4-frise__viewport::-webkit-scrollbar {
	display: none;
}

.bag4 .bag4-frise__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - (var(--bag-per) - 1) * var(--bag-gap)) / var(--bag-per));
	gap: var(--bag-gap);
}

.bag4 .bag4-frise__item {
	display: flex;
	flex-direction: column;
	min-width: 0;
	scroll-snap-align: start;
}

.bag4 .bag4-frise__month {
	position: relative;
	display: flex;
	align-items: center;
	gap: 10px;
	height: 19px;
	margin-bottom: 22px;
	font-family: var(--bag-sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.2em;
	line-height: 1;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4-frise__month::before {
	content: '';
	position: absolute;
	left: 0;
	right: calc(-1 * var(--bag-gap));
	top: 9px;
	height: 1px;
	background: var(--bag-line);
}

.bag4 .bag4-frise__item:last-child .bag4-frise__month::before {
	right: 0;
}

.bag4 .bag4-frise__dot {
	position: relative;
	flex: 0 0 19px;
	width: 19px;
	height: 19px;
	border: 1px solid var(--bag-accent);
	border-radius: 50%;
	background: var(--bag-bg);
}

.bag4 .bag4-frise__dot::after {
	content: '';
	position: absolute;
	top: 5px;
	left: 5px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--bag-accent);
}

.bag4 .bag4-frise__month.is-repeat .bag4-frise__dot {
	flex-basis: 11px;
	width: 11px;
	height: 11px;
	margin-left: 4px;
	border: 0;
	background: var(--bag-accent);
	opacity: 0.55;
}

.bag4 .bag4-frise__month.is-repeat .bag4-frise__dot::after {
	display: none;
}

.bag4 .bag4-frise__mname {
	position: relative;
	padding-right: 10px;
	background: var(--bag-bg);
}

.bag4 .bag4-frise__mname:empty {
	display: none;
}

.bag4 .bag4-frise__card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bag4 .bag4-frise__media {
	height: var(--bag-img-h, 300px);
}

.bag4 .bag4-frise__card .bag4__cat {
	margin-top: 18px;
}

.bag4 .bag4-frise__name {
	display: block;
	margin-top: 6px;
	font-family: var(--bag-serif);
	font-size: 24px;
	font-weight: 500;
	line-height: 1.15;
	color: var(--bag-title);
	transition: opacity 0.2s ease;
}

.bag4 .bag4-frise__card:hover .bag4-frise__name {
	opacity: 0.82;
}

.bag4 .bag4-frise__card .bag4__meta {
	margin-top: 8px;
}

.bag4 .bag4-frise__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px 24px;
	margin-top: 36px;
	padding-top: 22px;
	border-top: 1px solid var(--bag-line);
}

.bag4 .bag4-frise__note {
	font-size: 13px;
	color: var(--bag-meta);
}

@container (max-width: 980px) {
	.bag4 .bag4-frise__track {
		--bag-per: 2.4;
	}
}

@container (max-width: 620px) {
	.bag4 .bag4-frise__track {
		--bag-per: 1.25;
		--bag-gap: 16px;
	}

	.bag4 .bag4-frise__month::before {
		right: -16px;
	}

	.bag4 .bag4-frise__media {
		height: var(--bag-img-h, 280px);
	}

	.bag4 button.bag4-arrow {
		width: 44px;
		height: 44px;
	}
}

@media (max-width: 767px) {
	.bag4-frise {
		padding: var(--bag-pad, 48px 20px 44px);
	}
}

/* ==========================================================================
   2. Page Actualités — sommaire des mois et grille
   ========================================================================== */

.bag4-saison {
	--bag-bg: #FFFFFF;
	--bag-ink: #323533;
	--bag-accent: #A3803A;
	--bag-cat: #4F7539;
	--bag-text: #4F5A4C;
	--bag-wide-bg: #F4F1E7;
	--bag-line: rgba(10, 46, 28, 0.14);
	--bag-chip: #4F7539;
	--bag-chip-ink: #FFFFFF;
	--bag-hero-bg: #0A2E1C;
	--bag-hero-accent: #C9A961;
	--bag-hero-title: #FFFFFF;
	--bag-hero-text: rgba(244, 241, 231, 0.78);
}

.bag4 .bag4-saison__hero {
	padding: 64px max(56px, calc((100% - var(--bag-max, 1280px)) / 2 + 56px)) 48px;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px 32px;
	background: var(--bag-hero-bg);
}

.bag4 .bag4-saison__titles {
	display: flex;
	flex-direction: column;
	gap: 12px;
	max-width: 700px;
}

.bag4-saison .bag4-saison__hero .bag4__eyebrow {
	color: var(--bag-hero-accent);
}

.bag4-saison .bag4__title {
	font-size: clamp(36px, 5vw, 56px);
	color: var(--bag-hero-title);
}

.bag4 .bag4-saison__intro {
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	color: var(--bag-hero-text);
}

.bag4 .bag4-saison__summary {
	font-size: 13px;
	color: var(--bag-hero-text);
}

.bag4 .bag4-saison__body {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 48px;
	max-width: var(--bag-max, 1280px);
	margin: 0 auto;
	padding: var(--bag-pad, 48px 56px 72px);
}

.bag4 .bag4-saison__body--empty {
	display: block;
}

.bag4 .bag4-saison__side {
	position: sticky;
	top: calc(var(--bag-sticky) + 24px);
	align-self: start;
	max-height: calc(100vh - var(--bag-sticky) - 48px);
	overflow-y: auto;
	scrollbar-width: none;
}

.bag4 .bag4-saison__months {
	border-left: 1px solid var(--bag-line);
}

.bag4 .bag4-saison__label {
	display: block;
	padding: 0 0 12px 20px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4-saison__mlink {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-left: -1px;
	padding: 9px 0 9px 20px;
	border-left: 2px solid transparent;
	color: var(--bag-ink);
	transition: border-color 0.2s ease, opacity 0.2s ease;
}

.bag4 .bag4-saison__mlabel {
	font-family: var(--bag-serif);
	font-size: 22px;
	font-weight: 400;
	line-height: 1.2;
	color: var(--bag-ink);
}

.bag4 .bag4-saison__mcount {
	font-size: 12px;
	font-weight: 600;
	color: var(--bag-text);
}

.bag4 a.bag4-saison__mlink:hover .bag4-saison__mlabel {
	color: var(--bag-cat);
}

.bag4 .bag4-saison__mlink.is-active {
	border-left-color: var(--bag-accent);
}

.bag4 .bag4-saison__mlink.is-active .bag4-saison__mlabel {
	font-weight: 600;
}

.bag4 .bag4-saison__mlink.is-empty,
.bag4 .bag4-saison__mlink.is-filtered {
	opacity: 0.38;
	pointer-events: none;
}

.bag4 .bag4-saison__cats {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin-top: 30px;
	padding-left: 20px;
}

.bag4 .bag4-saison__cats .bag4-saison__label {
	padding-left: 0;
	padding-bottom: 6px;
}

.bag4 button.bag4-saison__cat {
	margin: 0;
	padding: 2px 0;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	font-family: var(--bag-sans);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	color: var(--bag-text);
	cursor: pointer;
	transition: color 0.2s ease;
}

.bag4 button.bag4-saison__cat:hover,
.bag4 button.bag4-saison__cat:focus {
	background: none;
	color: var(--bag-cat);
}

.bag4 button.bag4-saison__cat.is-active {
	font-weight: 700;
	color: var(--bag-ink);
}

.bag4 .bag4-saison__main {
	container-type: inline-size;
	min-width: 0;
}

.bag4 .bag4-saison__month {
	scroll-margin-top: calc(var(--bag-sticky) + 24px);
}

.bag4 .bag4-saison__month + .bag4-saison__month {
	margin-top: 48px;
	padding-top: 36px;
	border-top: 1px solid var(--bag-line);
}

.bag4 .bag4-saison__month[hidden],
.bag4 [data-cat][hidden] {
	display: none !important;
}

.bag4 .bag4-wide[hidden] + .bag4-saison__grid {
	margin-top: 0;
}

.bag4 .bag4-saison__month.is-first-visible {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.bag4 .bag4-saison__mtitle {
	margin: 0 0 24px;
	padding: 0;
	font-family: var(--bag-serif);
	font-size: 40px;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: 0;
	text-transform: none;
	color: var(--bag-ink);
}

.bag4 .bag4-saison__mtitle span {
	font-size: 0.6em;
	color: var(--bag-accent);
}

/* Grande carte */

.bag4 .bag4-wide {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	overflow: hidden;
	border-radius: var(--bag-radius);
	background: var(--bag-wide-bg);
}

.bag4 .bag4-wide + .bag4-wide,
.bag4 .bag4-wide + .bag4-saison__grid {
	margin-top: 28px;
}

.bag4 .bag4-wide__media {
	min-height: 340px;
	border-radius: 0;
}

.bag4 .bag4-wide__flag {
	position: absolute;
	left: 18px;
	top: 18px;
	z-index: 1;
	padding: 6px 12px;
	border-radius: 999px;
	background: #0A2E1C;
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #C9A961;
}

.bag4 .bag4-wide__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
	padding: 36px;
}

.bag4 .bag4-wide__date {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 12px;
}

.bag4 .bag4-wide__day {
	font-family: var(--bag-serif);
	font-size: 64px;
	font-weight: 600;
	line-height: 0.9;
	color: var(--bag-ink);
}

.bag4 .bag4-wide__dlabel {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4-wide__title {
	font-family: var(--bag-serif);
	font-size: 34px;
	font-weight: 600;
	line-height: 1.1;
	color: var(--bag-ink);
}

.bag4 .bag4-wide__teaser {
	font-size: 15px;
	line-height: 1.6;
	color: var(--bag-text);
}

.bag4 .bag4-wide .bag4__more {
	margin-top: 2px;
}

.bag4 .bag4-wide .bag4__more,
.bag4 .bag4-card__title {
	transition: color 0.2s ease;
}

.bag4 .bag4-wide:hover .bag4__more {
	opacity: 0.75;
}

/* Grille */

.bag4 .bag4-saison__grid {
	display: grid;
	grid-template-columns: repeat(var(--bag-cols), minmax(0, 1fr));
	gap: 32px 24px;
}

.bag4 .bag4-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bag4 .bag4-card__media {
	height: 200px;
}

.bag4 .bag4-card .bag4-stamp {
	left: 12px;
	bottom: 12px;
	min-width: 52px;
	padding: 8px 12px 7px;
}

.bag4 .bag4-card .bag4-stamp__day {
	font-size: 28px;
}

.bag4 .bag4-card .bag4-stamp__month {
	font-size: 9.5px;
}

.bag4 .bag4-card .bag4__cat {
	margin-top: 14px;
}

.bag4 .bag4-card__title {
	display: block;
	margin-top: 6px;
	font-family: var(--bag-serif);
	font-size: 23px;
	font-weight: 600;
	line-height: 1.15;
	color: var(--bag-ink);
}

.bag4 .bag4-card:hover .bag4-card__title {
	color: var(--bag-cat);
}

.bag4 .bag4-card .bag4__meta {
	margin-top: 6px;
}

.bag4 .is-past {
	opacity: 0.55;
}

.bag4 .bag4-saison__nores {
	padding: 24px 0;
}

.bag4 .bag4-saison__note {
	margin: 48px 0 0;
	font-size: 13px;
	color: var(--bag-text);
}

@container (max-width: 760px) {
	.bag4 .bag4-saison__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (max-width: 640px) {
	.bag4 .bag4-wide {
		grid-template-columns: minmax(0, 1fr);
	}

	.bag4 .bag4-wide__media {
		min-height: 0;
		aspect-ratio: 16 / 10;
	}

	.bag4 .bag4-wide__body {
		padding: 24px 22px 26px;
	}

	.bag4 .bag4-wide__day {
		font-size: 52px;
	}

	.bag4 .bag4-wide__title {
		font-size: 28px;
	}
}

@container (max-width: 480px) {
	.bag4 .bag4-saison__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.bag4 .bag4-card__media {
		height: auto;
		aspect-ratio: 16 / 10;
	}

	.bag4 .bag4-saison__mtitle {
		font-size: 34px;
	}
}

/* Sous 900 px : le sommaire passe en haut, en pastilles qui défilent. */
@container (max-width: 900px) {
	.bag4 .bag4-saison__body {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.bag4 .bag4-saison__side {
		position: sticky;
		top: var(--bag-sticky);
		z-index: 3;
		max-height: none;
		overflow: visible;
		margin: -12px calc(-1 * var(--bag-side, 20px)) 0;
		padding: 12px var(--bag-side, 20px);
		background: var(--bag-bg);
		box-shadow: 0 1px 0 var(--bag-line);
	}

	.bag4 .bag4-saison__months {
		border-left: 0;
	}

	.bag4 .bag4-saison__months .bag4-saison__label {
		display: none;
	}

	.bag4 .bag4-saison__months ul {
		display: flex;
		gap: 8px;
		overflow-x: auto;
		scrollbar-width: none;
		scroll-behavior: smooth;
	}

	.bag4 .bag4-saison__months ul::-webkit-scrollbar {
		display: none;
	}

	.bag4 .bag4-saison__months li:has(.is-empty),
	.bag4 .bag4-saison__months li:has(.is-filtered) {
		display: none;
	}

	.bag4 .bag4-saison__mlink {
		gap: 8px;
		margin: 0;
		padding: 7px 14px;
		border: 1px solid var(--bag-line);
		border-radius: 999px;
		white-space: nowrap;
	}

	.bag4 .bag4-saison__mlabel {
		font-family: var(--bag-sans);
		font-size: 14px;
		font-weight: 600;
	}

	.bag4 .bag4-saison__mlink.is-active {
		border-color: var(--bag-chip);
		background: var(--bag-chip);
	}

	.bag4 .bag4-saison__mlink.is-active .bag4-saison__mlabel,
	.bag4 .bag4-saison__mlink.is-active .bag4-saison__mcount {
		color: var(--bag-chip-ink);
	}

	.bag4 .bag4-saison__cats {
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: center;
		gap: 6px 18px;
		margin-top: 10px;
		padding-left: 2px;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.bag4 .bag4-saison__cats .bag4-saison__label {
		display: none;
	}

	.bag4 button.bag4-saison__cat {
		flex: none;
		font-size: 13px;
	}

	.bag4 button.bag4-saison__cat.is-active {
		box-shadow: inset 0 -2px 0 var(--bag-filter-line, var(--bag-accent));
	}
}

@media (max-width: 767px) {
	.bag4-saison {
		--bag-side: 20px;
	}

	.bag4 .bag4-saison__hero {
		padding: 44px 20px 34px;
	}

	.bag4 .bag4-saison__body {
		padding: var(--bag-pad, 28px 20px 56px);
	}
}

@media (min-width: 768px) and (max-width: 1024px) {
	.bag4-saison {
		--bag-side: 40px;
	}

	.bag4 .bag4-saison__hero {
		padding-left: 40px;
		padding-right: 40px;
	}

	.bag4 .bag4-saison__body {
		padding: var(--bag-pad, 40px 40px 64px);
	}
}

/* ==========================================================================
   3. Fiche — le carnet de visite
   ========================================================================== */

.bag4-fiche {
	--bag-bg: #F7F5EF;
	--bag-ink: #323533;
	--bag-accent: #A3803A;
	--bag-text: #3D463B;
	--bag-cat: #4F7539;
	--bag-date-bg: #F4F1E7;
	--bag-date-ink: #323533;
	--bag-date-accent: #A3803A;
	--bag-tile-bg: #FFFFFF;
	--bag-line: rgba(10, 46, 28, 0.10);
	--bag-ghost: #323533;
	--bag-next-bg: #F4F1E7;

	padding: var(--bag-pad, 56px 56px 72px);
}

.bag4 .bag4-fiche__inner {
	display: flex;
	flex-direction: column;
	gap: 28px;
	max-width: var(--bag-max, 880px);
	margin: 0 auto;
}

.bag4 .bag4-fiche__back {
	align-self: flex-start;
}

.bag4 .bag4-fiche__head {
	display: grid;
	grid-template-columns: 128px minmax(0, 1fr);
	gap: 32px;
	align-items: center;
}

.bag4 .bag4-fiche__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-height: 140px;
	padding: 14px 8px;
	border-radius: calc(var(--bag-radius) + 2px);
	background: var(--bag-date-bg);
	text-align: center;
}

.bag4 .bag4-fiche__wday {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bag-date-accent);
}

.bag4 .bag4-fiche__day {
	font-family: var(--bag-serif);
	font-size: 60px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	color: var(--bag-date-ink);
}

.bag4 .bag4-fiche__date.is-span .bag4-fiche__day {
	font-size: 42px;
}

.bag4 .bag4-fiche__my {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bag-date-ink);
	opacity: 0.88;
}

.bag4 .bag4-fiche__titles {
	display: flex;
	flex-direction: column;
	gap: 10px;
	min-width: 0;
}

.bag4-fiche .bag4__eyebrow {
	letter-spacing: 0.2em;
}

.bag4-fiche .bag4__title {
	font-size: clamp(34px, 5vw, 54px);
	overflow-wrap: break-word;
}

.bag4 .bag4-fiche__past {
	margin: 0;
	padding: 14px 18px;
	border-left: 3px solid var(--bag-accent);
	border-radius: 4px;
	background: var(--bag-tile-bg);
	font-size: 14px;
	color: var(--bag-text);
}

.bag4 .bag4-fiche__media {
	width: 100%;
	height: auto;
	margin: 0;
	padding: 0;
	aspect-ratio: var(--bag-ratio);
	border-radius: calc(var(--bag-radius) + 2px);
}

.bag4 .bag4-fiche__media.is-natural {
	aspect-ratio: auto;
}

.bag4.bag4 .bag4-fiche__media.is-natural img.bag4-media__img {
	position: static !important;
	height: auto !important;
}

.bag4 .bag4-fiche__facts {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 12px;
}

.bag4 .bag4-fiche__fact {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 18px;
	border: 1px solid var(--bag-line);
	border-radius: var(--bag-radius);
	background: var(--bag-tile-bg);
}

.bag4 .bag4-fiche__flabel {
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4-fiche__fvalue {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--bag-ink);
}

.bag4 .bag4-fiche__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.bag4 a.bag4-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 28px;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--bag-sans);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	transition: background-color 0.2s ease, color 0.2s ease, filter 0.2s ease;
}

.bag4 a.bag4-btn--solid {
	border-color: var(--bag-action);
	background: var(--bag-action);
	color: var(--bag-action-ink);
}

.bag4 a.bag4-btn--solid:hover {
	filter: brightness(0.94);
	color: var(--bag-action-ink);
}

.bag4 a.bag4-btn--ghost {
	border-color: var(--bag-ghost);
	color: var(--bag-ghost);
	font-weight: 600;
}

.bag4 a.bag4-btn--ghost:hover {
	background: var(--bag-ghost);
	color: var(--bag-bg);
}

.bag4 .bag4-fiche__text {
	display: flex;
	flex-direction: column;
	gap: 20px;
	padding-top: 28px;
	border-top: 1px solid var(--bag-line);
}

.bag4 .bag4-fiche__lead {
	margin: 0;
	font-family: var(--bag-serif);
	font-size: 25px;
	line-height: 1.45;
	color: var(--bag-ink);
}

.bag4 .bag4-fiche__body {
	font-size: 16px;
	line-height: 1.75;
	color: var(--bag-text);
}

.bag4 .bag4-fiche__body > :first-child {
	margin-top: 0;
}

.bag4 .bag4-fiche__body > :last-child {
	margin-bottom: 0;
}

.bag4 .bag4-fiche__body p {
	margin: 0 0 1em;
}

.bag4 .bag4-fiche__body a {
	color: var(--bag-cat);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bag4 .bag4-fiche__pn {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin-top: 12px;
}

.bag4 .bag4-pn {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 22px 24px;
	border: 1px solid var(--bag-line);
	border-radius: var(--bag-radius);
	background: var(--bag-tile-bg);
	transition: transform 0.2s ease;
}

.bag4 a.bag4-pn:hover {
	transform: translateY(-2px);
}

.bag4 .bag4-pn--void {
	border: 0;
	background: none;
}

.bag4 .bag4-pn__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--bag-accent);
}

.bag4 .bag4-pn__title {
	font-family: var(--bag-serif);
	font-size: 22px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--bag-ink);
}

.bag4 .bag4-pn__date {
	font-size: 13px;
	color: var(--bag-text);
}

.bag4 .bag4-pn--next {
	align-items: flex-end;
	border-color: var(--bag-next-bg);
	background: var(--bag-next-bg);
	text-align: right;
}

.bag4 .bag4-pn--next .bag4-pn__label {
	color: var(--bag-accent);
}

.bag4 .bag4-pn--next .bag4-pn__title {
	color: var(--bag-ink);
}

.bag4 .bag4-pn--next .bag4-pn__date {
	color: var(--bag-text);
	opacity: 0.75;
}

/* Tablette : quatre pavés au plus par rangée, jamais un pavé orphelin. */
@container (max-width: 820px) {
	.bag4 .bag4-fiche__facts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.bag4 .bag4-fiche__fact:last-child:nth-child(odd) {
		grid-column: 1 / -1;
	}
}

/* Mobile : la date passe en bandeau au-dessus du titre, les infos
 * pratiques deviennent une seule carte en lignes. */
@container (max-width: 640px) {
	.bag4 .bag4-fiche__inner {
		gap: 22px;
	}

	.bag4 .bag4-fiche__head {
		grid-template-columns: minmax(0, 1fr);
		gap: 16px;
	}

	.bag4 .bag4-fiche__date {
		display: grid;
		grid-template-columns: auto auto;
		grid-template-areas: "day wday" "day my";
		align-items: center;
		justify-content: start;
		justify-self: start;
		column-gap: 12px;
		row-gap: 2px;
		min-height: 0;
		padding: 10px 18px 10px 16px;
		text-align: left;
	}

	.bag4 .bag4-fiche__date.is-span {
		grid-template-areas: "day my";
	}

	.bag4 .bag4-fiche__day,
	.bag4 .bag4-fiche__date.is-span .bag4-fiche__day {
		grid-area: day;
		font-size: 38px;
	}

	.bag4 .bag4-fiche__wday {
		grid-area: wday;
		align-self: end;
	}

	.bag4 .bag4-fiche__my {
		grid-area: my;
		align-self: start;
	}

	.bag4 .bag4-fiche__date.is-span .bag4-fiche__my {
		align-self: center;
	}

	.bag4 .bag4-fiche__wday,
	.bag4 .bag4-fiche__my {
		font-size: 10.5px;
		letter-spacing: 0.14em;
		white-space: nowrap;
	}

	.bag4-fiche .bag4__title {
		font-size: clamp(30px, 8.5cqi, 40px);
		line-height: 1.08;
	}

	.bag4 .bag4-fiche__facts {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		overflow: hidden;
		border: 1px solid var(--bag-line);
		border-radius: var(--bag-radius);
		background: var(--bag-tile-bg);
	}

	.bag4 .bag4-fiche__fact {
		display: grid;
		grid-template-columns: 92px minmax(0, 1fr);
		align-items: baseline;
		gap: 12px;
		padding: 14px 16px;
		border: 0;
		border-radius: 0;
		background: none;
	}

	.bag4 .bag4-fiche__fact + .bag4-fiche__fact {
		border-top: 1px solid var(--bag-line);
	}

	.bag4 .bag4-fiche__flabel {
		font-size: 10px;
		letter-spacing: 0.14em;
	}

	.bag4 .bag4-fiche__fvalue {
		font-size: 14.5px;
	}

	.bag4 .bag4-fiche__actions {
		gap: 10px;
	}

	.bag4 .bag4-fiche__actions a.bag4-btn {
		flex: 1 1 100%;
	}

	.bag4 .bag4-fiche__text {
		padding-top: 22px;
	}

	.bag4 .bag4-fiche__lead {
		font-size: 21px;
	}

	.bag4 .bag4-fiche__body {
		font-size: 15.5px;
	}

	.bag4 .bag4-fiche__pn {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.bag4 .bag4-pn {
		padding: 18px 20px;
	}

	.bag4 .bag4-pn__title {
		font-size: 20px;
	}

	.bag4 .bag4-pn--void {
		display: none;
	}
}

@container (max-width: 300px) {
	.bag4 .bag4-fiche__fact {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}
}

@media (max-width: 767px) {
	.bag4-fiche {
		padding: var(--bag-pad, 28px 20px 56px);
	}
}

/* Éditeur */

.bag4.bag4-editor-note {
	padding: 24px;
	border: 1px dashed rgba(10, 46, 28, 0.3);
	background: #F7F5EF;
	font-size: 14px;
	color: #4F5A4C;
}

@media (prefers-reduced-motion: reduce) {
	.bag4 *,
	.bag4 .bag4-frise__viewport {
		scroll-behavior: auto;
		transition: none !important;
	}
}

/* =========================================================
   4.1.0 — Fiche : photo à gauche, infos pratiques à droite
   (une seule carte en lignes, plus de petites tuiles).
   ========================================================= */

.bag4 .bag4-fiche__top {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

.bag4 .bag4-fiche__side {
	display: flex;
	flex-direction: column;
	gap: 18px;
	min-width: 0;
}

.bag4 .bag4-fiche__facts {
	display: flex;
	flex-direction: column;
	gap: 0;
	overflow: hidden;
	border: 1px solid var(--bag-line);
	border-radius: var(--bag-radius);
	background: var(--bag-tile-bg);
}

.bag4 .bag4-fiche__fact {
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr);
	align-items: baseline;
	gap: 14px;
	padding: 15px 20px;
	border: 0;
	border-radius: 0;
	background: none;
}

.bag4 .bag4-fiche__fact + .bag4-fiche__fact {
	border-top: 1px solid var(--bag-line);
}

.bag4 .bag4-fiche__fact:last-child:nth-child(odd) {
	grid-column: auto;
}

.bag4 .bag4-fiche__flabel {
	font-size: 10.5px;
	letter-spacing: 0.16em;
}

.bag4 .bag4-fiche__fvalue {
	font-size: 15px;
	line-height: 1.45;
}

.bag4 .bag4-fiche__side .bag4-fiche__actions a.bag4-btn {
	flex: 1 1 auto;
}

@container (min-width: 700px) {
	.bag4 .bag4-fiche__top.has-media.has-side {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
		align-items: start;
		gap: 36px;
	}

	.bag4 .bag4-fiche__top.has-media.has-side .bag4-fiche__media:not(.is-natural) {
		aspect-ratio: 1 / 1;
	}

	.bag4 .bag4-fiche__top.has-side .bag4-fiche__side {
		position: sticky;
		top: 120px;
	}
}

@container (max-width: 300px) {
	.bag4 .bag4-fiche__fact {
		grid-template-columns: minmax(0, 1fr);
		gap: 4px;
	}
}

/* =========================================================
   4.2.0 — Spectacle répété : les dates qui défilent
   ========================================================= */

.bag4 .bag4-left {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 1;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: #323533 !important;
	color: #FFFFFF;
	font-family: var(--bag-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	white-space: nowrap;
}

.bag4 .bag4-dates {
	display: block;
	margin-top: 10px;
}

.bag4 .bag4-dates__list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.bag4 .bag4-dates__d {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 30px;
	height: 30px;
	padding: 0 7px;
	box-sizing: border-box;
	border: 1px solid currentColor;
	border-color: color-mix(in srgb, currentColor 32%, transparent);
	border-radius: 999px;
	font-family: var(--bag-sans);
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
}

.bag4 .bag4-dates__d.is-past {
	border-color: transparent;
	font-weight: 400;
	text-decoration: line-through;
	opacity: 0.5;
}

.bag4 .bag4-dates__d.is-next {
	padding: 0 11px;
	border-color: var(--bag-date-accent, #C9A961);
	background: var(--bag-date-accent, #C9A961);
	color: #0A2E1C;
	font-weight: 700;
}

.bag4 .bag4-fiche__fvalue .bag4-dates {
	margin-top: 0;
}

.bag4 .bag4-saison__grid--duo {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

@container (max-width: 640px) {
	.bag4 .bag4-saison__grid--duo {
		grid-template-columns: minmax(0, 1fr);
	}
}

.bag4 .bag4-dates {
	color: var(--bag-meta, currentColor);
}

.bag4 .bag4-dates__d.is-next {
	border-color: #C9A961;
	background: #C9A961;
}

.bag4 .bag4-dates__m {
	display: inline-flex;
	align-items: center;
	height: 30px;
	padding-left: 4px;
	font-family: var(--bag-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 0.85;
}

.bag4 .bag4-fiche__fvalue .bag4-dates {
	color: var(--bag-ink);
}


/* =========================================================
   4.2.2 — Une seule plaque de date partout (frise, agenda,
   fiche) : crème, jour en vert profond, mois en doré.
   Bouton « Ajouter à mon agenda » : survol vert billard.
   ========================================================= */

.bag4-saison {
	--bag-stamp-bg: #F4F1E7;
}

.bag4 .bag4-fiche__date {
	border: 1px solid rgba(10, 46, 28, 0.08);
	box-shadow: 0 6px 18px rgba(10, 46, 28, 0.10);
}

.bag4 .bag4-fiche__wday,
.bag4 .bag4-fiche__my {
	color: var(--bag-date-accent);
	opacity: 1;
}

.bag4 .bag4-fiche__day {
	color: var(--bag-date-ink);
}

.bag4 a.bag4-btn--ghost,
.bag4 a.bag4-btn--ghost:visited {
	border-color: var(--bag-ghost);
	background: transparent;
	color: var(--bag-ghost) !important;
}

.bag4 a.bag4-btn--ghost:hover,
.bag4 a.bag4-btn--ghost:focus-visible {
	border-color: #4F7539;
	background: #4F7539 !important;
	color: #FFFFFF !important;
}

@container (min-width: 700px) {
	.bag4 .bag4-fiche__side .bag4-fiche__text {
		padding-top: 22px;
	}

	.bag4 .bag4-fiche__side .bag4-fiche__lead {
		font-size: 22px;
	}

	.bag4 .bag4-fiche__top.has-side .bag4-fiche__side {
		position: static;
	}
}

/* 4.2.3 — Rendez-vous suivant : crème, comme les plaques de date. */
.bag4 .bag4-pn--next {
	border-color: rgba(10, 46, 28, 0.10);
}

.bag4 .bag4-pn--next:hover {
	border-color: #4F7539;
}


/* =========================================================
   4.2.5 — Moins de vert foncé : encre #323533, sauge, doré.
   Dates d'un spectacle répété en une ligne de texte sur les
   cartes ; pastilles sur la fiche seulement.
   ========================================================= */

.bag4 .bag4-left {
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.bag4 .bag4-dline {
	display: block;
	margin-top: 8px;
	font-family: var(--bag-sans);
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.45;
	color: var(--bag-accent, #A3803A);
}

.bag4 .bag4-dates__d {
	color: #323533;
	border-color: rgba(50, 53, 51, 0.22);
}

.bag4 .bag4-dates__d.is-next {
	border-color: #B1CF9F;
	background: #B1CF9F;
	color: #323533;
}

.bag4 .bag4-fiche__day,
.bag4 .bag4-stamp__day {
	color: #323533;
}

/* =========================================================
   4.3.0 — Frise : cartes blanches (maquette A1, dates sur
   une ligne). Flèches en haut, progression en bas.
   ========================================================= */

.bag4-frise--cards {
	--bag-card-ink: #323533;
	--bag-card-gold: #A3803A;
	--bag-card-sage: #DCE6D3;
	--bag-card-line: rgba(50, 53, 51, 0.14);
}

.bag4-frise--cards .bag4-frise__viewport {
	/* Marges haut/bas seulement : les marges latérales restent automatiques, pour que les cartes restent centrées et alignées sur le titre quand l'écran dépasse la largeur maximale. */
	margin-block: -12px -22px;
	padding: 12px 0 22px;
}

.bag4 .bag4-fcard {
	display: flex;
	flex-direction: column;
	height: 100%;
	min-width: 0;
	overflow: hidden;
	border-radius: 16px;
	background: #FFFFFF;
	box-shadow: 0 1px 2px rgba(50, 53, 51, 0.06), 0 8px 24px -16px rgba(50, 53, 51, 0.28);
	color: var(--bag-card-ink);
	text-decoration: none;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.bag4 .bag4-fcard:hover,
.bag4 .bag4-fcard:focus-visible {
	box-shadow: 0 20px 38px -18px rgba(50, 53, 51, 0.45);
	transform: translateY(-2px);
	color: var(--bag-card-ink);
}

.bag4 .bag4-fcard:focus-visible {
	outline: 2px solid #4F7539;
	outline-offset: 3px;
}

.bag4 .bag4-fcard__media {
	flex: 0 0 auto;
	height: var(--bag-card-img, 200px);
	border-radius: 0;
}

.bag4 .bag4-fcard__media .bag4-media__img {
	transition: transform 0.5s ease;
}

.bag4 .bag4-fcard:hover .bag4-media__img {
	transform: scale(1.05);
}

.bag4 .bag4-fcard__tag {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 1;
	padding: 5px 11px;
	border-radius: 999px;
	font-family: var(--bag-sans);
	font-size: 10.5px;
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--bag-card-ink);
}

.bag4 .bag4-fcard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 12px;
	padding: 18px 20px 20px;
}

.bag4 .bag4-fcard__date {
	display: flex;
	align-items: flex-end;
	gap: 12px;
}

.bag4 .bag4-fcard__big {
	font-family: var(--bag-serif);
	font-size: 40px;
	font-weight: 500;
	line-height: 0.9;
	white-space: nowrap;
	color: var(--bag-card-ink);
}

.bag4 .bag4-fcard__aside {
	display: flex;
	flex-direction: column;
	gap: 2px;
	padding-bottom: 2px;
	min-width: 0;
}

.bag4 .bag4-fcard__month {
	font-family: var(--bag-sans);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bag-card-gold);
}

.bag4 .bag4-fcard__days {
	font-family: var(--bag-sans);
	font-size: 12px;
	color: var(--bag-card-ink);
	opacity: 0.65;
}

.bag4 .bag4-fcard__title {
	display: -webkit-box;
	min-height: calc(2 * 1.15em);
	overflow: hidden;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	font-family: var(--bag-serif);
	font-size: 23px;
	font-weight: 500;
	line-height: 1.15;
	color: var(--bag-card-ink);
}

.bag4 .bag4-runs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 4px;
	font-family: var(--bag-sans);
	font-size: 12px;
	line-height: 1.6;
	color: var(--bag-card-ink);
}

.bag4 .bag4-runs__r {
	white-space: nowrap;
	opacity: 0.8;
}

.bag4 .bag4-runs__r.is-next {
	padding: 1px 5px;
	border-radius: 4px;
	background: var(--bag-card-sage);
	font-weight: 700;
	opacity: 1;
}

.bag4 .bag4-runs__sep {
	color: var(--bag-card-gold);
}

.bag4 .bag4-fcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--bag-card-line);
}

.bag4 .bag4-fcard__hours {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 0;
	font-family: var(--bag-sans);
	font-size: 13px;
	color: var(--bag-card-ink);
	opacity: 0.8;
}

.bag4 .bag4-fcard__hours svg,
.bag4 .bag4-fcard__go svg {
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.bag4 .bag4-fcard__go {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 34px;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #EEF1EA;
	color: var(--bag-card-ink);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.bag4 .bag4-fcard:hover .bag4-fcard__go {
	background: #4F7539;
	color: #FFFFFF;
}

/* Pied : progression à gauche, mention et lien à droite. */
.bag4-frise--cards .bag4-frise__foot {
	align-items: center;
	margin-top: 26px;
	padding-top: 0;
	border-top: 0;
}

.bag4 .bag4-frise__progress {
	position: relative;
	display: block;
	width: 220px;
	height: 3px;
	border-radius: 2px;
	background: rgba(50, 53, 51, 0.12);
	overflow: hidden;
}

.bag4 .bag4-frise__progress span {
	position: absolute;
	inset: 0 auto 0 0;
	width: var(--bag-progress, 25%);
	border-radius: 2px;
	background: var(--bag-card-ink, #323533);
	transition: width 0.3s ease;
}

.bag4-frise.is-static .bag4-frise__progress {
	visibility: hidden;
}

.bag4 .bag4-frise__links {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 24px;
}

@container (max-width: 620px) {
	.bag4 .bag4-fcard__media {
		height: var(--bag-card-img-m, 190px);
	}

	.bag4 .bag4-frise__progress {
		width: 100%;
	}

	.bag4-frise--cards .bag4-frise__foot {
		flex-direction: column;
		align-items: stretch;
		gap: 16px;
	}
}

/* =========================================================
   4.3.1 — Même interface partout : page agenda et fiche
   reprennent les cartes de la frise.
   ========================================================= */

.bag4 .bag4-fcard[hidden] {
	display: none;
}

.bag4 .bag4-fcard.is-past {
	opacity: 0.6;
}

.bag4-saison {
	--bag-card-ink: #323533;
	--bag-card-gold: #A3803A;
	--bag-card-sage: #DCE6D3;
	--bag-card-line: rgba(50, 53, 51, 0.14);
}

.bag4 .bag4-saison__grid--cards {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

@container (max-width: 980px) {
	.bag4 .bag4-saison__grid--cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (max-width: 560px) {
	.bag4 .bag4-saison__grid--cards {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Fiche */
.bag4-fiche {
	--bag-card-ink: #323533;
	--bag-card-gold: #A3803A;
	--bag-card-sage: #DCE6D3;
	--bag-card-line: rgba(50, 53, 51, 0.14);
}

.bag4 .bag4-fiche__head--cards {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 14px;
}

.bag4 .bag4-fiche__tag {
	position: static;
}

.bag4 .bag4-fiche__when .bag4-fcard__big {
	font-size: 48px;
}

.bag4 .bag4-fiche__media {
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(50, 53, 51, 0.06), 0 8px 24px -16px rgba(50, 53, 51, 0.28);
}

.bag4 .bag4-fiche__facts {
	border: 0;
	border-radius: 16px;
	background: #FFFFFF;
	box-shadow: 0 1px 2px rgba(50, 53, 51, 0.06), 0 8px 24px -16px rgba(50, 53, 51, 0.28);
}

.bag4 .bag4-fiche__fact + .bag4-fiche__fact {
	border-top-color: var(--bag-card-line);
}

.bag4 .bag4-fiche__flabel {
	color: var(--bag-card-gold);
}

.bag4 .bag4-fiche__fvalue {
	color: var(--bag-card-ink);
}

.bag4 .bag4-pn {
	border: 0;
	border-radius: 16px;
	background: #FFFFFF;
	box-shadow: 0 1px 2px rgba(50, 53, 51, 0.06), 0 8px 24px -16px rgba(50, 53, 51, 0.28);
}

.bag4 .bag4-pn--next {
	background: #FFFFFF;
}

.bag4 a.bag4-pn:hover {
	box-shadow: 0 20px 38px -18px rgba(50, 53, 51, 0.45);
}

/* 4.3.3 — Vue mobile : les pastilles de mois n'affichent plus le nombre
   d'événements, seulement le nom du mois. */
@container (max-width: 900px) {
	.bag4 .bag4-saison__months .bag4-saison__mcount {
		display: none !important;
	}
}

@media (max-width: 720px) {
	.bag4 .bag4-saison__months .bag4-saison__mcount {
		display: none !important;
	}
}

/* 4.3.4 — Les nombres d'événements (et les tirets des mois vides) sont
   supprimés partout, ordinateur compris : seul le nom du mois reste. */
.bag4 .bag4-saison__months .bag4-saison__mcount {
	display: none !important;
}

/* 4.3.8 — Premier rendez-vous : pas de carte « précédent », donc pas de carré blanc.
   Le bloc vide reste dans la grille pour garder « suivant » à droite. */
.bag4 .bag4-fiche__pn .bag4-pn.bag4-pn--void {
	padding: 0 !important;
	border: 0 !important;
	background: none !important;
	box-shadow: none !important;
}
@media (max-width: 767px) {
	.bag4 .bag4-fiche__pn .bag4-pn.bag4-pn--void {
		display: none !important;
	}
}
