/* ==========================================================================
   Event Program Manager — module Participants (socle commun à tous les designs).
   Tout est préfixé .epm-plist / .epm-pop : aucun style global du thème n'est modifié.
   ========================================================================== */

.epm-plist {
	--epm-pp-primary: #e11d74;
	--epm-pp-primary-on: #fff;
	--epm-pp-secondary: #f59e0b;
	--epm-pp-accent: var(--epm-pp-primary);

	container-type: inline-size;
	container-name: epmpeople;
	box-sizing: border-box;
	width: 100%;
	margin-inline: auto;
	padding: 0;
	font-family: var(--epm-pp-font, inherit);
	line-height: 1.5;
	text-align: left;
}

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

.epm-plist :is(h2, h3, h4, p, ul, ol, li, figure) {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	font-family: inherit;
	letter-spacing: normal;
	text-transform: none;
}

.epm-plist :is(ul, ol) {
	list-style: none;
}

.epm-plist img {
	max-width: 100%;
	height: auto;
	border: 0;
	box-shadow: none;
}

.epm-plist a {
	color: inherit;
}

.epm-plist button {
	margin: 0;
	font: inherit;
	letter-spacing: normal;
	text-transform: none;
}

.epm-plist .epm-sr-only,
.epm-pop .epm-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	border: 0 !important;
	white-space: nowrap !important;
}

/* Protection contre les styles globaux des thèmes sur les balises génériques
   (placée avant les règles des designs, qui restent prioritaires). */
.epm-plist :where(header, nav, section, article, footer, aside, time) {
	float: none;
	width: auto;
	height: auto;
	min-height: 0;
	max-height: none;
	margin: 0;
	padding: 0;
	border: 0;
	box-shadow: none;
}

.epm-plist :where(header, nav, section, footer, aside)::before,
.epm-plist :where(header, nav, section, footer, aside)::after {
	content: none;
}

/* Grille responsive (container queries : s'adapte à la largeur réelle) */
.epm-plist__grid {
	display: grid;
	grid-template-columns: repeat(var(--epm-pp-cols-d, 4), minmax(0, 1fr));
	gap: var(--epm-pp-gap, 28px);
	align-items: stretch;
}

@container epmpeople (max-width: 900px) {
	.epm-plist__grid {
		grid-template-columns: repeat(var(--epm-pp-cols-t, 2), minmax(0, 1fr));
	}
}

@container epmpeople (max-width: 560px) {
	.epm-plist__grid {
		grid-template-columns: repeat(var(--epm-pp-cols-m, 1), minmax(0, 1fr));
		gap: min(var(--epm-pp-gap, 28px), 18px);
	}
}

.epm-plist__item {
	display: flex;
	min-width: 0;
	animation: epm-pp-in .35s ease both;
}

.epm-plist__item > * {
	flex: 1;
	min-width: 0;
}

@keyframes epm-pp-in {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}

/* Photo : conteneur non rogné (étiquettes) + média rogné selon la forme */
.epm-plist .epm-pp__photo {
	position: relative;
	width: 100%;
}

.epm-plist .epm-pp__media {
	display: block;
	width: 100%;
	aspect-ratio: var(--epm-pp-ratio, 1 / 1);
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: var(--epm-pp-media-radius, 0);
	background: color-mix(in srgb, var(--epm-pp-accent) 14%, #eef0f5);
	color: inherit;
	cursor: default;
	clip-path: var(--epm-pp-clip, none);
}

.epm-plist--popup .epm-pp__media {
	cursor: pointer;
}

.epm-plist .epm-pp__media img,
.epm-plist .epm-pp__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: var(--epm-pp-pos, 50% 20%);
	transition: transform .5s ease;
}

.epm-plist--popup .epm-pp__media:hover img {
	transform: scale(1.04);
}

.epm-plist .epm-pp__initials {
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	color: color-mix(in srgb, var(--epm-pp-accent) 80%, #000);
	font-size: clamp(20px, 6cqi, 48px);
	font-weight: 700;
	letter-spacing: .02em;
}

/* Formes */
.epm-plist.epm-shape-square {
	--epm-pp-ratio: 1 / 1;
	--epm-pp-media-radius: calc(var(--epm-pp-radius, 14px) * .7);
}

.epm-plist.epm-shape-rectangle {
	--epm-pp-ratio: 5 / 4;
	--epm-pp-media-radius: calc(var(--epm-pp-radius, 14px) * .7);
}

.epm-plist.epm-shape-portrait {
	--epm-pp-ratio: 3 / 4;
	--epm-pp-media-radius: calc(var(--epm-pp-radius, 14px) * .7);
}

.epm-plist.epm-shape-circle,
.epm-plist.epm-shape-ring {
	--epm-pp-ratio: 1 / 1;
	--epm-pp-media-radius: 50%;
}

.epm-plist.epm-shape-ring .epm-pp__media {
	border: 4px solid var(--epm-pp-card, #fff);
	box-shadow: 0 0 0 4px var(--epm-pp-accent);
}

.epm-plist.epm-shape-hexagon {
	--epm-pp-ratio: 866 / 1000;
	--epm-pp-clip: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%);
}

.epm-plist.epm-shape-hexagon .epm-pp__media {
	aspect-ratio: 1000 / 1155;
}

.epm-plist.epm-shape-diamond {
	--epm-pp-ratio: 1 / 1;
	--epm-pp-clip: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

/* Étiquettes sur la photo */
.epm-plist .epm-pp__badges {
	position: absolute;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	max-width: calc(100% - 16px);
	pointer-events: none;
}

.epm-plist .epm-pp__badges--top-left {
	top: 10px;
	left: 10px;
}

.epm-plist .epm-pp__badges--top-right {
	top: 10px;
	right: 10px;
	justify-content: flex-end;
}

.epm-plist .epm-pp__badges--bottom-left {
	bottom: 10px;
	left: 10px;
}

.epm-plist .epm-pp__badges--bottom-right {
	right: 10px;
	bottom: 10px;
	justify-content: flex-end;
}

.epm-plist .epm-pp__badges--center {
	top: 50%;
	left: 50%;
	justify-content: center;
	transform: translate(-50%, -50%);
}

.epm-plist .epm-pp__badges--overlay {
	right: 0;
	bottom: 0;
	left: 0;
	max-width: none;
	justify-content: center;
}

.epm-plist .epm-pp__badges--overlay .epm-badge {
	flex: 1;
	padding: 8px 10px;
	border-radius: 0;
	font-size: 12px;
	letter-spacing: .14em;
	text-align: center;
}

.epm-plist .epm-badge,
.epm-pop .epm-badge {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--epm-badge-bg, var(--epm-pp-primary, #e11d74));
	color: var(--epm-badge-fg, #fff);
	font-size: 11px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: .06em;
	text-transform: uppercase;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .18);
}

.epm-plist .epm-badge--inline,
.epm-pop .epm-badge--inline {
	box-shadow: none;
}

.epm-plist :is(.epm-pp__name, .epm-pp__role, .epm-pp__org) {
	overflow-wrap: break-word;
}

.epm-plist .epm-pp__org-inline {
	color: var(--epm-pp-org, inherit);
}

.epm-plist .epm-pp__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

/* Formes arrondies : le bandeau devient une pastille centrée */
.epm-plist:is(.epm-shape-circle, .epm-shape-ring, .epm-shape-hexagon, .epm-shape-diamond) .epm-pp__badges--overlay {
	bottom: 6%;
	left: 50%;
	right: auto;
	transform: translateX(-50%);
}

.epm-plist:is(.epm-shape-circle, .epm-shape-ring, .epm-shape-hexagon, .epm-shape-diamond) .epm-pp__badges--overlay .epm-badge {
	flex: none;
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 11px;
	letter-spacing: .08em;
}

/* Nom cliquable : bouton sans apparence de bouton */
.epm-plist .epm-pp__open {
	display: inline;
	letter-spacing: inherit;
	text-transform: inherit;
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	line-height: inherit;
	text-align: inherit;
	cursor: pointer;
}

.epm-plist .epm-pp__open:hover {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 4px;
}

.epm-plist :is(.epm-pp__open, .epm-pp__more, .epm-plist__more, .epm-plist__page, a):focus-visible {
	outline: 3px solid color-mix(in srgb, var(--epm-pp-accent) 60%, transparent);
	outline-offset: 3px;
	border-radius: 4px;
}

.epm-plist .epm-pp__more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-height: 44px;
	padding: 9px 16px;
	border: 2px solid var(--epm-pp-button, var(--epm-pp-accent));
	border-radius: 999px;
	background: transparent;
	color: var(--epm-pp-button, var(--epm-pp-accent));
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease;
}

.epm-plist .epm-pp__more:hover {
	background: var(--epm-pp-button, var(--epm-pp-accent));
	color: var(--epm-pp-button-text, var(--epm-pp-primary-on, #fff));
}

/* Recherche */
.epm-plist__search {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 var(--epm-pp-gap, 28px);
}

.epm-plist__search input[type="search"] {
	flex: 1 1 240px;
	min-height: 46px;
	margin: 0;
	padding: 10px 16px;
	border: 1px solid var(--epm-pp-border, #d7dbe6);
	border-radius: 999px;
	background: #fff;
	color: #1f2937;
	font: inherit;
}

.epm-plist__search button {
	min-height: 46px;
	padding: 10px 20px;
	border: 0;
	border-radius: 999px;
	background: var(--epm-pp-primary);
	color: var(--epm-pp-primary-on, #fff);
	font-weight: 600;
	cursor: pointer;
}

/* États, bouton Voir plus, pagination */
.epm-plist__empty {
	padding: 28px;
	border: 1px dashed var(--epm-pp-border, #d7dbe6);
	border-radius: 14px;
	color: var(--epm-pp-text, inherit);
	text-align: center;
	opacity: .8;
}

.epm-plist__empty[hidden],
.epm-plist__more[hidden] {
	display: none !important;
}

.epm-plist__status {
	margin-top: 18px !important;
	color: var(--epm-pp-text, inherit);
	font-size: 14px;
	text-align: center;
	opacity: .75;
}

.epm-plist__actions {
	display: flex;
	justify-content: center;
	margin-top: 14px;
}

.epm-plist__more {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-width: 200px;
	min-height: 52px;
	padding: 12px 32px;
	border: 2px solid var(--epm-pp-button, var(--epm-pp-primary));
	border-radius: 999px;
	background: transparent;
	color: var(--epm-pp-button, var(--epm-pp-name, var(--epm-pp-primary)));
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, transform .2s ease;
}

.epm-plist__more:hover {
	background: var(--epm-pp-button, var(--epm-pp-primary));
	color: var(--epm-pp-button-text, var(--epm-pp-primary-on, #fff));
}

.epm-plist__more:active {
	transform: scale(.98);
}

.epm-plist__spinner {
	display: none;
	width: 18px;
	height: 18px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: epm-pp-spin .7s linear infinite;
}

.epm-plist.is-loading .epm-plist__spinner {
	display: inline-block;
}

.epm-plist.is-loading .epm-plist__grid {
	opacity: .6;
	transition: opacity .2s ease;
}

@keyframes epm-pp-spin {
	to {
		transform: rotate(360deg);
	}
}

.epm-plist__sentinel {
	height: 1px;
}

.epm-plist__nav {
	margin-top: 18px;
}

.epm-plist__pages {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: center;
}

/* ==========================================================================
   Bouton « Voir plus » / lien : designs, tailles, alignements, icônes
   ========================================================================== */

a.epm-plist__more {
	text-decoration: none;
}

.epm-plist__more .epm-plist__icon {
	display: inline-flex;
	transition: transform .25s ease;
}

.epm-plist__more:hover .epm-plist__icon--arrow {
	transform: translateX(4px);
}

.epm-plist__more:hover .epm-plist__icon--plus {
	transform: rotate(90deg);
}

.epm-plist__more:hover .epm-plist__icon--chevron {
	transform: translateY(3px);
}

.epm-plist.is-loading .epm-plist__more .epm-plist__icon {
	display: none;
}

/* Alignement */
.epm-plist--align-left .epm-plist__actions {
	justify-content: flex-start;
}

.epm-plist--align-right .epm-plist__actions {
	justify-content: flex-end;
}

.epm-plist--align-full .epm-plist__more,
.epm-plist--btn-bar .epm-plist__more {
	width: 100%;
}

/* Tailles */
.epm-plist.epm-plist--btn-sm .epm-plist__more {
	min-width: 0;
	min-height: 44px;
	padding: 8px 20px;
	font-size: 13px;
}

.epm-plist.epm-plist--btn-lg .epm-plist__more {
	min-width: 260px;
	min-height: 62px;
	padding: 16px 44px;
	font-size: 16px;
}

/* Plein */
.epm-plist.epm-plist--btn-solid .epm-plist__more {
	border-color: var(--epm-pp-button, var(--epm-pp-primary));
	background: var(--epm-pp-button, var(--epm-pp-primary));
	color: var(--epm-pp-button-text, var(--epm-pp-primary-on, #fff));
	box-shadow: 0 10px 24px -12px var(--epm-pp-button, var(--epm-pp-primary));
}

.epm-plist.epm-plist--btn-solid .epm-plist__more:hover {
	filter: brightness(.93);
	transform: translateY(-2px);
}

/* Dégradé */
.epm-plist.epm-plist--btn-gradient .epm-plist__more {
	border: 0;
	background: linear-gradient(120deg, var(--epm-pp-button, var(--epm-pp-primary)), var(--epm-pp-secondary));
	background-size: 160% 100%;
	color: var(--epm-pp-button-text, #fff);
	box-shadow: 0 14px 30px -14px var(--epm-pp-button, var(--epm-pp-primary));
	transition: background-position .4s ease, transform .2s ease;
}

.epm-plist.epm-plist--btn-gradient .epm-plist__more:hover {
	background-position: 100% 0;
	color: var(--epm-pp-button-text, #fff);
	transform: translateY(-2px);
}

/* Teinté doux */
.epm-plist.epm-plist--btn-soft .epm-plist__more {
	border-color: transparent;
	background: color-mix(in srgb, var(--epm-pp-button, var(--epm-pp-primary)) 12%, #fff);
	color: var(--epm-pp-button, var(--epm-pp-primary));
	letter-spacing: .02em;
	text-transform: none;
}

.epm-plist.epm-plist--btn-soft .epm-plist__more:hover {
	background: color-mix(in srgb, var(--epm-pp-button, var(--epm-pp-primary)) 22%, #fff);
	color: var(--epm-pp-button, var(--epm-pp-primary));
}

/* Sombre élégant */
.epm-plist.epm-plist--btn-dark .epm-plist__more {
	border-color: #111827;
	border-radius: 14px;
	background: #111827;
	color: #fff;
	letter-spacing: .04em;
}

.epm-plist.epm-plist--btn-dark .epm-plist__more:hover {
	border-color: var(--epm-pp-button, var(--epm-pp-primary));
	background: var(--epm-pp-button, var(--epm-pp-primary));
	color: var(--epm-pp-button-text, #fff);
}

/* Lien texte avec flèche */
.epm-plist.epm-plist--btn-minimal .epm-plist__more {
	min-width: 0;
	min-height: 44px;
	padding: 8px 4px;
	border: 0;
	border-radius: 0;
	background: none;
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 2px;
	color: var(--epm-pp-button, var(--epm-pp-primary));
	letter-spacing: 0;
	text-transform: none;
	transition: background-size .3s ease;
}

.epm-plist.epm-plist--btn-minimal .epm-plist__more:hover {
	background-color: transparent;
	background-size: 100% 2px;
	color: var(--epm-pp-button, var(--epm-pp-primary));
}

/* Barre pleine largeur */
.epm-plist.epm-plist--btn-bar .epm-plist__more {
	border: 1px solid var(--epm-pp-border, #e3e7f0);
	border-radius: var(--epm-pp-radius, 14px);
	background: color-mix(in srgb, var(--epm-pp-button, var(--epm-pp-primary)) 5%, var(--epm-pp-card, #fff));
	color: var(--epm-pp-name, #1f2a44);
}

.epm-plist.epm-plist--btn-bar .epm-plist__more:hover {
	border-color: var(--epm-pp-button, var(--epm-pp-primary));
	background: var(--epm-pp-button, var(--epm-pp-primary));
	color: var(--epm-pp-button-text, #fff);
}

/* ==========================================================================
   Chargement : points, cartes fantômes, défilement infini, progression
   ========================================================================== */

.epm-plist__dots {
	display: none;
	gap: 5px;
	align-items: center;
}

.epm-plist__dots i {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	animation: epm-pp-dot 1s ease-in-out infinite;
}

.epm-plist__dots i:nth-child(2) {
	animation-delay: .15s;
}

.epm-plist__dots i:nth-child(3) {
	animation-delay: .3s;
}

@keyframes epm-pp-dot {
	0%,
	80%,
	100% {
		opacity: .3;
		transform: scale(.7);
	}

	40% {
		opacity: 1;
		transform: scale(1);
	}
}

.epm-plist--loader-dots.is-loading .epm-plist__spinner,
.epm-plist--loader-skeleton.is-loading .epm-plist__spinner {
	display: none;
}

.epm-plist--loader-dots.is-loading .epm-plist__more .epm-plist__dots {
	display: inline-flex;
}

.epm-plist--loader-skeleton.is-loading .epm-plist__grid {
	opacity: 1;
}

/* Cartes fantômes */
.epm-plist .epm-plist__skeleton {
	animation: none;
}

.epm-skel {
	display: grid;
	flex: 1;
	gap: 10px;
	padding: 12px;
	border-radius: var(--epm-pp-radius, 14px);
	background: var(--epm-pp-card, #fff);
}

.epm-skel span {
	display: block;
	border-radius: 8px;
	background: linear-gradient(90deg, #eceff4 0%, #f7f8fb 50%, #eceff4 100%);
	background-size: 200% 100%;
	animation: epm-pp-shimmer 1.2s linear infinite;
}

.epm-skel__img {
	aspect-ratio: 4 / 3;
}

.epm-plist--list .epm-skel__img {
	aspect-ratio: auto;
	height: 52px;
}

.epm-skel__line {
	height: 14px;
}

.epm-skel__line--short {
	width: 60%;
}

@keyframes epm-pp-shimmer {
	to {
		background-position: -200% 0;
	}
}

/* Défilement infini : le bouton reste un secours (masqué si l'observateur fonctionne) */
.epm-plist__loader {
	display: none;
	justify-content: center;
	padding: 18px 0;
	color: var(--epm-pp-primary);
}

.epm-plist--mode-infinite.is-loading .epm-plist__loader {
	display: flex;
}

.epm-plist--mode-infinite.is-loading .epm-plist__loader .epm-plist__dots {
	display: inline-flex;
}

.epm-plist--mode-infinite.is-io:not(.is-failed) .epm-plist__actions {
	display: none;
}

/* Barre de progression */
.epm-plist__progress {
	width: min(360px, 100%);
	height: 5px;
	margin: 22px auto 0;
	overflow: hidden;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pp-primary) 14%, #e5e7eb);
}

.epm-plist__progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--epm-pp-button, var(--epm-pp-primary)), var(--epm-pp-secondary));
	transition: width .5s ease;
}

.epm-plist--align-left .epm-plist__progress,
.epm-plist--align-left .epm-plist__status {
	margin-left: 0;
	text-align: left;
}

.epm-plist--align-right .epm-plist__progress,
.epm-plist--align-right .epm-plist__status {
	margin-right: 0;
	text-align: right;
}

.epm-plist__progress + .epm-plist__status {
	margin-top: 8px !important;
}

/* ==========================================================================
   Pagination : 15 modèles. Couleurs réglables (--epm-pg-*), sinon celles du design.
   ========================================================================== */

.epm-plist {
	--epm-pg-a: var(--epm-pg-active, var(--epm-pp-primary));
	--epm-pg-at: var(--epm-pg-active-text, var(--epm-pp-primary-on, #fff));
	--epm-pg-b: var(--epm-pg-bg, var(--epm-pp-card, #fff));
	--epm-pg-t: var(--epm-pg-text, var(--epm-pp-name, #1f2a44));
	--epm-pg-l: var(--epm-pg-border, var(--epm-pp-border, #d7dbe6));
}

.epm-plist__page,
.epm-plist__gap {
	display: inline-grid;
	place-items: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--epm-pg-l);
	border-radius: 12px;
	background: var(--epm-pg-b);
	color: var(--epm-pg-t);
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.epm-plist__gap {
	border-color: transparent;
	background: none;
}

.epm-plist__page:hover {
	border-color: var(--epm-pg-a);
	color: var(--epm-pg-t);
}

.epm-plist__page.is-current {
	border-color: var(--epm-pg-a);
	background: var(--epm-pg-a);
	color: var(--epm-pg-at);
}

.epm-plist .epm-plist__page-label {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	white-space: nowrap;
}

.epm-plist__pageinfo {
	display: none;
}

/* Étiquettes et page x/y visibles */
.epm-plist:is(.epm-plist--pg-prevnext, .epm-plist--pg-editorial) .epm-plist__page-label {
	position: static;
	width: auto;
	height: auto;
	overflow: visible;
	clip: auto;
	clip-path: none;
}

.epm-plist:is(.epm-plist--pg-prevnext, .epm-plist--pg-compact) .epm-plist__num {
	display: none;
}

.epm-plist:is(.epm-plist--pg-prevnext, .epm-plist--pg-compact) .epm-plist__pageinfo {
	display: block;
	color: var(--epm-pg-t);
	font-size: 14px;
	font-weight: 600;
	opacity: .8;
}

.epm-plist:is(.epm-plist--pg-prevnext, .epm-plist--pg-compact) .epm-plist__pages {
	align-items: center;
	gap: 14px;
}

/* 2. Pastilles arrondies */
.epm-plist--pg-pills .epm-plist__page {
	border-color: transparent;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pg-a) 8%, var(--epm-pg-b));
}

.epm-plist--pg-pills .epm-plist__page:hover {
	border-color: transparent;
	background: color-mix(in srgb, var(--epm-pg-a) 18%, var(--epm-pg-b));
}

.epm-plist--pg-pills .epm-plist__page.is-current {
	background: var(--epm-pg-a);
	box-shadow: 0 8px 18px -10px var(--epm-pg-a);
}

/* 3. Minimal souligné */
.epm-plist--pg-minimal .epm-plist__page {
	min-width: 36px;
	border: 0;
	border-radius: 0;
	background: none;
	color: color-mix(in srgb, var(--epm-pg-t) 45%, transparent);
	box-shadow: inset 0 -2px 0 transparent;
}

.epm-plist--pg-minimal .epm-plist__page:hover {
	color: var(--epm-pg-t);
}

.epm-plist--pg-minimal .epm-plist__page.is-current {
	background: none;
	color: var(--epm-pg-t);
	box-shadow: inset 0 -3px 0 var(--epm-pg-a);
}

/* 4. Précédent / Page x sur y / Suivant */
.epm-plist--pg-prevnext .epm-plist__page {
	display: inline-flex;
	gap: 8px;
	padding: 0 18px;
	border-radius: 999px;
}

.epm-plist--pg-prevnext .epm-plist__page:hover {
	background: var(--epm-pg-a);
	color: var(--epm-pg-at);
}

/* 5. Cercles */
.epm-plist--pg-circles .epm-plist__page {
	width: 44px;
	min-width: 44px;
	padding: 0;
	border-width: 2px;
	border-radius: 50%;
	background: transparent;
}

.epm-plist--pg-circles .epm-plist__page:hover {
	transform: scale(1.08);
}

.epm-plist--pg-circles .epm-plist__page.is-current {
	background: var(--epm-pg-a);
}

/* 6. Carrés pleins */
.epm-plist--pg-squares .epm-plist__page {
	border-color: transparent;
	border-radius: 6px;
	background: color-mix(in srgb, var(--epm-pg-t) 7%, var(--epm-pg-b));
}

.epm-plist--pg-squares .epm-plist__page:hover {
	background: color-mix(in srgb, var(--epm-pg-t) 14%, var(--epm-pg-b));
}

.epm-plist--pg-squares .epm-plist__page.is-current {
	background: var(--epm-pg-a);
}

/* 7. Groupe relié (contrôle segmenté) */
.epm-plist--pg-connected .epm-plist__pages {
	gap: 0;
}

.epm-plist--pg-connected .epm-plist__pages > li + li .epm-plist__page,
.epm-plist--pg-connected .epm-plist__pages > li + li .epm-plist__gap {
	margin-left: -1px;
}

.epm-plist--pg-connected .epm-plist__page,
.epm-plist--pg-connected .epm-plist__gap {
	border-color: var(--epm-pg-l);
	border-radius: 0;
	background: var(--epm-pg-b);
}

.epm-plist--pg-connected .epm-plist__pages > li:first-child .epm-plist__page {
	border-radius: 12px 0 0 12px;
}

.epm-plist--pg-connected .epm-plist__pages > li:last-child .epm-plist__page {
	border-radius: 0 12px 12px 0;
}

.epm-plist--pg-connected .epm-plist__page.is-current {
	position: relative;
	z-index: 1;
	border-color: var(--epm-pg-a);
	background: var(--epm-pg-a);
}

/* 8. Points */
.epm-plist--pg-dots .epm-plist__pages {
	align-items: center;
	gap: 10px;
}

.epm-plist--pg-dots .epm-plist__num .epm-plist__page {
	width: 12px;
	min-width: 12px;
	height: 12px;
	padding: 0;
	overflow: hidden;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pg-a) 25%, var(--epm-pg-b));
	color: transparent;
	font-size: 0;
}

.epm-plist--pg-dots .epm-plist__num .epm-plist__page.is-current {
	width: 34px;
	background: var(--epm-pg-a);
}

.epm-plist--pg-dots .epm-plist__num .epm-plist__page::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
}

.epm-plist--pg-dots .epm-plist__num {
	position: relative;
	display: grid;
	place-items: center;
	min-width: 20px;
	min-height: 44px;
}

.epm-plist--pg-dots .epm-plist__gap {
	min-width: 16px;
	padding: 0;
}

.epm-plist--pg-dots .epm-plist__step .epm-plist__page {
	border-radius: 50%;
}

/* 9. Verre dépoli */
.epm-plist--pg-glass .epm-plist__pages {
	display: inline-flex;
	gap: 4px;
	padding: 6px;
	border: 1px solid color-mix(in srgb, var(--epm-pg-l) 70%, transparent);
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pg-b) 55%, transparent);
	box-shadow: 0 10px 30px -18px rgba(15, 23, 42, .5);
	backdrop-filter: blur(10px);
}

.epm-plist--pg-glass .epm-plist__nav {
	text-align: center;
}

.epm-plist--pg-glass .epm-plist__page,
.epm-plist--pg-glass .epm-plist__gap {
	min-width: 40px;
	height: 40px;
	border: 0;
	border-radius: 999px;
	background: transparent;
}

.epm-plist--pg-glass .epm-plist__page:hover {
	background: color-mix(in srgb, var(--epm-pg-a) 12%, transparent);
}

.epm-plist--pg-glass .epm-plist__page.is-current {
	background: var(--epm-pg-a);
	box-shadow: 0 6px 16px -8px var(--epm-pg-a);
}

/* 10. Barre sombre */
.epm-plist--pg-dark .epm-plist__pages {
	display: inline-flex;
	gap: 2px;
	padding: 6px;
	border-radius: 14px;
	background: var(--epm-pg-bg, #111827);
}

.epm-plist--pg-dark .epm-plist__nav {
	text-align: center;
}

.epm-plist--pg-dark .epm-plist__page,
.epm-plist--pg-dark .epm-plist__gap {
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--epm-pg-text, rgba(255, 255, 255, .72));
}

.epm-plist--pg-dark .epm-plist__page:hover {
	background: rgba(255, 255, 255, .1);
	color: #fff;
}

.epm-plist--pg-dark .epm-plist__page.is-current {
	background: var(--epm-pg-a);
	color: var(--epm-pg-at);
}

/* 11. Contour épais */
.epm-plist--pg-bold .epm-plist__page {
	border-width: 2px;
	border-color: var(--epm-pg-t);
	border-radius: 4px;
	background: var(--epm-pg-b);
	box-shadow: 3px 3px 0 var(--epm-pg-t);
}

.epm-plist--pg-bold .epm-plist__page:hover {
	border-color: var(--epm-pg-t);
	transform: translate(-1px, -1px);
	box-shadow: 4px 4px 0 var(--epm-pg-t);
}

.epm-plist--pg-bold .epm-plist__page.is-current {
	border-color: var(--epm-pg-t);
	background: var(--epm-pg-a);
	box-shadow: 1px 1px 0 var(--epm-pg-t);
	transform: translate(2px, 2px);
}

/* 12. Dégradé */
.epm-plist--pg-gradient .epm-plist__page {
	border-color: transparent;
	border-radius: 12px;
	background: transparent;
}

.epm-plist--pg-gradient .epm-plist__page:hover {
	border-color: transparent;
	background: color-mix(in srgb, var(--epm-pg-a) 10%, transparent);
}

.epm-plist--pg-gradient .epm-plist__page.is-current {
	border: 0;
	background: linear-gradient(135deg, var(--epm-pg-a), var(--epm-pp-secondary, #f59e0b));
	box-shadow: 0 10px 22px -10px var(--epm-pg-a);
}

/* 13. Éditorial (grands chiffres, Préc. / Suiv.) */
.epm-plist--pg-editorial .epm-plist__pages {
	align-items: baseline;
	gap: 18px;
}

.epm-plist--pg-editorial .epm-plist__page,
.epm-plist--pg-editorial .epm-plist__gap {
	min-width: 0;
	height: auto;
	padding: 4px 2px;
	border: 0;
	border-radius: 0;
	background: none;
	color: color-mix(in srgb, var(--epm-pg-t) 40%, transparent);
	font-family: Georgia, "Times New Roman", serif;
	font-size: 22px;
	font-weight: 400;
}

.epm-plist--pg-editorial .epm-plist__page:hover {
	color: var(--epm-pg-t);
}

.epm-plist--pg-editorial .epm-plist__page.is-current {
	background: none;
	color: var(--epm-pg-t);
	font-size: 30px;
	font-style: italic;
	box-shadow: inset 0 -3px 0 var(--epm-pg-a);
}

.epm-plist--pg-editorial .epm-plist__step .epm-plist__page {
	display: inline-flex;
	gap: 6px;
	color: var(--epm-pg-t);
	font-family: inherit;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.epm-plist--pg-editorial .epm-plist__step .epm-plist__page-arrow {
	display: none;
}

/* 14. Compact « ‹ 2 / 5 › » */
.epm-plist--pg-compact .epm-plist__page {
	width: 40px;
	min-width: 40px;
	height: 40px;
	padding: 0;
	border-radius: 50%;
}

.epm-plist--pg-compact .epm-plist__page:hover {
	background: var(--epm-pg-a);
	color: var(--epm-pg-at);
}

/* 15. Étapes reliées */
.epm-plist--pg-steps .epm-plist__pages {
	position: relative;
	align-items: center;
	gap: 22px;
}

.epm-plist--pg-steps .epm-plist__num {
	position: relative;
}

.epm-plist--pg-steps .epm-plist__num + .epm-plist__num::before {
	content: "";
	position: absolute;
	top: 50%;
	right: 100%;
	width: 22px;
	height: 2px;
	background: var(--epm-pg-l);
}

.epm-plist--pg-steps .epm-plist__page {
	width: 40px;
	min-width: 40px;
	height: 40px;
	padding: 0;
	border-width: 2px;
	border-radius: 50%;
	font-size: 14px;
}

.epm-plist--pg-steps .epm-plist__page.is-current {
	box-shadow: 0 0 0 5px color-mix(in srgb, var(--epm-pg-a) 22%, transparent);
}

.epm-plist--pg-steps .epm-plist__gap {
	min-width: 24px;
	padding: 0;
}

.epm-plist--pg-steps .epm-plist__step .epm-plist__page {
	border-width: 1px;
	border-color: transparent;
	background: transparent;
}

@media (prefers-reduced-motion: reduce) {
	.epm-plist__page {
		transform: none !important;
	}
}

/* Aperçu d'administration */
.epm-plist--preview {
	padding: 8px 0;
}

.epm-plist--preview .epm-plist__preview-label {
	margin: 18px 0 0 !important;
	color: #6b7280;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* ==========================================================================
   Popup (<dialog> natif : focus, Échap, arrière-plan inerte)
   ========================================================================== */

html:has(.epm-pop[open]) {
	overflow: hidden;
}

.epm-pop {
	position: fixed;
	inset: 0;
	box-sizing: border-box;
	width: fit-content;
	height: fit-content;
	max-width: none;
	max-height: none;
	margin: auto;
	padding: 0;
	overflow: visible;
	border: 0;
	background: transparent;
	color: #1f2937;
	font-family: var(--epm-pp-font, inherit);
	line-height: 1.55;
}

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

.epm-pop :is(h2, p) {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	letter-spacing: normal;
	text-transform: none;
}

.epm-pop::backdrop {
	background: rgba(10, 14, 30, .62);
	backdrop-filter: blur(3px);
}

.epm-pop[open] .epm-pop__box {
	animation: epm-pop-in .25s ease both;
}

.epm-pop[open]::backdrop {
	animation: epm-pop-fade .25s ease both;
}

@keyframes epm-pop-in {
	from {
		opacity: 0;
		transform: translateY(14px) scale(.98);
	}
}

@keyframes epm-pop-fade {
	from {
		opacity: 0;
	}
}

.epm-pop__box {
	position: relative;
	width: min(560px, calc(100vw - 32px));
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	overflow: auto;
	overscroll-behavior: contain;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .45);
}

.epm-pop__bar {
	position: sticky;
	top: 0;
	z-index: 3;
	display: flex;
	gap: 6px;
	justify-content: flex-end;
	height: 0;
	padding: 0 12px;
	overflow: visible;
}

.epm-pop__btn {
	display: inline-grid;
	place-items: center;
	width: 40px;
	height: 40px;
	margin: 12px 0 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	color: #111827;
	font: 600 22px/1 system-ui, sans-serif;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .18);
	cursor: pointer;
}

.epm-pop__btn:hover {
	background: #fff;
	color: var(--epm-pp-primary, #e11d74);
}

.epm-pop__btn:disabled {
	opacity: .35;
	cursor: default;
}

.epm-pop__btn:focus-visible {
	outline: 3px solid var(--epm-pp-primary, #e11d74);
	outline-offset: 2px;
}

.epm-pop__media {
	overflow: hidden;
	background: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 10%, #eef0f5);
}

.epm-pop__media img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: 380px;
	object-fit: cover;
	object-position: 50% 20%;
}

.epm-pop__initials {
	display: grid;
	place-items: center;
	height: 220px;
	color: var(--epm-pp-primary, #e11d74);
	font-size: 64px;
	font-weight: 800;
}

.epm-pop__body {
	display: grid;
	gap: 12px;
	padding: 28px 30px 32px;
}

.epm-pop__labels {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.epm-pop__first {
	color: var(--epm-pp-primary, #e11d74);
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.epm-pop__name {
	color: #111827;
	font-size: clamp(24px, 4vw, 32px);
	font-weight: 800;
	line-height: 1.15;
}

.epm-pop__subtitle {
	color: #4b5563;
	font-size: 17px;
	font-style: italic;
}

.epm-pop__role {
	color: #374151;
	font-size: 16px;
}

.epm-pop__role strong {
	color: #111827;
}

.epm-pop__logo img {
	display: block;
	width: auto;
	max-width: 160px;
	max-height: 48px;
	object-fit: contain;
}

.epm-pop__editions {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	align-items: center;
}

.epm-pop__k {
	margin-right: 4px;
	color: #6b7280;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.epm-pop__chip {
	padding: 3px 10px;
	border-radius: 999px;
	background: #f3f4f6;
	color: #374151;
	font-size: 13px;
	font-weight: 600;
}

.epm-pop__desc,
.epm-pop__bio {
	color: #374151;
}

.epm-pop__desc {
	font-weight: 500;
}

.epm-pop__bio {
	padding-top: 12px;
	border-top: 1px solid #eef0f5;
}

.epm-pop__desc p + p,
.epm-pop__bio p + p {
	margin-top: .8em;
}

.epm-pop__links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	padding-top: 6px;
}

.epm-pop__link,
.epm-pop__social {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 8px 14px;
	border: 1px solid #e5e7eb;
	border-radius: 999px;
	color: #111827;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	word-break: break-all;
}

.epm-pop__social {
	width: 40px;
	padding: 0;
}

.epm-pop__link:hover,
.epm-pop__social:hover {
	border-color: var(--epm-pp-primary, #e11d74);
	color: var(--epm-pp-primary, #e11d74);
}

/* Grande fenêtre / automatique (ordinateur) : photo à gauche */
.epm-pop--large .epm-pop__box,
.epm-pop--auto .epm-pop__box {
	width: min(920px, calc(100vw - 32px));
}

.epm-pop--large .epm-pop__layout--photo,
.epm-pop--auto .epm-pop__layout--photo {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	min-height: 420px;
}

.epm-pop--large .epm-pop__layout--photo .epm-pop__media img,
.epm-pop--auto .epm-pop__layout--photo .epm-pop__media img {
	max-height: none;
}

.epm-pop--large .epm-pop__body,
.epm-pop--auto .epm-pop__body {
	align-content: start;
	padding: 44px 40px 40px;
}

/* Panneau latéral */
.epm-pop--side {
	height: 100vh;
	height: 100dvh;
	margin: 0 0 0 auto;
}

.epm-pop--side .epm-pop__box {
	width: min(480px, 100vw);
	height: 100%;
	max-height: none;
	border-radius: 0;
}

.epm-pop--side[open] .epm-pop__box {
	animation: epm-pop-side .3s ease both;
}

@keyframes epm-pop-side {
	from {
		transform: translateX(40px);
		opacity: 0;
	}
}

/* Mobile : jamais de débordement, plein écran pour « auto » et le panneau */
@media (max-width: 700px) {
	.epm-pop--large .epm-pop__layout--photo,
	.epm-pop--auto .epm-pop__layout--photo {
		display: block;
		min-height: 0;
	}

	.epm-pop--large .epm-pop__layout--photo .epm-pop__media img,
	.epm-pop--auto .epm-pop__layout--photo .epm-pop__media img {
		max-height: 42vh;
	}

	.epm-pop__body,
	.epm-pop--large .epm-pop__body,
	.epm-pop--auto .epm-pop__body {
		padding: 22px 20px 28px;
	}

	.epm-pop--center .epm-pop__box,
	.epm-pop--large .epm-pop__box {
		width: calc(100vw - 16px);
		max-height: calc(100dvh - 16px);
	}

	.epm-pop--auto,
	.epm-pop--side {
		width: 100vw;
		height: 100vh;
		height: 100dvh;
		margin: 0;
	}

	.epm-pop--auto .epm-pop__box,
	.epm-pop--side .epm-pop__box {
		width: 100vw;
		height: 100%;
		max-height: none;
		border-radius: 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.epm-plist *,
	.epm-pop,
	.epm-pop * {
		transition: none !important;
		animation: none !important;
	}

	.epm-pop::backdrop {
		animation: none !important;
	}
}

.epm-plist--pg-dots .epm-plist__num:has(.epm-plist__gap) {
	display: none;
}

/* ==========================================================================
   Responsive commun à tous les designs (1.5.0)
   ========================================================================== */

/* Aucun texte ne doit élargir une carte : noms, fonctions et organisations longs reviennent à la ligne. */
.epm-plist :is(.epm-pp__name, .epm-pp__role, .epm-pp__org, .epm-pp__org-inline, .epm-pp__excerpt, .epm-pp__subtitle) {
	overflow-wrap: anywhere;
}

.epm-plist .epm-plist__item > *,
.epm-plist article {
	min-width: 0;
}

@container epmpeople (max-width: 900px) {
	/* Zone tactile du nom agrandie sans décaler la mise en page. */
	.epm-plist .epm-pp__open {
		margin-block: -12px;
		padding-block: 12px;
	}

	.epm-plist .epm-pp__more {
		min-height: 44px;
	}
}

@container epmpeople (max-width: 560px) {
	.epm-plist :is(.epm-pp__name) {
		hyphens: auto;
		-webkit-hyphens: auto;
	}

	/* Recherche : champ et bouton empilés, pleine largeur. */
	.epm-plist__search {
		flex-direction: column;
	}

	.epm-plist__search input[type="search"] {
		flex-basis: auto;
		width: 100%;
	}

	.epm-plist__search button {
		width: 100%;
	}

	/* Pagination : jamais de débordement, retour à la ligne propre. */
	.epm-plist__pages {
		gap: 4px;
	}

	.epm-plist__page,
	.epm-plist__gap {
		min-width: 40px;
		height: 40px;
		padding: 0 10px;
	}

	.epm-plist__actions .epm-plist__more {
		max-width: 100%;
	}
}

/* Popup sur très petits écrans : marges minimales, contenu lisible, fermer toujours visible. */
@media (max-width: 380px) {
	.epm-pop--center .epm-pop__box,
	.epm-pop--large .epm-pop__box {
		width: calc(100vw - 12px);
		max-height: calc(100dvh - 12px);
		border-radius: 14px;
	}

	.epm-pop__body,
	.epm-pop--large .epm-pop__body,
	.epm-pop--auto .epm-pop__body {
		padding: 18px 16px 24px;
	}

	.epm-pop__name {
		font-size: 22px;
	}
}

.epm-pop :is(.epm-pop__name, .epm-pop__role, .epm-pop__subtitle, .epm-pop__desc, .epm-pop__bio, .epm-pop__link) {
	overflow-wrap: anywhere;
}

/* Boutons de la popup : la remise à zéro « .epm-plist button » annulait leur marge. */
.epm-pop .epm-pop__btn {
	margin: 12px 0 0;
}

/* Plein écran mobile : sous l'encoche / la barre d'état des iPhone. */
.epm-pop .epm-pop__bar {
	padding-top: env(safe-area-inset-top, 0px);
}

/* Correctif 1.5.6 — voir front-base.css : hauteur calculée pour une largeur nulle
   dans les conteneurs flex d'Elementor en mobile. */
.elementor-widget-epm-participants,
.elementor-widget:has(> .elementor-widget-container .epm-plist) {
	--container-widget-width: 100%;
}

@media (max-width: 767px) {
	.epm-plist {
		contain-intrinsic-inline-size: 100vw;
	}
}

/* ==========================================================================
   1.7.0 — Bouton « Voir le profil » ajouté aux designs qui n'en ont pas
   (réglage « Bouton sur les cartes : afficher sur tous les designs »).
   ========================================================================== */
.epm-plist .epm-pp__cta {
	flex: none;
	margin-top: 12px;
}

.epm-plist .epm-pp__more--auto {
	min-height: 0;
	padding: 7px 14px;
	border-width: 1.5px;
	font-size: 13px;
}

/* ==========================================================================
   1.7.0 — Carrousel (mode de chargement « Carrousel »).
   Cartes visibles à la fois = colonnes (ordinateur / tablette / mobile).
   ========================================================================== */
.epm-plist--mode-carousel .epm-car {
	--epm-car-per: var(--epm-pp-cols-d, 4);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

@container epmpeople (max-width: 900px) {
	.epm-plist--mode-carousel .epm-car {
		--epm-car-per: var(--epm-pp-cols-t, 2);
	}
}

@container epmpeople (max-width: 560px) {
	.epm-plist--mode-carousel .epm-car {
		--epm-car-per: var(--epm-pp-cols-m, 1);
	}
}

.epm-plist--mode-carousel .epm-car__viewport {
	overflow: hidden;
	touch-action: pan-y;
	padding-block: 6px 10px;
	margin-block: -6px -10px;
}

.epm-plist--mode-carousel .epm-car .epm-plist__grid {
	display: flex;
	flex-wrap: nowrap;
	grid-template-columns: none;
	will-change: transform;
	user-select: none;
	-webkit-user-select: none;
}

.epm-plist--mode-carousel .epm-car .epm-plist__grid > .epm-plist__item {
	flex: 0 0 calc((100% - (var(--epm-car-per) - 1) * var(--epm-car-gap, var(--epm-pp-gap, 28px))) / var(--epm-car-per));
	min-width: 0;
	max-width: none;
}

.epm-plist--mode-carousel .epm-car .epm-plist__item > article {
	height: 100%;
}

.epm-plist--mode-carousel .epm-car .epm-plist__grid img {
	-webkit-user-drag: none;
}

/* Contrôles */
.epm-plist--mode-carousel .epm-car__controls {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: center;
}

.epm-plist--mode-carousel .epm-car.is-static .epm-car__controls {
	display: none;
}

.epm-plist .epm-car__arrow {
	display: inline-grid;
	flex: none;
	place-items: center;
	width: 42px;
	height: 42px;
	min-height: 0;
	padding: 0;
	border: 1px solid var(--epm-pp-border, #e6e8ef);
	border-radius: 50%;
	background: var(--epm-pp-card, #fff);
	box-shadow: 0 6px 18px -8px rgba(20, 24, 40, .35);
	color: var(--epm-pp-name, #1f2a44);
	cursor: pointer;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease;
}

.epm-plist .epm-car__arrow:hover {
	border-color: var(--epm-pp-button, var(--epm-pp-primary));
	background: var(--epm-pp-button, var(--epm-pp-primary));
	color: var(--epm-pp-button-text, var(--epm-pp-primary-on, #fff));
}

.epm-plist .epm-car__arrow:disabled {
	opacity: .35;
	cursor: default;
	pointer-events: none;
}

.epm-plist .epm-car__arrow > span[aria-hidden] {
	display: block;
	width: 9px;
	height: 9px;
	border-top: 2px solid currentColor;
	border-right: 2px solid currentColor;
}

.epm-plist .epm-car__arrow--prev > span[aria-hidden] {
	margin-left: 4px;
	transform: rotate(-135deg);
}

.epm-plist .epm-car__arrow--next > span[aria-hidden] {
	margin-right: 4px;
	transform: rotate(45deg);
}

.epm-plist .epm-car__dots {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	justify-content: center;
}

.epm-plist .epm-car__dot {
	width: 8px;
	height: 8px;
	min-height: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pp-name, #1f2a44) 22%, transparent);
	cursor: pointer;
	transition: width .25s ease, background-color .25s ease;
}

.epm-plist .epm-car__dot.is-active {
	width: 24px;
	background: var(--epm-pp-button, var(--epm-pp-primary));
}

/* Flèches sur les côtés (les points restent en dessous) */
.epm-plist--mode-carousel .epm-car--arrows-sides .epm-car__arrow {
	position: absolute;
	z-index: 2;
	top: calc(50% - 21px - 20px);
}

.epm-plist--mode-carousel .epm-car--arrows-sides .epm-car__arrow--prev {
	left: 8px;
}

.epm-plist--mode-carousel .epm-car--arrows-sides .epm-car__arrow--next {
	right: 8px;
}

.epm-plist--mode-carousel .epm-car--arrows-sides:not(:has(.epm-car__dots)) .epm-car__arrow {
	top: calc(50% - 21px);
}

/* Flèches en haut à droite */
.epm-plist--mode-carousel .epm-car--arrows-top .epm-car__controls {
	order: -1;
	justify-content: flex-end;
}

.epm-plist--mode-carousel .epm-car--arrows-top .epm-car__dots {
	order: -1;
	margin-right: auto;
}

/* Bandeau continu : défilement linéaire */
.epm-plist--mode-carousel .epm-car--marquee .epm-car__viewport {
	mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 4%, #000 96%, transparent 100%);
}

@container epmpeople (max-width: 560px) {
	.epm-plist .epm-car__arrow {
		width: 36px;
		height: 36px;
	}

	.epm-plist--mode-carousel .epm-car--arrows-sides .epm-car__arrow {
		top: calc(50% - 18px - 20px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.epm-plist .epm-car__dot,
	.epm-plist .epm-car__arrow {
		transition: none;
	}
}

/* ==========================================================================
   1.9.4 — Bouton des cartes : style, position, couleur à l'état normal,
   carte entière cliquable. Aucune règle n'est active avec les valeurs
   par défaut (« Selon le design »).
   ========================================================================== */
.epm-plist[class*="epm-plist--cbtn-"] {
	--epm-pp-b: var(--epm-pp-button, var(--epm-pp-accent));
	--epm-pp-bt: var(--epm-pp-button-text, var(--epm-pp-primary-on, #fff));
}

.epm-plist.epm-plist--cbtn-outline .epm-pp__more.epm-pp__more {
	border: 2px solid var(--epm-pp-b);
	border-radius: 999px;
	background: transparent;
	color: var(--epm-pp-b);
}

.epm-plist.epm-plist--cbtn-solid .epm-pp__more.epm-pp__more {
	border: 2px solid var(--epm-pp-b);
	border-radius: 999px;
	background: var(--epm-pp-b);
	color: var(--epm-pp-bt);
}

.epm-plist.epm-plist--cbtn-soft .epm-pp__more.epm-pp__more {
	border: 2px solid transparent;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pp-b) 15%, transparent);
	color: var(--epm-pp-b);
}

.epm-plist.epm-plist--cbtn-square .epm-pp__more.epm-pp__more {
	border: 2px solid var(--epm-pp-b);
	border-radius: 8px;
	background: var(--epm-pp-b);
	color: var(--epm-pp-bt);
	font-size: 13px;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.epm-plist.epm-plist--cbtn-glass .epm-pp__more.epm-pp__more {
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
}

.epm-plist.epm-plist--cbtn-link .epm-pp__more.epm-pp__more {
	min-height: 0;
	padding: 4px 0;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--epm-pp-b);
}

.epm-plist.epm-plist--cbtn-link .epm-pp__more.epm-pp__more::after {
	content: "→";
	transition: transform .2s ease;
}

/* Survol */
.epm-plist:is(.epm-plist--cbtn-outline, .epm-plist--cbtn-soft) .epm-pp__more.epm-pp__more:hover {
	border-color: var(--epm-pp-b);
	background: var(--epm-pp-b);
	color: var(--epm-pp-bt);
}

.epm-plist:is(.epm-plist--cbtn-solid, .epm-plist--cbtn-square) .epm-pp__more.epm-pp__more:hover {
	background: color-mix(in srgb, var(--epm-pp-b) 85%, #000);
	color: var(--epm-pp-bt);
}

.epm-plist.epm-plist--cbtn-glass .epm-pp__more.epm-pp__more:hover {
	background: #fff;
	color: #111827;
}

.epm-plist.epm-plist--cbtn-link .epm-pp__more.epm-pp__more:hover {
	background: none;
	color: var(--epm-pp-b);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.epm-plist.epm-plist--cbtn-link .epm-pp__more.epm-pp__more:hover::after {
	transform: translateX(3px);
}

/* Couleur du texte du bouton à l'état normal (le survol garde « Texte des boutons »). */
.epm-plist.epm-plist--btn-n .epm-pp__more.epm-pp__more:not(:hover):not(:focus-visible) {
	color: var(--epm-pp-btn-text-n);
}

/* Position du bouton */
.epm-plist.epm-plist--cbpos-left :is(.epm-pp__more, .epm-pp__cta) {
	align-self: flex-start;
	justify-self: start;
	margin-right: auto;
	margin-left: 0;
}

.epm-plist.epm-plist--cbpos-center :is(.epm-pp__more, .epm-pp__cta) {
	align-self: center;
	justify-self: center;
	margin-right: auto;
	margin-left: auto;
}

.epm-plist.epm-plist--cbpos-right :is(.epm-pp__more, .epm-pp__cta) {
	align-self: flex-end;
	justify-self: end;
	margin-right: 0;
	margin-left: auto;
}

.epm-plist.epm-plist--cbpos-full :is(.epm-pp__more, .epm-pp__cta) {
	align-self: stretch;
	justify-self: stretch;
	width: 100%;
	margin-right: 0;
	margin-left: 0;
}

.epm-plist.epm-plist--cbpos-full .epm-pp__more {
	justify-content: center;
}

.epm-plist.epm-plist--cbpos-top :is(.epm-pp__more, .epm-pp__cta) {
	order: -1;
	align-self: flex-start;
	justify-self: start;
	margin-top: 0;
	margin-bottom: 8px;
}

/* Carte entière cliquable */
.epm-plist.epm-plist--cardclick .epm-plist__item:not(.epm-plist__skeleton) {
	cursor: pointer;
}

.epm-plist.epm-plist--cardclick .epm-plist__item:not(.epm-plist__skeleton):focus-within {
	outline: 3px solid color-mix(in srgb, var(--epm-pp-accent) 55%, transparent);
	outline-offset: 3px;
	border-radius: var(--epm-pp-radius, 16px);
}

/* ==========================================================================
   1.9.4 — Popups participants : 8 modèles, disposition et affichage de la photo.
   Le modèle « Classique » sans réglage de photo garde exactement le rendu précédent.
   ========================================================================== */
.epm-pop[class*="epm-pop--ph-"] .epm-pop__media img {
	max-height: none;
}

/* --- Affichage de la photo --- */
.epm-pop.epm-pop--pm-cover .epm-pop__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 22%;
}

.epm-pop.epm-pop--pm-contain .epm-pop__media {
	display: grid;
	place-items: center;
	padding: 18px;
}

.epm-pop.epm-pop--pm-contain .epm-pop__media img {
	width: 100%;
	height: auto;
	max-height: 420px;
	object-fit: contain;
	border-radius: 10px;
}

.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
	display: grid;
	place-items: center;
	padding: 28px 20px 8px;
}

.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media img,
.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__initials {
	width: 168px;
	height: 168px;
	max-height: none;
	object-fit: cover;
	object-position: 50% 20%;
	box-shadow: 0 0 0 5px #fff, 0 12px 30px -10px rgba(15, 23, 42, .45);
}

.epm-pop.epm-pop--pm-circle .epm-pop__media img,
.epm-pop.epm-pop--pm-circle .epm-pop__initials {
	border-radius: 50%;
}

.epm-pop.epm-pop--pm-rounded .epm-pop__media img,
.epm-pop.epm-pop--pm-rounded .epm-pop__initials {
	border-radius: 24px;
}

.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__initials {
	background: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 14%, #fff);
	font-size: 54px;
}

/* --- Disposition : photo en haut / bandeau --- */
.epm-pop:is(.epm-pop--ph-top, .epm-pop--ph-banner) .epm-pop__layout--photo {
	display: block;
	min-height: 0;
}

.epm-pop.epm-pop--ph-banner.epm-pop--pm-cover .epm-pop__media {
	height: 300px;
}

.epm-pop.epm-pop--ph-top.epm-pop--pm-cover .epm-pop__media {
	height: 360px;
}

.epm-pop:is(.epm-pop--ph-top, .epm-pop--ph-banner) .epm-pop__body {
	padding: 26px 32px 32px;
}

.epm-pop.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__body {
	justify-items: center;
	padding-top: 18px;
	text-align: center;
}

.epm-pop.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) :is(.epm-pop__labels, .epm-pop__editions, .epm-pop__links) {
	justify-content: center;
}

/* --- Disposition : photo à gauche / à droite (ordinateur) --- */
@media (min-width: 701px) {
	.epm-pop:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__box {
		width: min(900px, calc(100vw - 32px));
	}

	.epm-pop:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__layout--photo {
		display: grid;
		grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
		min-height: 440px;
	}

	.epm-pop:not(.epm-pop--side).epm-pop--ph-right .epm-pop__layout--photo {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}

	.epm-pop:not(.epm-pop--side).epm-pop--ph-right .epm-pop__media {
		order: 2;
	}

	.epm-pop:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__body {
		align-content: start;
		padding: 46px 40px 40px;
	}

	.epm-pop:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right):is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
		align-content: start;
		padding-top: 48px;
	}

	.epm-pop:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right):is(.epm-pop--ph-top, .epm-pop--ph-banner) .epm-pop__box {
		width: min(640px, calc(100vw - 32px));
	}
}

/* Côte à côte impossible : panneau latéral et mobile → photo au-dessus. */
.epm-pop.epm-pop--side:is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__layout--photo {
	display: block;
}

.epm-pop.epm-pop--side:is(.epm-pop--ph-left, .epm-pop--ph-right).epm-pop--pm-cover .epm-pop__media {
	height: 320px;
}

@media (max-width: 700px) {
	.epm-pop:is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__layout--photo {
		display: block;
		min-height: 0;
	}

	.epm-pop[class*="epm-pop--ph-"].epm-pop--pm-cover .epm-pop__media {
		height: min(320px, 42vh);
	}

	.epm-pop[class*="epm-pop--ph-"] .epm-pop__body {
		padding: 22px 20px 28px;
	}

	.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media img,
	.epm-pop:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__initials {
		width: 128px;
		height: 128px;
	}

	.epm-pop.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded),
	.epm-pop:is(.epm-pop--ph-left, .epm-pop--ph-right):is(.epm-pop--pm-circle, .epm-pop--pm-rounded) {
		text-align: center;
	}

	.epm-pop:is(.epm-pop--ph-left, .epm-pop--ph-right):is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__body {
		justify-items: center;
	}
}

/* ------------------------------------------------------------------ Modèles */

/* Moderne : accents de couleur, rôle en pastille, liens en boutons pleins */
.epm-pop.epm-pop--t-modern .epm-pop__box {
	border-radius: 24px;
}

.epm-pop.epm-pop--t-modern .epm-pop__body {
	position: relative;
	gap: 14px;
}

.epm-pop.epm-pop--t-modern .epm-pop__name::after {
	display: block;
	width: 48px;
	height: 4px;
	margin-top: 12px;
	border-radius: 4px;
	background: var(--epm-pp-primary, #e11d74);
	content: "";
}

.epm-pop.epm-pop--t-modern .epm-pop__role {
	color: #4b5563;
}

.epm-pop.epm-pop--t-modern .epm-pop__role strong {
	color: var(--epm-pp-primary, #e11d74);
}

.epm-pop.epm-pop--t-modern .epm-pop__desc {
	padding: 14px 16px;
	border-left: 4px solid var(--epm-pp-primary, #e11d74);
	border-radius: 0 12px 12px 0;
	background: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 6%, #fff);
}

.epm-pop.epm-pop--t-modern .epm-pop__bio {
	border-top: 0;
	padding-top: 0;
}

.epm-pop.epm-pop--t-modern .epm-pop__link {
	border-color: var(--epm-pp-primary, #e11d74);
	background: var(--epm-pp-primary, #e11d74);
	color: #fff;
}

.epm-pop.epm-pop--t-modern .epm-pop__link:hover {
	background: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 85%, #000);
	color: #fff;
}

/* Bandeau : grande photo en haut, texte en carte qui chevauche */
.epm-pop.epm-pop--t-hero .epm-pop__box {
	width: min(640px, calc(100vw - 32px));
	border-radius: 24px;
}

.epm-pop.epm-pop--t-hero.epm-pop--ph-banner .epm-pop__layout--photo .epm-pop__body {
	position: relative;
	margin-top: -36px;
	border-radius: 26px 26px 0 0;
	background: #fff;
}

.epm-pop.epm-pop--t-hero .epm-pop__name {
	font-size: clamp(26px, 4.4vw, 36px);
}

.epm-pop.epm-pop--t-hero .epm-pop__first {
	display: inline-block;
	justify-self: start;
	padding: 4px 12px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 12%, #fff);
}

/* Profil : photo ronde centrée, texte centré */
.epm-pop.epm-pop--t-profile .epm-pop__box {
	width: min(560px, calc(100vw - 32px));
	border-radius: 28px;
}

.epm-pop.epm-pop--t-profile .epm-pop__media {
	background: linear-gradient(180deg, color-mix(in srgb, var(--epm-pp-primary, #e11d74) 16%, #fff) 0 60%, #fff 60%);
}

.epm-pop.epm-pop--t-profile .epm-pop__role strong {
	display: block;
	margin-top: 2px;
	color: var(--epm-pp-primary, #e11d74);
}

.epm-pop.epm-pop--t-profile .epm-pop__role .epm-pop__sep {
	display: none;
}

.epm-pop.epm-pop--t-profile :is(.epm-pop__desc, .epm-pop__bio) {
	text-align: left;
}

/* Split : moitié photo plein cadre, moitié texte */
@media (min-width: 701px) {
	.epm-pop.epm-pop--t-split:not(.epm-pop--side):is(.epm-pop--ph-left, .epm-pop--ph-right) .epm-pop__box {
		width: min(980px, calc(100vw - 32px));
		border-radius: 18px;
	}

	.epm-pop.epm-pop--t-split:not(.epm-pop--side).epm-pop--ph-left .epm-pop__layout--photo,
	.epm-pop.epm-pop--t-split:not(.epm-pop--side).epm-pop--ph-right .epm-pop__layout--photo {
		grid-template-columns: 1fr 1fr;
		min-height: 520px;
	}
}

.epm-pop.epm-pop--t-split .epm-pop__name {
	font-size: clamp(26px, 3.6vw, 38px);
	letter-spacing: -.01em;
}

.epm-pop.epm-pop--t-split .epm-pop__role {
	padding-bottom: 14px;
	border-bottom: 2px solid color-mix(in srgb, var(--epm-pp-primary, #e11d74) 30%, #eef0f5);
}

.epm-pop.epm-pop--t-split .epm-pop__bio {
	border-top: 0;
	padding-top: 0;
}

/* Minimal : épuré, petite photo alignée à gauche */
.epm-pop.epm-pop--t-minimal .epm-pop__box {
	width: min(600px, calc(100vw - 32px));
	border-radius: 14px;
	box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .35);
}

.epm-pop.epm-pop--t-minimal.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
	justify-content: start;
	padding: 34px 34px 0;
	background: transparent;
}

.epm-pop.epm-pop--t-minimal.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media :is(img, .epm-pop__initials) {
	width: 96px;
	height: 96px;
	box-shadow: none;
	font-size: 32px;
}

.epm-pop.epm-pop--t-minimal.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__body {
	justify-items: stretch;
	padding: 18px 34px 34px;
	text-align: left;
}

.epm-pop.epm-pop--t-minimal.epm-pop--ph-top :is(.epm-pop__labels, .epm-pop__editions, .epm-pop__links) {
	justify-content: flex-start;
}

.epm-pop.epm-pop--t-minimal .epm-pop__name {
	font-size: clamp(22px, 3.4vw, 28px);
	font-weight: 700;
}

.epm-pop.epm-pop--t-minimal :is(.epm-pop__link, .epm-pop__social) {
	border-radius: 8px;
}

/* Sombre */
.epm-pop.epm-pop--t-dark {
	color: #cbd5e1;
}

.epm-pop.epm-pop--t-dark .epm-pop__box {
	border-radius: 22px;
	background: #0f172a;
	box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .7);
}

.epm-pop.epm-pop--t-dark .epm-pop__media {
	background: #1e293b;
}

.epm-pop.epm-pop--t-dark :is(.epm-pop__name, .epm-pop__role strong) {
	color: #fff;
}

.epm-pop.epm-pop--t-dark :is(.epm-pop__role, .epm-pop__subtitle, .epm-pop__desc, .epm-pop__bio) {
	color: #cbd5e1;
}

.epm-pop.epm-pop--t-dark .epm-pop__first {
	color: color-mix(in srgb, var(--epm-pp-primary, #e11d74) 70%, #fff);
}

.epm-pop.epm-pop--t-dark .epm-pop__bio {
	border-top-color: rgba(255, 255, 255, .1);
}

.epm-pop.epm-pop--t-dark .epm-pop__chip {
	background: rgba(255, 255, 255, .08);
	color: #e2e8f0;
}

.epm-pop.epm-pop--t-dark :is(.epm-pop__link, .epm-pop__social) {
	border-color: rgba(255, 255, 255, .2);
	color: #fff;
}

.epm-pop.epm-pop--t-dark :is(.epm-pop__link, .epm-pop__social):hover {
	border-color: #fff;
	background: #fff;
	color: #0f172a;
}

.epm-pop.epm-pop--t-dark .epm-pop__btn {
	background: rgba(15, 23, 42, .85);
	color: #fff;
}

.epm-pop.epm-pop--t-dark:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media :is(img, .epm-pop__initials) {
	box-shadow: 0 0 0 5px #1e293b, 0 12px 30px -10px rgba(0, 0, 0, .6);
}

/* Dégradé : en-tête coloré, photo ronde qui chevauche */
.epm-pop.epm-pop--t-gradient .epm-pop__box {
	width: min(580px, calc(100vw - 32px));
	border-radius: 26px;
}

.epm-pop.epm-pop--t-gradient .epm-pop__media {
	background:
		radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--epm-pp-primary, #e11d74) 90%, #fff) 0%, transparent 60%),
		linear-gradient(135deg, var(--epm-pp-primary, #e11d74), color-mix(in srgb, var(--epm-pp-primary, #e11d74) 45%, #1e1b4b));
}

.epm-pop.epm-pop--t-gradient.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
	padding: 40px 20px 0;
	margin-bottom: 76px;
	height: 120px;
	align-content: start;
}

.epm-pop.epm-pop--t-gradient.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
	position: relative;
	z-index: 1;
	overflow: visible;
}

.epm-pop.epm-pop--t-gradient.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media :is(img, .epm-pop__initials) {
	box-shadow: 0 0 0 6px #fff, 0 14px 30px -10px rgba(15, 23, 42, .5);
}

.epm-pop.epm-pop--t-gradient .epm-pop__role strong {
	color: var(--epm-pp-primary, #e11d74);
}

.epm-pop.epm-pop--t-gradient .epm-pop__link {
	border: 0;
	background: linear-gradient(135deg, var(--epm-pp-primary, #e11d74), color-mix(in srgb, var(--epm-pp-primary, #e11d74) 55%, #1e1b4b));
	color: #fff;
}

@media (max-width: 700px) {
	.epm-pop.epm-pop--t-gradient.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
		height: 96px;
		margin-bottom: 52px;
		padding-top: 30px;
	}

	.epm-pop.epm-pop--t-hero.epm-pop--ph-banner .epm-pop__layout--photo .epm-pop__body {
		margin-top: -24px;
	}

	.epm-pop.epm-pop--t-minimal.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__media {
		padding: 26px 20px 0;
	}

	.epm-pop.epm-pop--t-minimal.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__body {
		padding: 16px 20px 26px;
	}
}

/* Logo lisible sur le modèle sombre, logo centré dans les mises en page centrées */
.epm-pop.epm-pop--t-dark .epm-pop__logo img {
	box-sizing: content-box;
	padding: 6px 10px;
	border-radius: 8px;
	background: #fff;
}

.epm-pop.epm-pop--ph-top:is(.epm-pop--pm-circle, .epm-pop--pm-rounded) .epm-pop__logo {
	display: flex;
	justify-content: center;
}

/* ---- Festival : éléments communs ---- */
.epm-pp__genre{margin:0;font-size:.75em;font-weight:600;text-transform:uppercase;letter-spacing:.08em;opacity:.8}
.epm-pp__origin,.epm-pp__editions,.epm-pp__show{margin:0}
a.epm-pp__open--link{color:inherit;text-decoration:none}
.epm-pop__social--text{display:inline-block;padding:4px 10px;border:1px solid currentColor;border-radius:999px;font-size:.8125em;text-decoration:none}
.epm-fest{display:block}
.epm-fest-section{margin:0 0 clamp(24px,4vw,56px)}
.epm-fest-section__title{margin:0 0 16px}
.epm-fest__empty{opacity:.7}
.epm-fest-switch ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 20px;padding:0}
.epm-fest-switch__link{display:inline-block;padding:6px 14px;border:1px solid currentColor;border-radius:999px;text-decoration:none;color:inherit;font-size:.9375em}
.epm-fest-switch__link.is-current{font-weight:700;box-shadow:inset 0 -3px 0 currentColor}
.epm-fest-switch__link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.epm-pp__genres,.epm-pp__members,.epm-pp__shows{margin:12px 0 0}
.epm-pp__shows ul{margin:0;padding-left:1.1em}
.epm-pp__gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;margin:12px 0 0}
.epm-pp__gallery img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:6px}


/* ==========================================================================
   1.12.0 — Réglages propres à chaque modèle : dimensions de la photo et bouton.
   Les variables --epm-pp-pw / -ph / -ar sont posées par un bloc <style> propre
   à l'instance (ordinateur, tablette, mobile). Sans valeur : le design décide.
   ========================================================================== */
.epm-plist.epm-pdim-block .epm-pp__photo {
	width: min(100%, var(--epm-pp-pw, 100%));
	margin-inline: auto;
}

.epm-plist.epm-pdim-block .epm-pp__media {
	height: var(--epm-pp-ph, auto);
	aspect-ratio: var(--epm-pp-ar, var(--epm-pp-ratio, 1 / 1));
}

/* Bouton « Voir plus » personnalisé : seules les propriétés renseignées sont imposées. */
.epm-plist.epm-plist--pb-c .epm-pp__more {
	color: var(--epm-pp-b-c) !important;
}

.epm-plist.epm-plist--pb-bg .epm-pp__more {
	background: var(--epm-pp-b-bg) !important;
}

.epm-plist.epm-plist--pb-bc .epm-pp__more {
	border-color: var(--epm-pp-b-bc) !important;
	border-style: solid !important;
	border-width: var(--epm-pp-b-bw, 2px);
}

.epm-plist.epm-plist--pb-bw .epm-pp__more {
	border-width: var(--epm-pp-b-bw) !important;
	border-style: solid !important;
}

.epm-plist.epm-plist--pb-fs .epm-pp__more {
	font-size: var(--epm-pp-b-fs) !important;
}

.epm-plist.epm-plist--pb-py .epm-pp__more {
	padding-block: var(--epm-pp-b-py) !important;
	min-height: 0 !important;
}

.epm-plist.epm-plist--pb-px .epm-pp__more {
	padding-inline: var(--epm-pp-b-px) !important;
}

.epm-plist.epm-plist--pb-r .epm-pp__more {
	border-radius: var(--epm-pp-b-r) !important;
}

.epm-plist:is(.epm-plist--pb-c, .epm-plist--pb-bg, .epm-plist--pb-bc) .epm-pp__more:hover {
	filter: brightness(.92);
}
