/* =========================================================
   ZeStyle Module — façade
   ---------------------------------------------------------
   SOMMAIRE
   1. Jetons (repris du thème ZeStyle s'il est là)
   2. Communs : conteneur, sections, boutons, pastilles
   3. Scène VS (toujours sombre : c'est un plateau)
   4. Carrousel
   5. Duel : candidats, jauges, vote, couronne, confettis
   6. Tableau des VS (suit le mode clair/sombre du site)
   7. Archive, mentions, attente
   8. Boutons d'achat externes
   9. Produits dans les articles
   10. Éditeur de blocs
   11. Mode clair
   12. Petits écrans
   13. Mouvement réduit
   14. Compteur de vues
   ========================================================= */

/* =========================================================
   1. JETONS
   Les var(--pz-…) du thème, avec un repli si le thème n'est
   pas là. On ne redéfinit JAMAIS :root ici.
   ========================================================= */
.pzm {
	--pzm-bg: var(--pz-bg, #0a0a0f);
	--pzm-surface: var(--pz-surface, #13131d);
	--pzm-surface-2: var(--pz-surface-2, #1a1a26);
	--pzm-line: var(--pz-line, rgba(255, 255, 255, .10));
	--pzm-text: var(--pz-text, #f4f4f8);
	--pzm-muted: var(--pz-muted, #a2a2b8);
	--pzm-font: var(--pz-font, "Inter", system-ui, -apple-system, "Segoe UI", sans-serif);
	--pzm-radius: var(--pz-radius, 14px);
	--pzm-max: var(--pz-max, 1240px);
	--pzm-ease: cubic-bezier(.2, .8, .2, 1);
	--pzm-rainbow: linear-gradient(100deg, #ff00c8, #a855f7 25%, #00f0ff 50%, #00ffa3 75%, #ffd54a);
	font-family: var(--pzm-font);
}

/* La teinte PEINTE est recalculée sur chaque élément qui porte sa couleur
   en ligne (--pzm-neon / --pzm-ink). Déclarée une seule fois plus haut,
   elle resterait figée sur la première teinte rencontrée. */
.pzm-duel,
.pzm-fighter,
.pzm-card,
.pzm-row,
.pzm-prow,
.pzm-buy__btn {
	--pzm-paint: var(--pzm-neon, #00f0ff);
}

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

.pzm img { max-width: 100%; }

/* =========================================================
   2. COMMUNS
   ========================================================= */
.pzm-wrap {
	width: 100%;
	max-width: var(--pzm-max);
	margin-inline: auto;
	padding-inline: 20px;
}

.pzm-section { padding: clamp(36px, 5vw, 60px) 0; }

.pzm-section__head { margin-bottom: 22px; }

.pzm .pzm-section__title {
	margin: 0;
	position: relative;
	padding-bottom: 12px;
	font-size: clamp(1.2rem, 2.4vw, 1.7rem);
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--pzm-text);
}

.pzm-section__title::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 72px;
	height: 3px;
	border-radius: 3px;
	background: var(--pzm-rainbow);
}

.pzm-section__sub { margin: 8px 0 0; color: var(--pzm-muted); font-size: .9rem; }

.pzm-ico { display: inline-block; flex: 0 0 auto; vertical-align: -3px; }

/* Bouton principal : pilule au dégradé qui court. */
.pzm .pzm-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 24px;
	border: 0;
	border-radius: 999px;
	background: linear-gradient(100deg, #ff00c8, #a855f7, #00f0ff, #ff00c8);
	background-size: 300% 100%;
	color: #fff;
	font: 800 .8rem/1 var(--pzm-font);
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 6px 24px rgba(255, 0, 200, .28);
	transition: background-position .6s var(--pzm-ease), transform .25s var(--pzm-ease), box-shadow .25s;
}

.pzm .pzm-btn:hover,
.pzm .pzm-btn:focus-visible {
	color: #fff;
	background-position: 100% 0;
	transform: translateY(-2px);
	box-shadow: 0 10px 32px rgba(0, 240, 255, .35);
}

.pzm .pzm-btn--small { padding: 9px 16px; font-size: .7rem; }

.pzm-chip {
	display: inline-flex;
	align-items: center;
	padding: 4px 11px;
	border: 1px solid var(--pzm-paint, #00f0ff);
	border-radius: 999px;
	color: var(--pzm-paint, #00f0ff);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .04em;
	white-space: nowrap;
}

.pzm-format {
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--pzm-muted);
}

.pzm-badge {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 4px 11px 4px 9px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.pzm-badge .pzm-ico { width: 14px; height: 14px; }

.pzm-badge--major {
	background: linear-gradient(100deg, #ffd54a, #ff9d00);
	color: #1a1000;
	box-shadow: 0 0 18px rgba(255, 213, 74, .45);
}

/* VS longue durée : un sablier cyan, jamais confondu avec la couronne du majeur. */
.pzm-badge--long {
	background: rgba(0, 240, 255, .12);
	color: #00f0ff;
	box-shadow: inset 0 0 0 1px rgba(0, 240, 255, .55);
}

.pzm-long-clock { display: inline-flex; align-items: center; gap: 5px; color: #00f0ff; }
.pzm-long-clock .pzm-ico { width: 14px; height: 14px; }
.pzm-long-clock b { font-variant-numeric: tabular-nums; }
.pzm-long-clock.is-over { color: #ffd54a; }
.pzm-card__ends { color: var(--pzm-muted); }

.pzm .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* =========================================================
   3. SCÈNE VS
   Sombre dans les DEUX modes : les couleurs sont écrites en dur.
   ========================================================= */
.pzm-stage {
	--pzm-text: #f4f4f8;
	--pzm-muted: #b3b3c9;
	--pzm-line: rgba(255, 255, 255, .12);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(30px, 5vw, 60px) 0 clamp(26px, 4vw, 44px);
	/* Repli immobile (sans animation) : les mêmes fluos, en biais. */
	background: linear-gradient(110deg, #ff00c8, #a855f7 20%, #00c8ff 40%, #00ffa3 60%, #ffe600 80%, #ff7a00);
	color: var(--pzm-text);
}

.pzm-stage__fx {
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	overflow: hidden;
}

/* Le sol quadrillé qui défile, façon plateau rétro. */
.pzm-stage__floor {
	position: absolute;
	left: -50%;
	right: -50%;
	bottom: -2px;
	height: 58%;
	background-image:
		linear-gradient(rgba(255, 0, 200, .38) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 240, 255, .30) 1px, transparent 1px);
	background-size: 54px 54px;
	transform: perspective(420px) rotateX(64deg);
	transform-origin: 50% 100%;
	-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 85%);
	mask-image: linear-gradient(to top, #000 0%, transparent 85%);
	opacity: .5;
	animation: pzm-floor 5s linear infinite;
}

.pzm-stage__beam {
	position: absolute;
	width: 46vmax;
	height: 46vmax;
	border-radius: 50%;
	filter: blur(70px);
	opacity: .35;
	animation: pzm-drift 16s ease-in-out infinite alternate;
}

.pzm-stage__beam--a { left: -12vmax; top: -18vmax; background: #ff00c8; }
.pzm-stage__beam--b { right: -14vmax; bottom: -20vmax; background: #00f0ff; animation-delay: -8s; }

/* ---- ZeStyle : les bandes fluo en italique ----
   Le sol quadrillé et les halos de PrismAtiX laissent place à des bandes
   penchées (skewX, comme une écriture en italique) qui se fondent l'une
   dans l'autre et glissent lentement. Couleurs vives, AUCUN voile ni
   filtre par-dessus : la lisibilité vient des plaques sombres posées
   sur les textes (en-tête, navigation), pas d'un assombrissement du fond.
   Boucle sans à-coup : la bande se décale d'exactement une période
   (--pzm-band) et le dégradé recommence par la même couleur. */
.pzm-stage__floor,
.pzm-stage__beam { display: none; }

.pzm-stage {
	--pzm-band: 1440px;
	--pzm-plate: rgba(12, 8, 26, .86);
}

.pzm-stage__fx::before,
.pzm-stage__fx::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: calc(-1 * var(--pzm-band) - 50%);
	right: calc(-1 * var(--pzm-band) - 50%);
	transform: skewX(-22deg);
	will-change: transform;
}

/* Les six fluos, chacun tient un instant puis se fond dans le suivant. */
.pzm-stage__fx::before {
	background: repeating-linear-gradient(90deg,
		#ff00c8 0, #ff00c8 70px,
		#a855f7 240px, #a855f7 310px,
		#00c8ff 480px, #00c8ff 550px,
		#00ffa3 720px, #00ffa3 790px,
		#ffe600 960px, #ffe600 1030px,
		#ff7a00 1200px, #ff7a00 1270px,
		#ff00c8 1440px);
	animation: pzm-bands 48s linear infinite;
}

/* Le chatoiement : de fins reflets clairs qui croisent les bandes à
   contre-sens, plus lentement. Ils éclairent, ils n'assombrissent pas. */
.pzm-stage__fx::after {
	background: repeating-linear-gradient(90deg,
		transparent 0, transparent 150px,
		rgba(255, 255, 255, .28) 168px, rgba(255, 255, 255, 0) 196px,
		transparent 260px, transparent 330px,
		rgba(255, 255, 255, .16) 340px, rgba(255, 255, 255, 0) 356px,
		transparent 360px);
	animation: pzm-sheen 30s linear infinite reverse;
}

/* Plaques de lecture : des surfaces sombres posées sur les bandes. */
.pzm-stage__head {
	padding: clamp(16px, 2.6vw, 26px) clamp(16px, 3vw, 34px);
	border-radius: 22px;
	background: var(--pzm-plate);
	box-shadow: 0 14px 40px rgba(0, 0, 0, .28);
}

.pzm-stage .pzm-deck__nav {
	width: fit-content;
	margin-inline: auto;
	padding: 6px 10px;
	border-radius: 999px;
	background: var(--pzm-plate);
}

.pzm-stage .pzm-empty {
	border-style: solid;
	background: var(--pzm-plate);
}

.pzm-stage .pzm-stage__cta .pzm-btn { box-shadow: 0 10px 28px rgba(0, 0, 0, .3); }

.pzm-stage__head { text-align: center; max-width: 900px; margin: 0 auto; }

.pzm-kicker {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-size: clamp(1.5rem, 4.4vw, 2.6rem);
	font-weight: 900;
	font-style: italic;
	letter-spacing: .02em;
	line-height: 1;
	color: #fff;
	text-shadow: 0 0 18px rgba(0, 240, 255, .55);
}

.pzm-kicker__crown { color: #ffd54a; filter: drop-shadow(0 0 8px rgba(255, 213, 74, .8)); }
.pzm-kicker__crown .pzm-ico { width: 1em; height: 1em; }

.pzm-kicker__vs {
	font-weight: 900;
	background: linear-gradient(100deg, #ff00c8 10%, #a855f7 50%, #00f0ff 90%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	text-shadow: none;
	filter: drop-shadow(0 0 12px rgba(255, 0, 200, .65));
	animation: pzm-flicker 4.5s infinite;
}

.pzm .pzm-stage__title {
	margin: 0 0 10px;
	font-size: clamp(1.35rem, 3.4vw, 2.3rem);
	font-weight: 800;
	line-height: 1.12;
	text-transform: uppercase;
	color: #fff;
}

.pzm-stage__intro { margin: 0 auto 6px; max-width: 640px; color: var(--pzm-muted); }

.pzm-stats {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 18px 0 0;
	padding: 0;
	list-style: none;
}

.pzm-stats li {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	border: 1px solid rgba(255, 255, 255, .14);
	border-radius: 999px;
	background: rgba(255, 255, 255, .05);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	font-size: .82rem;
	color: #e7e7f2;
}

.pzm-stats b { color: #fff; font-variant-numeric: tabular-nums; }
.pzm-stats__wave { color: #ffd54a !important; border-color: rgba(255, 213, 74, .4) !important; }
.pzm-stats__clock { border-color: rgba(255, 0, 200, .55) !important; box-shadow: 0 0 16px rgba(255, 0, 200, .25); }
.pzm-stats__clock b { min-width: 7.2em; text-align: left; }
.pzm-stats__clock.is-over { color: #ffd54a; }
.pzm-stats__mine { border-color: rgba(0, 255, 163, .5) !important; }
.pzm-stats__mine .pzm-ico { color: #00ffa3; }

.pzm-stage__cta { margin: 22px 0 0; text-align: center; }

/* =========================================================
   4. CARROUSEL
   ========================================================= */
.pzm-deck { position: relative; margin-top: clamp(20px, 3vw, 32px); }

.pzm-deck__viewport {
	overflow: hidden;
	border-radius: 24px;
	touch-action: pan-y;
	transition: height .45s var(--pzm-ease);
}

.pzm-deck__track {
	display: flex;
	align-items: flex-start;
	transition: transform .65s var(--pzm-ease);
	will-change: transform;
}

.pzm-deck__track.is-instant { transition: none; }

/* Sans JavaScript : les VS s'empilent, tous lisibles. */
.pzm-deck:not(.is-ready) .pzm-deck__track { flex-direction: column; gap: 18px; }
.pzm-deck:not(.is-ready) .pzm-deck__nav,
.pzm-deck:not(.is-ready) .pzm-duel--done { display: none; }

.pzm-deck__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 14px;
	margin-top: 16px;
}

.pzm .pzm-deck__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	background: rgba(255, 255, 255, .05);
	color: #fff;
	cursor: pointer;
	transition: border-color .2s, box-shadow .2s, transform .2s;
}

.pzm .pzm-deck__arrow:hover,
.pzm .pzm-deck__arrow:focus-visible {
	border-color: #00f0ff;
	box-shadow: 0 0 18px rgba(0, 240, 255, .5);
	transform: scale(1.06);
}

.pzm-deck__dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; max-width: 70vw; }

.pzm .pzm-deck__dot {
	width: 12px;
	height: 12px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .22);
	cursor: pointer;
	transition: width .35s var(--pzm-ease), background .3s;
}

.pzm .pzm-deck__dot.is-voted { background: #00ffa3; }
.pzm .pzm-deck__dot.is-major { box-shadow: 0 0 0 2px #ffd54a; }
.pzm .pzm-deck__dot.is-active { width: 34px; background: var(--pzm-rainbow); }

/* =========================================================
   5. DUEL
   ========================================================= */
.pzm-duel {
	flex: 0 0 100%;
	min-width: 0;
	position: relative;
	padding: clamp(18px, 3vw, 32px);
	border-radius: 24px;
	background: linear-gradient(180deg, rgba(24, 18, 44, .92), rgba(10, 8, 22, .95));
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 20px 60px rgba(0, 0, 0, .45);
}

/* Le cadre arc-en-ciel qui coule autour du VS. */
.pzm-duel::before {
	content: "";
	position: absolute;
	inset: 0;
	padding: 2px;
	border-radius: inherit;
	background: linear-gradient(100deg, #ff00c8, #a855f7, #00f0ff, #00ffa3, #ffd54a, #ff00c8);
	background-size: 300% 100%;
	-webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	opacity: .55;
	pointer-events: none;
	animation: pzm-flow 7s linear infinite;
}

.pzm-duel.is-major::before { opacity: 1; padding: 3px; }
.pzm-duel.is-major { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 0 60px rgba(255, 0, 200, .25), 0 20px 60px rgba(0, 0, 0, .45); }

.pzm-duel__head {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
}

.pzm .pzm-duel__title {
	margin: 12px auto 0;
	max-width: 820px;
	text-align: center;
	font-size: clamp(1.2rem, 2.6vw, 1.85rem);
	font-weight: 800;
	line-height: 1.2;
	color: #fff;
}

/* --- L'arène : les candidats face à face --- */
.pzm-ring {
	display: flex;
	align-items: stretch;
	justify-content: center;
	margin-top: clamp(18px, 3vw, 28px);
}

.pzm-ring__vs {
	position: relative;
	z-index: 2;
	flex: 0 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: center;
	font-size: .95rem;
	font-weight: 900;
	font-style: italic;
	color: #fff;
	white-space: nowrap;
	pointer-events: none;
}

.pzm-ring__vs::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: -1;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	background: radial-gradient(circle at 35% 30%, #ff5ce0, #a855f7 55%, #3b0764);
	box-shadow: 0 0 0 3px #0a0816, 0 0 24px rgba(255, 0, 200, .7);
}

/* Le duel a droit à son grand VS qui bat. */
.pzm-duel--n2 .pzm-ring { gap: 0; }
.pzm-duel--n2 .pzm-ring__vs { flex-basis: 34px; font-size: 1.5rem; animation: pzm-pulse 1.6s ease-in-out infinite; }
.pzm-duel--n2 .pzm-ring__vs::after { width: 76px; height: 76px; }
.pzm-duel--n2 .pzm-fighter { max-width: 380px; }

.pzm-fighter {
	position: relative;
	flex: 1 1 0;
	min-width: 0;
	display: flex;
	flex-direction: column;
	border: 2px solid var(--pzm-paint);
	border-color: color-mix(in srgb, var(--pzm-paint) 70%, transparent);
	border-radius: 20px;
	background: rgba(255, 255, 255, .035);
	box-shadow: 0 0 22px color-mix(in srgb, var(--pzm-paint) 28%, transparent);
	transition: transform .3s var(--pzm-ease), box-shadow .3s, opacity .4s;
}

.pzm-fighter:hover { transform: translateY(-4px); box-shadow: 0 0 36px color-mix(in srgb, var(--pzm-paint) 50%, transparent); }

.pzm-fighter__media {
	display: block;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: 18px 18px 0 0;
	background: #111;
}

.pzm .pzm-fighter__media img {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
	border-radius: 0;
	object-fit: cover;
	transition: transform .6s var(--pzm-ease);
}

.pzm-fighter:hover .pzm-fighter__media img { transform: scale(1.06); }

.pzm-fighter__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 8px;
	padding: 12px 12px 14px;
	text-align: center;
}

.pzm .pzm-fighter__name {
	margin: 0;
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.25;
	color: #fff;
}

.pzm .pzm-fighter__name a,
.pzm .pzm-fighter__name a:hover { color: inherit; text-decoration: none; }
.pzm .pzm-fighter__name a:hover { text-shadow: 0 0 12px var(--pzm-paint); }

.pzm-fighter__price { font-size: .85rem; font-weight: 700; color: var(--pzm-paint); }
.pzm-fighter__price del { opacity: .55; margin-right: 6px; color: #b3b3c9; }
.pzm-fighter__price ins { text-decoration: none; }

/* --- La couronne du meneur --- */
.pzm-crown {
	position: absolute;
	top: -18px;
	left: 50%;
	z-index: 3;
	color: #ffd54a;
	opacity: 0;
	transform: translate(-50%, 8px) scale(.4);
	filter: drop-shadow(0 0 10px rgba(255, 213, 74, .9));
	transition: opacity .4s, transform .6s cubic-bezier(.3, 1.8, .5, 1);
	pointer-events: none;
}

.pzm-crown .pzm-ico { width: 34px; height: 34px; fill: rgba(255, 213, 74, .35); }
.is-revealed .is-lead > .pzm-crown { opacity: 1; transform: translate(-50%, 0) scale(1); }

/* --- Les jauges --- */
.pzm-gauge { display: flex; align-items: center; gap: 8px; margin-top: auto; }

.pzm-gauge__track {
	position: relative;
	flex: 1;
	height: 9px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(255, 255, 255, .09);
}

.pzm-gauge__fill {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--pzm-paint);
	box-shadow: 0 0 12px var(--pzm-paint);
	transition: width 1.2s var(--pzm-ease);
}

.pzm-gauge__val {
	min-width: 3em;
	font-size: .85rem;
	font-weight: 800;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--pzm-paint);
}

/* Sur la scène, pas de jauge tant que ce n'est pas révélé. */
.pzm-duel:not(.is-revealed) .pzm-gauge { display: none; }

/* --- Voter --- */
.pzm .pzm-vote {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 0;
	border-radius: 999px;
	background: var(--pzm-paint);
	color: var(--pzm-on, #0a0a0f); /* noir sur couleur claire, blanc sur foncée */
	font: 900 .78rem/1 var(--pzm-font);
	letter-spacing: .12em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	box-shadow: 0 0 20px color-mix(in srgb, var(--pzm-paint) 55%, transparent);
	transition: transform .2s var(--pzm-ease), box-shadow .2s, filter .2s;
}

.pzm .pzm-vote:hover,
.pzm .pzm-vote:focus-visible {
	color: #0a0a0f;
	transform: translateY(-2px) scale(1.02);
	filter: brightness(1.1);
	box-shadow: 0 0 34px var(--pzm-paint);
}

.pzm .pzm-vote:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.pzm .pzm-vote:disabled { opacity: .5; cursor: progress; transform: none; }

.pzm .pzm-vote--login {
	background: transparent;
	color: var(--pzm-paint);
	box-shadow: inset 0 0 0 2px var(--pzm-paint);
}

.pzm .pzm-vote--login:hover { color: var(--pzm-on, #0a0a0f); background: var(--pzm-paint); }

.pzm .pzm-vote.is-mine,
.pzm .pzm-vote.is-off {
	background: transparent;
	color: var(--pzm-paint);
	box-shadow: inset 0 0 0 2px var(--pzm-paint);
	cursor: default;
	transform: none;
	filter: none;
}

.pzm .pzm-vote.is-off { color: #b3b3c9; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .2); }

.pzm-fighter.is-mine { box-shadow: 0 0 0 3px var(--pzm-paint), 0 0 44px color-mix(in srgb, var(--pzm-paint) 55%, transparent); }
.pzm-duel.is-voted .pzm-fighter:not(.is-mine) { opacity: .78; }
.pzm-duel.is-sending .pzm-fighter { animation: pzm-wait 1s ease-in-out infinite; }

.pzm-duel__foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px 16px;
	margin: 18px 0 0;
	font-size: .82rem;
	color: #b3b3c9;
}

.pzm-duel__pending { color: #ffd54a; }
.pzm-duel__pending:empty { display: none; }

.pzm-duel__msg { min-height: 0; margin: 8px 0 0; text-align: center; font-size: .85rem; font-weight: 600; color: #ffd54a; }
.pzm-duel__msg:empty { display: none; }

/* --- Confettis --- */
.pzm-burst { position: absolute; left: 50%; top: 45%; width: 0; height: 0; pointer-events: none; z-index: 5; }

.pzm-burst i {
	position: absolute;
	width: 8px;
	height: 14px;
	border-radius: 2px;
	background: var(--c);
	box-shadow: 0 0 8px var(--c);
	animation: pzm-pop 1.3s cubic-bezier(.2, .7, .3, 1) forwards;
}

/* --- Tout voté --- */
.pzm-duel--done {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 320px;
	text-align: center;
}

.pzm-done__icon { color: #ffd54a; filter: drop-shadow(0 0 20px rgba(255, 213, 74, .8)); animation: pzm-pulse 2s ease-in-out infinite; }
.pzm-done__icon .pzm-ico { width: 72px; height: 72px; }
.pzm-done__text { margin: 0; color: #d9d9e8; }
.pzm-done__text b { color: #fff; font-variant-numeric: tabular-nums; }

/* --- Attente --- */
.pzm-empty {
	max-width: 620px;
	margin: 26px auto 0;
	padding: 26px;
	border: 1px dashed rgba(255, 255, 255, .25);
	border-radius: 20px;
	text-align: center;
	color: #d9d9e8;
}

.pzm-empty p { margin: 0 0 6px; }
.pzm-empty__title { font-size: 1.1rem; font-weight: 800; color: #fff; }
.pzm-empty__admin { margin-top: 12px !important; font-size: .85rem; color: #ffd54a; }
.pzm-empty__admin a { color: #00f0ff; }

/* =========================================================
   6. TABLEAU DES VS
   ========================================================= */
.pzm-board__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
	gap: 20px;
}

.pzm-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 18px;
	overflow: hidden;
	border: 1px solid var(--pzm-line);
	border-radius: 20px;
	background: var(--pzm-surface);
	color: var(--pzm-text);
	transition: transform .3s var(--pzm-ease), box-shadow .3s, border-color .3s;
}

.pzm-card::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 3px;
	background: var(--pzm-paint);
	box-shadow: 0 0 16px var(--pzm-paint);
}

.pzm-card:hover { transform: translateY(-3px); border-color: var(--pzm-paint); box-shadow: 0 0 30px color-mix(in srgb, var(--pzm-paint) 22%, transparent); }
.pzm-card.is-major { border-color: rgba(255, 213, 74, .6); }
.pzm-card.is-major::before { background: linear-gradient(90deg, #ffd54a, #ff9d00); box-shadow: 0 0 16px rgba(255, 213, 74, .8); }

.pzm-card__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }

.pzm-card__state {
	margin-left: auto;
	padding: 4px 10px;
	border: 1px solid #ff00c8;
	border-radius: 999px;
	color: #ff00c8;
	font-size: .68rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.pzm-card.is-voted .pzm-card__state { border-color: #00ffa3; background: #00ffa3; color: #04140d; }

.pzm .pzm-card__title { margin: 0; font-size: 1.06rem; font-weight: 800; line-height: 1.3; color: var(--pzm-text); }

.pzm-card__list { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }

.pzm-row {
	display: grid;
	grid-template-columns: 58px 1fr;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.pzm-row__thumb {
	display: block;
	width: 58px;
	height: 58px;
	overflow: hidden;
	border: 2px solid var(--pzm-paint);
	border-radius: 12px;
	background: var(--pzm-surface-2);
}

.pzm .pzm-row__thumb img { display: block; width: 100%; height: 100%; margin: 0; border-radius: 0; object-fit: cover; }

.pzm-row__main { display: grid; gap: 3px; min-width: 0; }
.pzm-row__line { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; }

.pzm .pzm-row__name {
	overflow: hidden;
	font-size: .9rem;
	font-weight: 700;
	white-space: nowrap;
	text-overflow: ellipsis;
	color: var(--pzm-text);
	text-decoration: none;
}

.pzm .pzm-row__name:hover { color: var(--pzm-paint); }

.pzm-row__tag { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; }
.pzm-row__tag > .pzm-ico { display: none; width: 18px; height: 18px; color: #ffd54a; filter: drop-shadow(0 0 6px rgba(255, 213, 74, .7)); }
.is-revealed .pzm-row.is-lead .pzm-row__tag > .pzm-ico { display: inline-block; }
.pzm-row__mine { display: none; align-items: center; gap: 2px; font-size: .7rem; font-weight: 800; text-transform: uppercase; color: var(--pzm-paint); }
.pzm-row__mine .pzm-ico { width: 14px; height: 14px; }
.pzm-row.is-mine .pzm-row__mine { display: inline-flex; }

.pzm-row__price { font-size: .78rem; color: var(--pzm-muted); }
.pzm-row__price del { opacity: .6; margin-right: 4px; }
.pzm-row__price ins { text-decoration: none; }

.pzm-card .pzm-gauge { margin-top: 2px; }
.pzm-card .pzm-gauge__track { background: var(--pzm-surface-2); box-shadow: inset 0 0 0 1px var(--pzm-line); }

/* Pas encore révélé : une jauge qui scintille et un « ? ». */
.pzm-card:not(.is-revealed) .pzm-gauge__fill { width: 100% !important; opacity: .35; background: linear-gradient(90deg, transparent, var(--pzm-paint), transparent); background-size: 200% 100%; box-shadow: none; animation: pzm-shimmer 2.2s linear infinite; }
.pzm-card:not(.is-revealed) .pzm-gauge__val::before { content: "?"; color: var(--pzm-muted); }

.pzm-card__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid var(--pzm-line);
}

.pzm-card__meta { display: grid; gap: 2px; font-size: .78rem; color: var(--pzm-muted); }
.pzm-card__pending { color: #c98a00; }
.pzm-card__pending:empty { display: none; }

/* =========================================================
   7. ARCHIVE, MENTIONS, AVERTISSEMENTS
   ========================================================= */
.pzm-archive { padding-top: 0; }

.pzm-notice {
	max-width: 760px;
	margin: 0 auto 40px;
	font-size: .76rem;
	line-height: 1.5;
	text-align: center;
	color: var(--pzm-muted);
}

.pzm-adminnote { padding: 10px 0; background: #ffd54a; color: #1a1000; font-size: .88rem; font-weight: 600; text-align: center; }
.pzm .pzm-adminnote a { color: #1a1000; text-decoration: underline; }

.pzm-prose { max-width: 820px; }

/* Le bandeau d'accueil / de blog : une marge autour de la scène. */
.pzm-band { margin: 0; }

/* =========================================================
   8. BOUTONS D'ACHAT EXTERNES
   ========================================================= */
.pzm-buy { display: grid; gap: 10px; margin: 18px 0; }

.pzm-buy__title {
	margin: 0;
	font-size: .74rem;
	font-weight: 800;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--pzm-muted);
}

.pzm-buy__list { display: flex; flex-wrap: wrap; gap: 10px; }

.pzm a.pzm-buy__btn,
a.pzm-buy__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	padding: 11px 20px;
	border-radius: 999px;
	background: var(--pzm-paint);
	color: var(--pzm-on, #0a0a0f);
	font-weight: 800;
	font-size: .9rem;
	line-height: 1.1;
	text-decoration: none;
	box-shadow: 0 0 20px color-mix(in srgb, var(--pzm-paint) 45%, transparent);
	transition: transform .2s var(--pzm-ease), box-shadow .2s, filter .2s;
}

.pzm a.pzm-buy__btn:hover,
.pzm a.pzm-buy__btn:focus-visible,
a.pzm-buy__btn:hover {
	color: var(--pzm-on, #0a0a0f);
	transform: translateY(-2px);
	filter: brightness(1.08);
	box-shadow: 0 0 32px var(--pzm-paint);
}

.pzm-buy__note { margin: 0; font-size: .74rem; line-height: 1.45; color: var(--pzm-muted); }

/* =========================================================
   9. PRODUITS DANS LES ARTICLES
   Le contenu d'un article souligne et recolore tous ses liens,
   et donne une marge aux images : on neutralise chez nous.
   ========================================================= */
.pz-article__content .pzm a,
.pz-article__content a.pzm { text-decoration: none; }
.pz-article__content .pzm img { margin: 0; border-radius: 0; }
.pz-article__content .pzm-products .pz-product a { color: inherit; }

.pzm-products { margin: 1.8em 0; }

/* Présentation « ligne » */
.pzm-products--row { display: grid; gap: 16px; }

.pzm-prow {
	display: grid;
	grid-template-columns: 190px 1fr;
	gap: 18px;
	padding: 14px;
	border: 1px solid var(--pzm-line);
	border-radius: 20px;
	background: var(--pzm-surface);
	color: var(--pzm-text);
	box-shadow: inset 3px 0 0 var(--pzm-paint);
}

.pzm .pzm-prow__media { display: block; overflow: hidden; border-radius: 14px; aspect-ratio: 1 / 1; background: var(--pzm-surface-2); }
.pzm .pzm-prow__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

.pzm-prow__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.pzm .pzm-prow__title { margin: 0; font-size: 1.15rem; font-weight: 800; line-height: 1.25; }
.pzm .pzm-prow__title a { color: var(--pzm-text); }
.pzm .pzm-prow__title a:hover { color: var(--pzm-paint); }
.pzm-prow__price { margin: 0; font-weight: 800; color: var(--pzm-paint); }
.pzm-prow__price del { opacity: .55; margin-right: 6px; color: var(--pzm-muted); }
.pzm-prow__price ins { text-decoration: none; }
.pzm-prow__text { margin: 0; font-size: .92rem; line-height: 1.55; color: var(--pzm-muted); }
.pzm-prow__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 6px; }
.pzm-prow__actions .pzm-buy__btn { min-height: 38px; padding: 8px 16px; font-size: .8rem; }
.pzm-products--row > .pzm-buy__note { padding-inline: 4px; }

/* Présentation « grille » sans le thème */
.pzm-pgrid { display: grid; grid-template-columns: repeat(var(--pzm-cols, 3), minmax(0, 1fr)); gap: 16px; }
.pzm a.pzm-pcard { display: grid; gap: 6px; padding: 10px; border: 1px solid var(--pzm-line); border-radius: 16px; background: var(--pzm-surface); color: var(--pzm-text); }
.pzm .pzm-pcard__media img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 10px; }
.pzm-pcard__name { font-weight: 700; font-size: .92rem; }
.pzm-pcard__price { font-size: .85rem; color: var(--pzm-muted); }

/* La mention au fil du texte */
a.pzm-mention,
.pz-article__content a.pzm-mention {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	padding: 2px 10px 2px 3px;
	border: 1px solid var(--pz-ink, #00f0ff);
	border-radius: 999px;
	background: color-mix(in srgb, var(--pz-ink, #00f0ff) 10%, transparent);
	color: inherit;
	font-size: .92em;
	line-height: 1.5;
	vertical-align: middle;
	text-decoration: none;
	white-space: nowrap;
}

.pz-article__content a.pzm-mention:hover { background: color-mix(in srgb, var(--pz-ink, #00f0ff) 22%, transparent); color: inherit; }
.pz-article__content .pzm-mention__img,
.pzm-mention__img { width: 24px; height: 24px; margin: 0; border-radius: 50%; object-fit: cover; }
.pzm-mention__name { overflow: hidden; text-overflow: ellipsis; font-weight: 700; }
.pzm-mention__price { font-weight: 600; opacity: .8; }
.pzm-mention__price del { display: none; }
.pzm-mention__price ins { text-decoration: none; }

.pzm-products-empty { padding: 10px 14px; border: 1px dashed #c98a00; border-radius: 10px; color: #c98a00; font-size: .85rem; }

/* =========================================================
   10. ÉDITEUR DE BLOCS
   ========================================================= */
.pzm-editor { padding: 14px; border: 1px dashed #a855f7; border-radius: 10px; font-family: system-ui, sans-serif; }
.pzm-editor__title { margin: 0 0 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #a3007f; }
.pzm-editor__results,
.pzm-editor__chosen { margin: 8px 0; padding-left: 0; list-style: none; }
.pzm-editor__results li { margin-bottom: 4px; }
.pzm-editor__chosen { counter-reset: pzm; }
.pzm-editor__chosen li { display: flex; align-items: center; gap: 4px; padding: 2px 0; border-bottom: 1px solid #eee; }
.pzm-editor__chosen li span { flex: 1; }
.pzm-editor__hint { color: #757575; font-size: 13px; }
.pzm-editor--vs { background: linear-gradient(100deg, rgba(255, 0, 200, .08), rgba(0, 240, 255, .08)); }

/* =========================================================
   11. MODE CLAIR
   La scène reste sombre. Le reste repeint : encre au lieu du néon,
   plus de halo sur fond blanc.
   ========================================================= */
:root[data-pz-theme="light"] .pzm-card,
:root[data-pz-theme="light"] .pzm-row,
:root[data-pz-theme="light"] .pzm-prow,
:root[data-pz-theme="light"] .pzm-buy__btn {
	--pzm-paint: var(--pzm-ink, #00768a);
}

/* …sauf à l'intérieur de la scène, qui reste un plateau sombre. */
:root[data-pz-theme="light"] .pzm-stage .pzm-duel,
:root[data-pz-theme="light"] .pzm-stage .pzm-fighter {
	--pzm-paint: var(--pzm-neon, #00f0ff);
}

:root[data-pz-theme="light"] a.pzm-buy__btn,
:root[data-pz-theme="light"] .pzm a.pzm-buy__btn:hover {
	color: var(--pzm-on-ink, #fff);
	box-shadow: none;
}

:root[data-pz-theme="light"] .pzm-card::before,
:root[data-pz-theme="light"] .pzm-gauge__fill { box-shadow: none; }
:root[data-pz-theme="light"] .pzm-stage .pzm-gauge__fill { box-shadow: 0 0 12px var(--pzm-paint); }
:root[data-pz-theme="light"] .pzm-card:hover { box-shadow: 0 10px 30px rgba(10, 10, 20, .10); }
:root[data-pz-theme="light"] .pzm-card__state { border-color: #a3007f; color: #a3007f; }
:root[data-pz-theme="light"] .pzm-card.is-voted .pzm-card__state { border-color: #00795a; background: #00795a; color: #fff; }
:root[data-pz-theme="light"] .pzm-card.is-major { border-color: #c98a00; }
:root[data-pz-theme="light"] .pzm-card__pending { color: #8a6200; }
:root[data-pz-theme="light"] .pzm-card .pzm-badge--long { background: #e6fbfd; color: #00768a; box-shadow: inset 0 0 0 1px #00768a; }
:root[data-pz-theme="light"] .pzm-chip { border-color: var(--pzm-ink, #00768a); color: var(--pzm-ink, #00768a); }
:root[data-pz-theme="light"] .pzm-stage .pzm-chip { border-color: var(--pzm-neon, #00f0ff); color: var(--pzm-neon, #00f0ff); }

/* =========================================================
   12. PETITS ÉCRANS
   ========================================================= */
@media (max-width: 900px) {
	/* 3 à 5 candidats : grille de deux, le dernier impair centré. */
	.pzm-duel:not(.pzm-duel--n2) .pzm-ring {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 12px;
	}

	.pzm-duel:not(.pzm-duel--n2) .pzm-ring__vs { display: none; }

	.pzm-duel--n3 .pzm-fighter:last-child,
	.pzm-duel--n5 .pzm-fighter:last-child {
		grid-column: 1 / -1;
		justify-self: center;
		width: calc(50% - 6px);
	}
}

@media (max-width: 600px) {
	.pzm-wrap { padding-inline: 14px; }
	.pzm-duel { padding: 16px 12px 18px; border-radius: 20px; }
	.pzm-duel::before { border-radius: 20px; }
	.pzm-deck__viewport { border-radius: 20px; }
	.pzm-stats li { padding: 6px 11px; font-size: .76rem; }
	.pzm-fighter__body { padding: 10px 8px 12px; gap: 6px; }
	.pzm .pzm-fighter__name { font-size: .84rem; }
	.pzm .pzm-vote { min-height: 42px; font-size: .7rem; letter-spacing: .08em; }
	.pzm-duel--n2 .pzm-ring__vs { flex-basis: 12px; font-size: 1.05rem; }
	.pzm-duel--n2 .pzm-ring__vs::after { width: 50px; height: 50px; }
	.pzm-ring__vs::after { width: 38px; height: 38px; }
	.pzm .pzm-deck__arrow { width: 40px; height: 40px; }
	.pzm-prow { grid-template-columns: 96px 1fr; gap: 12px; padding: 10px; }
	.pzm-pgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.pzm-card { padding: 16px 14px; }
}

/* =========================================================
   13. MOUVEMENT RÉDUIT
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
	.pzm *,
	.pzm *::before,
	.pzm *::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

/* =========================================================
   ANIMATIONS
   ========================================================= */
@keyframes pzm-floor { to { background-position: 0 54px, 0 0; } }
@keyframes pzm-bands { from { transform: translateX(0) skewX(-22deg); } to { transform: translateX(var(--pzm-band, 1440px)) skewX(-22deg); } }
@keyframes pzm-sheen { from { transform: translateX(0) skewX(-22deg); } to { transform: translateX(360px) skewX(-22deg); } }
@keyframes pzm-drift { to { transform: translate(8vmax, 6vmax) scale(1.15); } }
@keyframes pzm-flow { to { background-position: 300% 0; } }
@keyframes pzm-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.12); } }
@keyframes pzm-wait { 0%, 100% { opacity: 1; } 50% { opacity: .6; } }
@keyframes pzm-shimmer { to { background-position: -200% 0; } }

@keyframes pzm-flicker {
	0%, 18%, 22%, 62%, 64%, 100% { opacity: 1; }
	20%, 63% { opacity: .55; }
}

@keyframes pzm-pop {
	0% { transform: translate(0, 0) rotate(0) scale(1); opacity: 1; }
	100% { transform: translate(var(--dx), var(--dy)) rotate(var(--r)) scale(.6); opacity: 0; }
}

/* =========================================================
   PRODUITS EN GRILLE DANS UN ARTICLE : les boutons SOUS la carte
   (la carte est entièrement cliquable, ils ne peuvent pas vivre dedans)
   ========================================================= */
.pzm-pcell { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.pzm-pcell > .pz-product,
.pzm-pcell > .pzm-pcard { flex: 1 1 auto; }
.pzm-pcell__buy { display: flex; flex-wrap: wrap; gap: 6px; }
.pzm .pzm-pcell__buy .pzm-buy__btn { flex: 1 1 auto; justify-content: center; min-height: 36px; padding: 7px 12px; font-size: .74rem; }
.pzm-products--grid > .pzm-buy__note { margin-top: 12px; }
/* =========================================================
   14. LE BANDEAU COMPACT (accueil et blog) — version 2
   ---------------------------------------------------------
   15/09/2026 — deux retours « le VS prend trop de place ». Réduire
   les tailles ne suffisait pas : c'est la FORME qui changeait.
     • ordinateur : une BARRE. À gauche l'accroche, le chrono et le
       bouton ; à droite le VS, ses candidats en petites pastilles
       (vignette carrée + nom + « Je vote »), en ligne ;
     • smartphone : les candidats en LISTE, une ligne chacun
       (vignette, nom, bouton à droite).
   Le vote reste en un geste. La page Votes garde le grand spectacle :
   tout est préfixé .pzm-stage--band, elle n'est pas touchée.
   ========================================================= */
.pzm-stage--band { padding: 14px 0; }
.pzm-stage--band .pzm-stage__head { padding: 12px 14px; border-radius: 16px; }

.pzm-stage--band .pzm-stage__inner {
	display: grid;
	grid-template-columns: minmax(190px, 250px) minmax(0, 1fr);
	grid-template-areas: "head deck" "cta deck";
	column-gap: 22px;
	row-gap: 8px;
	align-items: center;
}

.pzm-stage--band .pzm-stage__head { grid-area: head; align-self: end; max-width: none; margin: 0; text-align: left; }
.pzm-stage--band .pzm-deck,
.pzm-stage--band .pzm-empty { grid-area: deck; margin: 0; }
.pzm-stage--band .pzm-stage__cta { grid-area: cta; align-self: start; margin: 0; text-align: left; }

.pzm-stage--band .pzm-kicker { gap: 6px; margin: 0 0 2px; font-size: 1.3rem; }
.pzm .pzm-stage--band .pzm-stage__title { margin: 0; font-size: .74rem; letter-spacing: .03em; }
.pzm-stage--band .pzm-stats { justify-content: flex-start; gap: 5px; margin-top: 8px; }
.pzm-stage--band .pzm-stats li { padding: 4px 9px; font-size: .68rem; }
.pzm-stage--band .pzm-stats li:not(.pzm-stats__clock):not(.pzm-stats__mine) { display: none; }
.pzm .pzm-stage--band .pzm-stage__cta .pzm-btn { padding: 8px 14px; font-size: .62rem; }

/* --- Le VS : un bandeau fin --- */
.pzm-stage--band .pzm-deck__viewport { border-radius: 16px; }
.pzm-stage--band .pzm-duel { padding: 10px 12px; border-radius: 16px; }
.pzm-stage--band .pzm-duel::before { padding: 1.5px; }
.pzm-stage--band .pzm-duel.is-major::before { padding: 2px; }
.pzm-stage--band .pzm-duel__head,
.pzm-stage--band .pzm-duel__foot,
.pzm-stage--band .pzm-crown { display: none; }

.pzm .pzm-stage--band .pzm-duel__title {
	max-width: none;
	margin: 0;
	overflow: hidden;
	font-size: .92rem;
	text-align: left;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pzm-stage--band .pzm-duel__msg { margin-top: 4px; font-size: .72rem; }

/* --- Les candidats : des pastilles en ligne --- */
.pzm-stage--band .pzm-ring { display: flex; align-items: stretch; margin-top: 8px; }

.pzm-stage--band .pzm-fighter,
.pzm-stage--band .pzm-duel--n2 .pzm-fighter {
	flex: 1 1 0;
	min-width: 0;
	max-width: none;
	display: grid;
	grid-template-columns: 52px minmax(0, 1fr);
	align-items: center;
	gap: 0 8px;
	padding: 6px;
	border-width: 1.5px;
	border-radius: 12px;
}

.pzm-stage--band .pzm-fighter:hover { transform: none; }
.pzm-stage--band .pzm-fighter__media { width: 52px; height: 52px; aspect-ratio: auto; border-radius: 9px; }
.pzm-stage--band .pzm-fighter__body { min-width: 0; padding: 0; gap: 4px; text-align: left; }

.pzm .pzm-stage--band .pzm-fighter__name {
	overflow: hidden;
	font-size: .74rem;
	line-height: 1.2;
	white-space: nowrap;
	text-overflow: ellipsis;
}

.pzm-stage--band .pzm-fighter__price { display: none; }
.pzm .pzm-stage--band .pzm-vote { min-height: 28px; padding: 5px 8px; font-size: .6rem; letter-spacing: .06em; box-shadow: none; }
.pzm .pzm-stage--band .pzm-vote:hover { transform: none; }
.pzm-stage--band .pzm-gauge { gap: 5px; margin: 0; }
.pzm-stage--band .pzm-gauge__track { height: 6px; }
.pzm-stage--band .pzm-gauge__val { min-width: 2.4em; font-size: .66rem; }

.pzm-stage--band .pzm-ring__vs,
.pzm-stage--band .pzm-duel--n2 .pzm-ring__vs { flex: 0 0 14px; font-size: .58rem; animation: none; }
.pzm-stage--band .pzm-ring__vs::after,
.pzm-stage--band .pzm-duel--n2 .pzm-ring__vs::after { width: 26px; height: 26px; box-shadow: 0 0 0 2px #0a0816, 0 0 12px rgba(255, 0, 200, .6); }

.pzm-stage--band .pzm-duel--done { flex-direction: row; min-height: 0; gap: 10px; padding: 14px 12px; }
.pzm-stage--band .pzm-done__icon .pzm-ico { width: 28px; height: 28px; }
.pzm .pzm-stage--band .pzm-duel--done .pzm-duel__title { white-space: normal; }
.pzm-stage--band .pzm-done__text { font-size: .76rem; }
.pzm-stage--band .pzm-duel--done .pzm-btn { display: none; }

/* --- Navigation discrète --- */
.pzm-stage--band .pzm-deck__nav { gap: 8px; margin-top: 6px; }
.pzm .pzm-stage--band .pzm-deck__arrow { width: 26px; height: 26px; }
.pzm-stage--band .pzm-deck__arrow .pzm-ico { width: 14px; height: 14px; }
.pzm .pzm-stage--band .pzm-deck__dot { width: 8px; height: 8px; }
.pzm .pzm-stage--band .pzm-deck__dot.is-active { width: 20px; }

@media (max-width: 900px) {
	.pzm-stage--band { padding: 12px 0; }

	.pzm-stage--band .pzm-stage__inner {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "head" "deck" "cta";
		row-gap: 8px;
	}

	/* L'accroche et le chrono sur UNE ligne. */
	.pzm-stage--band .pzm-stage__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 10px; text-align: center; }
	.pzm-stage--band .pzm-kicker { margin: 0; font-size: 1.05rem; }
	.pzm .pzm-stage--band .pzm-stage__title { display: none; }
	.pzm-stage--band .pzm-stats { margin: 0; }
	.pzm-stage--band .pzm-stats li:not(.pzm-stats__clock) { display: none; }
	.pzm-stage--band .pzm-stage__cta { text-align: center; }
	.pzm .pzm-stage--band .pzm-duel__title { font-size: .85rem; }

	/* Les candidats en liste : une ligne chacun. */
	.pzm-stage--band .pzm-duel .pzm-ring,
	.pzm-stage--band .pzm-duel:not(.pzm-duel--n2) .pzm-ring { display: flex; flex-direction: column; gap: 6px; }
	.pzm-stage--band .pzm-duel .pzm-ring__vs { display: none; }

	.pzm-stage--band .pzm-fighter,
	.pzm-stage--band .pzm-duel--n2 .pzm-fighter,
	.pzm-stage--band .pzm-duel--n3 .pzm-fighter:last-child,
	.pzm-stage--band .pzm-duel--n5 .pzm-fighter:last-child {
		grid-column: auto;
		justify-self: stretch;
		width: auto;
		grid-template-columns: 40px minmax(0, 1fr);
		padding: 5px 6px;
	}

	.pzm-stage--band .pzm-fighter__media { width: 40px; height: 40px; border-radius: 8px; }

	.pzm-stage--band .pzm-fighter__body {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "name vote" "gauge vote";
		align-items: center;
		gap: 3px 8px;
	}

	.pzm .pzm-stage--band .pzm-fighter__name { grid-area: name; font-size: .78rem; }
	.pzm-stage--band .pzm-gauge { grid-area: gauge; }
	.pzm .pzm-stage--band .pzm-vote { grid-area: vote; width: auto; min-height: 36px; padding: 6px 14px; font-size: .62rem; }
}

/* Finitions du bandeau compact : le bouton « Voir tous les VS » tient sur une
   ligne, et sur smartphone le nom se centre dans sa ligne tant qu'aucune
   jauge n'est révélée (sinon il collait au haut de la pastille). */
.pzm .pzm-stage--band .pzm-stage__cta .pzm-btn { white-space: nowrap; }

@media (max-width: 900px) {
	.pzm-stage--band .pzm-duel:not(.is-revealed) .pzm-fighter__body { grid-template-areas: "name vote"; }
}

/* Bandeau compact : la FIN PROPRE d'un VS longue durée reste visible
   (15/09/2026). Masquée avec le reste du pied de carte, il ne restait que le
   chrono de la vague — « Fin dans 1 j » pour un VS prévu sur des années. On
   réaffiche le pied, réduit à ce seul chrono. */
.pzm-stage--band .pzm-duel__foot { display: flex; justify-content: flex-start; margin: 6px 0 0; font-size: .68rem; }
.pzm-stage--band .pzm-duel__foot [data-pzm-total],
.pzm-stage--band .pzm-duel__foot .pzm-duel__pending { display: none; }
.pzm-stage--band .pzm-duel__foot:not(:has(.pzm-long-clock)) { display: none; }

/* =========================================================
   14. COMPTEUR DE VUES (includes/stats/front.php)
   Même allure que « J'aime » et « Partager » dans l'article,
   mais ce n'est pas un bouton : pas de survol, pas de clic.
   Il suit le mode clair/sombre du site (couleurs du thème).
   ========================================================= */
.pzm-views {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--pz-muted, #8a8aa0);
	font-size: .86rem;
	font-variant-numeric: tabular-nums;
	line-height: 1.2;
	cursor: default;
}

.pzm-views svg { flex: 0 0 auto; width: 20px; height: 20px; }

/* Dans la rangée J'aime · Partager : la même hauteur que les boutons. */
.pzm-views--social { min-height: 42px; padding: 0 14px; }

/* Fiche produit, sous le titre. */
.pzm-views--product { margin: 0 0 12px; }

/* Sous le seuil : visible de l'administration seule, en pointillé pour
   qu'on ne le confonde pas avec ce que voit le public. */
.pzm-views.is-below { opacity: .55; text-decoration: underline dotted; text-underline-offset: 3px; }
