/* The cover flow of the magazines (2026-11-01, from mag.php): the centred cover large, its neighbours smaller on
   each side. Used by mag.php and the pages of the editions (ville.php); script: assets/js/zm-flow.js. */
.zm-flow { --zm-accent: #60ff00; --zm-text: #fff; }
.zm-flow { position: relative; padding: 36px 0 30px; overflow: hidden; }
.zm-flow__stage { position: relative; height: min(560px, 62vh); min-height: 340px; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.zm-flow__item { position: absolute; left: 50%; top: 0; height: 100%; aspect-ratio: 915 / 1403; transform: translateX(-50%); transition: transform .55s cubic-bezier(.2, .7, .2, 1), opacity .55s, filter .55s; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.zm-flow__item img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; box-shadow: 0 18px 50px rgba(0,0,0,.55); background: #18181b; pointer-events: none; }
.zm-flow__item.is-side { filter: brightness(.6); }
.zm-flow__item.is-side:hover { filter: brightness(.85); }
.zm-flow__item.is-hidden { opacity: 0; pointer-events: none; }
.zm-flow__badge { position: absolute; top: 12px; left: 12px; background: var(--zm-accent); color: #111; font: 500 12px Oswald, sans-serif; letter-spacing: .08em; text-transform: uppercase; padding: 4px 10px; opacity: 0; transition: opacity .3s; }
.zm-flow__item.is-center .zm-flow__badge { opacity: 1; }
.zm-flow__arrow { position: absolute; top: calc(36px + min(560px, 62vh) / 2); transform: translateY(-50%); z-index: 50; width: 52px; height: 52px; border: 0; background: rgba(255,255,255,.92); color: #111; font-size: 26px; line-height: 52px; cursor: pointer; }
.zm-flow__arrow:hover { background: var(--zm-accent); }
.zm-flow__arrow.prev { left: 0; }
.zm-flow__arrow.next { right: 0; }
.zm-flow__caption { text-align: center; margin-top: 22px; min-height: 92px; }
.zm-flow__caption strong { display: block; font: 500 26px Oswald, sans-serif; text-transform: uppercase; letter-spacing: .04em; color: var(--zm-text); }
.zm-flow__caption span { display: block; color: var(--zm-accent); font-weight: 600; font-size: 15px; margin: 4px 0 14px; min-height: 1.4em; }
.zm-flow__dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.zm-flow__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 50%; background: rgba(255,255,255,.3); cursor: pointer; }
.zm-flow__dots button[aria-current] { background: var(--zm-accent); transform: scale(1.3); }
.zm-flow__item { overflow: visible; }
@media (max-width: 575px) {
	.zm-flow { padding-top: 24px; }
	.zm-flow__stage { height: min(440px, 58vh); min-height: 300px; }
	.zm-flow__arrow { display: none; }
	.zm-flow__caption strong { font-size: 21px; }
	.zm-flow__caption span { font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) {
	.zm-flow__item { transition: none; }
}
