/* WSSG Seasonal Themes - seasonal.css */

.wssg-seasonal-layer {
    position: fixed;
    inset: 0;
    z-index: 2147483000;
    pointer-events: none;
    overflow: hidden;
    contain: layout style paint;
}

.wssg-seasonal-layer *,
.wssg-seasonal-layer *::before,
.wssg-seasonal-layer *::after {
    box-sizing: border-box;
}

.wssg-seasonal-corner {
    position: absolute;
    top: 0;
    width: 190px;
    height: 190px;
    opacity: .84;
    filter: drop-shadow(0 0 14px var(--wssg-seasonal-glow));
}

.wssg-seasonal-corner::before,
.wssg-seasonal-corner::after {
    content: '';
    position: absolute;
}

.wssg-seasonal-corner-left { left: 0; }
.wssg-seasonal-corner-right { right: 0; transform: scaleX(-1); }

.wssg-seasonal-particle {
    position: absolute;
    left: var(--x);
    top: -40px;
    font-size: var(--size);
    color: var(--wssg-seasonal-particle);
    opacity: .8;
    text-shadow: 0 0 8px var(--wssg-seasonal-glow);
    animation: wssg-seasonal-fall var(--duration) linear infinite;
    animation-delay: var(--delay);
    will-change: transform;
}

.wssg-seasonal-accent {
    position: absolute;
    inset: auto 0 0 0;
    height: 120px;
    background: linear-gradient(to top, var(--wssg-seasonal-haze), transparent);
    opacity: .45;
}

@keyframes wssg-seasonal-fall {
    from { transform: translate3d(0, -8vh, 0) rotate(0deg); }
    to { transform: translate3d(var(--drift), 112vh, 0) rotate(360deg); }
}

/* Réduction volontaire des animations si l'utilisateur le demande. */
@media (prefers-reduced-motion: reduce) {
    .wssg-seasonal-particle { animation: none !important; display: none !important; }
}

/* Si l'option animations est coupée, on conserve uniquement le décor statique. */
body.wssg-seasonal:not(.wssg-seasonal-effect-animations) .wssg-seasonal-particle {
    animation: none !important;
    display: none !important;
}

body.wssg-seasonal-intensity-low .wssg-seasonal-corner { opacity: .55; transform-origin: top left; }
body.wssg-seasonal-intensity-high .wssg-seasonal-corner { opacity: 1; }
body.wssg-seasonal-intensity-high .wssg-seasonal-accent { opacity: .68; }

/* Effets communs sur boutons/liens, sans toucher à la structure du thème. */
body.wssg-seasonal-effect-buttons :is(button, .button, .wp-element-button, input[type="submit"], a.elementor-button) {
    transition: box-shadow .2s ease, filter .2s ease, transform .2s ease;
}
body.wssg-seasonal-effect-buttons :is(button, .button, .wp-element-button, input[type="submit"], a.elementor-button):hover {
    box-shadow: 0 0 0 1px var(--wssg-seasonal-main), 0 0 18px var(--wssg-seasonal-glow);
    filter: saturate(1.12);
}

/* Curseur saisonnier Halloween : vraie citrouille, plus de croix. */
body.wssg-seasonal-halloween.wssg-seasonal-effect-cursor,
body.wssg-seasonal-halloween.wssg-seasonal-effect-cursor * {
    cursor: url('../img/halloween-cursor.png') 5 5, auto !important;
}
body.wssg-seasonal-halloween.wssg-seasonal-effect-cursor :is(a,button,[role="button"],input,select,textarea,label) {
    cursor: url('../img/halloween-cursor.png') 5 5, pointer !important;
}

/* HALLOWEEN */
body.wssg-seasonal-halloween {
    --wssg-seasonal-main: #ff7a00;
    --wssg-seasonal-glow: rgba(255, 93, 0, .72);
    --wssg-seasonal-particle: #ff9b35;
    --wssg-seasonal-haze: rgba(82, 20, 100, .62);
}
body.wssg-seasonal-halloween .wssg-seasonal-corner::before {
    width: 140px; height: 140px; left: -40px; top: -42px;
    border: 3px solid rgba(230,230,230,.65);
    border-radius: 50%;
    box-shadow: 24px 24px 0 -20px rgba(230,230,230,.55), 48px 48px 0 -42px rgba(230,230,230,.5);
}
body.wssg-seasonal-halloween .wssg-seasonal-corner::after {
    width: 34px; height: 24px; left: 92px; top: 48px;
    background: #ff7a00;
    border-radius: 46% 46% 50% 50%;
    box-shadow: 0 0 16px rgba(255,122,0,.9);
}

/* NOËL */
body.wssg-seasonal-christmas {
    --wssg-seasonal-main: #e8f7ff;
    --wssg-seasonal-glow: rgba(120, 210, 255, .75);
    --wssg-seasonal-particle: #ffffff;
    --wssg-seasonal-haze: rgba(30, 94, 130, .48);
}
body.wssg-seasonal-christmas .wssg-seasonal-corner::before {
    width: 170px; height: 34px; left: 0; top: 10px;
    border-top: 4px solid rgba(230,244,255,.65);
    transform: rotate(-12deg);
}
body.wssg-seasonal-christmas .wssg-seasonal-corner::after {
    width: 12px; height: 12px; left: 34px; top: 20px; border-radius: 50%;
    background: #fff;
    box-shadow: 34px 8px 0 #ff4f4f, 68px 14px 0 #6fe7a0, 102px 20px 0 #ffd86f, 136px 26px 0 #85d7ff;
}

/* SAINT-VALENTIN */
body.wssg-seasonal-valentine {
    --wssg-seasonal-main: #ff4f87;
    --wssg-seasonal-glow: rgba(255, 79, 135, .7);
    --wssg-seasonal-particle: #ff7da5;
    --wssg-seasonal-haze: rgba(118, 20, 60, .46);
}
body.wssg-seasonal-valentine .wssg-seasonal-corner::before {
    content: '♥';
    font-size: 86px;
    color: rgba(255,79,135,.78);
    left: 20px; top: 8px;
}
body.wssg-seasonal-valentine .wssg-seasonal-corner::after {
    content: '♡';
    font-size: 54px;
    color: rgba(255,210,224,.74);
    left: 92px; top: 72px;
}

/* NOUVEL AN */
body.wssg-seasonal-newyear {
    --wssg-seasonal-main: #ffd76a;
    --wssg-seasonal-glow: rgba(255, 204, 72, .72);
    --wssg-seasonal-particle: #ffe49a;
    --wssg-seasonal-haze: rgba(120, 84, 18, .42);
}
body.wssg-seasonal-newyear .wssg-seasonal-corner::before {
    content: '✦'; font-size: 90px; color: rgba(255,215,106,.72); left: 28px; top: 6px;
}
body.wssg-seasonal-newyear .wssg-seasonal-corner::after {
    content: '✧'; font-size: 60px; color: rgba(255,255,255,.72); left: 100px; top: 75px;
}

/* PÂQUES */
body.wssg-seasonal-easter {
    --wssg-seasonal-main: #f8a8d8;
    --wssg-seasonal-glow: rgba(159, 211, 255, .62);
    --wssg-seasonal-particle: #ffe59b;
    --wssg-seasonal-haze: rgba(170, 125, 205, .34);
}
body.wssg-seasonal-easter .wssg-seasonal-corner::before {
    width: 54px; height: 72px; border-radius: 50% 50% 46% 46%; background: linear-gradient(#f7b5d6 0 33%, #b9e2ff 33% 66%, #ffe7a6 66%); left: 36px; top: 24px; transform: rotate(-14deg);
}
body.wssg-seasonal-easter .wssg-seasonal-corner::after {
    width: 44px; height: 60px; border-radius: 50%; background: linear-gradient(#baf2ca 0 50%, #d8c6ff 50%); left: 98px; top: 76px; transform: rotate(12deg);
}

/* ÉTÉ */
body.wssg-seasonal-summer {
    --wssg-seasonal-main: #4fdcff;
    --wssg-seasonal-glow: rgba(255, 212, 72, .64);
    --wssg-seasonal-particle: #ffd54a;
    --wssg-seasonal-haze: rgba(0, 155, 220, .28);
}
body.wssg-seasonal-summer .wssg-seasonal-corner::before {
    width: 78px; height: 78px; left: 32px; top: 24px; border-radius: 50%; background: #ffd54a; box-shadow: 0 0 28px rgba(255,213,74,.72);
}
body.wssg-seasonal-summer .wssg-seasonal-corner::after {
    content: '≈≈≈'; font-size: 42px; color: rgba(79,220,255,.72); left: 62px; top: 96px; transform: rotate(-8deg);
}

/* ANNIVERSAIRE WSSG */
body.wssg-seasonal-birthday {
    --wssg-seasonal-main: #23a8ff;
    --wssg-seasonal-glow: rgba(35, 168, 255, .78);
    --wssg-seasonal-particle: #8bd7ff;
    --wssg-seasonal-haze: rgba(22, 79, 145, .46);
}
body.wssg-seasonal-birthday .wssg-seasonal-corner::before {
    content: 'WSSG'; font-weight: 900; font-size: 36px; letter-spacing: 2px; color: rgba(90,195,255,.78); left: 24px; top: 32px; transform: rotate(-12deg);
}
body.wssg-seasonal-birthday .wssg-seasonal-corner::after {
    content: '✦ ✦ ✦'; font-size: 26px; color: rgba(255,255,255,.75); left: 48px; top: 88px;
}

/* Mobile : décor allégé pour préserver lisibilité et performances. */
@media (max-width: 782px) {
    .wssg-seasonal-corner { width: 120px; height: 120px; transform: scale(.72); transform-origin: top left; }
    .wssg-seasonal-corner-right { transform: scaleX(-1) scale(.72); transform-origin: top right; }
    body.wssg-seasonal-intensity-high .wssg-seasonal-particle:nth-child(2n) { display: none; }
}

/* ============================================================
   HALLOWEEN 1.1 — habillage renforcé et réellement visible
   ============================================================ */
body.wssg-seasonal-halloween .wssg-seasonal-layer {
    background:
        radial-gradient(circle at 10% 15%, rgba(255, 102, 0, .12), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(111, 38, 145, .14), transparent 30%),
        linear-gradient(to bottom, rgba(18, 2, 22, .08), rgba(18, 2, 22, .18));
}

body.wssg-seasonal-halloween.wssg-seasonal-intensity-high .wssg-seasonal-layer {
    background:
        radial-gradient(circle at 8% 18%, rgba(255, 94, 0, .22), transparent 30%),
        radial-gradient(circle at 90% 15%, rgba(114, 31, 155, .22), transparent 32%),
        linear-gradient(to bottom, rgba(18, 2, 22, .12), rgba(18, 2, 22, .28));
}

.wssg-halloween-web {
    position:absolute;
    width:210px;
    height:210px;
    top:0;
    opacity:.82;
    background:
        repeating-radial-gradient(circle at 0 0, transparent 0 24px, rgba(235,235,235,.28) 25px 27px),
        conic-gradient(from 0deg at 0 0,
            transparent 0 9deg, rgba(235,235,235,.45) 10deg 11deg,
            transparent 12deg 44deg, rgba(235,235,235,.45) 45deg 46deg,
            transparent 47deg 89deg, rgba(235,235,235,.45) 90deg 91deg,
            transparent 92deg 134deg, rgba(235,235,235,.45) 135deg 136deg,
            transparent 137deg 179deg, rgba(235,235,235,.45) 180deg 181deg,
            transparent 182deg 224deg, rgba(235,235,235,.45) 225deg 226deg,
            transparent 227deg 269deg, rgba(235,235,235,.45) 270deg 271deg,
            transparent 272deg 314deg, rgba(235,235,235,.45) 315deg 316deg,
            transparent 317deg 360deg);
    filter:drop-shadow(0 0 8px rgba(255,255,255,.15));
}
.wssg-halloween-web.left { left:0; }
.wssg-halloween-web.right { right:0; transform:scaleX(-1); }

.wssg-halloween-pumpkin {
    position:absolute;
    bottom:18px;
    font-size:68px;
    filter:drop-shadow(0 0 16px rgba(255,91,0,.75));
    animation:wssg-pumpkin-breathe 3.2s ease-in-out infinite;
}
.wssg-halloween-pumpkin.left { left:24px; transform:rotate(-7deg); }
.wssg-halloween-pumpkin.right { right:24px; transform:rotate(7deg); }

@keyframes wssg-pumpkin-breathe {
    0%,100% { filter:drop-shadow(0 0 10px rgba(255,91,0,.5)); }
    50% { filter:drop-shadow(0 0 28px rgba(255,91,0,1)); }
}

.wssg-halloween-bat {
    position:absolute;
    left:-10vw;
    top:var(--y);
    font-size:var(--bat-size);
    opacity:.86;
    filter:drop-shadow(0 0 7px rgba(0,0,0,.75));
    animation:wssg-bat-flight var(--bat-duration) linear infinite;
    animation-delay:var(--bat-delay);
    will-change:transform;
}
@keyframes wssg-bat-flight {
    0% { transform:translate3d(-12vw,0,0) rotate(-8deg); }
    35% { transform:translate3d(35vw,-18px,0) rotate(6deg); }
    70% { transform:translate3d(75vw,14px,0) rotate(-4deg); }
    100% { transform:translate3d(118vw,-10px,0) rotate(7deg); }
}

.wssg-halloween-fog {
    position:absolute;
    left:-10%;
    width:120%;
    height:170px;
    bottom:-45px;
    opacity:.42;
    filter:blur(18px);
    background:
        radial-gradient(ellipse at 12% 60%, rgba(235,235,245,.36), transparent 35%),
        radial-gradient(ellipse at 42% 45%, rgba(205,190,225,.28), transparent 38%),
        radial-gradient(ellipse at 72% 65%, rgba(230,230,240,.34), transparent 36%),
        radial-gradient(ellipse at 92% 50%, rgba(195,180,220,.28), transparent 35%);
    animation:wssg-fog-drift 14s ease-in-out infinite alternate;
}
@keyframes wssg-fog-drift {
    from { transform:translateX(-2%); }
    to { transform:translateX(4%); }
}

.wssg-halloween-topline {
    position:absolute;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,#7e2bb8,#ff6700,#7e2bb8,#ff6700,#7e2bb8);
    box-shadow:0 0 18px rgba(255,103,0,.85);
    opacity:.9;
}

body.wssg-seasonal-halloween.wssg-seasonal-effect-buttons :is(button,.button,.wp-element-button,input[type="submit"],a.elementor-button):hover {
    box-shadow:0 0 0 1px #ff7a00, 0 0 24px rgba(255,92,0,.75), 0 0 38px rgba(115,42,160,.35);
}

body.wssg-seasonal-intensity-low .wssg-halloween-pumpkin { font-size:46px; opacity:.68; }
body.wssg-seasonal-intensity-low .wssg-halloween-web { width:150px; height:150px; opacity:.55; }
body.wssg-seasonal-intensity-low .wssg-halloween-fog { opacity:.24; }
body.wssg-seasonal-intensity-high .wssg-halloween-pumpkin { font-size:82px; }
body.wssg-seasonal-intensity-high .wssg-halloween-web { width:260px; height:260px; opacity:.95; }
body.wssg-seasonal-intensity-high .wssg-halloween-fog { opacity:.56; height:220px; }

@media (max-width:782px) {
    .wssg-halloween-web { width:135px; height:135px; }
    .wssg-halloween-pumpkin { font-size:44px; bottom:8px; }
    .wssg-halloween-pumpkin.left { left:8px; }
    .wssg-halloween-pumpkin.right { right:8px; }
    .wssg-halloween-bat:nth-of-type(n+5) { display:none; }
}

/* ============================================================
   HALLOWEEN 1.2 — éléments rendus côté serveur + cache-busting
   ============================================================ */
.wssg-seasonal-layer {
    isolation: isolate;
}

.wssg-css-pumpkin {
    position: absolute;
    bottom: 24px;
    width: 92px;
    height: 72px;
    border-radius: 46% 46% 42% 42%;
    background:
        radial-gradient(ellipse at 32% 48%, rgba(255,190,70,.22) 0 18%, transparent 19%),
        radial-gradient(ellipse at 68% 48%, rgba(255,190,70,.22) 0 18%, transparent 19%),
        linear-gradient(90deg, #d94e00 0 18%, #ff7a00 18% 38%, #e75a00 38% 62%, #ff7a00 62% 82%, #d94e00 82% 100%);
    border: 2px solid rgba(255,161,64,.72);
    box-shadow: 0 0 18px rgba(255,96,0,.8), inset 0 0 18px rgba(89,18,0,.6);
    animation: wssg-pumpkin-breathe 3.2s ease-in-out infinite;
}
.wssg-css-pumpkin.left { left: 28px; transform: rotate(-5deg); }
.wssg-css-pumpkin.right { right: 28px; transform: rotate(5deg); }
.wssg-css-pumpkin::before {
    content: '';
    position: absolute;
    width: 17px;
    height: 22px;
    left: 38px;
    top: -17px;
    background: #4f6f23;
    border-radius: 5px 5px 2px 2px;
    transform: rotate(5deg);
}
.wssg-css-pumpkin::after {
    content: '';
    position: absolute;
    left: 20px;
    top: 26px;
    width: 52px;
    height: 30px;
    background:
        linear-gradient(135deg, transparent 0 35%, #251005 36% 65%, transparent 66%) 0 0/18px 14px no-repeat,
        linear-gradient(225deg, transparent 0 35%, #251005 36% 65%, transparent 66%) 34px 0/18px 14px no-repeat,
        linear-gradient(to bottom, transparent 0 42%, #251005 43% 68%, transparent 69%) 7px 17px/38px 12px no-repeat;
    filter: drop-shadow(0 0 5px rgba(255,220,90,.45));
}

.wssg-halloween-sign {
    position: absolute;
    top: 92px;
    left: 50%;
    transform: translateX(-50%) rotate(-1deg);
    padding: 7px 18px 6px;
    border: 1px solid rgba(255,122,0,.48);
    border-radius: 999px;
    color: rgba(255,180,90,.9);
    font: 800 12px/1.1 system-ui, sans-serif;
    letter-spacing: .22em;
    text-shadow: 0 0 12px rgba(255,90,0,.7);
    background: rgba(18,5,22,.38);
    box-shadow: 0 0 24px rgba(120,42,160,.28);
}

body.wssg-seasonal-halloween .wssg-halloween-web {
    z-index: 4;
}
body.wssg-seasonal-halloween .wssg-css-pumpkin,
body.wssg-seasonal-halloween .wssg-halloween-bat,
body.wssg-seasonal-halloween .wssg-halloween-sign {
    z-index: 6;
}
body.wssg-seasonal-halloween .wssg-halloween-fog,
body.wssg-seasonal-halloween .wssg-seasonal-accent {
    z-index: 2;
}
body.wssg-seasonal-halloween .wssg-seasonal-particle {
    z-index: 5;
}

body.wssg-seasonal-intensity-high .wssg-css-pumpkin {
    width: 112px;
    height: 88px;
}
body.wssg-seasonal-intensity-high .wssg-css-pumpkin::before {
    left: 47px;
}
body.wssg-seasonal-intensity-high .wssg-css-pumpkin::after {
    left: 30px;
    top: 33px;
}

@media (max-width: 782px) {
    .wssg-css-pumpkin { width: 66px; height: 52px; bottom: 10px; }
    .wssg-css-pumpkin.left { left: 8px; }
    .wssg-css-pumpkin.right { right: 8px; }
    .wssg-css-pumpkin::before { width: 12px; height: 16px; left: 27px; top: -12px; }
    .wssg-css-pumpkin::after { transform: scale(.72); transform-origin: top left; left: 13px; top: 18px; }
    .wssg-halloween-sign { top: 70px; font-size: 10px; }
}

/* ==========================================================
   HALLOWEEN PREMIUM — v1.3.0
   Décor périphérique inspiré d'une scène cinématique sombre,
   sans masquer le contenu central du site.
   ========================================================== */
body.wssg-seasonal-halloween .wssg-seasonal-layer {
    background: transparent !important;
    overflow: hidden;
}

.wssg-halloween-atmosphere {
    position:absolute;
    inset:0;
    background:
        radial-gradient(ellipse at 0% 35%, rgba(255,91,0,.18) 0, rgba(170,39,0,.09) 18%, transparent 42%),
        radial-gradient(ellipse at 100% 34%, rgba(108,48,170,.18) 0, rgba(67,27,106,.09) 20%, transparent 43%),
        linear-gradient(to bottom, rgba(8,3,12,.08), transparent 30%, transparent 68%, rgba(10,2,17,.16));
    opacity:.9;
}

.wssg-halloween-edge {
    position:absolute;
    top:0;
    bottom:0;
    width:min(17vw,270px);
    opacity:.58;
    filter:blur(.2px);
}
.wssg-halloween-edge-left {
    left:0;
    background:
        radial-gradient(circle at 18% 82%, rgba(255,119,24,.30), transparent 23%),
        linear-gradient(90deg, rgba(27,5,3,.72), rgba(32,6,18,.30) 54%, transparent);
}
.wssg-halloween-edge-right {
    right:0;
    background:
        radial-gradient(circle at 84% 78%, rgba(255,115,22,.22), transparent 22%),
        linear-gradient(270deg, rgba(24,4,27,.72), rgba(55,17,77,.27) 54%, transparent);
}

/* Vraies toiles vectorielles : fines, irrégulières, lumineuses juste ce qu'il faut. */
body.wssg-seasonal-halloween .wssg-halloween-web {
    position:absolute !important;
    top:-12px !important;
    width:clamp(230px, 22vw, 410px) !important;
    height:auto !important;
    opacity:.66 !important;
    background:none !important;
    border:0 !important;
    filter:drop-shadow(0 0 4px rgba(220,225,245,.20)) !important;
}
body.wssg-seasonal-halloween .wssg-halloween-web::before,
body.wssg-seasonal-halloween .wssg-halloween-web::after { display:none !important; }
.wssg-halloween-web-left { left:-18px !important; }
.wssg-halloween-web-right { right:-18px !important; transform:scaleX(-1) !important; }

/* Citrouilles SVG avec volume et lumière interne. */
.wssg-halloween-pumpkin {
    position:absolute;
    bottom:-20px;
    width:clamp(120px, 10.5vw, 190px);
    height:auto;
    filter:drop-shadow(0 18px 20px rgba(0,0,0,.62)) drop-shadow(0 0 13px rgba(255,92,0,.28));
    opacity:.96;
}
.wssg-halloween-pumpkin-left { left:clamp(4px, 1.5vw, 26px); transform:rotate(-4deg); }
.wssg-halloween-pumpkin-right { right:clamp(4px, 1.5vw, 26px); transform:scaleX(-1) rotate(-4deg); }

/* Brume basse multicouche, douce et lente. */
.wssg-halloween-fog {
    position:absolute !important;
    left:-12% !important;
    right:-12% !important;
    top:auto !important;
    border-radius:50% !important;
    background:
        radial-gradient(ellipse at 12% 65%, rgba(154,108,187,.24), transparent 36%),
        radial-gradient(ellipse at 43% 58%, rgba(112,75,153,.20), transparent 34%),
        radial-gradient(ellipse at 76% 63%, rgba(187,125,196,.18), transparent 36%),
        radial-gradient(ellipse at 94% 74%, rgba(91,67,134,.22), transparent 31%) !important;
    filter:blur(18px) !important;
    opacity:.45 !important;
    height:170px !important;
    bottom:-62px !important;
    animation:wssgFogDrift 18s ease-in-out infinite alternate;
}
.wssg-halloween-fog-b {
    bottom:-90px !important;
    opacity:.28 !important;
    filter:blur(28px) !important;
    transform:scaleX(1.12);
    animation-duration:25s;
    animation-direction:alternate-reverse;
}
@keyframes wssgFogDrift {
    from { transform:translate3d(-2%,0,0) scaleX(1.03); }
    to   { transform:translate3d(2%, -8px,0) scaleX(1.09); }
}

/* Flybys premium */
.wssg-seasonal-flyby-stage { position:absolute; inset:0; overflow:hidden; }
.wssg-seasonal-flyby {
    position:absolute;
    right:-28vw;
    height:auto;
    will-change:transform, opacity;
}
.wssg-seasonal-flyby-ghost {
    width:clamp(125px, 13vw, 235px);
    opacity:0;
    filter:drop-shadow(0 0 18px rgba(202,210,255,.16));
    animation:wssgGhostCross var(--fly-duration,11s) cubic-bezier(.25,.05,.7,.98) forwards;
}
@keyframes wssgGhostCross {
    0%   { transform:translate3d(0,10px,0) scale(.88) rotate(2deg); opacity:0; }
    10%  { opacity:.44; }
    48%  { transform:translate3d(-62vw,-10px,0) scale(1) rotate(-1deg); opacity:.56; }
    88%  { opacity:.35; }
    100% { transform:translate3d(-145vw,8px,0) scale(.92) rotate(1deg); opacity:0; }
}
.wssg-seasonal-flyby-bat {
    width:clamp(105px, 9vw, 170px);
    opacity:0;
    transform-origin:center;
    filter:drop-shadow(0 9px 10px rgba(0,0,0,.55));
    animation:wssgBatCross var(--fly-duration,5.4s) linear forwards;
}
@keyframes wssgBatCross {
    0%   { transform:translate3d(0,0,0) rotate(-5deg) scale(.8); opacity:0; }
    8%   { opacity:.86; }
    28%  { transform:translate3d(-38vw,-22px,0) rotate(5deg) scale(1.02); }
    55%  { transform:translate3d(-79vw,14px,0) rotate(-4deg) scale(.93); }
    82%  { opacity:.76; }
    100% { transform:translate3d(-142vw,-12px,0) rotate(3deg) scale(.82); opacity:0; }
}

/* Particules Halloween = petites braises, pas de symboles envahissants. */
body.wssg-seasonal-halloween .wssg-seasonal-particle {
    font-size:0 !important;
    width:4px;
    height:4px;
    border-radius:50%;
    background:#ff7a20;
    box-shadow:0 0 7px rgba(255,92,15,.9), 0 0 14px rgba(255,62,0,.32);
    opacity:.48;
}

/* Accent inférieur plus cinématique. */
body.wssg-seasonal-halloween .wssg-seasonal-accent {
    height:115px !important;
    background:linear-gradient(to top, rgba(72,27,88,.28), rgba(255,74,0,.045) 44%, transparent) !important;
    opacity:.58 !important;
}

/* Intensités */
body.wssg-seasonal-intensity-low .wssg-halloween-pumpkin { width:110px; opacity:.82; }
body.wssg-seasonal-intensity-low .wssg-halloween-web { opacity:.42 !important; width:230px !important; }
body.wssg-seasonal-intensity-low .wssg-halloween-edge { opacity:.34; }
body.wssg-seasonal-intensity-high .wssg-halloween-pumpkin { width:clamp(150px,12vw,220px); }
body.wssg-seasonal-intensity-high .wssg-halloween-web { opacity:.78 !important; width:clamp(270px,24vw,450px) !important; }
body.wssg-seasonal-intensity-high .wssg-halloween-edge { opacity:.70; }
body.wssg-seasonal-intensity-high .wssg-halloween-fog { opacity:.52 !important; }

@media (max-width: 782px) {
    .wssg-halloween-web { width:155px !important; opacity:.50 !important; }
    .wssg-halloween-pumpkin { width:88px; bottom:-10px; }
    .wssg-halloween-edge { width:24vw; opacity:.38; }
    .wssg-halloween-fog { height:105px !important; }
    .wssg-seasonal-flyby-ghost { width:110px; }
    .wssg-seasonal-flyby-bat { width:88px; }
}

@media (prefers-reduced-motion: reduce) {
    .wssg-halloween-fog { animation:none !important; }
    .wssg-seasonal-flyby { display:none !important; }
}

/* ============================================================
   HALLOWEEN 1.4 — assets premium fournis par WSSG
   ============================================================ */
body.wssg-seasonal-halloween .wssg-seasonal-layer {
    overflow: hidden;
    background:
        radial-gradient(circle at 10% 35%, rgba(255, 65, 0, .12), transparent 30%),
        radial-gradient(circle at 90% 30%, rgba(91, 34, 140, .13), transparent 32%),
        linear-gradient(to bottom, rgba(5,0,8,.04), rgba(18,1,18,.12));
}

.wssg-halloween-scene {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    object-fit: cover;
    object-position: center;
    opacity: .42;
    filter: saturate(1.08) contrast(1.04) brightness(.78);
    pointer-events: none;
    z-index: 1;
    -webkit-mask-image: radial-gradient(ellipse 64% 64% at 50% 45%, transparent 0 42%, rgba(0,0,0,.22) 55%, rgba(0,0,0,.82) 76%, #000 94%);
            mask-image: radial-gradient(ellipse 64% 64% at 50% 45%, transparent 0 42%, rgba(0,0,0,.22) 55%, rgba(0,0,0,.82) 76%, #000 94%);
}
body.wssg-seasonal-intensity-low .wssg-halloween-scene { opacity: .28; }
body.wssg-seasonal-intensity-high .wssg-halloween-scene { opacity: .56; }

.wssg-halloween-web {
    position: fixed !important;
    top: 0 !important;
    width: clamp(280px, 27vw, 520px) !important;
    height: auto !important;
    opacity: .72 !important;
    background: none !important;
    filter: drop-shadow(0 5px 10px rgba(0,0,0,.55)) brightness(1.12) !important;
    z-index: 4;
    pointer-events: none;
}
.wssg-halloween-web-left { left: 0 !important; transform: translate(-4%, -5%); }
.wssg-halloween-web-right { right: 0 !important; left: auto !important; transform: scaleX(-1) translate(-4%, -5%); }
body.admin-bar .wssg-halloween-web { top: 32px !important; }

.wssg-halloween-pumpkin {
    position: fixed !important;
    bottom: -34px !important;
    width: clamp(120px, 11vw, 230px) !important;
    height: auto !important;
    font-size: 0 !important;
    opacity: .96;
    z-index: 5;
    filter: drop-shadow(0 10px 16px rgba(0,0,0,.55)) drop-shadow(0 0 18px rgba(255,86,0,.34)) !important;
    animation: wssg-premium-pumpkin 5.8s ease-in-out infinite !important;
    pointer-events: none;
}
.wssg-halloween-pumpkin-left { left: 16px !important; transform: rotate(-3deg) !important; }
.wssg-halloween-pumpkin-right { right: 16px !important; transform: rotate(3deg) !important; }
@keyframes wssg-premium-pumpkin {
    0%,100% { filter: drop-shadow(0 10px 16px rgba(0,0,0,.55)) drop-shadow(0 0 13px rgba(255,86,0,.28)); }
    50% { filter: drop-shadow(0 10px 18px rgba(0,0,0,.6)) drop-shadow(0 0 26px rgba(255,100,0,.52)); }
}

.wssg-halloween-fog {
    z-index: 3;
    opacity: .22 !important;
    height: 150px !important;
    bottom: -55px !important;
    filter: blur(22px) !important;
}

.wssg-seasonal-flyby-stage { position: fixed; inset:0; overflow:hidden; pointer-events:none; z-index: 8; }
.wssg-seasonal-flyby-ghost {
    position: absolute;
    right: -36vw;
    width: clamp(310px, 31vw, 620px);
    height: auto;
    opacity: .30;
    filter: blur(.15px) drop-shadow(0 0 22px rgba(173,155,255,.28));
    animation: wssg-premium-ghost var(--fly-duration, 11s) linear forwards;
    will-change: transform, opacity;
}
@keyframes wssg-premium-ghost {
    0%   { transform: translate3d(0, 0, 0) scale(.92); opacity:0; }
    10%  { opacity:.22; }
    45%  { transform: translate3d(-58vw, -1.5vh, 0) scale(1); opacity:.34; }
    82%  { opacity:.24; }
    100% { transform: translate3d(-148vw, 1vh, 0) scale(1.04); opacity:0; }
}

.wssg-seasonal-flyby-bat {
    opacity: .84;
    filter: drop-shadow(0 4px 9px rgba(0,0,0,.75));
}

body.wssg-seasonal-intensity-low .wssg-halloween-web { opacity:.50 !important; }
body.wssg-seasonal-intensity-high .wssg-halloween-web { opacity:.86 !important; }

@media (max-width: 782px) {
    .wssg-halloween-scene { opacity:.22; -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, transparent 0 42%, #000 90%); mask-image: radial-gradient(ellipse 80% 70% at 50% 45%, transparent 0 42%, #000 90%); }
    .wssg-halloween-web { width: 190px !important; opacity:.52 !important; }
    .wssg-halloween-pumpkin { width: 100px !important; bottom:-20px !important; }
    .wssg-halloween-pumpkin-left { left:4px !important; }
    .wssg-halloween-pumpkin-right { right:4px !important; }
    .wssg-seasonal-flyby-ghost { width: 310px; opacity:.22; }
}

/* ============================================================
   HALLOWEEN 1.5 — citrouille tactique + musique d'ambiance
   ============================================================ */
.wssg-halloween-pumpkin-left {
    width: clamp(135px, 11.5vw, 215px) !important;
    bottom: -18px !important;
    left: clamp(2px, 1vw, 18px) !important;
    transform: rotate(-2deg) !important;
    filter: drop-shadow(0 18px 24px rgba(0,0,0,.72)) drop-shadow(0 0 15px rgba(255,91,0,.36)) !important;
}

.wssg-seasonal-audio-toggle {
    position: fixed;
    left: 50%;
    bottom: 14px;
    transform: translateX(-50%);
    z-index: 2147483001;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,135,46,.55);
    border-radius: 999px;
    background: rgba(12,7,16,.72);
    color: #fff;
    box-shadow: 0 0 18px rgba(255,94,0,.20), inset 0 0 16px rgba(110,50,150,.12);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
    font-size: 17px;
    line-height: 1;
    display: grid;
    place-items: center;
    opacity: .72;
    transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}
.wssg-seasonal-audio-toggle:hover,
.wssg-seasonal-audio-toggle:focus-visible {
    opacity: 1;
    transform: translateX(-50%) scale(1.06);
    box-shadow: 0 0 22px rgba(255,94,0,.38), inset 0 0 16px rgba(110,50,150,.18);
    outline: none;
}
.wssg-seasonal-audio-toggle.is-muted { opacity: .45; }

@media (max-width: 782px) {
    .wssg-halloween-pumpkin-left { width: 96px !important; bottom: -10px !important; }
    .wssg-seasonal-audio-toggle { width: 34px; height: 34px; bottom: 10px; font-size: 15px; }
}


/* ============================================================
   1.5.1 — Audio robuste + curseur Halloween
   ============================================================ */
.wssg-seasonal-audio-toggle {
    width: auto !important;
    min-width: 46px;
    height: 38px !important;
    padding: 0 12px !important;
    gap: 7px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 999px !important;
    background: rgba(16, 8, 20, .78) !important;
    border: 1px solid rgba(255, 126, 28, .52) !important;
    color: #ffd9b2 !important;
    box-shadow: 0 0 18px rgba(255, 89, 0, .18), inset 0 0 16px rgba(126, 41, 167, .12) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    font: 700 12px/1 system-ui, sans-serif !important;
    letter-spacing: .02em;
    opacity: .92;
}
.wssg-seasonal-audio-toggle .wssg-audio-icon { font-size: 15px; line-height: 1; }
.wssg-seasonal-audio-toggle .wssg-audio-label { white-space: nowrap; }
.wssg-seasonal-audio-toggle.is-playing {
    border-color: rgba(255, 145, 51, .78) !important;
    box-shadow: 0 0 22px rgba(255, 100, 0, .34) !important;
}
.wssg-seasonal-audio-toggle.is-muted { opacity: .62 !important; }
.wssg-seasonal-audio-toggle.has-error { border-color: rgba(220, 80, 80, .72) !important; }
@media (max-width: 782px) {
    .wssg-seasonal-audio-toggle .wssg-audio-label { display:none; }
    .wssg-seasonal-audio-toggle { min-width: 36px; padding:0 9px !important; }
}


/* 1.5.2 — contrôle audio visible */
#wssg-seasonal-audio-toggle.wssg-seasonal-audio-toggle {
  position: fixed !important; left: 22px !important; right: auto !important; bottom: 22px !important;
  transform: none !important; z-index: 2147483646 !important; min-width: 155px !important;
  height: 44px !important; padding: 0 15px !important; opacity: 1 !important;
  background: rgba(10,7,12,.96) !important; border: 1px solid rgba(255,120,25,.95) !important;
  color:#ffd8ad !important; box-shadow:0 0 24px rgba(255,80,0,.5) !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:8px !important;
  pointer-events:auto !important; visibility:visible !important;
}
#wssg-seasonal-audio-toggle .wssg-audio-label { display:inline !important; }
#wssg-seasonal-audio-toggle:hover { transform: scale(1.03) !important; }
@media (max-width:782px){
 #wssg-seasonal-audio-toggle.wssg-seasonal-audio-toggle{left:10px !important;bottom:10px !important;min-width:44px !important;width:44px !important;padding:0 !important;}
 #wssg-seasonal-audio-toggle .wssg-audio-label{display:none !important;}
}


/* ============================================================
   1.5.3 — nettoyage Halloween + audio direct
   ============================================================ */
.wssg-halloween-web,
.wssg-halloween-web-left,
.wssg-halloween-web-right {
    display: none !important;
}
.wssg-halloween-pumpkin-left {
    display: none !important;
}
#wssg-seasonal-audio-toggle.wssg-seasonal-audio-toggle {
    left: 18px !important;
    bottom: 18px !important;
    z-index: 2147483646 !important;
    pointer-events: auto !important;
    touch-action: manipulation;
    user-select: none;
}
#wssg-seasonal-audio-toggle.has-error {
    color: #ffd0d0 !important;
    border-color: rgba(255,90,90,.95) !important;
}


/* ============================================================
   HALLOWEEN 1.5.5 — flybys desktop renforcés
   ============================================================ */
body.wssg-seasonal-halloween .wssg-seasonal-flyby-stage {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    overflow: hidden !important;
    pointer-events: none !important;
    z-index: 50 !important;
    transform: translateZ(0);
}
body.wssg-seasonal-halloween .wssg-seasonal-flyby {
    pointer-events: none !important;
    z-index: 51 !important;
}
@media (min-width: 1024px) {
    body.wssg-seasonal-halloween .wssg-seasonal-flyby-ghost {
        right: -520px !important;
        width: clamp(360px, 27vw, 560px) !important;
        max-width: 560px !important;
        opacity: 0;
        filter: drop-shadow(0 0 26px rgba(190,175,255,.34)) !important;
        animation-name: wssg-premium-ghost-desktop !important;
    }
    @keyframes wssg-premium-ghost-desktop {
        0%   { transform: translate3d(0, 0, 0) scale(.94); opacity:0; }
        8%   { opacity:.38; }
        45%  { transform: translate3d(calc(-50vw - 260px), -18px, 0) scale(1); opacity:.50; }
        82%  { opacity:.36; }
        100% { transform: translate3d(calc(-100vw - 720px), 12px, 0) scale(1.03); opacity:0; }
    }
    body.wssg-seasonal-intensity-high .wssg-seasonal-flyby-ghost {
        width: clamp(420px, 31vw, 640px) !important;
    }
}


/* ============================================================
   HALLOWEEN 1.5.6 — fantôme ultra-visible desktop
   ============================================================ */
body.wssg-seasonal-halloween .wssg-seasonal-layer {
    z-index: 2147483644 !important;
}
body.wssg-seasonal-halloween .wssg-seasonal-flyby-stage {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    overflow: hidden !important;
    pointer-events: none !important;
    z-index: 2147483645 !important;
}
body.wssg-seasonal-halloween .wssg-seasonal-flyby {
    pointer-events: none !important;
    z-index: 2147483646 !important;
}
body.wssg-seasonal-halloween .wssg-seasonal-flyby-ghost {
    right: -380px !important;
    width: clamp(220px, 18vw, 340px) !important;
    max-width: 340px !important;
    opacity: 0 !important;
    filter: drop-shadow(0 0 20px rgba(206,190,255,.44)) !important;
    animation-name: wssg-ghost-super-visible !important;
    animation-timing-function: linear !important;
    animation-fill-mode: forwards !important;
}
@keyframes wssg-ghost-super-visible {
    0%   { transform: translate3d(0, 0, 0) scale(.96); opacity:0; }
    7%   { opacity:.72; }
    40%  { transform: translate3d(calc(-38vw - 40px), -10px, 0) scale(1); opacity:.82; }
    78%  { opacity:.66; }
    100% { transform: translate3d(calc(-100vw - 520px), 8px, 0) scale(1.03); opacity:0; }
}
@media (max-width: 1023px) {
    body.wssg-seasonal-halloween .wssg-seasonal-flyby-ghost {
        width: 220px !important;
        right: -240px !important;
    }
}


/* ============================================================
   HALLOWEEN 1.5.7 — fantôme CSS de secours toujours visible
   ============================================================ */
body.wssg-seasonal-halloween .wssg-halloween-ghost-fallback {
    position: fixed !important;
    top: 22vh !important;
    right: -260px !important;
    width: 230px !important;
    opacity: 0 !important;
    z-index: 2147483647 !important;
    pointer-events: none !important;
    animation: wssg-ghost-fallback-loop 9s linear infinite !important;
    will-change: transform, opacity;
}
body.wssg-seasonal-halloween .wssg-halloween-ghost-fallback img {
    display: block;
    width: 100% !important;
    height: auto !important;
    filter: drop-shadow(0 0 18px rgba(214,197,255,.48)) !important;
}
@keyframes wssg-ghost-fallback-loop {
    0%   { transform: translate3d(0,0,0) scale(.97); opacity: 0; }
    6%   { opacity: .78; }
    55%  { transform: translate3d(calc(-58vw - 40px), -6px, 0) scale(1); opacity: .84; }
    94%  { transform: translate3d(calc(-118vw - 280px), 4px, 0) scale(1.03); opacity: 0; }
    100% { transform: translate3d(calc(-118vw - 280px), 4px, 0) scale(1.03); opacity: 0; }
}
@media (min-width: 1024px) {
    body.wssg-seasonal-halloween .wssg-halloween-ghost-fallback {
        top: 18vh !important;
        width: 300px !important;
        right: -320px !important;
        animation-duration: 8s !important;
    }
}
@media (max-width: 782px) {
    body.wssg-seasonal-halloween .wssg-halloween-ghost-fallback {
        width: 180px !important;
        top: 24vh !important;
        right: -210px !important;
        animation-duration: 10s !important;
    }
}


/* ============================================================
   NOËL 1.5.11 — décor Warzone + neige douce
   ============================================================ */
body.wssg-seasonal-christmas {
    --wssg-seasonal-main: #f5e6ad;
    --wssg-seasonal-glow: rgba(255, 215, 120, .62);
    --wssg-seasonal-particle: #ffffff;
    --wssg-seasonal-haze: rgba(64, 112, 145, .34);
}
body.wssg-seasonal-christmas .wssg-seasonal-layer {
    background: transparent !important;
    overflow: hidden !important;
}
.wssg-christmas-atmosphere {
    position:absolute;
    inset:0;
    background:
        radial-gradient(ellipse at 8% 75%, rgba(255,205,108,.10), transparent 28%),
        radial-gradient(ellipse at 88% 20%, rgba(150,190,230,.10), transparent 32%),
        linear-gradient(to bottom, rgba(6,12,22,.08), rgba(8,19,33,.12));
    z-index:1;
}
.wssg-christmas-scene {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center center;
    opacity:.34;
    filter:saturate(.86) brightness(.84) contrast(1.03);
    z-index:2;
    -webkit-mask-image: radial-gradient(ellipse 68% 64% at 50% 48%, rgba(0,0,0,.16) 0 42%, rgba(0,0,0,.58) 67%, #000 92%);
    mask-image: radial-gradient(ellipse 68% 64% at 50% 48%, rgba(0,0,0,.16) 0 42%, rgba(0,0,0,.58) 67%, #000 92%);
}
.wssg-christmas-tree {
    position:absolute;
    left:clamp(-18px, 1vw, 18px);
    bottom:-18px;
    width:clamp(180px, 20vw, 360px);
    height:auto;
    z-index:6;
    opacity:.96;
    filter:drop-shadow(0 20px 26px rgba(0,0,0,.56)) drop-shadow(0 0 12px rgba(255,207,92,.18));
}
.wssg-christmas-snow {
    position:absolute;
    inset:0;
    z-index:7;
    overflow:hidden;
    pointer-events:none;
}
.wssg-christmas-flake {
    position:absolute;
    left:var(--snow-x);
    top:-18px;
    width:var(--snow-size);
    height:var(--snow-size);
    border-radius:50%;
    background:rgba(255,255,255,.94);
    opacity:var(--snow-opacity);
    filter:blur(.15px);
    animation:wssg-christmas-snowfall var(--snow-duration) linear infinite;
    animation-delay:var(--snow-delay);
    will-change:transform;
}
@keyframes wssg-christmas-snowfall {
    0% { transform:translate3d(0,-4vh,0); }
    100% { transform:translate3d(var(--snow-drift),108vh,0); }
}
body.wssg-seasonal-christmas.wssg-seasonal-effect-cursor,
body.wssg-seasonal-christmas.wssg-seasonal-effect-cursor * {
    cursor:url('../img/christmas-cursor.png') 26 6, auto !important;
}
body.wssg-seasonal-christmas.wssg-seasonal-effect-cursor :is(a,button,[role="button"],input,select,textarea,label) {
    cursor:url('../img/christmas-cursor.png') 26 6, pointer !important;
}
body.wssg-seasonal-intensity-low .wssg-christmas-scene { opacity:.24; }
body.wssg-seasonal-intensity-high .wssg-christmas-scene { opacity:.42; }
body.wssg-seasonal-intensity-low .wssg-christmas-tree { opacity:.78; width:clamp(155px,17vw,300px); }
body.wssg-seasonal-intensity-high .wssg-christmas-tree { width:clamp(210px,22vw,400px); }
@media (max-width:782px) {
    .wssg-christmas-scene {
        opacity:.23;
        -webkit-mask-image:radial-gradient(ellipse 84% 70% at 50% 44%, rgba(0,0,0,.12) 0 48%, #000 92%);
        mask-image:radial-gradient(ellipse 84% 70% at 50% 44%, rgba(0,0,0,.12) 0 48%, #000 92%);
    }
    .wssg-christmas-tree { width:145px; left:-18px; bottom:-8px; }
    .wssg-christmas-flake:nth-child(2n) { display:none; }
}

/* ============================================================
   WSSG Academy Event — v1.6.0
   Jusqu'à 6 joueurs, 3 affichés à la fois, rotation par roster.
   ============================================================ */
.wssg-academy-showcase {
    position: fixed;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
    width: min(980px, 82vw);
    z-index: 2147482500;
    pointer-events: none;
    font-family: inherit;
}
.wssg-academy-showcase-inner {
    position: relative;
    height: clamp(190px, 23vw, 310px);
    overflow: visible;
}
.wssg-academy-slide {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transform: translateY(14px) scale(.985);
    transition: opacity .6s ease, transform .6s ease, visibility .6s ease;
}
.wssg-academy-slide.is-active {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}
.wssg-academy-roster {
    align-self: center;
    margin-bottom: -6px;
    padding: 6px 16px;
    border: 1px solid rgba(75,174,255,.48);
    border-radius: 999px;
    background: rgba(5,14,28,.82);
    color: #dff2ff;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    text-shadow: 0 0 12px rgba(56,174,255,.6);
    box-shadow: 0 0 18px rgba(34,137,255,.18);
    z-index: 2;
}
.wssg-academy-players {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: clamp(10px, 2vw, 30px);
    width: 100%;
    min-height: 170px;
    background: linear-gradient(to top, rgba(3,8,17,.82) 0%, rgba(3,8,17,.42) 30%, transparent 78%);
}
.wssg-academy-player {
    position: relative;
    margin: 0;
    width: min(28%, 240px);
    height: clamp(165px, 21vw, 285px);
    display: flex;
    align-items: flex-end;
    justify-content: center;
}
.wssg-academy-player img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
    filter: drop-shadow(0 10px 18px rgba(0,0,0,.78)) drop-shadow(0 0 18px rgba(30,126,255,.20));
}
.wssg-academy-player figcaption {
    position: absolute;
    left: 50%;
    bottom: 8px;
    transform: translateX(-50%);
    max-width: 92%;
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(3,8,18,.78);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
    text-shadow: 0 1px 2px #000;
    border: 1px solid rgba(255,255,255,.16);
}
.wssg-academy-highlight {
    position: relative;
    width: 100%;
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 9px 24px;
    background: linear-gradient(90deg, rgba(8,18,34,.96), rgba(11,53,94,.96), rgba(8,18,34,.96));
    border-top: 1px solid rgba(84,186,255,.55);
    border-bottom: 1px solid rgba(84,186,255,.34);
    box-shadow: 0 -8px 24px rgba(0,0,0,.28), 0 0 24px rgba(29,126,255,.20);
    color: #fff;
    font-size: clamp(13px, 1.05vw, 17px);
    font-weight: 800;
    text-align: center;
    letter-spacing: .02em;
    text-shadow: 0 0 12px rgba(90,196,255,.42);
}
@media (max-width: 782px) {
    .wssg-academy-showcase { width: 100vw; }
    .wssg-academy-showcase-inner { height: 180px; }
    .wssg-academy-player { width: 31%; height: 165px; }
    .wssg-academy-players { gap: 4px; }
    .wssg-academy-player figcaption { font-size: 10px; padding: 4px 7px; }
    .wssg-academy-roster { font-size: 10px; padding: 5px 11px; }
    .wssg-academy-highlight { min-height: 38px; padding: 8px 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .wssg-academy-slide { transition: none !important; }
}


/* ============================================================
   1.6.3 — zone d'exclusion réelle pour le logo + menu principal
   Le calque saisonnier est transparent uniquement sur cette bande.
   ============================================================ */
@media (min-width: 783px) {
    body.wssg-seasonal .wssg-seasonal-layer {
        -webkit-mask-image: linear-gradient(
            to bottom,
            #000 0,
            #000 12px,
            rgba(0,0,0,.35) 18px,
            transparent 24px,
            transparent 112px,
            rgba(0,0,0,.35) 118px,
            #000 124px,
            #000 100%
        ) !important;
        mask-image: linear-gradient(
            to bottom,
            #000 0,
            #000 12px,
            rgba(0,0,0,.35) 18px,
            transparent 24px,
            transparent 112px,
            rgba(0,0,0,.35) 118px,
            #000 124px,
            #000 100%
        ) !important;
    }

    body.admin-bar.wssg-seasonal .wssg-seasonal-layer {
        -webkit-mask-image: linear-gradient(
            to bottom,
            #000 0,
            #000 44px,
            rgba(0,0,0,.35) 50px,
            transparent 56px,
            transparent 144px,
            rgba(0,0,0,.35) 150px,
            #000 156px,
            #000 100%
        ) !important;
        mask-image: linear-gradient(
            to bottom,
            #000 0,
            #000 44px,
            rgba(0,0,0,.35) 50px,
            transparent 56px,
            transparent 144px,
            rgba(0,0,0,.35) 150px,
            #000 156px,
            #000 100%
        ) !important;
    }
}
