/*
 * FINAL V4.1.3 — Décorations saisonnières enrichies
 * Couche visuelle non interactive. Deux intensités : discrète et complète.
 * Réduction automatique sur mobile et respect de prefers-reduced-motion.
 */

.seasonal-decor{
    position:fixed;
    inset:0;
    z-index:95;
    overflow:hidden;
    pointer-events:none;
    user-select:none;
    contain:layout paint style;
}
.seasonal-corner{
    position:absolute;
    z-index:4;
    filter:drop-shadow(0 18px 30px rgba(0,0,0,.2));
}
.season-intensity-subtle .seasonal-extra{display:none!important}

/* -------------------- Saint-Jean / Fête nationale -------------------- */
.seasonal-decor--quebec{
    background:
        radial-gradient(circle at 7% 16%,rgba(0,61,165,.09),transparent 24%),
        radial-gradient(circle at 93% 20%,rgba(255,255,255,.08),transparent 22%);
}
.season-quebec .hero:before,.season-quebec .page-hero:after{
    filter:saturate(.94) brightness(1.02);
}
.season-quebec .site-header{
    box-shadow:0 1px 0 rgba(7,27,50,.08),0 7px 22px rgba(0,61,165,.13);
}
.season-quebec .button--accent{
    box-shadow:0 12px 28px rgba(255,214,0,.20),0 0 0 3px rgba(0,61,165,.08);
}
.seasonal-quebec-message{
    position:absolute;
    top:148px;
    right:4.5%;
    z-index:5;
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 14px;
    border:1px solid rgba(255,255,255,.34);
    border-radius:999px;
    background:rgba(0,61,165,.86);
    box-shadow:0 13px 30px rgba(0,31,88,.2),0 0 25px rgba(255,255,255,.08);
    color:#fff;
    font-size:.78rem;
    letter-spacing:.02em;
    backdrop-filter:blur(7px);
    animation:season-quebec-message 5.5s ease-in-out infinite;
}
.seasonal-quebec-message strong{font-size:.82rem;color:#fff}
.seasonal-quebec-flag{position:absolute;right:20px;bottom:18px;z-index:5;display:block;width:150px;height:auto;border:2px solid rgba(255,255,255,.88);border-radius:7px;box-shadow:0 13px 28px rgba(0,31,88,.28);transform:rotate(-2deg);transform-origin:100% 100%;animation:season-quebec-flag 5.8s ease-in-out infinite}
.seasonal-quebec-fleur{
    position:absolute;
    z-index:2;
    color:rgba(255,255,255,.88);
    font-style:normal;
    font-size:var(--fleur-size,24px);
    text-shadow:0 2px 8px rgba(0,61,165,.42),0 0 14px rgba(255,255,255,.25);
    animation:season-quebec-fleur var(--fleur-duration,6s) ease-in-out infinite;
    animation-delay:var(--fleur-delay,0s);
}
.seasonal-quebec-fleur--1{left:4%;top:23%;--fleur-size:27px;--fleur-delay:-1s}
.seasonal-quebec-fleur--2{right:5%;top:31%;--fleur-size:23px;--fleur-delay:-3.2s}
.seasonal-quebec-fleur--3{left:8%;top:57%;--fleur-size:20px;--fleur-delay:-4.5s}
.seasonal-quebec-fleur--4{right:12%;top:62%;--fleur-size:25px;--fleur-delay:-2.3s}
.seasonal-quebec-fleur--5{left:22%;top:18%;--fleur-size:18px;--fleur-delay:-5.1s}
.seasonal-quebec-fleur--6{right:27%;top:20%;--fleur-size:21px;--fleur-delay:-1.7s}
.seasonal-quebec-fleur--7{left:28%;top:69%;--fleur-size:17px;--fleur-delay:-3.8s}
.seasonal-quebec-fleur--8{right:31%;top:72%;--fleur-size:19px;--fleur-delay:-.8s}
.seasonal-quebec-fleur--9{left:46%;top:12%;--fleur-size:16px;--fleur-delay:-2.9s}
.seasonal-quebec-fleur--10{right:45%;top:80%;--fleur-size:18px;--fleur-delay:-4.2s}
.seasonal-quebec-confetti i{
    position:absolute;
    top:-25px;
    left:var(--qc-left,50%);
    width:var(--qc-w,7px);
    height:var(--qc-h,14px);
    border-radius:2px;
    background:var(--qc-color,#fff);
    box-shadow:0 0 5px rgba(255,255,255,.18);
    animation:season-confetti var(--qc-duration,12s) linear infinite;
    animation-delay:var(--qc-delay,-2s);
}
.seasonal-quebec-confetti i:nth-child(3n+1){--qc-color:#0b5fbd;border-radius:50%;--qc-w:8px;--qc-h:8px}
.seasonal-quebec-confetti i:nth-child(3n+2){--qc-color:#fff;--qc-w:5px;--qc-h:13px}
.seasonal-quebec-confetti i:nth-child(3n){--qc-color:#5aa9e6;--qc-w:9px;--qc-h:5px}
.seasonal-quebec-confetti--1{--qc-left:4%;--qc-duration:10s;--qc-delay:-2s}
.seasonal-quebec-confetti--2{--qc-left:10%;--qc-duration:13s;--qc-delay:-8s}
.seasonal-quebec-confetti--3{--qc-left:16%;--qc-duration:11s;--qc-delay:-4s}
.seasonal-quebec-confetti--4{--qc-left:22%;--qc-duration:14s;--qc-delay:-9s}
.seasonal-quebec-confetti--5{--qc-left:30%;--qc-duration:12s;--qc-delay:-5s}
.seasonal-quebec-confetti--6{--qc-left:39%;--qc-duration:15s;--qc-delay:-11s}
.seasonal-quebec-confetti--7{--qc-left:49%;--qc-duration:10s;--qc-delay:-6s}
.seasonal-quebec-confetti--8{--qc-left:58%;--qc-duration:13s;--qc-delay:-3s}
.seasonal-quebec-confetti--9{--qc-left:65%;--qc-duration:11s;--qc-delay:-8s}
.seasonal-quebec-confetti--10{--qc-left:71%;--qc-duration:14s;--qc-delay:-4s}
.seasonal-quebec-confetti--11{--qc-left:76%;--qc-duration:12s;--qc-delay:-10s}
.seasonal-quebec-confetti--12{--qc-left:81%;--qc-duration:15s;--qc-delay:-7s}
.seasonal-quebec-confetti--13{--qc-left:85%;--qc-duration:10s;--qc-delay:-5s}
.seasonal-quebec-confetti--14{--qc-left:89%;--qc-duration:13s;--qc-delay:-9s}
.seasonal-quebec-confetti--15{--qc-left:93%;--qc-duration:12s;--qc-delay:-1s}
.seasonal-quebec-confetti--16{--qc-left:96%;--qc-duration:15s;--qc-delay:-12s}
.seasonal-quebec-confetti--17{--qc-left:34%;--qc-duration:16s;--qc-delay:-13s}
.seasonal-quebec-confetti--18{--qc-left:68%;--qc-duration:14s;--qc-delay:-6s}
.seasonal-quebec-firework{
    position:absolute;
    z-index:1;
    width:116px;
    height:116px;
    animation:season-firework-pulse 5.6s ease-in-out infinite;
}
.seasonal-quebec-firework--1{top:150px;left:6%;animation-delay:-.4s}
.seasonal-quebec-firework--2{top:205px;right:8%;transform:scale(.8);animation-delay:-2.8s}
.seasonal-quebec-firework--3{top:390px;left:46%;transform:scale(.62);animation-delay:-4.3s}
.seasonal-quebec-firework i{
    position:absolute;
    top:50%;left:50%;
    width:4px;height:48px;
    border-radius:999px;
    background:linear-gradient(to top,transparent,#fff);
    transform-origin:50% 100%;
}
.seasonal-quebec-firework i:nth-child(1){transform:translate(-50%,-100%) rotate(0deg)}
.seasonal-quebec-firework i:nth-child(2){transform:translate(-50%,-100%) rotate(45deg);background:linear-gradient(to top,transparent,#4da3e3)}
.seasonal-quebec-firework i:nth-child(3){transform:translate(-50%,-100%) rotate(90deg)}
.seasonal-quebec-firework i:nth-child(4){transform:translate(-50%,-100%) rotate(135deg);background:linear-gradient(to top,transparent,#0b5fbd)}
.seasonal-quebec-firework i:nth-child(5){transform:translate(-50%,-100%) rotate(180deg)}
.seasonal-quebec-firework i:nth-child(6){transform:translate(-50%,-100%) rotate(225deg);background:linear-gradient(to top,transparent,#4da3e3)}
.seasonal-quebec-firework i:nth-child(7){transform:translate(-50%,-100%) rotate(270deg)}
.seasonal-quebec-firework i:nth-child(8){transform:translate(-50%,-100%) rotate(315deg);background:linear-gradient(to top,transparent,#0b5fbd)}

/* ------------------------------ Noël ------------------------------ */
.seasonal-decor--christmas:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 8% 19%,rgba(92,195,255,.06),transparent 22%),
        radial-gradient(circle at 91% 24%,rgba(255,214,0,.045),transparent 21%);
}
.seasonal-decor--christmas .seasonal-garland{
    position:absolute;
    inset:120px 0 auto;
    z-index:5;
    display:flex;
    height:23px;
    align-items:center;
    justify-content:space-around;
    padding-inline:1.5vw;
    border-top:5px solid #17683e;
    background:radial-gradient(ellipse at center,#2e9a61 0 40%,transparent 42%) 0 2px/25px 14px repeat-x;
    filter:drop-shadow(0 4px 5px rgba(0,0,0,.24));
}
.seasonal-garland i{
    position:relative;
    width:11px;
    height:15px;
    margin-top:17px;
    border-radius:50% 50% 48% 48%;
    background:#ffd600;
    box-shadow:0 0 9px currentColor,0 0 18px currentColor;
    color:#ffd600;
    animation:season-light 2.1s ease-in-out infinite alternate;
}
.seasonal-garland i:before{
    content:"";
    position:absolute;
    top:-4px;
    left:3px;
    width:5px;
    height:5px;
    border-radius:2px 2px 0 0;
    background:#244337;
}
.seasonal-garland i:nth-child(3n+1){background:#ef476f;color:#ef476f;animation-delay:-.7s}
.seasonal-garland i:nth-child(3n+2){background:#4cc9f0;color:#4cc9f0;animation-delay:-1.4s}
.seasonal-christmas-tree{
    right:18px;
    bottom:15px;
    width:128px;
    transform-origin:50% 100%;
    animation:season-tree-breathe 5.5s ease-in-out infinite;
}
.seasonal-tree-glow{
    position:absolute;
    right:-8px;
    bottom:-18px;
    width:175px;
    height:175px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,214,0,.19),rgba(31,157,85,.08) 42%,transparent 70%);
    filter:blur(3px);
    animation:season-glow 4.8s ease-in-out infinite;
}
.seasonal-gifts{
    position:absolute;
    right:92px;
    bottom:15px;
    z-index:5;
    display:flex;
    align-items:flex-end;
    gap:4px;
}
.seasonal-gifts i{
    position:relative;
    display:block;
    width:38px;
    height:31px;
    border-radius:4px;
    background:#0f7cbd;
    box-shadow:0 7px 14px rgba(0,0,0,.2);
    transform:rotate(-3deg);
}
.seasonal-gifts i:before,.seasonal-gifts i:after{content:"";position:absolute;background:#ffd600}
.seasonal-gifts i:before{left:16px;top:0;width:6px;height:100%}
.seasonal-gifts i:after{left:0;top:12px;width:100%;height:5px}
.seasonal-gifts i:nth-child(2){width:30px;height:25px;background:#e64c68;transform:rotate(4deg)}
.seasonal-gifts i:nth-child(3){width:24px;height:21px;background:#2c955d;transform:rotate(-6deg)}
.seasonal-christmas-branch{
    position:absolute;
    top:142px;
    z-index:2;
    width:165px;
    height:46px;
    opacity:.82;
    filter:drop-shadow(0 5px 6px rgba(0,0,0,.16));
}
.seasonal-christmas-branch:before{
    content:"";
    position:absolute;
    left:6px;
    right:6px;
    top:20px;
    height:7px;
    border-radius:99px;
    background:#17683e;
    transform:rotate(-7deg);
}
.seasonal-christmas-branch:after{
    content:"";
    position:absolute;
    inset:0;
    background:repeating-linear-gradient(160deg,transparent 0 8px,#268e57 9px 12px,transparent 13px 20px);
    opacity:.92;
}
.seasonal-christmas-branch--left{left:-20px;transform:rotate(10deg)}
.seasonal-christmas-branch--right{right:-20px;transform:scaleX(-1) rotate(10deg)}
.seasonal-christmas-branch i{
    position:absolute;
    z-index:3;
    width:12px;
    height:12px;
    border-radius:50%;
    background:#ffd600;
    box-shadow:0 0 10px rgba(255,214,0,.6);
}
.seasonal-christmas-branch i:nth-child(1){left:38px;top:11px}
.seasonal-christmas-branch i:nth-child(2){left:83px;top:24px;background:#ef476f}
.seasonal-christmas-branch i:nth-child(3){left:126px;top:8px;background:#4cc9f0}
.seasonal-snowcap{
    position:absolute;
    top:116px;
    width:220px;
    height:18px;
    opacity:.72;
    background:radial-gradient(ellipse at 18px 10px,#fff 0 11px,transparent 12px) 0 0/42px 18px repeat-x;
    filter:drop-shadow(0 4px 4px rgba(10,60,100,.1));
}
.seasonal-snowcap--left{left:0}.seasonal-snowcap--right{right:0}
.seasonal-snowflake{
    position:absolute;
    top:-10vh;
    left:var(--snow-left,50%);
    color:rgba(255,255,255,var(--snow-opacity,.82));
    font-style:normal;
    font-size:var(--snow-size,16px);
    text-shadow:0 2px 8px rgba(10,60,100,.28);
    animation:season-snow var(--snow-duration,16s) linear infinite;
    animation-delay:var(--snow-delay,-3s);
}
.season-christmas .hero:before,.season-christmas .page-hero:after{filter:saturate(.9) brightness(1.05)}
.season-christmas .site-header{box-shadow:0 1px 0 rgba(7,27,50,.08),0 5px 18px rgba(20,112,70,.12)}
.season-christmas .button--accent{box-shadow:0 12px 28px rgba(255,214,0,.22),0 0 0 3px rgba(24,134,78,.09);animation:season-button-twinkle 7s ease-in-out infinite}

/* ---------------------------- Halloween --------------------------- */
.seasonal-decor--halloween:before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 8% 10%,rgba(255,107,0,.13),transparent 22%),
        radial-gradient(circle at 91% 24%,rgba(121,52,179,.12),transparent 24%);
}
.season-halloween .hero,.season-halloween .page-hero{filter:saturate(.94)}
.season-halloween .hero:before{background:radial-gradient(circle,rgba(115,63,171,.26),transparent 68%)}
.seasonal-halloween-moon{
    position:absolute;
    top:168px;
    right:8%;
    z-index:0;
    width:190px;
    height:190px;
    border-radius:50%;
    opacity:.42;
    background:radial-gradient(circle at 40% 35%,#ffd99a 0 28%,#ffad45 57%,#d86d1b 100%);
    box-shadow:0 0 60px rgba(255,146,50,.32);
    animation:season-moon-glow 6s ease-in-out infinite;
}
.seasonal-halloween-moon:before,.seasonal-halloween-moon:after{
    content:"";
    position:absolute;
    border-radius:50%;
    background:rgba(150,79,26,.18);
}
.seasonal-halloween-moon:before{width:32px;height:32px;left:35px;top:55px}
.seasonal-halloween-moon:after{width:22px;height:22px;right:42px;top:32px}
.seasonal-web{position:absolute;top:120px;width:195px;opacity:.78}
.seasonal-web--left{left:0}.seasonal-web--right{right:0;transform:scaleX(-1)}
.seasonal-spider{
    position:absolute;
    top:120px;
    left:105px;
    z-index:4;
    width:30px;
    height:104px;
    border-left:1px solid rgba(223,230,239,.75);
    animation:season-spider 6s ease-in-out infinite;
}
.seasonal-spider:before{
    content:"";
    position:absolute;
    left:-10px;
    bottom:0;
    width:20px;
    height:24px;
    border-radius:50% 50% 45% 45%;
    background:#17151c;
    box-shadow:0 3px 7px rgba(0,0,0,.38);
}
.seasonal-spider:after{
    content:"";
    position:absolute;
    left:-15px;
    bottom:5px;
    width:30px;
    height:12px;
    border-top:2px solid #17151c;
    border-bottom:2px solid #17151c;
    transform:rotate(12deg);
}
.seasonal-pumpkin{right:20px;bottom:16px;width:126px}
.seasonal-pumpkin--small{right:105px;bottom:10px;width:74px;opacity:.94;filter:drop-shadow(0 0 18px rgba(255,111,0,.3))}
.seasonal-bat{
    position:absolute;
    z-index:2;
    width:64px;
    opacity:.9;
    filter:drop-shadow(0 4px 6px rgba(0,0,0,.3));
    animation:season-bat 5.8s ease-in-out infinite;
}
.seasonal-bat--1{top:18%;left:8%;width:50px;animation-delay:-1.4s}
.seasonal-bat--2{top:13%;right:17%;width:68px;animation-delay:-3.8s}
.seasonal-bat--3{top:35%;right:4%;width:42px;animation-delay:-.3s}
.seasonal-bat--4{top:28%;left:21%;width:38px;opacity:.58;animation-delay:-2.1s}
.seasonal-bat--5{top:44%;right:22%;width:50px;opacity:.62;animation-delay:-4.7s}
.seasonal-bat--6{top:22%;right:38%;width:34px;opacity:.5;animation-delay:-5.3s}
.seasonal-halloween-fog{
    position:absolute;
    left:-12%;
    right:-12%;
    bottom:-45px;
    height:180px;
    opacity:.19;
    filter:blur(11px);
}
.seasonal-halloween-fog i{
    position:absolute;
    width:54%;
    height:115px;
    border-radius:50%;
    background:radial-gradient(ellipse,#b9c1d1 0,rgba(177,186,204,.58) 35%,transparent 72%);
    animation:season-fog 14s ease-in-out infinite alternate;
}
.seasonal-halloween-fog i:nth-child(1){left:0;bottom:0}.seasonal-halloween-fog i:nth-child(2){left:32%;bottom:15px;animation-delay:-5s}.seasonal-halloween-fog i:nth-child(3){right:-5%;bottom:-5px;animation-delay:-9s}
.seasonal-halloween-stars i{
    position:absolute;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#ff9a2b;
    box-shadow:0 0 10px #ff7b00;
    animation:season-star-twinkle 3.4s ease-in-out infinite;
}
.seasonal-halloween-stars i:nth-child(1){left:13%;top:31%}.seasonal-halloween-stars i:nth-child(2){left:29%;top:17%;background:#a36ae2}.seasonal-halloween-stars i:nth-child(3){right:31%;top:29%}.seasonal-halloween-stars i:nth-child(4){right:14%;top:48%;background:#a36ae2}.seasonal-halloween-stars i:nth-child(5){left:45%;top:42%}.seasonal-halloween-stars i:nth-child(6){right:46%;top:18%;background:#a36ae2}
.season-halloween .site-header{box-shadow:0 1px 0 rgba(7,27,50,.08),0 7px 22px rgba(117,44,164,.14)}
.season-halloween .button--accent{background:#ff9b22;box-shadow:0 12px 28px rgba(255,121,0,.23)}

/* ------------------------- Jour de l'An --------------------------- */
.seasonal-decor--newyear{
    background:
        radial-gradient(circle at 8% 12%,rgba(255,214,0,.075),transparent 19%),
        radial-gradient(circle at 92% 15%,rgba(77,201,240,.065),transparent 22%);
}
.seasonal-newyear-message{
    position:absolute;
    top:148px;
    right:4.5%;
    z-index:4;
    display:flex;
    align-items:baseline;
    gap:8px;
    padding:8px 13px;
    border:1px solid rgba(255,214,0,.28);
    border-radius:999px;
    background:rgba(5,30,54,.72);
    box-shadow:0 12px 30px rgba(0,0,0,.16),0 0 24px rgba(255,214,0,.09);
    color:#fff;
    backdrop-filter:blur(7px);
    animation:season-newyear-message 6s ease-in-out infinite;
}
.seasonal-newyear-message span{font-size:.75rem;font-weight:750;letter-spacing:.04em}.seasonal-newyear-message strong{color:#ffd600;font-size:1.05rem}
.seasonal-firework{
    position:absolute;
    width:130px;
    height:130px;
    animation:season-firework-pulse 5.2s ease-in-out infinite;
}
.seasonal-firework--1{top:142px;left:5%;animation-delay:-.2s}
.seasonal-firework--2{top:195px;right:6%;transform:scale(.78);animation-delay:-2.6s}
.seasonal-firework--3{top:300px;left:42%;transform:scale(.62);animation-delay:-4.1s}
.seasonal-firework--4{top:410px;left:14%;transform:scale(.52);animation-delay:-1.5s}
.seasonal-firework--5{top:390px;right:20%;transform:scale(.58);animation-delay:-3.4s}
.seasonal-firework i{
    position:absolute;
    top:50%;left:50%;
    width:4px;height:55px;
    border-radius:999px;
    background:linear-gradient(to top,transparent,#ffd600);
    transform-origin:50% 100%;
}
.seasonal-firework i:nth-child(1){transform:translate(-50%,-100%) rotate(0deg)}
.seasonal-firework i:nth-child(2){transform:translate(-50%,-100%) rotate(45deg)}
.seasonal-firework i:nth-child(3){transform:translate(-50%,-100%) rotate(90deg)}
.seasonal-firework i:nth-child(4){transform:translate(-50%,-100%) rotate(135deg)}
.seasonal-firework i:nth-child(5){transform:translate(-50%,-100%) rotate(180deg)}
.seasonal-firework i:nth-child(6){transform:translate(-50%,-100%) rotate(225deg)}
.seasonal-firework i:nth-child(7){transform:translate(-50%,-100%) rotate(270deg)}
.seasonal-firework i:nth-child(8){transform:translate(-50%,-100%) rotate(315deg)}
.seasonal-firework--2 i:nth-child(odd),.seasonal-firework--4 i:nth-child(odd){background:linear-gradient(to top,transparent,#4cc9f0)}
.seasonal-firework--3 i:nth-child(even),.seasonal-firework--5 i:nth-child(even){background:linear-gradient(to top,transparent,#a78bfa)}
.seasonal-confetti i{
    position:absolute;
    top:-25px;
    width:var(--conf-w,7px);
    height:var(--conf-h,15px);
    border-radius:2px;
    background:var(--conf-color,#ffd600);
    animation:season-confetti var(--conf-duration,10s) linear infinite;
    animation-delay:var(--conf-delay,-2s);
    left:var(--conf-left,50%);
}
.seasonal-confetti i:nth-child(4n+1){--conf-color:#4cc9f0;border-radius:50%}
.seasonal-confetti i:nth-child(4n+2){--conf-color:#fff;--conf-w:5px;--conf-h:12px}
.seasonal-confetti i:nth-child(4n+3){--conf-color:#a78bfa;transform:rotate(45deg)}
.seasonal-streamers i{
    position:absolute;
    top:-45px;
    width:26px;
    height:80px;
    border:4px solid #ffd600;
    border-left-color:transparent;
    border-bottom-color:transparent;
    border-radius:50%;
    opacity:.82;
    animation:season-streamer 9s linear infinite;
}
.seasonal-streamers i:nth-child(1){left:17%;animation-delay:-1s}.seasonal-streamers i:nth-child(2){left:38%;border-color:#4cc9f0 transparent transparent #4cc9f0;animation-delay:-5s}.seasonal-streamers i:nth-child(3){right:31%;border-color:#a78bfa transparent transparent #a78bfa;animation-delay:-3s}.seasonal-streamers i:nth-child(4){right:12%;animation-delay:-7s}
.seasonal-newyear-sparkles i{
    position:absolute;
    width:6px;height:6px;
    background:#fff;
    transform:rotate(45deg);
    box-shadow:0 0 12px rgba(255,255,255,.9);
    animation:season-star-twinkle 2.8s ease-in-out infinite;
}
.seasonal-newyear-sparkles i:nth-child(1){top:21%;left:27%;background:#ffd600}.seasonal-newyear-sparkles i:nth-child(2){top:34%;left:61%;background:#4cc9f0}.seasonal-newyear-sparkles i:nth-child(3){top:17%;right:28%}.seasonal-newyear-sparkles i:nth-child(4){top:46%;right:8%;background:#ffd600}.seasonal-newyear-sparkles i:nth-child(5){top:52%;left:8%;background:#4cc9f0}.seasonal-newyear-sparkles i:nth-child(6){top:29%;left:49%}
.season-newyear .button--accent{box-shadow:0 12px 28px rgba(255,214,0,.22),0 0 0 4px rgba(76,201,240,.08);animation:season-button-twinkle 6s ease-in-out infinite}


/* ------------------------- Messages communs ------------------------- */
.seasonal-holiday-message{
    position:absolute;
    top:148px;
    right:4.5%;
    z-index:5;
    display:flex;
    align-items:center;
    gap:8px;
    padding:9px 14px;
    border:1px solid rgba(255,255,255,.3);
    border-radius:999px;
    color:#fff;
    font-size:.78rem;
    letter-spacing:.01em;
    box-shadow:0 13px 30px rgba(0,0,0,.18);
    backdrop-filter:blur(7px);
    animation:season-holiday-float 5.5s ease-in-out infinite;
}
.seasonal-holiday-message strong{color:inherit;font-size:.82rem}

/* ------------------------------ Pâques ------------------------------ */
.seasonal-decor--easter{
    background:
        radial-gradient(circle at 7% 18%,rgba(244,170,204,.10),transparent 24%),
        radial-gradient(circle at 93% 24%,rgba(149,216,203,.10),transparent 23%);
}
.season-easter .hero:before,.season-easter .page-hero:after{filter:saturate(.92) brightness(1.04)}
.season-easter .site-header{box-shadow:0 1px 0 rgba(7,27,50,.08),0 7px 22px rgba(184,117,160,.10)}
.seasonal-easter-message{background:rgba(120,79,136,.88);color:#fff7fb}
.seasonal-easter-eggs{
    position:absolute;right:18px;bottom:18px;z-index:5;display:flex;align-items:flex-end;gap:7px;
    padding:15px 18px 7px;border-radius:50% 50% 12px 12px;background:linear-gradient(to top,rgba(61,143,92,.28),transparent 65%);
}
.seasonal-easter-eggs i{
    position:relative;display:block;width:38px;height:50px;border-radius:52% 52% 47% 47%;
    background:linear-gradient(145deg,#f2a7c6,#e783af);box-shadow:0 10px 19px rgba(67,46,75,.18);transform:rotate(-6deg);
}
.seasonal-easter-eggs i:after{content:"";position:absolute;left:3px;right:3px;top:21px;height:7px;background:rgba(255,255,255,.65);transform:rotate(8deg)}
.seasonal-easter-eggs i:nth-child(2){height:57px;background:linear-gradient(145deg,#9bdccf,#66c4b3);transform:rotate(4deg)}
.seasonal-easter-eggs i:nth-child(3){width:34px;height:46px;background:linear-gradient(145deg,#ffd983,#f5b951);transform:rotate(9deg)}
.seasonal-easter-eggs i:nth-child(4){width:31px;height:43px;background:linear-gradient(145deg,#a8c9ff,#78a9ed);transform:rotate(-10deg)}
.seasonal-easter-eggs i:nth-child(5){width:29px;height:40px;background:linear-gradient(145deg,#d7b8ed,#b28bd1);transform:rotate(7deg)}
.seasonal-easter-bunny{position:absolute;right:115px;bottom:72px;z-index:4;width:78px;height:76px;opacity:.9;filter:drop-shadow(0 10px 15px rgba(0,0,0,.13))}
.seasonal-easter-bunny b{position:absolute;left:16px;bottom:0;width:48px;height:43px;border-radius:50%;background:#fff;color:transparent}
.seasonal-easter-bunny i{position:absolute;top:0;width:21px;height:51px;border-radius:60% 60% 45% 45%;background:#fff;transform:rotate(-10deg);transform-origin:50% 100%}
.seasonal-easter-bunny i:after{content:"";position:absolute;inset:8px 6px 13px;border-radius:50%;background:#f0b1cb}
.seasonal-easter-bunny i:nth-child(1){left:17px}.seasonal-easter-bunny i:nth-child(2){right:14px;transform:rotate(11deg)}
.seasonal-easter-petal{position:absolute;top:-20px;left:var(--petal-left,50%);width:11px;height:17px;border-radius:70% 30% 70% 30%;background:var(--petal-color,#f4a9c7);opacity:.8;animation:season-petal var(--petal-duration,13s) linear infinite;animation-delay:var(--petal-delay,-2s)}
.seasonal-easter-petal:nth-child(3n+1){--petal-color:#9bdccf}.seasonal-easter-petal:nth-child(3n+2){--petal-color:#ffd983}.seasonal-easter-petal:nth-child(3n){--petal-color:#c6afe3}
.seasonal-easter-petal--1{--petal-left:5%;--petal-duration:12s;--petal-delay:-2s}.seasonal-easter-petal--2{--petal-left:12%;--petal-duration:15s;--petal-delay:-8s}.seasonal-easter-petal--3{--petal-left:20%;--petal-duration:13s;--petal-delay:-5s}.seasonal-easter-petal--4{--petal-left:28%;--petal-duration:16s;--petal-delay:-11s}.seasonal-easter-petal--5{--petal-left:39%;--petal-duration:14s;--petal-delay:-7s}.seasonal-easter-petal--6{--petal-left:53%;--petal-duration:12s;--petal-delay:-9s}.seasonal-easter-petal--7{--petal-left:66%;--petal-duration:15s;--petal-delay:-3s}.seasonal-easter-petal--8{--petal-left:76%;--petal-duration:17s;--petal-delay:-10s}.seasonal-easter-petal--9{--petal-left:84%;--petal-duration:14s;--petal-delay:-6s}.seasonal-easter-petal--10{--petal-left:92%;--petal-duration:16s;--petal-delay:-12s}.seasonal-easter-petal--11{--petal-left:33%;--petal-duration:18s;--petal-delay:-13s}.seasonal-easter-petal--12{--petal-left:59%;--petal-duration:13s;--petal-delay:-1s}.seasonal-easter-petal--13{--petal-left:70%;--petal-duration:18s;--petal-delay:-14s}.seasonal-easter-petal--14{--petal-left:17%;--petal-duration:19s;--petal-delay:-15s}.seasonal-easter-petal--15{--petal-left:47%;--petal-duration:16s;--petal-delay:-4s}.seasonal-easter-petal--16{--petal-left:97%;--petal-duration:20s;--petal-delay:-16s}
.seasonal-easter-flowers i{position:absolute;color:#f3b74e;font-style:normal;font-size:24px;text-shadow:0 3px 9px rgba(104,78,30,.17);animation:season-easter-flower 4.8s ease-in-out infinite}
.seasonal-easter-flowers i:nth-child(1){left:4%;bottom:14%;color:#e88fb7}.seasonal-easter-flowers i:nth-child(2){left:11%;bottom:7%;color:#84cdbf;animation-delay:-2s}.seasonal-easter-flowers i:nth-child(3){right:16%;top:27%;color:#d4ad69;animation-delay:-3s}.seasonal-easter-flowers i:nth-child(4){right:4%;top:48%;color:#b797d1;animation-delay:-1s}

/* ------------------- Journée nationale des patriotes ------------------- */
.seasonal-decor--patriots{background:radial-gradient(circle at 7% 18%,rgba(40,111,72,.08),transparent 25%),radial-gradient(circle at 92% 22%,rgba(172,54,55,.08),transparent 24%)}
.season-patriots .hero:before,.season-patriots .page-hero:after{filter:saturate(.9) sepia(.04)}
.seasonal-patriots-message{background:rgba(46,73,57,.9);color:#fff}
.seasonal-patriots-flag{position:absolute;right:18px;bottom:18px;z-index:5;display:block;width:150px;height:auto;border:2px solid rgba(255,255,255,.88);border-radius:7px;box-shadow:0 14px 28px rgba(0,0,0,.22);transform:rotate(-2deg);transform-origin:100% 100%;animation:season-patriots-flag 6.2s ease-in-out infinite}
.seasonal-patriots-leaf{position:absolute;z-index:2;color:rgba(126,54,48,.78);font-style:normal;font-size:var(--pat-size,26px);filter:saturate(.72);animation:season-patriot-leaf 7s ease-in-out infinite;animation-delay:var(--pat-delay,0s)}
.seasonal-patriots-leaf--1{left:5%;top:24%;--pat-delay:-1s}.seasonal-patriots-leaf--2{right:5%;top:34%;--pat-size:22px;--pat-delay:-3s}.seasonal-patriots-leaf--3{left:10%;top:62%;--pat-size:19px;--pat-delay:-5s}.seasonal-patriots-leaf--4{right:14%;top:67%;--pat-size:24px;--pat-delay:-2s}.seasonal-patriots-leaf--5{left:28%;top:17%;--pat-size:17px;--pat-delay:-4s}.seasonal-patriots-leaf--6{right:31%;top:21%;--pat-size:18px;--pat-delay:-6s}.seasonal-patriots-leaf--7{left:34%;top:77%;--pat-size:18px;--pat-delay:-2.5s}.seasonal-patriots-leaf--8{right:38%;top:73%;--pat-size:16px;--pat-delay:-4.5s}.seasonal-patriots-leaf--9{left:47%;top:12%;--pat-size:16px;--pat-delay:-1.5s}.seasonal-patriots-leaf--10{right:46%;top:84%;--pat-size:18px;--pat-delay:-5.5s}
.seasonal-patriots-cockade{position:absolute;z-index:3;width:46px;height:46px;border-radius:50%;background:radial-gradient(circle,#f7f1df 0 26%,#9d3037 27% 48%,#2d6b45 49% 68%,transparent 69%);filter:drop-shadow(0 6px 8px rgba(0,0,0,.16));animation:season-cockade 7s ease-in-out infinite}
.seasonal-patriots-cockade--1{left:6%;bottom:18%}.seasonal-patriots-cockade--2{right:8%;top:24%;transform:scale(.78);animation-delay:-3s}
.seasonal-patriots-lantern{position:absolute;left:20px;bottom:18px;z-index:4;width:64px;height:88px;border:3px solid #293a31;border-radius:12px;background:radial-gradient(circle at 50% 55%,rgba(255,196,87,.62),rgba(255,196,87,.12) 48%,transparent 68%);box-shadow:0 0 25px rgba(255,176,58,.16)}
.seasonal-patriots-lantern:before{content:"";position:absolute;left:12px;right:12px;top:-18px;height:22px;border:3px solid #293a31;border-bottom:0;border-radius:22px 22px 0 0}.seasonal-patriots-lantern i{position:absolute;left:50%;bottom:17px;width:14px;height:26px;border-radius:50% 50% 45% 45%;background:#ffb33d;transform:translateX(-50%);box-shadow:0 0 16px #ffb33d}

/* --------------------------- Fête du Canada --------------------------- */
.seasonal-decor--canada{background:radial-gradient(circle at 7% 17%,rgba(214,35,49,.10),transparent 24%),radial-gradient(circle at 94% 25%,rgba(214,35,49,.07),transparent 22%)}
.season-canada .hero:before,.season-canada .page-hero:after{filter:saturate(.96) brightness(1.02)}
.season-canada .site-header{box-shadow:0 1px 0 rgba(7,27,50,.08),0 7px 22px rgba(214,35,49,.10)}
.seasonal-canada-message{background:rgba(176,25,38,.9);color:#fff}
.seasonal-canada-flag{position:absolute;right:18px;bottom:18px;z-index:5;display:block;width:150px;height:auto;border:2px solid rgba(255,255,255,.9);border-radius:7px;box-shadow:0 13px 28px rgba(115,20,25,.24);transform:rotate(-2deg);transform-origin:100% 100%;animation:season-canada-flag 5.8s ease-in-out infinite}
.seasonal-canada-leaf{position:absolute;z-index:2;font-style:normal;font-size:var(--ca-size,25px);filter:saturate(1.15);animation:season-canada-leaf var(--ca-duration,7s) ease-in-out infinite;animation-delay:var(--ca-delay,0s)}
.seasonal-canada-leaf--1{left:4%;top:23%;--ca-size:29px;--ca-delay:-1s}.seasonal-canada-leaf--2{right:4%;top:31%;--ca-size:23px;--ca-delay:-3s}.seasonal-canada-leaf--3{left:8%;top:58%;--ca-size:20px;--ca-delay:-5s}.seasonal-canada-leaf--4{right:12%;top:64%;--ca-size:27px;--ca-delay:-2s}.seasonal-canada-leaf--5{left:23%;top:17%;--ca-size:18px;--ca-delay:-4s}.seasonal-canada-leaf--6{right:27%;top:20%;--ca-size:19px;--ca-delay:-6s}.seasonal-canada-leaf--7{left:30%;top:70%;--ca-size:18px;--ca-delay:-1.7s}.seasonal-canada-leaf--8{right:33%;top:74%;--ca-size:20px;--ca-delay:-4.2s}.seasonal-canada-leaf--9{left:46%;top:12%;--ca-size:17px;--ca-delay:-2.8s}.seasonal-canada-leaf--10{right:46%;top:82%;--ca-size:17px;--ca-delay:-5.2s}.seasonal-canada-leaf--11{left:61%;top:28%;--ca-size:15px;--ca-delay:-3.2s}.seasonal-canada-leaf--12{right:61%;top:44%;--ca-size:16px;--ca-delay:-1.2s}.seasonal-canada-leaf--13{left:74%;top:51%;--ca-size:18px;--ca-delay:-4.9s}.seasonal-canada-leaf--14{right:76%;top:34%;--ca-size:15px;--ca-delay:-2.2s}
.seasonal-canada-confetti i{position:absolute;top:-25px;left:var(--cc-left,50%);width:7px;height:14px;border-radius:2px;background:#d71920;animation:season-confetti var(--cc-duration,12s) linear infinite;animation-delay:var(--cc-delay,-2s)}
.seasonal-canada-confetti i:nth-child(even){background:#fff;width:5px;height:11px}.seasonal-canada-confetti i:nth-child(3n){border-radius:50%;width:8px;height:8px}
.seasonal-canada-confetti--1{--cc-left:4%;--cc-duration:10s;--cc-delay:-4s}
.seasonal-canada-confetti--2{--cc-left:10%;--cc-duration:11s;--cc-delay:-7s}
.seasonal-canada-confetti--3{--cc-left:16%;--cc-duration:12s;--cc-delay:-10s}
.seasonal-canada-confetti--4{--cc-left:22%;--cc-duration:13s;--cc-delay:-13s}
.seasonal-canada-confetti--5{--cc-left:29%;--cc-duration:14s;--cc-delay:-3s}
.seasonal-canada-confetti--6{--cc-left:36%;--cc-duration:9s;--cc-delay:-6s}
.seasonal-canada-confetti--7{--cc-left:43%;--cc-duration:10s;--cc-delay:-9s}
.seasonal-canada-confetti--8{--cc-left:50%;--cc-duration:11s;--cc-delay:-12s}
.seasonal-canada-confetti--9{--cc-left:57%;--cc-duration:12s;--cc-delay:-2s}
.seasonal-canada-confetti--10{--cc-left:64%;--cc-duration:13s;--cc-delay:-5s}
.seasonal-canada-confetti--11{--cc-left:70%;--cc-duration:14s;--cc-delay:-8s}
.seasonal-canada-confetti--12{--cc-left:76%;--cc-duration:9s;--cc-delay:-11s}
.seasonal-canada-confetti--13{--cc-left:82%;--cc-duration:10s;--cc-delay:-1s}
.seasonal-canada-confetti--14{--cc-left:87%;--cc-duration:11s;--cc-delay:-4s}
.seasonal-canada-confetti--15{--cc-left:91%;--cc-duration:12s;--cc-delay:-7s}
.seasonal-canada-confetti--16{--cc-left:94%;--cc-duration:13s;--cc-delay:-10s}
.seasonal-canada-confetti--17{--cc-left:97%;--cc-duration:14s;--cc-delay:-13s}
.seasonal-canada-confetti--18{--cc-left:99%;--cc-duration:9s;--cc-delay:-3s}

.seasonal-canada-firework{position:absolute;z-index:1;width:112px;height:112px;animation:season-firework-pulse 5.5s ease-in-out infinite}.seasonal-canada-firework--1{top:152px;left:6%;animation-delay:-.5s}.seasonal-canada-firework--2{top:205px;right:7%;transform:scale(.8);animation-delay:-2.8s}.seasonal-canada-firework--3{top:390px;left:46%;transform:scale(.6);animation-delay:-4.2s}
.seasonal-canada-firework i{position:absolute;top:50%;left:50%;width:4px;height:48px;border-radius:999px;background:linear-gradient(to top,transparent,#d71920);transform-origin:50% 100%}.seasonal-canada-firework i:nth-child(1){transform:translate(-50%,-100%) rotate(0)}.seasonal-canada-firework i:nth-child(2){transform:translate(-50%,-100%) rotate(45deg);background:linear-gradient(to top,transparent,#fff)}.seasonal-canada-firework i:nth-child(3){transform:translate(-50%,-100%) rotate(90deg)}.seasonal-canada-firework i:nth-child(4){transform:translate(-50%,-100%) rotate(135deg);background:linear-gradient(to top,transparent,#fff)}.seasonal-canada-firework i:nth-child(5){transform:translate(-50%,-100%) rotate(180deg)}.seasonal-canada-firework i:nth-child(6){transform:translate(-50%,-100%) rotate(225deg);background:linear-gradient(to top,transparent,#fff)}.seasonal-canada-firework i:nth-child(7){transform:translate(-50%,-100%) rotate(270deg)}.seasonal-canada-firework i:nth-child(8){transform:translate(-50%,-100%) rotate(315deg);background:linear-gradient(to top,transparent,#fff)}

/* --------------------------- Fête du Travail --------------------------- */
.seasonal-decor--labour{background:radial-gradient(circle at 7% 18%,rgba(11,112,183,.08),transparent 24%),radial-gradient(circle at 93% 24%,rgba(255,214,0,.08),transparent 23%)}
.season-labour .hero:before,.season-labour .page-hero:after{filter:saturate(.94) brightness(1.02)}
.seasonal-labour-message{background:rgba(7,80,129,.9);color:#fff}
.seasonal-labour-gear{position:absolute;z-index:2;color:rgba(15,109,166,.72);font-style:normal;font-size:var(--gear-size,34px);text-shadow:0 4px 12px rgba(5,61,99,.16);animation:season-gear var(--gear-speed,15s) linear infinite}
.seasonal-labour-gear:nth-child(even){color:rgba(232,183,0,.76);animation-direction:reverse}
.seasonal-labour-gear--1{left:4%;top:22%;--gear-size:42px;--gear-speed:18s}.seasonal-labour-gear--2{right:5%;top:30%;--gear-size:35px;--gear-speed:14s}.seasonal-labour-gear--3{left:9%;top:61%;--gear-size:29px;--gear-speed:17s}.seasonal-labour-gear--4{right:13%;top:66%;--gear-size:39px;--gear-speed:20s}.seasonal-labour-gear--5{left:27%;top:16%;--gear-size:25px;--gear-speed:13s}.seasonal-labour-gear--6{right:28%;top:20%;--gear-size:28px;--gear-speed:16s}.seasonal-labour-gear--7{left:37%;top:76%;--gear-size:23px;--gear-speed:18s}.seasonal-labour-gear--8{right:41%;top:79%;--gear-size:25px;--gear-speed:15s}
.seasonal-labour-spark{position:absolute;top:-18px;left:var(--ls-left,50%);width:5px;height:15px;border-radius:3px;background:#ffd600;animation:season-confetti var(--ls-duration,13s) linear infinite;animation-delay:var(--ls-delay,-2s)}
.seasonal-labour-spark--1{--ls-left:5%;--ls-duration:11s;--ls-delay:-3s}
.seasonal-labour-spark--2{--ls-left:12%;--ls-duration:12s;--ls-delay:-5s}
.seasonal-labour-spark--3{--ls-left:20%;--ls-duration:13s;--ls-delay:-7s}
.seasonal-labour-spark--4{--ls-left:29%;--ls-duration:14s;--ls-delay:-9s}
.seasonal-labour-spark--5{--ls-left:38%;--ls-duration:15s;--ls-delay:-11s}
.seasonal-labour-spark--6{--ls-left:47%;--ls-duration:10s;--ls-delay:-1s}
.seasonal-labour-spark--7{--ls-left:56%;--ls-duration:11s;--ls-delay:-3s}
.seasonal-labour-spark--8{--ls-left:64%;--ls-duration:12s;--ls-delay:-5s}
.seasonal-labour-spark--9{--ls-left:72%;--ls-duration:13s;--ls-delay:-7s}
.seasonal-labour-spark--10{--ls-left:80%;--ls-duration:14s;--ls-delay:-9s}
.seasonal-labour-spark--11{--ls-left:87%;--ls-duration:15s;--ls-delay:-11s}
.seasonal-labour-spark--12{--ls-left:92%;--ls-duration:10s;--ls-delay:-1s}
.seasonal-labour-spark--13{--ls-left:96%;--ls-duration:11s;--ls-delay:-3s}
.seasonal-labour-spark--14{--ls-left:99%;--ls-duration:12s;--ls-delay:-5s}

.seasonal-labour-circuit{position:absolute;left:0;right:0;top:128px;height:42px;opacity:.28;background:linear-gradient(90deg,transparent 0 5%,#0b70b7 5% 16%,transparent 16% 22%,#ffd600 22% 39%,transparent 39% 48%,#0b70b7 48% 64%,transparent 64% 73%,#ffd600 73% 91%,transparent 91%);clip-path:polygon(0 46%,10% 46%,10% 26%,18% 26%,18% 62%,31% 62%,31% 40%,42% 40%,42% 72%,56% 72%,56% 31%,67% 31%,67% 55%,82% 55%,82% 35%,100% 35%,100% 50%,82% 50%,82% 70%,67% 70%,67% 46%,56% 46%,56% 87%,42% 87%,42% 55%,31% 55%,31% 77%,18% 77%,18% 41%,10% 41%,10% 61%,0 61%)}
.seasonal-labour-helmet{position:absolute;right:18px;bottom:12px;z-index:5;display:block;width:118px;height:auto;filter:drop-shadow(0 14px 28px rgba(5,61,99,.22));transform:rotate(-4deg);transform-origin:100% 100%;animation:season-labour-helmet 5.6s ease-in-out infinite}

/* ----------------------------- Motion ----------------------------- */

@keyframes season-holiday-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes season-petal{0%{transform:translate3d(0,-8vh,0) rotate(0);opacity:0}10%{opacity:.8}100%{transform:translate3d(42px,112vh,0) rotate(520deg);opacity:.08}}
@keyframes season-easter-flower{0%,100%{transform:translateY(0) rotate(-5deg);opacity:.55}50%{transform:translateY(-5px) rotate(5deg);opacity:.95}}
@keyframes season-patriots-flag{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-4px)}}
@keyframes season-labour-helmet{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-3px)}}
@keyframes season-patriot-leaf{0%,100%{transform:translateY(0) rotate(-8deg);opacity:.45}50%{transform:translateY(-7px) rotate(7deg);opacity:.86}}
@keyframes season-cockade{0%,100%{transform:rotate(-4deg) scale(.96)}50%{transform:rotate(4deg) scale(1.04)}}
@keyframes season-canada-flag{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-4px)}}
@keyframes season-canada-leaf{0%,100%{transform:translateY(0) rotate(-7deg);opacity:.52}50%{transform:translateY(-7px) rotate(8deg);opacity:.95}}
@keyframes season-gear{to{transform:rotate(360deg)}}

@keyframes season-quebec-message{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes season-quebec-flag{0%,100%{transform:rotate(-2deg) skewY(0deg)}50%{transform:rotate(-1deg) skewY(.8deg)}}
@keyframes season-quebec-fleur{0%,100%{opacity:.42;transform:translateY(0) rotate(-3deg) scale(.94)}50%{opacity:.95;transform:translateY(-7px) rotate(3deg) scale(1.05)}}
@keyframes season-light{from{opacity:.55;transform:translateY(0) scale(.92)}to{opacity:1;transform:translateY(1px) scale(1.08)}}
@keyframes season-snow{0%{transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0}10%{opacity:.9}100%{transform:translate3d(28px,112vh,0) rotate(420deg);opacity:.12}}
@keyframes season-tree-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.018)}}
@keyframes season-glow{0%,100%{opacity:.65;transform:scale(.93)}50%{opacity:1;transform:scale(1.07)}}
@keyframes season-button-twinkle{0%,82%,100%{filter:none}87%{filter:brightness(1.08)}90%{filter:none}94%{filter:brightness(1.06)}}
@keyframes season-bat{0%,100%{transform:translate3d(0,0,0) rotate(-4deg)}50%{transform:translate3d(16px,-9px,0) rotate(5deg)}}
@keyframes season-spider{0%,100%{transform:translateY(-5px)}50%{transform:translateY(15px)}}
@keyframes season-fog{0%{transform:translateX(-8%)}100%{transform:translateX(12%)}}
@keyframes season-moon-glow{0%,100%{box-shadow:0 0 45px rgba(255,146,50,.23)}50%{box-shadow:0 0 72px rgba(255,146,50,.38)}}
@keyframes season-star-twinkle{0%,100%{opacity:.25;transform:scale(.7) rotate(45deg)}50%{opacity:1;transform:scale(1.25) rotate(45deg)}}
@keyframes season-firework-pulse{0%,100%{opacity:0;scale:.7}15%{opacity:.12}32%{opacity:.95;scale:1}50%{opacity:.22;scale:1.08}65%{opacity:0}}
@keyframes season-confetti{0%{transform:translate3d(0,-8vh,0) rotate(0deg);opacity:0}8%{opacity:.95}100%{transform:translate3d(35px,112vh,0) rotate(740deg);opacity:.12}}
@keyframes season-streamer{0%{transform:translate3d(0,-10vh,0) rotate(0);opacity:0}10%{opacity:.85}100%{transform:translate3d(18px,112vh,0) rotate(520deg);opacity:.1}}
@keyframes season-newyear-message{0%,100%{transform:translateY(0);box-shadow:0 12px 30px rgba(0,0,0,.16),0 0 18px rgba(255,214,0,.07)}50%{transform:translateY(-3px);box-shadow:0 15px 34px rgba(0,0,0,.18),0 0 30px rgba(255,214,0,.13)}}

/* positions de neige */
.seasonal-snowflake--1{--snow-left:4%;--snow-size:19px;--snow-duration:13s;--snow-delay:-3s;--snow-opacity:0.88}
.seasonal-snowflake--2{--snow-left:10%;--snow-size:11px;--snow-duration:18s;--snow-delay:-8s;--snow-opacity:0.62}
.seasonal-snowflake--3{--snow-left:14%;--snow-size:13px;--snow-duration:17s;--snow-delay:-10s;--snow-opacity:0.7}
.seasonal-snowflake--4{--snow-left:20%;--snow-size:17px;--snow-duration:14s;--snow-delay:-2s;--snow-opacity:0.78}
.seasonal-snowflake--5{--snow-left:25%;--snow-size:22px;--snow-duration:15s;--snow-delay:-6s;--snow-opacity:0.9}
.seasonal-snowflake--6{--snow-left:31%;--snow-size:12px;--snow-duration:19s;--snow-delay:-11s;--snow-opacity:0.6}
.seasonal-snowflake--7{--snow-left:37%;--snow-size:15px;--snow-duration:19s;--snow-delay:-12s;--snow-opacity:0.7}
.seasonal-snowflake--8{--snow-left:43%;--snow-size:13px;--snow-duration:17s;--snow-delay:-4s;--snow-opacity:0.58}
.seasonal-snowflake--9{--snow-left:49%;--snow-size:18px;--snow-duration:16s;--snow-delay:-8s;--snow-opacity:0.82}
.seasonal-snowflake--10{--snow-left:55%;--snow-size:14px;--snow-duration:18s;--snow-delay:-13s;--snow-opacity:0.65}
.seasonal-snowflake--11{--snow-left:61%;--snow-size:12px;--snow-duration:18s;--snow-delay:-1s;--snow-opacity:0.62}
.seasonal-snowflake--12{--snow-left:67%;--snow-size:16px;--snow-duration:15s;--snow-delay:-7s;--snow-opacity:0.72}
.seasonal-snowflake--13{--snow-left:72%;--snow-size:21px;--snow-duration:14s;--snow-delay:-11s;--snow-opacity:0.86}
.seasonal-snowflake--14{--snow-left:77%;--snow-size:12px;--snow-duration:20s;--snow-delay:-15s;--snow-opacity:0.58}
.seasonal-snowflake--15{--snow-left:82%;--snow-size:14px;--snow-duration:20s;--snow-delay:-5s;--snow-opacity:0.66}
.seasonal-snowflake--16{--snow-left:87%;--snow-size:17px;--snow-duration:16s;--snow-delay:-9s;--snow-opacity:0.75}
.seasonal-snowflake--17{--snow-left:91%;--snow-size:18px;--snow-duration:16s;--snow-delay:-9s;--snow-opacity:0.8}
.seasonal-snowflake--18{--snow-left:95%;--snow-size:11px;--snow-duration:21s;--snow-delay:-14s;--snow-opacity:0.55}
.seasonal-snowflake--19{--snow-left:7%;--snow-size:15px;--snow-duration:18s;--snow-delay:-4s;--snow-opacity:0.62}
.seasonal-snowflake--20{--snow-left:18%;--snow-size:20px;--snow-duration:14s;--snow-delay:-10s;--snow-opacity:0.82}
.seasonal-snowflake--21{--snow-left:34%;--snow-size:12px;--snow-duration:22s;--snow-delay:-16s;--snow-opacity:0.56}
.seasonal-snowflake--22{--snow-left:58%;--snow-size:16px;--snow-duration:17s;--snow-delay:-6s;--snow-opacity:0.72}
.seasonal-snowflake--23{--snow-left:74%;--snow-size:18px;--snow-duration:15s;--snow-delay:-12s;--snow-opacity:0.76}
.seasonal-snowflake--24{--snow-left:97%;--snow-size:13px;--snow-duration:23s;--snow-delay:-18s;--snow-opacity:0.52}

/* positions de confettis */
.seasonal-confetti--1{--conf-left:4%;--conf-duration:9s;--conf-delay:-1s}
.seasonal-confetti--2{--conf-left:9%;--conf-duration:12s;--conf-delay:-5s}
.seasonal-confetti--3{--conf-left:12%;--conf-duration:11s;--conf-delay:-6s}
.seasonal-confetti--4{--conf-left:17%;--conf-duration:8s;--conf-delay:-3s}
.seasonal-confetti--5{--conf-left:21%;--conf-duration:10s;--conf-delay:-3s}
.seasonal-confetti--6{--conf-left:27%;--conf-duration:13s;--conf-delay:-9s}
.seasonal-confetti--7{--conf-left:32%;--conf-duration:12s;--conf-delay:-7s}
.seasonal-confetti--8{--conf-left:38%;--conf-duration:9s;--conf-delay:-5s}
.seasonal-confetti--9{--conf-left:43%;--conf-duration:10s;--conf-delay:-2s}
.seasonal-confetti--10{--conf-left:48%;--conf-duration:14s;--conf-delay:-8s}
.seasonal-confetti--11{--conf-left:52%;--conf-duration:11s;--conf-delay:-8s}
.seasonal-confetti--12{--conf-left:57%;--conf-duration:13s;--conf-delay:-4s}
.seasonal-confetti--13{--conf-left:61%;--conf-duration:9s;--conf-delay:-5s}
.seasonal-confetti--14{--conf-left:65%;--conf-duration:12s;--conf-delay:-10s}
.seasonal-confetti--15{--conf-left:69%;--conf-duration:15s;--conf-delay:-10s}
.seasonal-confetti--16{--conf-left:73%;--conf-duration:10s;--conf-delay:-6s}
.seasonal-confetti--17{--conf-left:76%;--conf-duration:11s;--conf-delay:-4s}
.seasonal-confetti--18{--conf-left:80%;--conf-duration:13s;--conf-delay:-9s}
.seasonal-confetti--19{--conf-left:84%;--conf-duration:12s;--conf-delay:-9s}
.seasonal-confetti--20{--conf-left:88%;--conf-duration:9s;--conf-delay:-3s}
.seasonal-confetti--21{--conf-left:91%;--conf-duration:14s;--conf-delay:-6s}
.seasonal-confetti--22{--conf-left:94%;--conf-duration:11s;--conf-delay:-11s}
.seasonal-confetti--23{--conf-left:97%;--conf-duration:16s;--conf-delay:-12s}
.seasonal-confetti--24{--conf-left:99%;--conf-duration:12s;--conf-delay:-7s}

/* Responsive : environ 50 % moins d'éléments sur téléphone. */
@media (max-width:860px){
    .seasonal-holiday-message{top:94px;right:10px}
    .seasonal-canada-flag,.seasonal-patriots-flag{width:112px;right:8px;bottom:72px}
    .seasonal-easter-eggs{right:7px;bottom:70px;transform:scale(.78);transform-origin:100% 100%}
    .seasonal-easter-bunny{right:74px;bottom:105px;transform:scale(.72);transform-origin:100% 100%}
    .seasonal-labour-helmet{width:86px;right:8px;bottom:66px}
    .seasonal-canada-firework{width:90px;height:90px}.seasonal-canada-firework i{height:37px}.seasonal-canada-firework--3{display:none}

    .seasonal-quebec-message{top:94px;right:10px}
    .seasonal-quebec-flag{width:112px;right:8px;bottom:72px}
    .seasonal-quebec-firework{width:90px;height:90px}.seasonal-quebec-firework i{height:37px}
    .seasonal-quebec-firework--3{display:none}
    .seasonal-decor--christmas .seasonal-garland{top:72px}
    .seasonal-christmas-branch,.seasonal-snowcap{top:88px}
    .seasonal-christmas-branch{width:120px;opacity:.62}
    .seasonal-web{top:72px;width:135px}
    .seasonal-spider{top:72px;left:72px;height:82px}
    .seasonal-halloween-moon{top:115px;right:4%;width:140px;height:140px}
    .seasonal-bat--1{top:14%;left:3%}.seasonal-bat--2{top:21%;right:4%}.seasonal-bat--3{display:none}
    .seasonal-bat--5,.seasonal-bat--6{display:none}
    .seasonal-christmas-tree,.seasonal-pumpkin--main{width:94px;right:8px;bottom:72px}
    .seasonal-pumpkin--small{width:57px;right:76px;bottom:70px}
    .seasonal-gifts{right:65px;bottom:72px;transform:scale(.8);transform-origin:100% 100%}
    .seasonal-tree-glow{right:-22px;bottom:48px;width:145px;height:145px}
    .seasonal-firework{width:96px;height:96px}.seasonal-firework i{height:40px}
    .seasonal-firework--3{left:38%}.seasonal-firework--4,.seasonal-firework--5{display:none}
    .seasonal-newyear-message{top:94px;right:10px}
    .seasonal-halloween-fog{height:130px}
}
@media (max-width:640px){
    .seasonal-easter-message,.seasonal-patriots-message,.seasonal-canada-message,.seasonal-labour-message{display:none!important}
    .seasonal-canada-flag,.seasonal-patriots-flag{width:92px;bottom:76px}
    .seasonal-easter-petal:nth-child(even),.seasonal-canada-confetti i:nth-child(even),.seasonal-labour-spark:nth-child(even){display:none}
    .seasonal-canada-leaf:nth-child(n+7),.seasonal-patriots-leaf:nth-child(n+5),.seasonal-labour-gear:nth-child(n+5){display:none}
    .seasonal-easter-eggs{transform:scale(.62);bottom:73px}.seasonal-easter-bunny{display:none!important}
    .seasonal-patriots-lantern,.seasonal-patriots-cockade,.seasonal-labour-circuit{display:none!important}
    .seasonal-labour-helmet{width:70px;bottom:73px;right:8px}
    .seasonal-canada-firework--2,.seasonal-canada-firework--3{display:none}

    .seasonal-quebec-message{display:none!important}
    .seasonal-quebec-flag{width:92px;bottom:76px}
    .seasonal-quebec-fleur:nth-child(n+5){display:none}
    .seasonal-quebec-confetti i:nth-child(even){display:none}
    .seasonal-quebec-firework--2,.seasonal-quebec-firework--3{display:none}
    .seasonal-garland i:nth-child(even){display:none}
    .seasonal-christmas-branch,.seasonal-snowcap,.seasonal-halloween-fog,.seasonal-newyear-message{display:none!important}
    .seasonal-snowflake:nth-child(2n){display:none}
    .seasonal-web{width:105px}
    .seasonal-spider{left:54px;height:66px}
    .seasonal-halloween-moon{top:100px;right:-28px;width:115px;height:115px;opacity:.3}
    .seasonal-bat--1,.seasonal-bat--4{display:none}
    .seasonal-bat--2{width:45px}
    .seasonal-christmas-tree,.seasonal-pumpkin--main{width:78px}
    .seasonal-pumpkin--small{width:46px;right:62px}
    .seasonal-gifts{right:55px;transform:scale(.64)}
    .seasonal-tree-glow{width:115px;height:115px}
    .seasonal-firework--1{top:82px;left:-12px}.seasonal-firework--2{top:112px;right:-15px}.seasonal-firework--3{display:none}
    .seasonal-confetti i:nth-child(even){display:none}
    .seasonal-streamers i:nth-child(n+3){display:none}
    .seasonal-newyear-sparkles i:nth-child(n+4){display:none}
}
@media (prefers-reduced-motion:reduce){
    .seasonal-easter-petal,.seasonal-canada-confetti i,.seasonal-canada-firework,.seasonal-labour-spark{display:none!important}
    .seasonal-easter-flowers i,.seasonal-patriots-leaf,.seasonal-canada-leaf,.seasonal-labour-gear{animation:none!important}

    .seasonal-quebec-confetti i,.seasonal-quebec-firework{display:none!important}
    .seasonal-quebec-fleur{animation:none!important;opacity:.55}
    .seasonal-decor *{animation:none!important}
    .seasonal-snowflake,.seasonal-confetti i,.seasonal-streamers,.seasonal-halloween-fog{display:none!important}
    .seasonal-firework--3,.seasonal-firework--4,.seasonal-firework--5{display:none!important}
    .seasonal-firework{opacity:.34}
    .seasonal-bat{opacity:.55}
}

/* Aperçu temporaire depuis l'administration */
.seasonal-preview-banner{
    position:fixed;
    left:50%;
    bottom:18px;
    z-index:120;
    display:flex;
    align-items:center;
    gap:7px;
    max-width:calc(100vw - 28px);
    padding:9px 12px;
    border:1px solid rgba(255,255,255,.22);
    border-radius:999px;
    background:rgba(5,29,52,.94);
    box-shadow:0 15px 38px rgba(0,0,0,.28);
    color:#d9e9f5;
    font-size:12px;
    backdrop-filter:blur(10px);
    transform:translateX(-50%);
}
.seasonal-preview-banner strong{color:#ffd600}
.seasonal-preview-banner a{margin-left:5px;color:#9ed9ff;font-weight:750;text-decoration:none}
.seasonal-preview-banner a:hover{text-decoration:underline}
@media(max-width:640px){.seasonal-preview-banner{bottom:76px;white-space:normal;border-radius:14px;flex-wrap:wrap;justify-content:center;text-align:center}}
