/* =========================================================
   Advenn Modules — styles partagés
   ========================================================= */

/* ---------------------------------------------------------
   Module : Texte + badges
   Maquette 1440px : contenu 675px calé au tiers droit.
   --------------------------------------------------------- */
.advenn-text {
	width: 100%;
	max-width: 675px;
	margin-top: 100px;
	margin-bottom: 100px;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-text .advenn-text__content p {
	font-family: var(--font-heading);
	font-size:28px;
	font-weight: 500;;
}

/* Calage conforme maquette à partir de 992px */
@media (min-width: 992px) {
	.advenn-text {
		margin-left: 33.333%;
	}
	/* Option « Supprimer la marge à gauche » : contenu aligné à gauche */
	.advenn-text.advenn-text--no-offset {
		margin-left: 0;
	}
}

.advenn-text__content > * + * {
	margin-top: 1.4em;
}

/* Lien animé optionnel entre le texte et les badges */
.advenn-text__link {
	margin-top: 1.8rem;
}

/* Badges informatifs */
.advenn-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
}

.advenn-badge {
	display: inline-block;
	padding: 0.35em 0.9em;
	border-radius: 6px;
	font-size: 0.9rem;
	line-height: 1.4;
	color: var(--color-bleu-atlantique, #004056);
}

/* Texte blanc sur les fonds sombres (bleu atlantique, vert Crozon) */
.advenn-badge--on-dark {
	color: var(--color-blanc-alpin, #F6FBFE);
}

/* ---------------------------------------------------------
   Module : Chiffres clés (slider de cartes)
   Cartes 405px, gap 24px — bleed jusqu'au bord droit écran.
   --------------------------------------------------------- */
.advenn-cards {
	--card-w: 405px;
	--card-gap: 24px;
	/* Offset réel des cartes par rapport au conteneur : même formule que le
	   track (margin-left % + padding-left vw). Les flèches s'y réfèrent pour
	   rester calées sur les gaps quelle que soit la largeur d'écran. */
	--track-offset: calc(max(15px, 50vw - 625px) + 50% - 50vw);
	position: relative;
	margin-top: 0px;
	margin-bottom: 100px;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-cards__track {
	display: flex;
	gap: var(--card-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;              /* Firefox */
	/* Full-bleed des deux côtés : les cartes défilées restent visibles à gauche */
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	/* Départ aligné sur la trame de contenu (625px = demi-trame de 1250px).
	   NB : dans scroll-padding, les % se réfèrent au scrollport, d'où les
	   formules en vw/px plutôt qu'en %. */
	padding-left: max(15px, calc(50vw - 625px));
	scroll-padding-left: max(15px, calc(50% - 625px));
	/* Fin de piste : permet à chaque carte (même la dernière) de venir
	   s'aligner sur la trame -> le scroll n'est jamais clampé en cran partiel */
	padding-right: calc(100vw - max(15px, calc(50vw - 625px)) - var(--card-w));
}
.advenn-cards__track::-webkit-scrollbar {
	display: none;                      /* Chrome / Safari */
}

.advenn-card {
	flex: 0 0 var(--card-w);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	gap: 56px;
	min-height: 425px;
	padding: 40px 36px;
	border: 1px solid rgba(0, 64, 86, 0.35);
	background: var(--color-blanc-alpin, #F6FBFE);
}

.advenn-card__icon img {
	display: block;
	width: auto;
	height: 72px;
}

.advenn-card__title {
	margin: 0 0 0.4em;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: 22px;
	font-weight: 700;
}

.advenn-card__text {
	margin: 0;
	line-height: 1.5;
}

/* Entre 768px et ~1290px : largeur de carte fluide pour conserver
   3 blocs entiers visibles dans la largeur (15px de marge de chaque côté) */
@media (min-width: 768px) and (max-width: 1292px) {
	.advenn-cards {
		--card-w: calc((100vw - 78px) / 3);
	}
}

/* Flèches : cercle colorable (fond) + chevron colorable */
.advenn-cards__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--arrow-bg, var(--color-beige-granit-breton, #EDE5D9));
	color: var(--arrow-fg, var(--color-bleu-atlantique, #004056));
	cursor: pointer;
	transform: translate(-50%, -50%);
	transition: opacity .25s ease;
}

/* Positions maquette : centrées sur les 1er et 2e gaps,
   décalées du même offset que les cartes (--track-offset) */
.advenn-cards__arrow--prev {
	left: min(calc(var(--track-offset) + var(--card-w) + var(--card-gap) / 2), calc(100% - 60px));
}
.advenn-cards__arrow--next {
	left: min(calc(var(--track-offset) + var(--card-w) * 2 + var(--card-gap) * 1.5), calc(100% - 20px));
}

/* Slider sans débordement : navigation inutile, flèches masquées */
.advenn-cards--static .advenn-cards__arrow {
	display: none;
}
.advenn-cards--static .advenn-cards__track {
	padding-right: 0;   /* pas de piste de fin quand rien ne défile */
}

.advenn-cards__arrow[disabled] {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

/* Mobile : pile verticale, plus de slider ni de flèches */
@media (max-width: 767px) {
	.advenn-cards__track {
		display: block;
		overflow: visible;
		margin-left: 0;
		margin-right: 0;
		padding-left: 0;
		padding-right: 0;
		scroll-snap-type: none;
	}

	.advenn-card {
		flex: none;
		min-height: 0;
		gap: 32px;
		margin-bottom: 24px;
	}

	.advenn-cards__arrow {
		display: none;
	}
}

/* ---------------------------------------------------------
   Module : Image, texte & logos
   Conteneur autonome 1280px (1250 utile), bloc en retrait
   de 12% à gauche (desktop), séparateurs haut/bas optionnels.
   --------------------------------------------------------- */
.advenn-media-row {
	--section-color: var(--color-blanc-alpin, #F6FBFE);
	--row-indent: 12%;
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	color: var(--section-color);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-media-row__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 56px;
	padding-top: 70px;
	padding-bottom: 70px;
}

/* Retrait à gauche : le trait suit le bloc (desktop) */
@media (min-width: 992px) {
	.advenn-media-row__inner {
		margin-left: var(--row-indent);
	}
}

.advenn-media-row--separator .advenn-media-row__inner {
	border-top: 1px solid var(--section-color);
}

.advenn-media-row--separator-bottom .advenn-media-row__inner {
	border-bottom: 1px solid var(--section-color);
}

.advenn-media-row__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.advenn-media-row__title {
	margin: 0 0 0.9em;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.6rem, 2.4vw, 2.2rem);
	font-weight: 700;
	color: var(--section-color);
}

.advenn-media-row__chapo {
	margin: 0 0 1em;
	font-weight: 700;
	color: var(--section-color);
	font-family: var(--font-heading);
	font-size: 22px;
}

.advenn-media-row__content > * + * {
	margin-top: 1.2em;
}

/* Force la couleur face aux styles p/h du thème */
.advenn-media-row__content,
.advenn-media-row__content p,
.advenn-media-row__content li {
	color: var(--section-color);
}

.advenn-media-row__content {
	max-width: 600px;
}

/* Logos : hauteur normalisée, largeur auto */
.advenn-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 28px 40px;
	margin: 2.5rem 0 0;
	padding: 0;
	list-style: none;
}

.advenn-logos__item img {
	display: block;
	width: auto;
	height: var(--logo-h, 36px);   /* défaut — surchargé par le champ Hauteur */
	max-width: 220px;
	object-fit: contain;
}

.advenn-logos__item a {
	display: block;
	transition: opacity .2s ease;
}
.advenn-logos__item a:hover {
	opacity: .75;
}

/* Responsive : image au-dessus du texte, pas de retrait */
@media (max-width: 767px) {
	.advenn-media-row__inner {
		grid-template-columns: 1fr;
		gap: 28px;
		padding-top: 40px;
		padding-bottom: 40px;
	}

	/* Image paysage sur mobile (la version carrée est réservée au desktop) */
	.advenn-media-row__image img {
		aspect-ratio: 16 / 9;
	}

	/* Logos réduits proportionnellement (70% de leur hauteur desktop) */
	.advenn-logos {
		gap: 16px 24px;
		margin-top: 1.6rem;
	}
	.advenn-logos__item img {
		height: calc(var(--logo-h, 36px) * 0.7);
	}
}

/* ---------------------------------------------------------
   Module : Texte & image (2 colonnes)
   Lien animé : glissement 30px + apparition de la flèche.
   --------------------------------------------------------- */
.advenn-split {
	--hover-color: var(--color-vert-crozon, #009993);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	padding-top: 100px;
	padding-bottom: 100px;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	gap: 64px;
	align-items: start;
	color: var(--color-bleu-atlantique, #004056);
	font-family: var(--font-body, "Sora", sans-serif);
}

/* Variante image à gauche */
.advenn-split--image-left .advenn-split__body  { order: 2; }
.advenn-split--image-left .advenn-split__image { order: 1; }

.advenn-split__title {
	margin: 0 0 1.2em;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.7rem, 2.6vw, 2.5rem);
	font-weight: 700;
	line-height: 1.25;
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-split__content,
.advenn-split__content p,
.advenn-split__content li {
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-split__content > * + * {
	margin-top: 1.2em;
}

.advenn-split__content {
	max-width: 560px;
}

/* Lien du module : marge au-dessus */
.advenn-split .advenn-link {
	margin-top: 2.8rem;
}

.advenn-split__image img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

/* Responsive : image au-dessus, une colonne */
@media (max-width: 767px) {
	.advenn-split {
		grid-template-columns: 1fr;
		gap: 36px;
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.advenn-split__body,
	.advenn-split--image-left .advenn-split__body  { order: 2; }
	.advenn-split__image,
	.advenn-split--image-left .advenn-split__image { order: 1; }
}



/* ---------------------------------------------------------
   Module : Texte & lien
   Titre + texte à gauche, lien à droite.
   --------------------------------------------------------- */
.advenn-cta {
	--section-color: var(--color-bleu-atlantique, #004056);
	--link-color: var(--color-bleu-atlantique, #004056);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	padding-top: 100px;
	padding-bottom: 100px;
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	gap: 64px;
	align-items: center;
	color: var(--section-color);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-cta__title {
	margin: 0 0 1em;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.7rem, 2.6vw, 2.5rem);
	font-weight: 700;
	line-height: 1.3;
	color: var(--section-color);
}

.advenn-cta__content,
.advenn-cta__content p,
.advenn-cta__content li {
	color: var(--section-color);
}

.advenn-cta__content > * + * {
	margin-top: 1.2em;
}

.advenn-cta__content {
	max-width: 560px;
}

/* Colonne du lien : alignement à droite + réserve pour le
   glissement de 30px au survol */
.advenn-cta__aside {
	text-align: right;
	padding-right: 45px;
}

/* Option « Lien à gauche sous le contenu » : une seule colonne,
   le lien passe sous le texte et s'aligne à gauche. */
.advenn-cta.advenn-cta--link-below {
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: start;
}
.advenn-cta--link-below .advenn-cta__aside {
	text-align: left;
	padding-right: 0;
}

@media (max-width: 767px) {
	.advenn-cta {
		grid-template-columns: 1fr;
		gap: 28px;
		padding-top: 48px;
		padding-bottom: 48px;
	}

	.advenn-cta__aside {
		text-align: left;
		padding-right: 0;
	}
}

/* ---------------------------------------------------------
   Lien Advenn partagé (tous modules)
   --animated : glissement 30px + flèche sortant du libellé
   --------------------------------------------------------- */
.advenn-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;   /* espace libellé / flèche (10-15px) */
	font-weight: 700;
	text-decoration: none;
	color: var(--link-color, var(--color-bleu-atlantique, #004056));
}

.advenn-link--simple {
	transition: opacity .2s ease;
}
.advenn-link--simple:hover,
.advenn-link--simple:focus-visible {
	opacity: .75;
}

.advenn-link--animated {
	transition: color .45s ease, transform .45s ease;
	will-change: transform;
}

.advenn-link__arrow-mask {
	display: inline-flex;
	overflow: hidden;
}

.advenn-link__arrow {
	flex: 0 0 auto;
	width: 29px;
	height: 8px;
	transform: translateX(-110%);   /* cachée derrière le bord de la fenêtre */
	transition: transform .45s ease;
}

.advenn-link--animated:hover,
.advenn-link--animated:focus-visible {
	color: var(--hover-color, var(--color-vert-crozon, #009993));
	transform: translateX(30px);
}

.advenn-link--animated:hover .advenn-link__arrow,
.advenn-link--animated:focus-visible .advenn-link__arrow {
	transform: translateX(0);
}

@media (prefers-reduced-motion: reduce) {
	.advenn-link--animated,
	.advenn-link__arrow {
		transition: none;
	}
	.advenn-link--animated:hover {
		transform: none;
	}
	.advenn-link--animated:hover .advenn-link__arrow {
		transform: none;
	}
}

/* ---------------------------------------------------------
   Module : Timeline
   Desktop : siècle sticky remplacé par empilement naturel.
   Mobile : roue verticale (arc + année active seule).
   --------------------------------------------------------- */
.advenn-timeline {
	--tl-year: var(--color-jaune-ajonc, #FCD700);
	--tl-text: var(--color-blanc-alpin, #F6FBFE);
	--tl-digits: clamp(6rem, 12vw, 11rem);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	color: var(--tl-text);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-timeline__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}

/* ----- Desktop ----- */
.advenn-timeline__group {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 2.6fr);
	/* pas d'align-items:start : la colonne du siècle doit remplir la
	   hauteur du groupe pour donner sa course au sticky */
}

.advenn-timeline__centcol {
	position: relative;
	height: 100%;
}

.advenn-timeline__century {
	position: sticky;
	top: 34px;                 /* 90px (header) - 56px (padding) : cale les CHIFFRES à 90 */
	padding-top: 56px;         /* aligne le siècle sur la 1re année */
	font-size: var(--tl-digits);
	font-weight: 300;
	line-height: 0.85;
	text-align: right;
	color: var(--tl-text);
}

/* Libéré par le JS : le siècle se fige aligné sur la dernière année du groupe */
.advenn-timeline__century.is-pinned-bottom {
	position: absolute;
	top: auto;
	left: 0;
	right: 0;   /* rétablit le text-align:right en mode figé */
}

.advenn-timeline__entry {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr) minmax(0, 1fr);
	column-gap: 48px;
	padding-top: 56px;
	padding-bottom: 56px;
}

/* Trait séparateur : démarre au niveau des unités */
.advenn-timeline__entry::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 1px;
	background: var(--tl-text);
	opacity: 0.7;
}
/* Pas de trait au-dessus de la toute première entrée de la frise */
.advenn-timeline__group:first-child .advenn-timeline__entries > .advenn-timeline__entry:first-child::before {
	display: none;
}

.advenn-timeline__units {
	grid-row: 1 / 3;
	font-size: var(--tl-digits);
	font-weight: 300;
	line-height: 0.85;   /* cale le haut des chiffres sur le haut du titre */
	color: var(--tl-year);
}

.advenn-timeline__title {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	font-family: var(--font-body, "Sora", sans-serif);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--tl-text);
}

.advenn-timeline__text {
	grid-column: 3;
	grid-row: 1;
	margin: 0;
	line-height: 1.35;
	color: var(--tl-text);
}

.advenn-timeline__photos {
	grid-column: 2 / -1;
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	margin-top: 40px;
}
.advenn-timeline__photos--left   { justify-content: flex-start; }
.advenn-timeline__photos--center { justify-content: center; }
.advenn-timeline__photos--right  { justify-content: flex-end; }

.advenn-timeline__photos img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 440px;
	height: auto;
	object-fit: contain;
}

/* La roue est cachée en desktop */
.advenn-timeline__wheel {
	display: none;
}

/* ----- Mobile : roue ----- */
@media (max-width: 767px) {
	.advenn-timeline__desktop {
		display: none;
	}

	.advenn-timeline {
		padding-left: 0;   /* le rotator touche le bord de l'écran */
	}

	.advenn-timeline__wheel {
		display: block;
		position: relative;
		min-height: 600px;
		overflow: hidden;
		padding: 40px 24px 40px 135px;
	}

	/* Arc de cercle (SVG rotator) */
	.advenn-timeline__arc {
		position: absolute;
		top: 50%;
		left: 0;
		height: 542px;
		transform: translateY(-50%);
		color: var(--tl-year);
		pointer-events: none;
	}
	.advenn-timeline__arc svg {
		height: 100%;
		width: auto;
		display: block;
	}

	/* Années adjacentes (millésime seul, incliné sur l'arc) */
	.advenn-timeline__adjacent {
		position: absolute;
		left: 48px;
		font-family: var(--font-heading);
		font-size: 2.6rem;
		font-weight: 700;
		color: var(--tl-year);
		opacity: 0.55;
		transition: opacity .3s ease;
		pointer-events: none;
		white-space: nowrap;
	}
	.advenn-timeline__adjacent--prev {
		top: 110px;
		left: 86px;
		transform: rotate(-30deg);
	}
	.advenn-timeline__adjacent--next {
		bottom: 43px;
		left: 37px;
		transform: rotate(44deg);
	}
	.advenn-timeline__adjacent:empty {
		opacity: 0;
	}

	/* Bouton de navigation (SVG double chevron) sur l'arc */
	.advenn-timeline__nav {
		position: absolute;
		top: 50%;
		left: 40px;
		transform: translate(-50%, -50%);
		z-index: 2;
		display: flex;
		flex-direction: column;
		gap: 20px;
	}
	.advenn-timeline__nav-btn {
		display: block;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		background: transparent;
		cursor: pointer;
		transition: opacity .2s ease;
	}
	.advenn-timeline__nav-btn:hover { opacity: .85; }
	.advenn-timeline__nav-btn[disabled] { opacity: .4; cursor: default; pointer-events: none; }
	.advenn-timeline__nav-btn svg {
		display: block;
		width: 100%;
		height: 100%;
	}

	/* Diapos : seule l'active est visible */
	.advenn-timeline__slides {
		position: relative;
		top: 118px;
		min-height: 400px;
	}

	.advenn-timeline__slide {
		position: absolute;
		inset: 0;
		top: 66px;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		opacity: 0;
		transform: translateY(24px);
		transition: opacity .35s ease, transform .35s ease;
		pointer-events: none;
	}
	.advenn-timeline__slide.is-active {
		opacity: 1;
		transform: translateY(0);
		pointer-events: auto;
	}
	.advenn-timeline__slide.is-leaving-up   { transform: translateY(-24px); }

	.advenn-timeline__slide-year {
		font-family: var(--font-heading);
		font-size: 72px;
		font-weight: 700;
		color: var(--tl-year);
		line-height: 1;
		padding-bottom: 3px;
		margin-bottom: 16px;
		border-bottom: 1px solid var(--tl-text);
	}

	.advenn-timeline__slide .advenn-timeline__title {
		grid-column: auto;
		margin: 0 0 0.8em;
		font-size: 18px;
	}

	.advenn-timeline__slide .advenn-timeline__text {
		grid-column: auto;
		margin: 0;
		font-size: 14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.advenn-timeline__slide {
		transition: none;
	}
}

/* ---------------------------------------------------------
   Module : Actualités (carrousel des derniers articles)
   Cartes 3 par vue, chevauchement du hero via marge négative.
   --------------------------------------------------------- */
.advenn-actus {
	--actu-gap: 32px;
	position: relative;
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	font-family: var(--font-body, "Sora", sans-serif);
}

/* Chevauchement du hero */
.advenn-actus--overlap {
	margin-top: -220px;
	z-index: 5;
}

.advenn-actus__track {
	display: flex;
	gap: var(--actu-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.advenn-actus__track::-webkit-scrollbar { display: none; }

.advenn-actus__card {
	flex: 0 0 calc((100% - 2 * var(--actu-gap)) / 3);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--color-blanc-alpin, #F6FBFE);
	border: 1px solid rgba(0, 64, 86, 0.25);
}

.advenn-actus__media {
	position: relative;
	aspect-ratio: 4 / 3;
	overflow: hidden;
}
.advenn-actus__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Pastille verte avec icône de type */
/* Conteneur : porte le positionnement, les pastilles s'alignent dedans */
.advenn-actus__badges {
	position: absolute;
	top: 16px;
	left: 16px;
	display: flex;
	gap: 8px;
	z-index: 1;
}

.advenn-actus__badge {
	flex: 0 0 auto;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--color-vert-jeune-pousse, #6AB86B);
	color: var(--color-blanc-alpin, #F6FBFE);
}
.advenn-actus__badge svg,
.advenn-actus__badge img { width: 24px; height: 24px; display: block; object-fit: contain; }

.advenn-actus__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 28px 26px 32px;
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-actus__title {
	margin: 0 0 0.8em;
	font-size: 1.3rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-actus__excerpt {
	margin: 0 0 2em;
	line-height: 1.5;
	color: var(--color-bleu-atlantique, #004056);
}

.advenn-actus__link {
	margin-top: auto;        /* colle le lien au bas de la carte */
	align-self: flex-start;  /* le libellé garde sa largeur naturelle */
	font-weight: 700;
	text-decoration: none;
	color: var(--color-bleu-atlantique, #004056);
	/* PAS de transition ici : l'élément porte aussi .advenn-link--animated,
	   dont la transition (color + transform) serait écrasée par cette règle
	   plus tardive — l'animation se ferait alors d'un seul saut. */
}

/* Flèches centrées sur la ligne des cartes */
.advenn-actus__arrow {
	position: absolute;
	top: calc(15px + (100% - 30px) * 0);   /* recalé en JS-free : voir below */
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--color-vert-crozon, #009993);
	color: var(--color-blanc-alpin, #F6FBFE);
	cursor: pointer;
	transform: translateY(-50%);
	transition: opacity .25s ease;
	z-index: 2;
}
/* position verticale : au niveau du bas des images (~40% de la carte) */
.advenn-actus__arrow {
	top: 38%;
}
.advenn-actus__arrow--prev { left: calc((100% - 2 * var(--actu-gap)) / 3 + 15px); transform: translate(-50%, -50%); }
.advenn-actus__arrow--next { left: calc((100% - 2 * var(--actu-gap)) / 3 * 2 + var(--actu-gap) + 15px); transform: translate(-50%, -50%); }

.advenn-actus__arrow[disabled] {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

.advenn-actus__more {
	margin-top: 60px;
	padding-inline: 4px;
}
.advenn-actus__more-link {
	font-weight: 700;
	font-size: 1.1rem;
	text-decoration: none;
	color: var(--actus-more-color, var(--color-bleu-atlantique, #004056));
	/* PAS de transition ici : l'élément porte aussi .advenn-link--animated,
	   dont la transition (color + transform) serait écrasée par cette règle
	   plus tardive — l'animation se ferait alors d'un seul saut. */
}
/* La couleur de survol alimente la variable lue par .advenn-link--animated */
.advenn-actus__more {
	--hover-color: var(--actus-more-hover, var(--color-vert-crozon, #009993));
}

/* Responsive */
@media (max-width: 1024px) {
	.advenn-actus__card { flex-basis: calc((100% - var(--actu-gap)) / 2); }
	.advenn-actus__arrow { display: none; }
	.advenn-actus--overlap { margin-top: -120px; }
}
@media (max-width: 640px) {
	.advenn-actus__card { flex-basis: 86%; }
	.advenn-actus--overlap { margin-top: -80px; }
}

/* ---------------------------------------------------------
   Module : Texte (2/3 droite)
   Contenu calé sur les deux tiers droits (desktop),
   pleine largeur en mobile. Fond géré par la row.
   --------------------------------------------------------- */
.advenn-textlarge {
	--section-color: var(--color-bleu-atlantique, #004056);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	padding-top: 50px;
	padding-bottom: 50px;
	color: var(--section-color);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-textlarge__content {
	width: 100%;
	font-size: 1.4rem;
	line-height: 1.5;
	font-weight: 700;
}

.advenn-textlarge__content,
.advenn-textlarge__content p,
.advenn-textlarge__content li {
	color: var(--section-color);
}

.advenn-textlarge__content > * + * {
	margin-top: 1.2em;
}

/* Desktop : calé sur les 2/3 droite */
@media (min-width: 768px) {
	.advenn-textlarge__content {
		width: 66.666%;
		margin-left: 33.333%;
	}
}

/* ---------------------------------------------------------
   Module : Panneaux d'activités (accordéon horizontal)
   Un panneau ouvert s'élargit, les autres rétrécissent.
   --------------------------------------------------------- */
.advenn-panels {
	display: flex;
	width: 100%;
	min-height: 520px;
	overflow: hidden;
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-panel {
	position: relative;
	flex: 1 1 0;                       /* init : parts égales */
	min-width: 0;
	background-size: cover;
	background-position: center;
	overflow: hidden;
	cursor: pointer;
	transition: flex-grow .5s cubic-bezier(.4, 0, .2, 1);
}

/* Dès qu'un panneau est ouvert dans le groupe, les fermés rétrécissent un peu */
.advenn-panels.has-open .advenn-panel {
	flex-grow: 0.3;
}

/* Panneau ouvert : prend davantage de place */
.advenn-panels.has-open .advenn-panel.is-open {
	flex-grow: 2.6;
	cursor: default;
}

/* Voile sombre pour lisibilité, plus dense sur le panneau ouvert */
.advenn-panel::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0, 20, 30, 0.15) 0%, rgba(0, 20, 30, 0.65) 100%);
	transition: background .5s ease;
	pointer-events: none;
}
.advenn-panel.is-open::before {
	background: linear-gradient(180deg, rgba(0, 20, 30, 0.25) 0%, rgba(0, 20, 30, 0.75) 100%);
}

/* Bouton (icône + titre) sur toute la surface */
.advenn-panel__toggle {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	width: 100%;
	height: 100%;
	padding: 40px 44px;
	border: 0;
	background: transparent;
	color: var(--color-blanc-alpin, #F6FBFE);
	text-align: left;
	cursor: inherit;
}

.advenn-panel__icon {
	position: absolute;
	top: 40px;
	right: 40px;
	transition: opacity .35s ease;
}

/* Quand un panneau est ouvert : icônes des AUTRES masquées */
.advenn-panels.has-open .advenn-panel:not(.is-open) .advenn-panel__icon {
	opacity: 0;
}
.advenn-panel__icon img {
	display: block;
	width: 56px;
	height: 56px;
	object-fit: contain;
}

.advenn-panel__title {
	margin: 0;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.5rem, 2.2vw, 2.3rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--color-blanc-alpin, #F6FBFE);
	white-space: normal;
	transition: opacity .35s ease;
}

/* Quand un panneau est ouvert : titres des AUTRES masqués */
.advenn-panels.has-open .advenn-panel:not(.is-open) .advenn-panel__title {
	opacity: 0;
}

/* Zone révélée (badges + lien) : masquée tant que fermé */
.advenn-panel__reveal {
	position: absolute;
	left: 44px;
	right: 44px;
	bottom: 40px;
	z-index: 3;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity .4s ease .1s, transform .4s ease .1s;
	pointer-events: none;
}
.advenn-panel.is-open .advenn-panel__reveal {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

/* Le titre remonte au-dessus de la zone révélée quand ouvert */
.advenn-panel.is-open .advenn-panel__toggle {
	justify-content: flex-end;
	padding-bottom: 150px;
}

.advenn-panel__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 20px;
	padding: 0;
	list-style: none;
}
.advenn-panel__badge {
	padding: 8px 18px;
	border: 1px solid var(--color-blanc-alpin, #F6FBFE);
	border-radius: 5px;
	color: var(--color-blanc-alpin, #F6FBFE);
	font-size: 0.95rem;
	white-space: nowrap;
	background: transparent;
	transition: background-color .25s ease;
}
/* Fond au survol, couleur définie panneau par panneau.
   Le libellé reste blanc dans tous les cas. */
.advenn-panel__badge:hover {
	background: var(--panel-badge-hover, transparent);
	color: var(--color-blanc-alpin, #F6FBFE);
}

/* Le lien est blanc au repos ; au survol il reprend la couleur choisie
   dans le module. Cette règle étant plus spécifique que
   .advenn-link--animated:hover, elle doit gérer les deux états
   elle-même, sinon le blanc l'emporterait aussi au survol. */
.advenn-panel__link .advenn-link {
	color: var(--color-blanc-alpin, #F6FBFE);
}
.advenn-panel__link .advenn-link:hover,
.advenn-panel__link .advenn-link:focus-visible {
	color: var(--hover-color, var(--color-jaune-ajonc, #FCD700));
}

/* Mobile : empilement vertical, tous ouverts en accordéon vertical */
@media (max-width: 767px) {
	.advenn-panels {
		flex-direction: column;
		min-height: 0;
	}
	.advenn-panel {
		flex: none;
		min-height: 200px;
		transition: min-height .5s cubic-bezier(.4, 0, .2, 1);
	}
	.advenn-panel.is-open {
		min-height: 420px;
	}
	.advenn-panel__toggle,
	.advenn-panel.is-open .advenn-panel__toggle {
		padding: 32px 28px;
	}
	.advenn-panel.is-open .advenn-panel__toggle {
		padding-bottom: 150px;
	}
	.advenn-panel__reveal {
		left: 28px;
		right: 28px;
		bottom: 28px;
	}
	.advenn-panel__icon {
		top: 28px;
		right: 28px;
	}
	.advenn-panel__icon img { width: 44px; height: 44px; }
}

/* ---------------------------------------------------------
   Module : Chiffres animés
   Chiffres empilés (nombre + description), séparateur bas,
   lien en pied. Le titre est géré à part.
   --------------------------------------------------------- */
.advenn-stats {
	--section-color: var(--color-blanc-alpin, #F6FBFE);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	color: var(--section-color);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-stats__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

/* Desktop : les chiffres occupent la colonne de droite (2/3),
   le tiers gauche est laissé au titre géré à part par le client */
@media (min-width: 768px) {
	.advenn-stats__list,
	.advenn-stats__more {
		width: 66.666%;
		margin-left: 33.333%;
	}
}

.advenn-stats__item {
	padding: 40px 0 28px;
	border-bottom: 1px solid var(--section-color);
}
.advenn-stats__item:first-child {
	padding-top: 0;
}

.advenn-stats__value {
	display: block;
	font-family: var(--font-body, "Sora", sans-serif);
	font-size: clamp(3.5rem, 7vw, 6rem);
	font-weight: 500;
	line-height: 1;
	color: var(--section-color);
	font-variant-numeric: tabular-nums;   /* évite le "sautillement" des chiffres */
}

.advenn-stats__label {
	display: block;
	margin-top: 0.6em;
	font-size: 1.05rem;
	color: var(--section-color);
}

.advenn-stats__more {
	margin-top: 48px;
}
.advenn-stats__more .advenn-link {
	color: var(--section-color);
}

/* ---------------------------------------------------------
   Module : Timeline home (frise horizontale déroulante)
   Années en colonnes (millésime tourné 90°), scroll libre,
   déroulement par flèches. Largeur initiale ~7/12 -> pleine.
   Mobile : bascule sur la roue (.advenn-timeline).
   --------------------------------------------------------- */
.advenn-tlh {
	--tl-year: var(--color-jaune-ajonc, #FCD700);
	--tl-text: var(--color-blanc-alpin, #F6FBFE);
	--tlh-col: 300px;          /* largeur d'une colonne année */
	position: relative;
	width: 100%;
	color: var(--tl-text);
	font-family: var(--font-body, "Sora", sans-serif);
}

.advenn-tlh__head {
	display: flex;
	align-items: center;
	gap: 40px;
	max-width: 1280px;
	margin-inline: auto;
	padding: 0 15px 40px;
	/* le bloc intro+flèches est décalé à droite, aligné sur le début des années */
	padding-left: calc(1250px * 6 / 12);
}
.advenn-tlh__intro {
	margin: 0;
	max-width: 460px;
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.3;
	color: var(--tl-text);
}

.advenn-tlh__nav {
	display: flex;
	gap: 8px;
	flex: 0 0 auto;
	margin-left: auto;   /* pousse les flèches à droite du duo */
}
.advenn-tlh__arrow {
	display: grid;
	place-items: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--tl-text);
	cursor: pointer;
	transition: color .25s ease, opacity .25s ease;
}
.advenn-tlh__arrow:hover {
	color: var(--tl-year);
}
.advenn-tlh__arrow[disabled] {
	opacity: 0.3;
	cursor: default;
	pointer-events: none;
}

/* Piste scrollable : largeur initiale ~7/12, s'étire au déroulement.
   On part de la gauche (le contenu commence sur la trame), la piste
   déborde à droite jusqu'au bord de l'écran. */
.advenn-tlh__track {
	display: flex;
	gap: 0;
	overflow-x: auto;
	scroll-behavior: smooth;
	overscroll-behavior-x: contain;
	scrollbar-width: none;
	/* Les colonnes démarrent décalées à ~5/12 de la zone de contenu (1250px),
	   soit marge de trame gauche + 5/12 × 1250 ≈ 521px. */
	padding-left: calc(max(15px, (100% - 1250px) / 2) + (1250px * 5 / 12));
}
.advenn-tlh__track::-webkit-scrollbar { display: none; }

.advenn-tlh__col {
	flex: 0 0 var(--tlh-col);
	min-width: 0;
	padding: 40px 40px 40px 0;
	border-top: 1px solid rgba(246, 251, 254, 0.4);
	position: relative;
}

/* Millésime tourné à 90° */
.advenn-tlh__year {
	font-family: var(--font-body, "Ancizar", sans-serif);
	font-size: 115px;
	font-weight: 500;
	line-height: 0.9;
	color: var(--tl-year);
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	margin-bottom: 24px;
}

.advenn-tlh__sr {
	position: absolute;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

.advenn-tlh__title {
	margin: 0 0 0.6em;
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--tl-text);
}
.advenn-tlh__text {
	margin: 0;
	font-size: 0.95rem;
	line-height: 1.5;
	color: var(--tl-text);
}

/* Le module mobile (roue) est masqué en desktop */
.advenn-tlh__mobile { display: none; }

/* =========================================================
   Mobile (< 768px) : on masque la frise, on montre la roue
   ========================================================= */
@media (max-width: 767px) {
	.advenn-tlh__head {
		display: none;
		padding-left: 0;
	}
	.advenn-tlh__track { display: none; }
	.advenn-tlh__mobile { display: block; }
}

/* ---------------------------------------------------------
   Module : Piliers (3 blocs image + numéro + dégradé)
   Desktop : 3 colonnes accolées, texte sur image + dégradé.
   Mobile : image en bandeau puis texte sur fond plein.
   --------------------------------------------------------- */
.advenn-piliers {
	--pil-overlay: var(--color-bleu-atlantique, #004056);
	--pil-mobile-bg: var(--color-bleu-atlantique, #004056);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	width: 100%;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--color-blanc-alpin, #F6FBFE);
}

.advenn-pilier {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 600px;          /* hauteur fixe : plancher ET plafond, même en full-width */
	max-height: 600px;
	overflow: hidden;
}

/* --- Média : image plein cadre + numéro + dégradé --- */
.advenn-pilier__media {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.advenn-pilier__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Dégradé posé par-dessus l'image (bas -> haut) */
.advenn-pilier__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		var(--pil-overlay) 0%,
		color-mix(in srgb, var(--pil-overlay) 55%, transparent) 38%,
		transparent 72%
	);
}
.advenn-pilier__num {
	position: absolute;
	top: 28px;
	right: 32px;
	z-index: 1;
	font-family: var(--font-body, "Sora", sans-serif);
	font-size: 1.5rem;
	font-weight: 500;
	color: var(--color-blanc-alpin, #F6FBFE);
	letter-spacing: 0.02em;
}

/* --- Corps : titre + contenu, en bas sur l'image --- */
.advenn-pilier__body {
	position: relative;
	z-index: 1;
	margin-top: auto;
	padding: 40px 40px 48px;
}
.advenn-pilier__title {
	margin: 0 0 24px;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.6rem, 2.2vw, 2.1rem);
	font-weight: 700;
	color: var(--color-blanc-alpin, #F6FBFE);
}
.advenn-pilier__content {
	font-size: 1rem;
	line-height: 1.5;
}
.advenn-pilier__content ul {
	margin: 0;
	padding: 0;
	list-style: none;
}
.advenn-pilier__content li {
	position: relative;
	padding-left: 22px;
	margin-bottom: 0px;
}
.advenn-pilier__content li:last-child {
	margin-bottom: 0;
}
.advenn-pilier__content ul:last-child,
.advenn-pilier__content p:last-child {
	margin-bottom: 0;
}
/* Puce carrée façon maquette */
.advenn-pilier__content li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.5em;
	width: 7px;
	height: 7px;
	background: var(--color-blanc-alpin, #F6FBFE);
}
.advenn-pilier__content p { margin: 0 0 12px; }
.advenn-pilier__content a { color: inherit; text-decoration: underline; }

/* =========================================================
   Mobile (< 768px) : image en bandeau, texte sur fond plein
   ========================================================= */
@media (max-width: 767px) {
	.advenn-piliers {
		grid-template-columns: 1fr;
	}
	.advenn-pilier {
		height: auto;
		max-height: none;
	}
	/* le média reprend le flux (bandeau en haut) */
	.advenn-pilier__media {
		position: relative;
		inset: auto;
		height: 300px;
	}
	.advenn-pilier__media::after {
		display: none;      /* pas de dégradé en mobile */
	}
	.advenn-pilier__num {
		display: none;      /* pas de numéro en mobile */
	}
	.advenn-pilier__body {
		margin-top: 0;
		padding: 36px 28px 44px;
		background: var(--pil-mobile-bg);
	}
}

/* ---------------------------------------------------------
   Module : Aller plus loin (bandeau titre + accroche + lien)
   Le fond de couleur et la pleine largeur sont gérés par la row.
   --------------------------------------------------------- */
.advenn-apl {
	--apl-color: var(--color-bleu-atlantique, #004056);
	display: flex;
	align-items: center;
	gap: clamp(32px, 6vw, 96px);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding: 48px 15px;
	color: var(--apl-color);
	font-family: var(--font-body, "Sora", sans-serif);
	text-decoration: none;
}

.advenn-apl__head {
	display: flex;
	align-items: center;
	gap: 24px;
	flex: 0 0 auto;
}
.advenn-apl__arrow {
	flex: 0 0 auto;
	display: block;
	transition: transform .3s ease;
}
.advenn-apl__title {
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.8rem, 3vw, 2.6rem);
	font-weight: 700;
	line-height: 1.1;
	color: var(--apl-color);
}

.advenn-apl__tagline {
	font-size: clamp(1rem, 1.3vw, 1.2rem);
	font-weight: 700;
	line-height: 1.4;
	color: var(--apl-color);
}

/* Interaction (uniquement quand c'est un lien) */
a.advenn-apl:hover .advenn-apl__arrow {
	transform: translate(4px, -4px);   /* la flèche part vers le haut-droite */
}
a.advenn-apl:hover .advenn-apl__tagline {
	text-decoration: underline;
}

/* Mobile : empilement */
@media (max-width: 767px) {
	.advenn-apl {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
		padding: 40px 20px;
	}
	.advenn-apl__head { gap: 16px; }
}

/* ---------------------------------------------------------
   Module : Équipe (slider de portraits)
   Desktop : même mécanique que Chiffres clés — cartes 405px,
   full-bleed 2 côtés, aperçu à droite, flèches entre cartes.
   Mobile : 2 cartes pleines par vue, flèches gauche/droite.
   --------------------------------------------------------- */
.advenn-team {
	/* 5 cartes dans la largeur de la trame (desktop). La 6e dépasse et
	   sert d'aperçu, comme avant. */
	--card-gap: 24px;
	--card-w: calc((min(1250px, 100vw - 30px) - 4 * var(--card-gap)) / 5);
	--team-overlay: var(--color-bleu-atlantique, #004056);
	--track-offset: calc(max(15px, 50vw - 625px) + 50% - 50vw);
	position: relative;
	margin-top: 0px;
	margin-bottom: 100px;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--color-blanc-alpin, #F6FBFE);
}

.advenn-team__track {
	display: flex;
	gap: var(--card-gap);
	margin: 0;
	padding: 0;
	list-style: none;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	overscroll-behavior-x: contain;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	padding-left: max(15px, calc(50vw - 625px));
	scroll-padding-left: max(15px, calc(50% - 625px));
	padding-right: calc(100vw - max(15px, calc(50vw - 625px)) - var(--card-w));
}
.advenn-team__track::-webkit-scrollbar { display: none; }

.advenn-team__card {
	position: relative;
	flex: 0 0 var(--card-w);
	scroll-snap-align: start;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background: var(--color-bleu-atlantique-60, rgba(0, 64, 86, 0.6));
}
.advenn-team__pic {
	position: absolute;
	inset: 0;
	display: block;
}
.advenn-team__img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Dégradé bas -> haut pour la lisibilité du nom/fonction */
.advenn-team__card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		var(--team-overlay) 0%,
		color-mix(in srgb, var(--team-overlay) 50%, transparent) 30%,
		transparent 60%
	);
}

.advenn-team__caption {
	position: absolute;
	left: 15px;
	right: 15px;
	bottom: 15px;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.advenn-team__name {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--color-blanc-alpin, #F6FBFE);
}
.advenn-team__role {
	font-size: 0.9rem;
	line-height: 1.3;
	color: var(--color-blanc-alpin, #F6FBFE);
}

/* Flèches — cercle + chevron colorables (repris de Chiffres clés) */
.advenn-team__arrow {
	position: absolute;
	top: 50%;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--arrow-bg, var(--color-beige-granit-breton, #EDE5D9));
	color: var(--arrow-fg, var(--color-bleu-atlantique, #004056));
	cursor: pointer;
	transform: translateY(-50%);
	transition: opacity .25s ease;
}
.advenn-team__arrow--prev {
	left: min(calc(var(--track-offset) + var(--card-w) + var(--card-gap) / 2 - 20px), calc(100% - 60px));
}
.advenn-team__arrow--next {
	left: min(calc(var(--track-offset) + var(--card-w) * 4 + var(--card-gap) * 3.5 - 20px), calc(100% - 24px));
}
.advenn-team__arrow[disabled] {
	opacity: 0.35;
	cursor: default;
	pointer-events: none;
}

/* Nav mobile (double chevron) — masquée en desktop */
/* Moins de 4 personnes en desktop : les flèches n'ont plus d'utilité */
.advenn-team--no-arrows .advenn-team__arrow { display: none; }

.advenn-team__mobilenav { display: none; }

/* =========================================================
   Tablette (768px – 991px) : 3 cartes dans la largeur
   ========================================================= */
@media (min-width: 768px) and (max-width: 991px) {
	.advenn-team {
		--card-w: calc((min(1250px, 100vw - 30px) - 3 * var(--card-gap)) / 4);
	}
	/* Une carte de moins : la flèche droite revient d'un intervalle */
	.advenn-team__arrow--next {
		left: min(calc(var(--track-offset) + var(--card-w) * 3 + var(--card-gap) * 2.5 - 20px), calc(100% - 24px));
	}
}

/* =========================================================
   Mobile (< 768px) : pagination VERTICALE par pages de 2 —
   2 personnes l'une au-dessus de l'autre, nav au-dessus.
   ========================================================= */
@media (max-width: 767px) {
	/* Les flèches desktop (entre cartes) sont masquées en mobile */
	.advenn-team__arrow { display: none; }

	/* Nav mobile visible, au-dessus de la 1re personne */
	/* Moins de 3 personnes : une seule page, pas de navigation */
	.advenn-team--no-mnav .advenn-team__mobilenav { display: none; }

	.advenn-team__mobilenav {
		display: flex;
		gap: 10px;
		margin: 0 0 20px 15px;
	}
	.advenn-team__mnav {
		display: grid;
		place-items: center;
		width: 44px;
		height: 44px;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: var(--arrow-bg, var(--color-beige-granit-breton, #EDE5D9));
		color: var(--arrow-fg, var(--color-bleu-atlantique, #004056));
		cursor: pointer;
		transition: opacity .25s ease;
	}
	.advenn-team__mnav[disabled] {
		opacity: 0.35;
		cursor: default;
		pointer-events: none;
	}

	/* Track : plus de scroll horizontal — pile verticale, une page = 2 cartes.
	   On masque tout et on ne montre que la page active via JS (data-page). */
	.advenn-team__track {
		display: flex;
		flex-direction: column;
		gap: 16px;
		overflow: visible;
		margin: 0;
		padding: 0 15px;
		scroll-snap-type: none;
	}
	.advenn-team__card {
		flex: none;
		width: 100%;
		aspect-ratio: 1 / 1;   /* format carré en mobile (thumbnail WP) */
	}
	/* Masquage des cartes hors page active (JS pose .is-visible) */
	.advenn-team__card { display: none; }
	.advenn-team__card.is-visible { display: block; }

	.advenn-team__caption {
		left: 24px;
		right: 24px;
		bottom: 24px;
		gap: 6px;
	}
	.advenn-team__name { font-size: 1.25rem; }
	.advenn-team__role { font-size: 1rem; }
}

/* ---------------------------------------------------------
   Module : Accordéon d'activités
   Desktop : icône + titre + toggle, contenu calé au tiers droit
   (même offset que "Texte + badges"). Un seul ouvert à la fois.
   Mobile : présentation simple encadrée, alignée à gauche.
   --------------------------------------------------------- */
.advenn-acc {
	--acc-badge-bg: var(--color-vert-jeune-pousse-60, rgba(106, 184, 107, 0.6));
	--acc-badge-color: var(--color-bleu-atlantique, #004056);
	--hover-color: var(--color-vert-crozon, #009993);
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--color-bleu-atlantique, #004056);
}
/* Desktop : tout le bloc calé au tiers droit, comme "Texte + badges" */
@media (min-width: 992px) {
	.advenn-acc__item {
		margin-left: 33.333%;
	}
}

.advenn-acc__item {
	border-top: 1px solid rgba(0, 64, 86, 0.35);
}
.advenn-acc__item:last-child {
	border-bottom: 1px solid rgba(0, 64, 86, 0.35);
}

/* En-tête cliquable : icône | titre | toggle */
.advenn-acc__header {
	display: flex;
	align-items: center;
	gap: 40px;
	width: 100%;
	padding: 28px 0;
	border: 0;
	background: transparent;
	color: inherit;
	text-align: left;
	cursor: pointer;
}
.advenn-acc__icon {
	flex: 0 0 auto;
	width: 72px;
	display: grid;
	place-items: center;
}
.advenn-acc__icon img {
	display: block;
	width: 64px;
	height: 64px;
	object-fit: contain;
}
.advenn-acc__title {
	flex: 1 1 auto;
	font-family: var(--font-heading, "Ancizar", sans-serif);
	font-size: clamp(1.6rem, 2.6vw, 2.4rem);
	font-weight: 700;
	line-height: 1.1;
}

/* Toggle +/− dessiné en CSS */
.advenn-acc__toggle {
	position: relative;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
}
.advenn-acc__toggle::before,
.advenn-acc__toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 24px;
	height: 3px;
	background: currentColor;
	transform: translate(-50%, -50%);
	transition: opacity .25s ease, transform .25s ease;
}
.advenn-acc__toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);   /* barre verticale du + */
}
.advenn-acc__item.is-open .advenn-acc__toggle::after {
	opacity: 0;   /* devient − quand ouvert */
}

/* Panneau : animation de hauteur via grid-template-rows */
.advenn-acc__panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .35s ease;
}
.advenn-acc__item.is-open .advenn-acc__panel {
	grid-template-rows: 1fr;
}
.advenn-acc__panel-inner {
	overflow: hidden;
	visibility: hidden;
	transition: visibility 0s linear .35s;   /* masqué jusqu'à la fin de la fermeture */
}
.advenn-acc__item.is-open .advenn-acc__panel-inner {
	visibility: visible;
	transition: visibility 0s;
}

/* Contenu du panneau : indenté sous le titre (largeur icône + gap).
   Le padding vertical est porté par les enfants pour que la piste 0fr
   se comprime réellement à 0 quand le panneau est fermé. */
.advenn-acc__inner-pad {
	padding-left: calc(72px + 40px);
	padding-bottom: 32px;
}

.advenn-acc__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}
.advenn-acc__badge {
	padding: 8px 18px;
	border-radius: 6px;
	background: var(--acc-badge-bg);
	color: var(--acc-badge-color);
	font-size: 0.95rem;
	white-space: nowrap;
}

.advenn-acc__link .advenn-link {
	font-weight: 700;
}

/* =========================================================
   Mobile (< 768px) : présentation simple, encadrée,
   tout aligné à gauche (pas d'offset, icône masquée).
   ========================================================= */
@media (max-width: 767px) {
	.advenn-acc__item {
		border: 1px solid rgba(0, 64, 86, 0.35);
		margin-bottom: 20px;
	}
	.advenn-acc__item:last-child { border: 1px solid rgba(0, 64, 86, 0.35); }

	.advenn-acc__header {
		gap: 16px;
		padding: 22px 20px 12px;
		cursor: default;              /* plus d'accordéon en mobile */
	}
	.advenn-acc__icon { display: none; }   /* présentation simple */
	.advenn-acc__title { font-size: 1.3rem; }
	.advenn-acc__toggle { display: none; } /* pas de +/− : tout est ouvert */

	/* Tous les panneaux ouverts en permanence (pas d'accordéon) */
	.advenn-acc__panel {
		grid-template-rows: 1fr;
	}
	.advenn-acc__panel-inner {
		visibility: visible;
	}

	.advenn-acc__inner-pad {
		padding-left: 20px;
		padding-right: 20px;
		padding-bottom: 24px;
	}
}

/* ---------------------------------------------------------
   Module : Page Actualités
   Hero (module hero-advenn) + article mis en avant + grille
   filtrable sur fond plein, chargement par lots de 15.
   --------------------------------------------------------- */
.advenn-actuspage {
	--actus-grid-bg: var(--color-bleu-atlantique, #004056);
	font-family: var(--font-body, "Sora", sans-serif);
}

/* ---- Article mis en avant ---- */
.advenn-actuspage__featured {
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding: 90px 15px 100px;
	color: var(--color-bleu-atlantique, #004056);
}
.advenn-actuspage__ftitle {
	margin: 0;
	font-family: var(--font-heading, "Ancizar Sans", sans-serif);
	font-size: clamp(2.2rem, 5vw, 4rem);
	font-weight: 700;
	line-height: 1.08;
	color: inherit;
}
/* Extrait + lien calés au tiers droit, comme "Texte + badges" */
.advenn-actuspage__fbody {
	margin-top: 60px;
}
.advenn-actuspage__fexcerpt {
	margin: 0 0 28px;
	font-size: 1.05rem;
	line-height: 1.6;
}
.advenn-actuspage__flink .advenn-link {
	font-weight: 700;
}

@media (min-width: 992px) {
	.advenn-actuspage__fbody {
		margin-left: 33.333%;
		max-width: 675px;
	}
}

/* ---- Grille sur fond plein ---- */
.advenn-actuspage__grid {
	background: var(--actus-grid-bg);
	color: var(--color-blanc-alpin, #F6FBFE);
	padding-block: 40px 90px;
}
.advenn-actuspage__grid.is-loading {
	opacity: 0.6;
	transition: opacity .2s ease;
}

/* Filtres */
.advenn-actuspage__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0;
	width: 100%;
	max-width: 1280px;
	margin: 0 auto 50px;
	padding: 0 15px;
	border-bottom: 1px solid rgba(246, 251, 254, 0.25);
}
.advenn-actuspage__filter {
	position: relative;
	padding: 22px 26px;
	border: 0;
	background: transparent;
	color: inherit;
	font-family: inherit;
	font-size: 1rem;
	line-height: 1.2;
	cursor: pointer;
	opacity: 0.75;
	transition: opacity .2s ease;
}
.advenn-actuspage__filter:first-child { padding-left: 0; }
.advenn-actuspage__filter + .advenn-actuspage__filter::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1px;
	height: 26px;
	background: rgba(246, 251, 254, 0.35);
	transform: translateY(-50%);
}
.advenn-actuspage__filter:hover { opacity: 1; }
.advenn-actuspage__filter.is-active {
	opacity: 1;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 6px;
}

/* Liste : grille 3 colonnes (et non le carrousel du module Actualités) */
.advenn-actuspage__list.advenn-actus__track {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px 24px;
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding: 0 15px;
	overflow: visible;
}
.advenn-actuspage__list .advenn-actus__card {
	flex: none;
	width: auto;
}
.advenn-actuspage__cardlink,
.advenn-actus__cardlink {
	display: block;
	color: inherit;
	text-decoration: none;
}

/* Bouton « voir plus » */
.advenn-actuspage__more {
	display: flex;
	justify-content: center;
	margin-top: 60px;
}
.advenn-actuspage__morebtn {
	padding: 16px 38px;
	border: 1px solid var(--color-blanc-alpin, #F6FBFE);
	border-radius: 4px;
	background: transparent;
	color: var(--color-blanc-alpin, #F6FBFE);
	font-family: inherit;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease;
}
.advenn-actuspage__morebtn:hover {
	background: var(--color-blanc-alpin, #F6FBFE);
	color: var(--actus-grid-bg);
}
.advenn-actuspage__morebtn[hidden] { display: none; }

/* ---- Tablette ---- */
@media (max-width: 991px) {
	.advenn-actuspage__list.advenn-actus__track {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* ---- Mobile ---- */
@media (max-width: 767px) {
	.advenn-actuspage__featured {
		padding: 50px 20px 60px;
	}
	.advenn-actuspage__fbody { margin-top: 32px; }

	.advenn-actuspage__filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin-bottom: 34px;
		padding-inline: 20px;
	}
	.advenn-actuspage__filters::-webkit-scrollbar { display: none; }
	.advenn-actuspage__filter {
		padding: 16px 18px;
		white-space: nowrap;
	}

	.advenn-actuspage__list.advenn-actus__track {
		grid-template-columns: 1fr;
		gap: 30px;
		padding-inline: 20px;
	}
	.advenn-actuspage__more { margin-top: 40px; }
}

/* ---------------------------------------------------------
   Cartes actualités entièrement cliquables
   Le lien porte toute la carte ; « Lire tout » est un <span>
   dont l'animation se déclenche au survol de la carte.
   --------------------------------------------------------- */
/* Le lien s'intercale entre .advenn-actus__card (flex column) et
   .advenn-actus__body : il doit relayer la colonne flexible, sinon le
   flex:1 du corps est neutralisé et « Lire tout » ne peut plus être
   poussé en bas de carte. */
.advenn-actus__cardlink {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
	color: inherit;
	text-decoration: none;
}

/* Le libellé animé hérite du survol de la carte (mêmes valeurs que
   .advenn-link--animated:hover, mais déclenché par le parent) */
.advenn-actus__cardlink:hover .advenn-link--animated,
.advenn-actus__cardlink:focus-visible .advenn-link--animated {
	color: var(--hover-color, var(--color-vert-crozon, #009993));
	transform: translateX(30px);
}
.advenn-actus__cardlink:hover .advenn-link__arrow,
.advenn-actus__cardlink:focus-visible .advenn-link__arrow {
	transform: translateX(0);
}

/* Pas d'effet sur la vignette : l'agrandissement d'une grande photo
   provoque un repeint de toute la carte à chaque frame et rend
   l'animation du libellé moins fluide que sur les autres liens du site. */
.advenn-actus__media {
	overflow: hidden;
}

/* Focus clavier visible sur toute la carte */
.advenn-actus__cardlink:focus-visible {
	outline: 2px solid var(--color-vert-crozon, #009993);
	outline-offset: 4px;
}

@media (prefers-reduced-motion: reduce) {
	.advenn-actus__cardlink:hover .advenn-link--animated { transform: none; }
	.advenn-actus__cardlink:hover .advenn-link__arrow { transform: none; }
}

/* ---------------------------------------------------------
   Module : Actualités par catégories (pictos)
   Onglets avec picto + cartes affichant le picto de la
   catégorie à la place de l'image à la une.
   --------------------------------------------------------- */
.advenn-catnews {
	--catnews-color: var(--color-bleu-atlantique, #004056);
	--catnews-border: var(--color-bleu-atlantique-60, rgba(0, 64, 86, 0.6));
	width: 100%;
	max-width: 1280px;
	margin-inline: auto;
	padding-inline: 15px;
	font-family: var(--font-body, "Sora", sans-serif);
	color: var(--catnews-color);
}

/* ---- Onglets ---- */
.advenn-catnews__filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	margin-bottom: 46px;
}
.advenn-catnews__filter {
	position: relative;
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 10px 32px;
	border: 0;
	background: transparent;
	color: inherit;
	font-family: inherit;
	font-size: 1.05rem;
	line-height: 1.2;
	cursor: pointer;
	opacity: 0.8;
	transition: opacity .2s ease;
}
.advenn-catnews__filter:first-child { padding-left: 0; }
.advenn-catnews__filter:hover { opacity: 1; }

/* Séparateurs verticaux entre les onglets */
.advenn-catnews__filter + .advenn-catnews__filter::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 1px;
	height: 42px;
	background: var(--catnews-border);
	transform: translateY(-50%);
}
.advenn-catnews__filter.is-active {
	opacity: 1;
}
.advenn-catnews__filter.is-active .advenn-catnews__filterlabel {
	text-decoration: underline;
	text-underline-offset: 8px;
}
.advenn-catnews__filter .advenn-catnews__icon {
	width: 46px;
	height: 46px;
}

/* ---- Grille de cartes ---- */
.advenn-catnews__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 26px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.advenn-catnews__card {
	display: flex;
	border: 1px solid var(--catnews-border);
}
/* Masquage lors du filtrage côté client */
.advenn-catnews__card[hidden] { display: none; }

.advenn-catnews__cardlink {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
	padding: 46px 46px 40px;
	color: inherit;
	text-decoration: none;
}

.advenn-catnews__card .advenn-catnews__icon {
	width: 72px;
	height: 72px;
	margin-bottom: 46px;
}

/* Badge de catégorie : contour simple, comme la maquette */
.advenn-catnews__badge {
	align-self: flex-start;
	padding: 8px 16px;
	border: 1px solid var(--catnews-border);
	border-radius: 4px;
	font-size: 0.95rem;
	line-height: 1.2;
}

.advenn-catnews__title {
	margin: 40px 0 0;
	font-family: var(--font-heading, "Ancizar Sans", sans-serif);
	font-size: 1.6rem;
	font-weight: 700;
	line-height: 1.25;
	color: inherit;
}
.advenn-catnews__excerpt {
	margin: 20px 0 0;
	font-size: 1.02rem;
	line-height: 1.55;
}

/* Le lien reste collé en bas, aligné entre toutes les cartes */
.advenn-catnews__cardlink .advenn-link {
	margin-top: auto;
	padding-top: 46px;
	align-self: flex-start;
}

/* ---- Tablette ---- */
@media (max-width: 991px) {
	.advenn-catnews__list { grid-template-columns: repeat(2, 1fr); }
	.advenn-catnews__cardlink { padding: 34px 30px 30px; }
	.advenn-catnews__card .advenn-catnews__icon { margin-bottom: 30px; }
}

/* ---- Mobile ---- */
@media (max-width: 767px) {
	.advenn-catnews { padding-inline: 20px; }

	/* Onglets défilables horizontalement */
	.advenn-catnews__filters {
		flex-wrap: nowrap;
		overflow-x: auto;
		scrollbar-width: none;
		margin-bottom: 30px;
	}
	.advenn-catnews__filters::-webkit-scrollbar { display: none; }
	.advenn-catnews__filter {
		gap: 10px;
		padding: 10px 18px;
		white-space: nowrap;
		font-size: 0.95rem;
	}
	.advenn-catnews__filter .advenn-catnews__icon { width: 32px; height: 32px; }

	.advenn-catnews__list { grid-template-columns: 1fr; gap: 20px; }
	.advenn-catnews__title { margin-top: 28px; font-size: 1.35rem; }
	.advenn-catnews__cardlink .advenn-link { padding-top: 30px; }
}
