/* ==========================================================================
   Artichaut Agenda — styles front
   Neutres par construction : polices et couleurs du thème (currentColor).
   L'identité d'un site se règle dans Agenda › Réglages › Habillage (préréglages
   par site) : ce module injecte les variables --aga-* après cette feuille.
   ========================================================================== */

/* ============ TOKENS ============ */
/* Valeurs par défaut, dérivées du thème. L'habillage d'un site (Agenda › Réglages ›
   Habillage) les remplace par des variables injectées après cette feuille. */
.aga {
	--aga-accent: var(--wp--preset--color--primary, #b4235a);
	--aga-sur-accent: #fff;
	--aga-texte: inherit;
	--aga-discret: color-mix(in srgb, currentColor 68%, transparent);
	--aga-carte: color-mix(in srgb, currentColor 4%, transparent);
	--aga-trait: color-mix(in srgb, currentColor 16%, transparent);
	--aga-fond: color-mix(in srgb, currentColor 4%, transparent);
	--aga-fond-fort: color-mix(in srgb, currentColor 9%, transparent);
	--aga-rayon: 8px;
	--aga-rayon-bouton: var(--aga-rayon);
	--aga-police: inherit;
	--aga-largeur: 1200px;
	--aga-espace: 1rem;
	--aga-annule: #b42318;
	--aga-complet: #9a6700;
	--aga-reporte: #5b5bd6;
	font-family: var(--aga-police);
	color: var(--aga-texte);
}
/* Police et graisse des titres : appliquées seulement si l'habillage les définit (inc/habillage.php). */
/* Blocs empilés sur une page : un peu d'air entre eux, quel que soit le thème. */
[class*="wp-block-artichaut-agenda-"]:not(:last-child),
.aga-prochain:not(:last-child),
.aga-liste:not(:last-child),
.aga-calendrier:not(:last-child) {
	margin-bottom: 3rem; /* valeur fixe : le conteneur du bloc est hors de portée des variables .aga */
}
/* ============ /TOKENS ============ */

/* ============ UTILITAIRES ============ */
/* Les listes de l'agenda n'ont jamais de puces. Divi (et d'autres thèmes) en remettent avec des
   sélecteurs à identifiant, plus forts que nos classes : !important est ici le seul moyen fiable. */
.aga ul,
.aga ol {
	list-style: none !important;
	padding-left: 0 !important;
}
/* Liens : couleur du texte, soulignés à l'accent (indépendant des couleurs de lien du thème).
   :where() garde une spécificité faible pour que boutons et filtres gardent la leur. */
.aga :where(a) {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-color: color-mix(in srgb, var(--aga-accent) 75%, transparent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}
.aga :where(a):hover {
	color: inherit;
	text-decoration-thickness: 2px;
}
.aga-masque,
.aga-statut-lecteur {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
.aga [hidden] {
	display: none !important;
}
.aga[aria-busy="true"] .aga-liste__elements,
.aga[aria-busy="true"] .aga-cal__mois {
	opacity: 0.55;
	transition: opacity 0.2s;
}
.aga-bouton {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.7em 1.3em;
	border: 1px solid var(--aga-accent);
	border-radius: var(--aga-rayon-bouton);
	background: var(--aga-accent);
	color: var(--aga-sur-accent);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: filter 0.15s, background-color 0.15s;
}
.aga-bouton:hover,
.aga-bouton:focus-visible {
	filter: brightness(1.1);
	color: var(--aga-sur-accent);
}
.aga-bouton--secondaire {
	background: transparent;
	color: inherit;
	border-color: var(--aga-trait);
}
.aga-bouton--secondaire:hover,
.aga-bouton--secondaire:focus-visible {
	background: var(--aga-fond-fort);
	color: inherit;
	filter: none;
}
.aga a:focus-visible,
.aga summary:focus-visible {
	outline: 2px solid var(--aga-accent);
	outline-offset: 2px;
}
.aga-badge {
	display: inline-block;
	padding: 0.15em 0.6em;
	border-radius: 999px;
	font-size: 0.78em;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: 0.02em;
	background: var(--aga-fond-fort);
}
.aga-badge--cat {
	background: color-mix(in srgb, var(--aga-cat, currentColor) 16%, transparent);
	border: 1px solid color-mix(in srgb, var(--aga-cat, currentColor) 45%, transparent);
}
.aga-badge--annule { background: var(--aga-annule); color: #fff; }
.aga-badge--complet { background: var(--aga-complet); color: #fff; }
.aga-badge--reporte { background: var(--aga-reporte); color: #fff; }
/* ============ /UTILITAIRES ============ */

/* ============ FILTRES ============ */
.aga-filtres ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 calc(var(--aga-espace) * 1.5);
	padding: 0;
	list-style: none;
}
.aga-filtre {
	display: inline-block;
	padding: 0.45em 1em;
	border: 1px solid var(--aga-trait);
	border-radius: var(--aga-rayon-bouton);
	color: inherit;
	text-decoration: none;
	line-height: 1.2;
	transition: background-color 0.15s, border-color 0.15s;
}
.aga-filtre::before {
	content: "";
	display: inline-block;
	width: 0.55em;
	height: 0.55em;
	margin-right: 0.45em;
	border-radius: 50%;
	background: var(--aga-cat, transparent);
	vertical-align: 0.05em;
}
.aga-filtre:not([style])::before {
	display: none;
}
.aga-filtre:hover {
	background: var(--aga-fond-fort);
	color: inherit;
}
.aga-filtre[aria-current="true"] {
	background: var(--aga-accent);
	border-color: var(--aga-accent);
	color: var(--aga-sur-accent);
}
/* ============ /FILTRES ============ */

/* ============ LISTE ============ */
.aga-liste__elements {
	display: grid;
	gap: var(--aga-espace);
}
.aga-liste__mois {
	grid-column: 1 / -1;
	margin: calc(var(--aga-espace) * 1.5) 0 0;
	padding-bottom: 0.35em;
	border-bottom: 1px solid var(--aga-trait);
	font-size: 1.25em;
}
.aga-liste__mois:first-child {
	margin-top: 0;
}
.aga-liste__elements--grille {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
}
.aga-liste__vide {
	padding: var(--aga-espace);
	border: 1px dashed var(--aga-trait);
	border-radius: var(--aga-rayon);
	text-align: center;
	color: var(--aga-discret);
}
.aga-liste__plus {
	margin: calc(var(--aga-espace) * 1.5) 0 0;
	text-align: center;
}
/* ============ /LISTE ============ */

/* ============ CARTE ============ */
.aga-carte {
	position: relative;
	display: grid;
	grid-template-columns: 4.25rem minmax(0, 1fr);
	gap: var(--aga-espace);
	align-items: start;
	padding: var(--aga-espace);
	border: 1px solid var(--aga-trait);
	border-radius: var(--aga-rayon);
	background: var(--aga-carte);
	transition: border-color 0.15s, transform 0.15s;
}
.aga-carte:has(.aga-carte__image) {
	grid-template-columns: 4.25rem minmax(8rem, 13rem) minmax(0, 1fr);
}
.aga-carte:hover {
	border-color: color-mix(in srgb, var(--aga-accent) 60%, transparent);
}
.aga-carte--en-avant {
	border-color: color-mix(in srgb, var(--aga-accent) 55%, transparent);
}
.aga-carte__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0;
	padding: 0.4em 0.2em;
	border-radius: calc(var(--aga-rayon) * 0.6);
	background: var(--aga-accent);
	color: var(--aga-sur-accent);
	line-height: 1.05;
	text-align: center;
	text-transform: uppercase;
}
.aga-carte__jsem,
.aga-carte__mois {
	font-size: 0.72em;
	font-weight: 600;
	letter-spacing: 0.06em;
}
.aga-carte__jour {
	font-size: 1.7em;
	font-weight: 700;
}
.aga-carte__image {
	margin: 0;
	overflow: hidden;
	border-radius: calc(var(--aga-rayon) * 0.75);
	aspect-ratio: 4 / 3;
}
.aga-carte__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s;
}
.aga-carte:hover .aga-carte__image img {
	transform: scale(1.03);
}
.aga-carte__corps > * {
	margin: 0 0 0.4em;
}
.aga-carte__corps > :last-child {
	margin-bottom: 0;
}
.aga-carte__quand {
	font-size: 0.9em;
	font-weight: 600;
	color: var(--aga-discret);
}
.aga-carte__titre {
	font-size: 1.2em;
	line-height: 1.25;
}
.aga-carte__lien {
	color: inherit;
	text-decoration: none;
}
/* Toute la carte est cliquable, un seul lien dans l'arbre d'accessibilité. */
.aga-carte__lien::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--aga-rayon);
}
.aga-carte__lien:hover {
	text-decoration: underline;
	text-underline-offset: 0.15em;
}
.aga-carte__libelle {
	font-style: italic;
}
.aga-carte__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	padding: 0;
	list-style: none;
}
.aga-carte__extrait {
	font-size: 0.95em;
	color: var(--aga-discret);
}
.aga-carte__tarif {
	font-weight: 600;
}
.aga-carte--annule .aga-carte__titre,
.aga-carte--annule .aga-carte__quand {
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}
.aga-carte--annule .aga-carte__image,
.aga-carte--annule .aga-carte__date {
	opacity: 0.55;
}

/* Grille : image en haut, pastille de date par-dessus. */
.aga-carte--grille,
.aga-carte--grille:has(.aga-carte__image) {
	grid-template-columns: minmax(0, 1fr);
	padding: 0;
	overflow: hidden;
	gap: 0;
}
.aga-carte--grille .aga-carte__date {
	position: absolute;
	z-index: 1;
	top: 0.75rem;
	left: 0.75rem;
	min-width: 3.5rem;
}
.aga-carte--grille .aga-carte__image {
	border-radius: 0;
	aspect-ratio: 3 / 2;
}
.aga-carte--grille .aga-carte__corps {
	padding: var(--aga-espace);
}
/* Sans image : la pastille reprend sa place dans le flux, au-dessus du texte. */
.aga-carte.aga-carte--grille:not(:has(.aga-carte__image)) .aga-carte__date,
.aga-carte.aga-carte--vedette:not(:has(.aga-carte__image)) .aga-carte__date {
	position: static;
	flex-direction: row;
	gap: 0.35em;
	align-items: baseline;
	justify-self: start;
	margin: var(--aga-espace) var(--aga-espace) 0;
	padding: 0.35em 0.7em;
}
.aga-carte.aga-carte--grille:not(:has(.aga-carte__image)) .aga-carte__jour,
.aga-carte.aga-carte--vedette:not(:has(.aga-carte__image)) .aga-carte__jour {
	font-size: 1.1em;
}

/* Compacte : une ligne de texte. */
.aga-carte--compacte,
.aga-carte--compacte:has(.aga-carte__image) {
	grid-template-columns: minmax(0, 1fr);
	padding: 0.6rem 0.8rem;
	gap: 0;
	background: transparent;
}
.aga-carte--compacte .aga-carte__corps {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 0.8rem;
}
.aga-carte--compacte .aga-carte__corps > * {
	margin: 0;
}
.aga-carte--compacte .aga-carte__titre {
	font-size: 1em;
}

/* Vedette (bloc « Prochain événement ») : grande image. */
.aga-carte--vedette,
.aga-carte--vedette:has(.aga-carte__image) {
	grid-template-columns: minmax(0, 1fr);
	padding: 0;
	overflow: hidden;
	gap: 0;
}
.aga-carte--vedette .aga-carte__date {
	position: absolute;
	z-index: 1;
	top: 1rem;
	left: 1rem;
	min-width: 4rem;
}
.aga-carte--vedette .aga-carte__image {
	border-radius: 0;
	aspect-ratio: 16 / 9;
}
.aga-carte--vedette .aga-carte__corps {
	padding: calc(var(--aga-espace) * 1.25);
}
.aga-carte--vedette .aga-carte__titre {
	font-size: 1.6em;
}
@media (min-width: 800px) {
	.aga-carte--vedette:has(.aga-carte__image) {
		grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
		align-items: center;
	}
	.aga-carte--vedette .aga-carte__image {
		height: 100%;
		aspect-ratio: 4 / 3;
	}
}

@media (max-width: 640px) {
	.aga-carte--liste:has(.aga-carte__image) {
		grid-template-columns: 3.75rem minmax(0, 1fr);
	}
	.aga-carte--liste .aga-carte__image {
		grid-column: 1 / -1;
		grid-row: 1;
		aspect-ratio: 16 / 9;
	}
}
/* ============ /CARTE ============ */

/* ============ PROCHAIN ============ */
.aga-prochain__titre {
	margin: 0 0 var(--aga-espace);
}
.aga-prochain__elements {
	display: grid;
	gap: var(--aga-espace);
}
.aga-prochain__lien {
	margin: var(--aga-espace) 0 0;
	text-align: center;
}
/* ============ /PROCHAIN ============ */

/* ============ CALENDRIER ============ */
.aga-cal__entete {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--aga-espace);
	margin-bottom: 0.75rem;
}
.aga-cal__intitule {
	margin: 0;
	font-size: 1.25em;
	font-weight: 700;
}
.aga-cal__nav {
	flex-shrink: 0;
	white-space: nowrap;
	padding: 0.35em 0.8em;
	border: 1px solid var(--aga-trait);
	border-radius: var(--aga-rayon-bouton);
	color: inherit;
	text-decoration: none;
}
.aga-cal__nav:hover {
	background: var(--aga-fond-fort);
	color: inherit;
}
.aga-cal {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	table-layout: fixed;
}
.aga-cal th {
	padding: 0.4em;
	font-size: 0.85em;
	font-weight: 600;
	text-align: center;
	text-transform: capitalize;
	color: var(--aga-discret);
}
.aga-cal abbr {
	text-decoration: none;
}
.aga-cal__jour {
	height: 6.5rem;
	padding: 0.35rem;
	border: 1px solid var(--aga-trait);
	vertical-align: top;
	font-size: 0.85em;
}
.aga-cal__jour--hors {
	background: var(--aga-fond);
}
.aga-cal__jour--passe {
	color: var(--aga-discret);
}
.aga-cal__jour--aujourdhui {
	box-shadow: inset 0 0 0 2px var(--aga-accent);
}
.aga-cal__num {
	display: block;
	margin-bottom: 0.25rem;
	font-weight: 700;
}
.aga-cal__jsem {
	display: none;
}
.aga-cal__jour ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.aga-cal__jour li {
	margin: 0 0 0.3rem;
	padding-left: 0.4rem;
	border-left: 3px solid var(--aga-accent);
	line-height: 1.25;
}
.aga-cal__jour li a {
	color: inherit;
	font-weight: 600;
	text-decoration: none;
}
.aga-cal__jour li a:hover {
	text-decoration: underline;
}
.aga-cal__heure {
	display: block;
	font-size: 0.9em;
	color: var(--aga-discret);
}
.aga-calendrier .aga-liste__vide {
	margin-top: var(--aga-espace);
}
/* Mobile : le tableau devient la liste des jours occupés. */
@media (max-width: 700px) {
	.aga-cal,
	.aga-cal tbody,
	.aga-cal tr,
	.aga-cal td {
		display: block;
		width: 100%;
	}
	.aga-cal thead,
	.aga-cal__jour--hors,
	.aga-cal__jour:not(.aga-cal__jour--occupe) {
		display: none;
	}
	.aga-cal__jour {
		height: auto;
		margin-bottom: 0.5rem;
		border-radius: var(--aga-rayon);
		font-size: 1em;
	}
	.aga-cal__jsem {
		display: inline;
		text-transform: capitalize;
	}
	.aga-cal__nav {
		padding: 0.35em 0.6em;
		font-size: 0.85em;
	}
	.aga-cal__intitule {
		font-size: 1.05em;
		text-align: center;
	}
}
/* ============ /CALENDRIER ============ */

/* ============ INFOS PRATIQUES ============ */
.aga-infos {
	margin: 0 0 calc(var(--aga-espace) * 2);
	padding: calc(var(--aga-espace) * 1.25);
	border: 1px solid var(--aga-trait);
	border-radius: var(--aga-rayon);
	background: var(--aga-carte);
}
.aga-infos__alerte {
	margin: 0 0 var(--aga-espace);
	padding: 0.6em 0.9em;
	border-radius: calc(var(--aga-rayon) * 0.75);
	background: var(--aga-fond-fort);
	font-weight: 600;
}
.aga-infos__alerte--annule { background: var(--aga-annule); color: #fff; }
.aga-infos__alerte--complet { background: var(--aga-complet); color: #fff; }
.aga-infos__alerte--reporte { background: var(--aga-reporte); color: #fff; }
.aga-infos__liste {
	display: grid;
	gap: 0.75rem;
	margin: 0;
}
.aga-infos__ligne {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 0.5rem 1rem;
}
.aga-infos__ligne dt {
	font-size: 0.8em;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--aga-discret);
	padding-top: 0.2em;
}
.aga-infos__ligne dd {
	margin: 0;
}
.aga-infos__ligne--date time {
	font-weight: 700;
}
.aga-infos__libelle,
.aga-infos__lieu-nom,
.aga-infos__adresse {
	display: block;
}
.aga-infos__libelle {
	font-style: italic;
}
.aga-infos__lieu-nom {
	font-weight: 600;
}
.aga-infos__liens {
	display: flex;
	flex-wrap: wrap;
	gap: 0.3rem 1rem;
	margin-top: 0.25rem;
}
.aga-infos__tarifs {
	margin: 0;
	padding: 0;
	list-style: none;
}
.aga-infos__tarifs li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 0.6rem;
	padding: 0.2rem 0;
}
.aga-infos__tarifs li + li {
	border-top: 1px dashed var(--aga-trait);
}
.aga-infos__tarif-note {
	font-size: 0.9em;
	color: var(--aga-discret);
}
.aga-infos__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 0.75rem;
	margin-top: calc(var(--aga-espace) * 1.25);
}
/* « J'y serai » : bouton plein, qui passe en contour coché une fois cliqué. */
.aga-jys {
	flex-basis: 100%;
}
.aga-jys__bouton {
	font: inherit;
	font-weight: 600;
}
.aga-jys__icone {
	display: inline-grid;
	place-items: center;
	width: 1.3em;
	height: 1.3em;
	border-radius: 50%;
	border: 1.5px solid currentColor;
	font-size: 0.85em;
	line-height: 1;
}
.aga-jys__icone::before {
	content: "+";
}
.aga-jys__bouton[aria-pressed="true"] {
	background: transparent;
	color: inherit;
	border-color: var(--aga-accent);
}
.aga-jys__bouton[aria-pressed="true"] .aga-jys__icone {
	background: var(--aga-accent);
	border-color: var(--aga-accent);
	color: var(--aga-sur-accent);
}
.aga-jys__bouton[aria-pressed="true"] .aga-jys__icone::before {
	content: "✓";
}
.aga-jys__bouton:disabled {
	opacity: 0.7;
	cursor: progress;
}
.aga-jys__aide {
	margin: 0.45rem 0 0;
	padding: 0;
	font-size: 0.85em;
	color: var(--aga-discret);
}
.aga-ajout {
	position: relative;
}
.aga-ajout summary {
	list-style: none;
}
.aga-ajout summary::-webkit-details-marker {
	display: none;
}
.aga-ajout summary::after {
	content: "▾";
	font-size: 0.8em;
}
.aga-ajout ul {
	margin: 0.4rem 0 0;
	padding: 0.4rem 0;
	border: 1px solid var(--aga-trait);
	border-radius: var(--aga-rayon);
	list-style: none;
}
.aga-ajout li a {
	display: block;
	padding: 0.35rem 0.9rem;
	color: inherit;
}
.aga-infos__dates {
	margin-top: calc(var(--aga-espace) * 1.25);
	padding-top: var(--aga-espace);
	border-top: 1px solid var(--aga-trait);
}
.aga-infos__sous-titre {
	margin: 0 0 0.5rem;
	font-weight: 700;
}
.aga-infos__dates ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.aga-infos__dates li {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.2rem 0.6rem;
	padding: 0.3rem 0;
}
.aga-infos__dates .aga-infos__libelle {
	display: inline;
	color: var(--aga-discret);
}
.aga-infos__retour {
	margin: var(--aga-espace) 0 0;
}
@media (max-width: 520px) {
	.aga-infos__ligne {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.1rem;
	}
}
/* ============ /INFOS PRATIQUES ============ */

/* ============ AFFICHES, À LA UNE, ANIMATIONS ============ */
/* Icônes en ligne */
.aga-icone {
	flex-shrink: 0;
	width: 1.05em;
	height: 1.05em;
	color: var(--aga-accent);
}

/* Colonnes imposées (grille / affiches) : 1 → 2 → N selon la largeur. */
@media (min-width: 600px) and (max-width: 899px) {
	.aga-liste__elements[style*="--aga-colonnes"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (min-width: 900px) {
	.aga-liste__elements[style*="--aga-colonnes"] {
		grid-template-columns: repeat(var(--aga-colonnes), minmax(0, 1fr));
	}
}

/* Format d'image : rapport imposé, ou image entière (affiches, flyers : rien n'est rogné). */
.aga-carte__image[style*="--aga-ratio"],
.aga-une__image[style*="--aga-ratio"] {
	aspect-ratio: var(--aga-ratio);
}
.aga .aga-carte__image--entiere {
	aspect-ratio: auto;
}
.aga .aga-carte__image--entiere img {
	height: auto;
	object-fit: contain;
}

/* Lignes date / horaires / intervenants avec icônes */
.aga-carte__meta {
	display: grid;
	gap: 0.3rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9em;
}
.aga-carte__meta li {
	display: flex;
	align-items: center;
	gap: 0.5em;
	margin: 0;
	padding: 0;
}
.aga-carte__avec {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.9em;
}
.aga-carte__bouton {
	justify-content: center;
	align-self: stretch; /* pleine largeur dans la colonne flex, sans déborder */
	width: auto;
	max-width: 100%;
	margin-top: auto;
	text-align: center;
	pointer-events: none; /* le lien couvre déjà toute la carte */
}
.aga-carte:hover .aga-carte__bouton {
	background: var(--aga-accent);
	border-color: var(--aga-accent);
	color: var(--aga-sur-accent);
}

/* ---- Grille d'affiches ---- */
.aga-liste__elements--affiches {
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr));
	gap: clamp(1rem, 2.5vw, 1.75rem);
	align-items: start;
}
.aga-carte--affiches,
.aga-carte--affiches:has(.aga-carte__image) {
	display: flex;
	flex-direction: column;
	align-items: stretch; /* la carte de base aligne au début : ici le corps prend toute la largeur */
	gap: 0;
	padding: 0;
	overflow: hidden;
}
.aga-carte--affiches .aga-carte__image {
	position: relative;
	border-radius: 0;
	aspect-ratio: var(--aga-ratio, auto);
	background: var(--aga-fond-fort);
}
.aga-carte--affiches.aga-carte--sans-image .aga-carte__image {
	min-height: 5.5rem;
}
.aga-carte--affiches .aga-carte__date {
	position: absolute;
	z-index: 1;
	top: 0.75rem;
	left: 0.75rem;
	justify-content: center;
	width: 3.9rem;
	height: 3.9rem;
	padding: 0;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}
.aga-carte--affiches .aga-carte__jour {
	font-size: 1.45em;
}
.aga-carte--affiches .aga-carte__mois {
	font-size: 0.62em;
}
.aga-carte__statut {
	position: absolute;
	z-index: 1;
	top: 0.85rem;
	right: 0.85rem;
}
.aga-carte--affiches .aga-carte__corps {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 0.45rem;
	padding: var(--aga-espace) var(--aga-espace) calc(var(--aga-espace) * 1.1);
}
.aga-carte--affiches .aga-carte__corps > * {
	margin: 0;
}
.aga-carte--affiches .aga-carte__corps > .aga-carte__bouton {
	margin-top: auto;
}
.aga-carte--affiches .aga-carte__meta {
	margin-bottom: 0.7rem;
}
.aga-carte--affiches .aga-carte__titre {
	font-size: 1.15em;
}
.aga-carte--affiches .aga-carte__libelle {
	color: var(--aga-discret);
}

/* ---- À la une (prochain événement en grand) ---- */
.aga-une {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3.5rem);
	align-items: center;
}
@media (min-width: 800px) {
	.aga-une:not(.aga-une--sans-image) {
		grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
	}
}
.aga-une__image {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--aga-rayon);
	aspect-ratio: var(--aga-ratio, 3 / 4);
	background: var(--aga-fond-fort);
}
.aga-une__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s;
}
.aga-une:hover .aga-une__image img {
	transform: scale(1.02);
}
.aga-une__pastille {
	position: absolute;
	z-index: 1;
	top: 1rem;
	left: 1rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 5.2rem;
	height: 5.2rem;
	margin: 0;
	padding: 0; /* Divi et d'autres thèmes ajoutent un padding-bottom aux <p> */
	border-radius: 50%;
	background: var(--aga-accent);
	color: var(--aga-sur-accent);
	line-height: 1;
	text-align: center;
	box-shadow: 0 6px 20px rgba(0, 0, 0, 0.25);
}
.aga-une__jour {
	font-size: 1.9em;
	font-weight: 700;
}
.aga-une__mois {
	font-size: 0.72em;
	font-weight: 600;
}
.aga-une__texte > * {
	margin-top: 0;
}
.aga .aga-une__section {
	margin: 0 0 0.6rem;
	padding: 0;
	font-size: clamp(2.1rem, 5vw, 3.8rem);
	line-height: 1.02;
	letter-spacing: -0.02em;
	color: var(--aga-couleur-section, inherit);
}
.aga .aga-une__titre {
	margin: 0 0 0.9rem;
	padding: 0;
	font-size: clamp(1.4rem, 3vw, 2.1rem);
	line-height: 1.15;
}
.aga .aga-une__titre a {
	color: inherit;
	text-decoration: none;
}
.aga-une__libelle {
	margin: -0.4rem 0 0.9rem;
	font-style: italic;
	color: var(--aga-discret);
}
.aga-une__meta {
	margin: 0 0 1rem;
	font-size: 1em;
}
.aga-une__extrait {
	max-width: 36em;
	margin: 0 0 1.4rem;
	color: var(--aga-discret);
}
.aga-une__action {
	margin: 0;
}
.aga-une--annule .aga-une__titre {
	text-decoration: line-through;
}

/* ---- Filtres multiples : « Réinitialiser » ---- */
.aga-filtre--reset {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	border-style: dashed;
}
.aga-filtre--reset .aga-icone {
	color: currentColor;
}

/* ---- Animations d'apparition (transform + opacity uniquement : aucun décalage de mise en page) ---- */
.aga-anim-pret [data-aga-anim] {
	transition: opacity 0.6s ease, transform 0.75s cubic-bezier(0.2, 0.7, 0.2, 1);
	transition-delay: calc(var(--aga-rang, 0) * 80ms);
}
.aga-anim-pret [data-aga-anim]:not(.aga-vu) {
	opacity: 0;
	/* Filet de sécurité : si le script ne se charge pas, tout apparaît après 2,5 s. */
	animation: aga-secours 0.4s ease 2.5s forwards;
}
.aga-anim-pret [data-aga-anim="montee"]:not(.aga-vu) {
	transform: translateY(28px);
}
.aga-anim-pret [data-aga-anim="bascule"]:not(.aga-vu) {
	transform: perspective(900px) rotateX(-16deg) translateY(24px);
	transform-origin: 50% 100%;
}
.aga-anim-pret [data-aga-anim="glisse"]:not(.aga-vu) {
	transform: translateX(-40px);
}
@keyframes aga-secours {
	to {
		opacity: 1;
		transform: none;
	}
}
@media (prefers-reduced-motion: reduce) {
	.aga-anim-pret [data-aga-anim],
	.aga-anim-pret [data-aga-anim]:not(.aga-vu) {
		opacity: 1;
		transform: none;
		transition: none;
		animation: none;
	}
}
/* ============ /AFFICHES, À LA UNE, ANIMATIONS ============ */

/* ============ FICHE ÉVÉNEMENT (gabarit du plugin) ============ */
.aga-fiche {
	/* Taille de texte en rem : indépendante d'un corps de page réduit par le thème (Divi : 14 px). */
	font-size: var(--aga-taille-texte, 1.0625rem);
	max-width: var(--aga-largeur);
	margin: 0 auto;
	padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 4vw, 2rem) clamp(3rem, 7vw, 6rem);
}
.aga-fiche__entete {
	display: grid;
	gap: clamp(1.5rem, 4vw, 3rem);
	align-items: center;
	margin-bottom: clamp(2rem, 5vw, 3.5rem);
}
.aga-fiche__fil {
	margin: 0 0 1.25rem;
	font-size: 0.92em;
}
.aga-fiche__fil a {
	color: var(--aga-discret);
	text-decoration: none;
}
.aga-fiche__fil a:hover {
	color: inherit;
}
.aga-fiche__badges {
	margin: 0 0 1rem;
}
.aga-fiche .aga-fiche__titre {
	margin: 0 0 0.9rem;
	padding: 0;
	font-size: clamp(2.2rem, 5vw, 4.2rem);
	line-height: 1.04;
	letter-spacing: -0.025em;
	color: inherit;
}
.aga-fiche__quand {
	margin: 0 0 1rem;
	padding: 0;
	font-size: 1.15em;
	font-weight: 600;
}
.aga-fiche__libelle {
	display: block;
	font-weight: 400;
	font-style: italic;
	color: var(--aga-discret);
}
.aga-fiche__chapo {
	max-width: 38em;
	margin: 0;
	padding: 0;
	font-size: 1.12em;
	line-height: 1.55;
	color: var(--aga-discret);
}
.aga-fiche__image {
	margin: 0;
	overflow: hidden;
	border-radius: var(--aga-rayon);
	aspect-ratio: 4 / 3;
	background: var(--aga-fond-fort);
}
.aga-fiche__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.aga-fiche__grille {
	display: grid;
	gap: clamp(2rem, 4vw, 3.5rem);
}
.aga-fiche__cote {
	order: -1; /* mobile : les infos pratiques avant le texte */
}
.aga-fiche__cote .aga-infos {
	margin: 0;
}
.aga-fiche__contenu {
	min-width: 0;
	line-height: 1.65;
}
.aga-fiche__contenu p {
	font-size: inherit;
	line-height: inherit;
}
.aga-fiche__contenu > :first-child {
	margin-top: 0;
}
.aga-fiche__contenu img {
	max-width: 100%;
	height: auto;
	border-radius: calc(var(--aga-rayon) * 0.75);
}
@media (min-width: 900px) {
	.aga-fiche__entete {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
	}
	.aga-fiche__entete--sans-image {
		grid-template-columns: minmax(0, 48rem);
	}
	.aga-fiche__grille {
		grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem);
		align-items: start;
	}
	.aga-fiche__cote {
		order: 0;
		position: sticky;
		top: var(--aga-haut-fixe, 7rem); /* hauteur de l'en-tête fixe du site */
	}
}
/* ============ /FICHE ÉVÉNEMENT ============ */

/* ============ CRÉDIT PHOTO ============ */
.aga-credit {
	position: absolute;
	z-index: 1;
	right: 0;
	bottom: 0;
	max-width: 100%;
	margin: 0;
	padding: 0.2em 0.6em;
	overflow: hidden;
	border-top-left-radius: 6px;
	background: rgba(0, 0, 0, 0.5);
	color: #fff;
	font-size: 0.66rem;
	line-height: 1.4;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.aga-carte__image,
.aga-fiche__image {
	position: relative;
}
/* ============ /CRÉDIT PHOTO ============ */

/* ============ ÉDITEUR ============ */
.aga-apercu-editeur a {
	pointer-events: none;
}
/* ============ /ÉDITEUR ============ */

@media (prefers-reduced-motion: reduce) {
	.aga *,
	.aga *::before,
	.aga *::after {
		transition: none !important;
	}
}
