.aec-list,.aec-single,.aec-fragment,.aec-locked,.aec-player-wrap{
	--aec-primary:#e6007e;--aec-accent:#2daae1;--aec-text:#2daae1;box-sizing:border-box}
.aec-list *,.aec-single *,.aec-fragment *,.aec-locked *{box-sizing:border-box}
/* Grille événements — v1.8 : comptage de colonnes EXACT et réglable par palier
   d'écran (mobile/tablette/pc/grand écran), façon grille produits WooCommerce,
   au lieu du repli organique "auto-fit/minmax" de la v1.7. Chaque palier lit
   sa propre variable CSS (--aec-cols-mobile/tablet/desktop/wide, posées en
   inline par le shortcode selon ses attributs cols_mobile/cols_tablet/
   cols_desktop/cols_wide) via le MÊME sélecteur boosté anti-Divi à chaque
   palier : plus jamais de déséquilibre de spécificité possible entre mobile
   et desktop (c'était la cause du bug "grille serrée sur mobile" en v1.6). */
.aec-list,
.aec-list--grid,
body .aec-list,
body .et_pb_module .aec-list,
body .elementor-widget-container .aec-list{
	display:grid!important;
	grid-template-columns:repeat(var(--aec-cols-mobile,1),minmax(0,1fr))!important;
	gap:22px!important;
	align-items:stretch!important;
	margin:24px 0!important;
	padding:0!important;
	width:auto!important;
	max-width:none!important;
	list-style:none!important;
	clear:both!important;
}
@media(min-width:600px){
	.aec-list, body .aec-list, body .et_pb_module .aec-list, body .elementor-widget-container .aec-list{
		grid-template-columns:repeat(var(--aec-cols-tablet,2),minmax(0,1fr))!important;
	}
}
@media(min-width:1024px){
	.aec-list, body .aec-list, body .et_pb_module .aec-list, body .elementor-widget-container .aec-list{
		grid-template-columns:repeat(var(--aec-cols-desktop,3),minmax(0,1fr))!important;
	}
}
@media(min-width:1440px){
	.aec-list, body .aec-list, body .et_pb_module .aec-list, body .elementor-widget-container .aec-list{
		grid-template-columns:repeat(var(--aec-cols-wide,4),minmax(0,1fr))!important;
	}
}
.aec-list > .aec-card,
.aec-list--grid > .aec-card,
body .aec-list > .aec-card,
body .et_pb_module .aec-list > .aec-card{
	float:none!important;
	display:block!important;
	box-sizing:border-box!important;
	width:auto!important;
	max-width:none!important;
	min-width:0!important;
	margin:0!important;
	padding:0!important;
	background:transparent!important;
	box-shadow:none!important;
	border-radius:0!important;
}
/* Carte interne */
.aec-list > .aec-card > a,
.aec-list .aec-card-inner{
	display:block!important;
	background:#fff!important;
	border-radius:16px!important;
	overflow:hidden!important;
	border:1px solid rgba(15,23,42,.06)!important;
	box-shadow:0 4px 18px rgba(0,0,0,.07)!important;
	height:100%;
	transition:transform .2s,box-shadow .2s;
}
.aec-list > .aec-card:hover > a{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,0,0,.13)!important}

/* Events slider — v1.8 : Swiper.js remplace le carrousel flex maison piloté
   en JS (perView()). Nombre de cartes visibles réglable par palier via
   breakpoints Swiper (voir frontend.js), swipe tactile natif, navigation
   clavier et redimensionnement gérés par la librairie plutôt que du code
   maison — élimine les bugs de carte tronquée/mauvais recalcul rencontrés
   avec l'ancienne implémentation sur d'autres plugins harmonisés.
   v1.8.2 : ajout de overflow:hidden (absent par erreur, présent sur les 3
   autres plugins harmonisés) — sans lui, les slides suivantes/précédentes
   débordent visiblement hors du cadre du slider au lieu d'être masquées,
   ce qui donnait l'impression sur mobile d'un "bout de carte" qui dépasse
   ou de plusieurs cartes serrées qui se chevauchent aux bords. */
.aec-events-slider.swiper{
	position:relative!important;
	margin:30px 0;
	padding:0 44px;
	box-sizing:border-box;
	width:100%;
	overflow:hidden;
}
.aec-events-slider .swiper-wrapper{align-items:stretch}
.aec-events-slider .swiper-slide{height:auto;display:flex}
.aec-events-slider .swiper-slide .aec-card{width:100%}
.aec-events-track .aec-card,
.aec-events-slider .swiper-slide .aec-card{
	min-width:0!important;
	background:#fff;border-radius:16px;overflow:hidden;
	border:1px solid rgba(15,23,42,.06);
	box-shadow:0 4px 18px rgba(0,0,0,.07);
	transition:transform .2s,box-shadow .2s;
}
.aec-ev-nav{
	position:absolute;top:42%;transform:translateY(-50%);
	width:40px;height:40px;border:0;border-radius:50%;
	background:var(--aec-primary,#e6007e);color:#fff;
	font-size:22px;line-height:1;cursor:pointer;z-index:5;
	box-shadow:0 4px 14px rgba(0,0,0,.18);
	display:flex;align-items:center;justify-content:center;
}
.aec-ev-prev{left:0}
.aec-ev-next{right:0}
.aec-ev-nav:hover{filter:brightness(1.08)}
.aec-ev-nav.swiper-button-disabled{opacity:.35;cursor:default}
.aec-ev-dots{display:flex;justify-content:center;gap:8px;margin-top:14px;position:static}
.aec-ev-dots .swiper-pagination-bullet{
	width:8px;height:8px;border-radius:50%;
	background:#cbd5e1;opacity:1;cursor:pointer;margin:0!important;
}
.aec-ev-dots .swiper-pagination-bullet-active{background:var(--aec-primary,#e6007e);transform:scale(1.2)}
@media(max-width:600px){
	.aec-events-slider{padding:0 36px}
	/* Flèches réduites sur mobile (comme Emoti Job / Podcast Brand / Sport
	   Broadcast) : à 40px pleines, elles débordaient dans les 36px de
	   marge réservée et chevauchaient légèrement la carte sur petit écran. */
	.aec-ev-nav{width:34px;height:34px;font-size:18px}
}
.aec-card{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 4px 18px rgba(0,0,0,.07);transition:transform .2s,box-shadow .2s}
.aec-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.aec-card a{text-decoration:none;color:inherit;display:block}
.aec-thumb{position:relative;aspect-ratio:16/9;background:#0f172a}
.aec-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.aec-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:42px;opacity:.5}
/* Badge "protégé" — couleur de marque (accent) plutôt que noir, pour rester dans
   la charte graphique et suivre la couleur secondaire réglable dans Configuration. */
.aec-lock{position:absolute;top:10px;right:10px;background:var(--aec-accent,#2daae1);color:#fff;padding:4px 8px;border-radius:6px;font-size:14px}
/* Typographie carte — v1.7 : tailles fluides (clamp) pour un rendu mobile-first
   cohérent sur toutes les largeurs d'écran sans media query dédiée, meta en
   petites majuscules espacées (repère visuel rapide sur mobile). v1.8.3 : le
   titre est passé de gris foncé quasi-noir à la couleur primaire de la charte
   (voir .aec-card-title plus bas), sur demande explicite. */
.aec-body{padding:16px 18px 18px}
.aec-meta{font-size:11.5px;margin-bottom:6px;opacity:.7;font-weight:700;color:var(--aec-primary);text-transform:uppercase;letter-spacing:.05em}
/* v1.8.3 : titre à la couleur de marque (--aec-primary) plutôt que gris foncé
   codé en dur — demande explicite pour rester aligné avec le titre/bouton
   #e6007e de la charte, personnalisable comme le reste dans Configuration. */
.aec-card-title{margin:0 0 6px;font-size:clamp(16px,4vw,18px);font-weight:800;line-height:1.32;color:var(--aec-primary)}
.aec-loc{font-size:13.5px;opacity:.65;font-weight:500;color:var(--aec-text);display:flex;align-items:center;gap:5px}
.aec-loc::before{content:"\1F4CD";font-size:12px;opacity:.85}
.aec-single{max-width:1100px;margin:0 auto;padding:24px 16px 48px}
.aec-event-title{font-size:clamp(24px,3.5vw,34px);font-weight:800;margin:0 0 20px;color:var(--aec-primary)}
.aec-program{background:rgba(0,0,0,.03);border-radius:12px;padding:20px;margin-bottom:30px}
.aec-section-title{margin:0 0 12px;font-size:18px;font-weight:800;color:var(--aec-primary)}
.aec-program-content{white-space:pre-line;line-height:1.7;opacity:.85;color:var(--aec-text)}
.aec-description{margin:0 0 26px;line-height:1.75;opacity:.85;font-size:15px;color:var(--aec-text)}
.aec-moments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}
.aec-moment-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}
.aec-moment-card:hover,.aec-moment-card:focus-visible{border-color:var(--aec-primary);box-shadow:0 10px 28px rgba(0,0,0,.12);transform:translateY(-3px);outline:none}
.aec-moment-card.is-active{border-color:var(--aec-primary);box-shadow:0 0 0 2px var(--aec-primary)}
.aec-moment-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#0f172a,#1e293b);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.aec-moment-play-icon{width:44px;height:44px;background:var(--aec-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px}
.aec-moment-photo-badge{position:absolute;bottom:8px;right:8px;background:var(--aec-accent);color:#fff;font-size:11px;padding:3px 9px;border-radius:20px;font-weight:600}
.aec-moment-info{padding:12px 14px}
.aec-moment-time{font-size:12px;opacity:.75;font-weight:700;color:var(--aec-text)}
.aec-moment-title{display:block;margin:3px 0;font-weight:700;color:var(--aec-primary)}
.aec-moment-desc{margin:4px 0 0;font-size:13px;opacity:.85;color:var(--aec-text)}
.aec-player-wrap{margin-top:24px;background:#000;border-radius:16px;overflow:hidden;position:relative;box-shadow:0 12px 40px rgba(0,0,0,.18)}
.aec-player-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#111;color:#fff;position:relative;z-index:30}
.aec-close-player{background:none;border:0;color:#fff;cursor:pointer;font-size:14px}
.aec-player-mount{aspect-ratio:16/9;position:relative;background:#000;width:100%;min-height:220px;overflow:hidden}
.aec-player-mount iframe,.aec-player-mount video,.aec-player-mount .video-js,.aec-player-mount .plyr{width:100%;height:100%;border:0;position:absolute;inset:0}
.aec-player-loading{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:rgba(0,0,0,.55);color:#fff;font-size:14px}
.aec-player-loading[hidden]{display:none!important}
.aec-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:aec-spin .7s linear infinite}
@keyframes aec-spin{to{transform:rotate(360deg)}}
.aec-slider{position:relative;background:#000}
.aec-slider-track{display:flex;transition:transform .35s ease;aspect-ratio:16/9}
.aec-slider-track img{width:100%;height:100%;object-fit:contain;flex:0 0 100%;background:#000;cursor:zoom-in}
.aec-slider-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;border:0;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.aec-slider-prev{left:12px}.aec-slider-next{right:12px}
.aec-slider-dots{position:absolute;bottom:12px;left:0;right:0;display:flex;justify-content:center;gap:6px}
.aec-slider-dots span{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer;display:inline-block}
.aec-slider-dots span.is-active{background:#fff}
.aec-lightbox{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.aec-lb-img{max-width:92vw;max-height:88vh;object-fit:contain}
.aec-lb-close{position:absolute;top:16px;right:20px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.15);color:#fff;font-size:28px;cursor:pointer}
.aec-lb-prev,.aec-lb-next{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:28px;cursor:pointer}
.aec-lb-prev{left:16px}.aec-lb-next{right:16px}
.aec-lb-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:#fff;font-size:13px;background:rgba(0,0,0,.5);padding:6px 12px;border-radius:20px}
.aec-locked{display:flex;align-items:center;justify-content:center;min-height:300px;background:#0f172a;border-radius:14px;padding:36px 24px}
.aec-locked-box{text-align:center;max-width:320px;width:100%}
.aec-locked-icon{font-size:34px;margin-bottom:10px}
.aec-locked-box h3{color:#fff;margin:0 0 8px;font-size:19px}
.aec-locked-box p{color:#94a3b8;margin:0 0 18px;font-size:14px}
.aec-locked-input{width:100%;padding:13px 14px;border-radius:9px;border:1px solid #334155;background:#1e293b;color:#fff;font-size:15px;margin-bottom:12px}
.aec-locked-submit{width:100%;padding:13px;border:0;border-radius:9px;background:var(--aec-primary);color:#fff;font-weight:700;font-size:14px;cursor:pointer}
.aec-locked-submit:disabled{opacity:.6}
.aec-locked-msg{margin-top:10px;font-size:13px;color:#fca5a5;min-height:16px}
.aec-logo{position:absolute;z-index:20;pointer-events:none;opacity:.9}
.aec-logo img{max-height:38px;max-width:130px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}
.aec-logo-small img{max-height:28px}.aec-logo-large img{max-height:52px}
.aec-logo-top-left{top:16px;left:16px}.aec-logo-top-right{top:16px;right:16px}
.aec-logo-bottom-left{bottom:16px;left:16px}.aec-logo-bottom-right{bottom:16px;right:16px}
.aec-logout-bar{display:flex;justify-content:flex-end;margin-bottom:14px}
.aec-logout-btn{background:none;border:1px solid rgba(0,0,0,.15);opacity:.75;padding:7px 14px;border-radius:8px;font-size:13px;cursor:pointer}
.aec-logout-btn:hover{opacity:1}
.aec-fragment{position:relative;margin-bottom:20px}
.aec-player-mount,.aec-player-wrap{position:relative;isolation:isolate}
.aec-ext-shield{position:absolute;z-index:20;pointer-events:auto;border:0;padding:0;margin:0;cursor:default;background:transparent!important}
.aec-ext-shield-top{top:0;left:0;right:0;height:56px}
.aec-ext-shield-br{bottom:0;right:0;width:140px;height:52px}
.aec-ext-shield-bl{bottom:0;left:0;width:80px;height:44px}
@media(max-width:768px){.aec-ext-shield-top{height:64px}.aec-ext-shield-br{width:150px;height:56px}}
@media(max-width:700px){.aec-moments-grid{grid-template-columns:1fr}}


/* Stage + Marketing — inspiré Intégration Vidéo, multi-formats */
.aec-player-stage{
	position:relative;width:100%;max-width:100%;
	background:#000;overflow:hidden;
	aspect-ratio:16/9;min-height:200px;
}
.aec-player-stage.is-ratio-16-9{aspect-ratio:16/9}
.aec-player-stage.is-ratio-1-1{aspect-ratio:1/1;max-width:min(100%,520px);margin:0 auto}
.aec-player-stage.is-ratio-4-5{aspect-ratio:4/5;max-width:min(100%,420px);margin:0 auto}
.aec-player-stage.is-ratio-9-16{aspect-ratio:9/16;max-width:min(100%,360px);margin:0 auto}
.aec-player-stage .aec-player-mount{
	position:absolute;inset:0;width:100%;height:100%;
	min-height:0;aspect-ratio:unset;background:#000;
}
.aec-player-stage.is-cta-open .aec-player-mount{display:none!important}
.aec-player-stage.is-cta-open .aec-habillage{display:none!important}
.aec-player-stage .aec-player-mount iframe,
.aec-player-stage .aec-player-mount video,
.aec-player-stage .aec-player-mount .video-js,
.aec-player-stage .aec-player-mount .plyr{
	position:absolute!important;inset:0!important;
	width:100%!important;height:100%!important;max-height:none!important;
}

/* Habillage — sous la vidéo (fiable mobile, hors iframe YouTube) */
.aec-player-wrap{position:relative}
.aec-habillage{
	position:relative;
	display:flex;align-items:center;gap:12px;
	width:100%;max-width:100%;
	margin:8px 0 0;
	padding:12px 14px;
	border-radius:14px;
	background:rgba(15,23,42,.96);
	color:#fff;
	box-shadow:0 8px 28px rgba(0,0,0,.28);
	box-sizing:border-box;
	z-index:5;
}
.aec-habillage[hidden]{display:none!important}
.aec-habillage-img{width:48px;height:48px;border-radius:10px;object-fit:cover;flex-shrink:0;background:#334155}
.aec-habillage-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding-right:22px}
/* Texte entier visible, sur desktop comme sur mobile — pas de troncature/points de suspension.
   (Auparavant tronqué à 2/3 lignes sur desktop via -webkit-line-clamp : le message pouvait
   être coupé avec "…" avant la fin, corrigé pour afficher le message complet partout.) */
.aec-habillage-title{
	font-size:14px;font-weight:700;line-height:1.3;
	white-space:normal;overflow:visible;word-break:break-word;
}
.aec-habillage-msg{
	font-size:13px;opacity:.92;line-height:1.4;
	white-space:normal;overflow:visible;word-break:break-word;
}
.aec-habillage-btn{
	flex-shrink:0;background:var(--aec-primary,#e6007e);color:#fff!important;
	text-decoration:none;font-size:13px;font-weight:700;
	padding:11px 16px;border-radius:999px;white-space:nowrap;
	position:relative;z-index:2;pointer-events:auto;
}
.aec-habillage-close{
	position:absolute;top:8px;right:8px;
	width:32px;height:32px;border:0;border-radius:50%;
	background:rgba(255,255,255,.16);color:#fff;cursor:pointer;font-size:18px;line-height:1;
	z-index:3;
}
/* Mobile : texte entier, layout empilé, très lisible */
@media(max-width:768px){
	.aec-habillage{
		flex-direction:column;
		align-items:stretch;
		gap:10px;
		padding:14px 14px 12px;
		margin-top:10px;
	}
	.aec-habillage-img{
		width:56px;height:56px;border-radius:12px;
	}
	.aec-habillage-body{
		padding-right:28px;
		gap:6px;
	}
	.aec-habillage-title{
		font-size:15px;line-height:1.35;
		-webkit-line-clamp:unset;
		display:block;
		overflow:visible;
		white-space:normal;
	}
	.aec-habillage-msg{
		font-size:14px;line-height:1.45;opacity:.95;
		-webkit-line-clamp:unset;
		display:block;
		overflow:visible;
		white-space:normal;
	}
	.aec-habillage-btn{
		width:100%;
		text-align:center;
		padding:14px 16px;
		font-size:14px;
		border-radius:12px;
		white-space:normal;
	}
	.aec-habillage-close{top:10px;right:10px;width:34px;height:34px}
}
@media(max-width:600px){
	.aec-habillage{padding:14px}
}

/* CTA — style Podcast Brand (carte blanche, fond image séparé) */
.aec-cta{
	display:none;
	position:absolute;inset:0;z-index:40;
	flex-direction:column;justify-content:center;align-items:center;
	padding:16px;
	overflow-y:auto;
	-webkit-overflow-scrolling:touch;
	background:#0b1220;
	color:#fff;
	box-sizing:border-box;
}
.aec-cta.is-visible,
.aec-cta.aec-cta--visible{display:flex!important}
.aec-cta[hidden]{display:none!important}
.aec-cta.is-visible[hidden]{display:flex!important}
.aec-cta-bg{
	position:absolute;inset:0;z-index:0;
	background-size:cover;background-position:center center;background-repeat:no-repeat;
	opacity:0;
}
.aec-cta.has-bg .aec-cta-bg{opacity:1}
.aec-cta-bg::after{
	content:"";position:absolute;inset:0;
	background:linear-gradient(180deg,rgba(6,15,35,.72),rgba(6,15,35,.88));
}
.aec-cta-inner{
	position:relative;z-index:1;
	background:rgba(255,255,255,.97);
	border-radius:20px;
	padding:28px 26px;
	max-width:440px;width:100%;
	box-shadow:0 25px 60px rgba(0,0,0,.45);
	color:#0f172a;
	box-sizing:border-box;
	text-align:left;
}
.aec-cta-close{
	position:absolute;top:12px;right:12px;
	width:34px;height:34px;border:0;border-radius:50%;
	background:#f1f5f9;color:#475569;font-size:20px;line-height:1;
	cursor:pointer;
}
.aec-cta-close:hover{background:#e2e8f0;color:#0f172a}
.aec-cta-title{
	margin:0 0 8px;padding-right:36px;
	font-size:clamp(18px,4vw,22px);font-weight:800;line-height:1.25;
	color:var(--aec-primary);
}
.aec-cta-message{
	margin:0 0 16px;
	font-size:14px;line-height:1.5;color:#64748b;
}
.aec-cta-btn{
	display:inline-flex;align-items:center;justify-content:center;
	width:100%;padding:14px;border-radius:12px;
	background:var(--aec-primary,#e6007e);color:#fff!important;
	font-weight:700;font-size:15px;text-decoration:none!important;
	margin-top:4px;border:0;cursor:pointer;box-sizing:border-box;
}
.aec-cta-btn[hidden]{display:none!important}
.aec-cta-form{display:flex;flex-direction:column;gap:10px;margin:0}
.aec-cta-form[hidden]{display:none!important}
.aec-cta-form input,
.aec-cta-form textarea{
	width:100%;padding:12px 14px;border-radius:12px;
	border:1px solid #e2e8f0;background:#f8fafc;color:#0f172a;
	font-size:14px;box-sizing:border-box;font-family:inherit;
}
.aec-cta-form textarea{resize:vertical;min-height:72px}
.aec-cta-form input:focus,
.aec-cta-form textarea:focus{
	outline:none;border-color:var(--aec-primary,#e6007e);
	box-shadow:0 0 0 3px rgba(230,0,126,.12);background:#fff;
}
.aec-hp{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;width:0!important;pointer-events:none!important}
.aec-cta-submit{
	width:100%;padding:14px;border:0;border-radius:12px;
	background:var(--aec-primary,#e6007e);color:#fff;
	font-weight:700;font-size:15px;cursor:pointer;margin-top:2px;
}
.aec-cta-submit:disabled{opacity:.65;cursor:wait}
.aec-cta-privacy{margin:8px 0 0;font-size:11.5px;color:#94a3b8;text-align:center;line-height:1.4}
.aec-cta-form-msg{margin:6px 0 0;font-size:13px;text-align:center;font-weight:600}
.aec-cta-replay{
	display:block;width:100%;margin-top:14px;
	padding:11px;border-radius:12px;
	border:1px solid #e2e8f0;background:transparent;
	color:#475569;font-size:13.5px;cursor:pointer;
}
.aec-cta-replay:hover{background:#f8fafc;color:#0f172a}
@keyframes aecCtaIn{from{opacity:0}to{opacity:1}}
.aec-cta.is-visible{animation:aecCtaIn .35s ease}
@media(max-width:600px){
	.aec-cta{padding:12px}
	.aec-cta-inner{padding:20px 16px;border-radius:16px;max-width:100%}
	.aec-cta-title{font-size:18px}
}

@media(max-width:600px){
	.aec-cta{
		position:absolute;inset:0;
		min-height:100%;
		padding:12px 10px 20px;
		-webkit-overflow-scrolling:touch;
	}
	.aec-cta-inner{max-width:100%}
	.aec-player-stage.is-cta-open{min-height:320px}
	.aec-player-stage.is-ratio-9-16,
	.aec-player-stage.is-ratio-4-5,
	.aec-player-stage.is-ratio-1-1{max-width:100%}
	.aec-habillage{max-width:100%}
	.aec-cta{padding:12px}
	.aec-cta-card{padding:14px}
}


/* Best Of — même structure que captations, badge distinct */
.aec-bestof .aec-section-title{display:flex;align-items:center;gap:10px}
.aec-bestof .aec-section-title::before{content:"★";color:var(--aec-primary);font-size:18px}
.aec-bestof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}
.aec-bestof-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative}
.aec-bestof-card:hover,.aec-bestof-card:focus-visible,.aec-bestof-card.is-active{border-color:var(--aec-primary);box-shadow:0 10px 28px rgba(0,0,0,.12);transform:translateY(-3px);outline:none}
.aec-bestof-card .aec-badge-bestof{position:absolute;top:10px;left:10px;z-index:2;background:var(--aec-primary);color:#fff;font-size:11px;font-weight:700;padding:4px 10px;border-radius:999px;letter-spacing:.02em}
.aec-bestof-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,#0f172a,#1e293b);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.aec-bestof-play-icon{width:48px;height:48px;background:var(--aec-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px}
.aec-bestof-body{padding:14px 16px}
.aec-bestof-body h4{margin:0 0 4px;font-size:16px;font-weight:700;color:var(--aec-primary)}
.aec-bestof-body p{margin:0;font-size:13px;opacity:.75;color:var(--aec-text)}


/* Logos sponsors / partenaires — centrés, bien visibles, jamais déformés */
.aec-sponsors{
	--aec-sp-h:72px; /* v1.8.5 : aligné sur les 3 autres plugins harmonisés (72px), qui utilisent la même échelle de taille de logos — voir get_sponsors_size() côté PHP, qui reste la source de vérité réelle via l'inline style. */
	position:relative;
	margin:40px 0 28px;
	padding:20px 48px 24px;
	box-sizing:border-box;
	background:linear-gradient(180deg, #f8fafc 0%, #fff 100%);
	border:1px solid #e8eef5;
	border-radius:16px;
}
.aec-sponsors-title{
	margin:0 0 18px!important;
	text-align:center;
	font-size:1.15rem;
	font-weight:700;
	color:var(--aec-primary);
	letter-spacing:.02em;
}
.aec-sponsors-viewport{
	overflow:hidden;
	width:100%;
	padding:6px 0;
	mask-image:linear-gradient(90deg,transparent 0, #000 6%, #000 94%, transparent 100%);
	-webkit-mask-image:linear-gradient(90deg,transparent 0, #000 6%, #000 94%, transparent 100%);
}
.aec-sponsors-track{
	display:flex!important;
	flex-direction:row!important;
	align-items:center;
	justify-content:center; /* démarre au milieu */
	gap:20px;
	width:max-content;
	min-width:100%;
	margin:0 auto;
	will-change:transform;
}
/* Marquee seulement si assez de logos (classe ajoutée en JS) */
.aec-sponsors.is-marquee .aec-sponsors-track{
	justify-content:flex-start;
	min-width:0;
	animation:aec-sp-marquee 32s linear infinite;
}
.aec-sponsors.is-marquee:hover .aec-sponsors-track{animation-play-state:paused}
.aec-sponsor-item{
	flex:0 0 auto;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:12px 18px;
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:14px;
	box-shadow:0 4px 14px rgba(15,23,42,.06);
	min-height:calc(var(--aec-sp-h) + 24px);
	min-width:calc(var(--aec-sp-h) + 36px);
	transition:box-shadow .2s, transform .2s, border-color .2s;
}
.aec-sponsor-item:hover{
	box-shadow:0 8px 22px rgba(230,0,126,.12);
	border-color:#f9a8d4;
	transform:translateY(-2px);
}
.aec-sponsor-item a,
.aec-sponsor-item span{
	display:flex;
	align-items:center;
	justify-content:center;
	height:var(--aec-sp-h);
	max-height:var(--aec-sp-h);
}
.aec-sponsor-item img{
	height:var(--aec-sp-h)!important;
	width:auto!important;
	max-width:min(240px, 48vw)!important;
	max-height:var(--aec-sp-h)!important;
	object-fit:contain!important;
	object-position:center;
	display:block;
	filter:none;
	opacity:1;
	transition:transform .2s ease;
}
.aec-sponsor-item:hover img{
	transform:scale(1.06);
}
.aec-sp-nav{
	position:absolute;top:50%;transform:translateY(-50%);
	width:40px;height:40px;border-radius:50%;border:1px solid #e2e8f0;
	background:#fff;color:var(--aec-primary,#e6007e);font-size:24px;line-height:1;
	cursor:pointer;z-index:2;box-shadow:0 4px 14px rgba(0,0,0,.08);
	display:flex;align-items:center;justify-content:center;padding:0;
}
.aec-sp-prev{left:8px}
.aec-sp-next{right:8px}
.aec-sp-nav:hover{background:var(--aec-primary,#e6007e);color:#fff;border-color:var(--aec-primary,#e6007e)}
@keyframes aec-sp-marquee{
	0%{transform:translateX(0)}
	100%{transform:translateX(-50%)}
}
@media(max-width:600px){
	.aec-sponsors{padding:16px 36px 18px;margin:28px 0 20px}
	.aec-sponsors-track{gap:12px}
	.aec-sponsor-item{padding:10px 14px;min-width:calc(var(--aec-sp-h) + 20px)}
	.aec-sponsor-item img{max-width:min(160px, 42vw)!important}
	.aec-sp-nav{width:34px;height:34px;font-size:20px}
}
@media(prefers-reduced-motion:reduce){
	.aec-sponsors.is-marquee .aec-sponsors-track{animation:none}
}
