/* ============================================================
   PF2026 — Décoration saisonnière (inc/seasonal.php)
   body.season-halloween : guirlande de chauves-souris et citrouilles, chapeau de sorcière,
   Pokémon Spectre qui passent la tête, silhouettes au-dessus du pied de page.
   body.season-noel : guirlande lumineuse, bonnet de Noël, neige, Cadoizo, congères.
   Contrainte : le fond du site reste clair. Rien n'est cliquable dans la couche décorative.
   Aucune transform / filter n'est posée sur .nav (repère du menu mobile, cf. header.php).
   ============================================================ */

body.season-halloween {
  --season-a: #F07C1A; --season-a-dark: #B4530A; --season-b: #6E3BB5; --season-ink: #2B2236;
  --season-soft: #FFF3E6; --season-soft-2: #F3ECFF;
}
body.season-noel {
  --season-a: #D62839; --season-a-dark: #9E1626; --season-b: #1F8A55; --season-ink: #173B2A;
  --season-soft: #FFF0F1; --season-soft-2: #ECF8F0;
}

/* ---------- Guirlande sous la barre de navigation ---------- */
.season-halloween .nav::after,
.season-noel .nav::after,
.season-noel .nav::before {
  content: ""; position: absolute; left: 0; right: 0; top: 100%; z-index: -1;
  pointer-events: none; background-repeat: repeat-x; background-position: 0 0;
}
.season-halloween .nav::after {
  height: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='40' viewBox='0 0 240 40'%3E%3Cpath d='M0 3 Q60 13 120 3 T240 3' fill='none' stroke='%233b2a4a' stroke-width='1.4'/%3E%3Cline x1='40' y1='8' x2='40' y2='15' stroke='%233b2a4a'/%3E%3Cpath d='M40 17c-3-3-7-4-12-2 3 1 4 3 4 5-2-1-4-1-6 0 4 1 8 3 10 6 1-2 2-3 4-3s3 1 4 3c2-3 6-5 10-6-2-1-4-1-6 0 0-2 1-4 4-5-5-2-9-1-12 2z' fill='%234a2d6b'/%3E%3Cline x1='120' y1='3' x2='120' y2='12' stroke='%233b2a4a'/%3E%3Cg transform='translate(120 22)'%3E%3Cellipse rx='9' ry='8' fill='%23f07c1a'/%3E%3Cellipse rx='4' ry='8' fill='%23ff9a3c'/%3E%3Crect x='-1.2' y='-11' width='2.4' height='4' rx='1' fill='%233f6b2a'/%3E%3Cpath d='M-5 -1l2.2-3 2.2 3zM.8 -1l2.2-3 2.2 3z' fill='%233b2a4a'/%3E%3Cpath d='M-4.5 3l1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5 1.5 1.5 1.5-1.5' stroke='%233b2a4a' stroke-width='1.1' fill='none'/%3E%3C/g%3E%3Cline x1='200' y1='6' x2='200' y2='27' stroke='%233b2a4a' stroke-width='.7'/%3E%3Cg transform='translate(200 30)' stroke='%232b2236' stroke-width='1.1' fill='none'%3E%3Cpath d='M-2 -1l-5 -4M-2 1h-6M-2 2l-5 4M2 -1l5 -4M2 1h6M2 2l5 4'/%3E%3Ccircle r='3.2' fill='%232b2236'/%3E%3C/g%3E%3C/svg%3E");
  animation: pf-season-sway 6s ease-in-out infinite alternate;
}
.season-noel .nav::after {
  height: 30px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='30' viewBox='0 0 180 30'%3E%3Cpath d='M0 6 Q45 16 90 6 T180 6' fill='none' stroke='%232d5a3c' stroke-width='1.6'/%3E%3Crect x='20' y='8.5' width='5' height='4' rx='1' fill='%232d5a3c'/%3E%3Cellipse cx='22.5' cy='17.5' rx='4' ry='6' fill='%23e0283c'/%3E%3Crect x='65' y='8.5' width='5' height='4' rx='1' fill='%232d5a3c'/%3E%3Cellipse cx='67.5' cy='17.5' rx='4' ry='6' fill='%23f2b705'/%3E%3Crect x='110' y='1.5' width='5' height='4' rx='1' fill='%232d5a3c'/%3E%3Cellipse cx='112.5' cy='10.5' rx='4' ry='6' fill='%231f9d55'/%3E%3Crect x='155' y='1.5' width='5' height='4' rx='1' fill='%232d5a3c'/%3E%3Cellipse cx='157.5' cy='10.5' rx='4' ry='6' fill='%232f7fe0'/%3E%3C/svg%3E");
}
/* Halo des ampoules qui scintille. */
.season-noel .nav::before {
  height: 30px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='30' viewBox='0 0 180 30'%3E%3Ccircle cx='22.5' cy='18' r='9' fill='%23ff5468' opacity='.35'/%3E%3Ccircle cx='67.5' cy='18' r='9' fill='%23ffd23f' opacity='.4'/%3E%3Ccircle cx='112.5' cy='11' r='9' fill='%2336d17f' opacity='.35'/%3E%3Ccircle cx='157.5' cy='11' r='9' fill='%2361a8ff' opacity='.35'/%3E%3C/svg%3E");
  animation: pf-season-twinkle 1.8s ease-in-out infinite alternate;
}
@keyframes pf-season-twinkle { from { opacity: .15; } to { opacity: 1; } }
@keyframes pf-season-sway { from { background-position: 0 0; } to { background-position: 12px 1px; } }

/* ---------- Chapeau sur le logo ---------- */
.season-halloween .nav-logo,
.season-noel .nav-logo { position: relative; }
.season-halloween .nav-logo::before,
.season-noel .nav-logo::before {
  content: ""; position: absolute; left: -8px; top: -12px; width: 31px; height: 26px;
  background-repeat: no-repeat; background-size: contain; transform: rotate(-16deg); pointer-events: none; z-index: 1;
}
.season-halloween .nav-logo::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='30' viewBox='0 0 36 30'%3E%3Cpath d='M2 25q16-6 32 0-16 6-32 0z' fill='%232b2236'/%3E%3Cpath d='M9 24 16 4q2-4 6-2l-3 3 4 19z' fill='%233b2a4a'/%3E%3Cpath d='M10.5 20.5q8-2.5 13 0l.6 2.5q-7-2.2-14.3 0z' fill='%23f07c1a'/%3E%3C/svg%3E");
}
.season-noel .nav-logo::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='30' viewBox='0 0 36 30'%3E%3Cpath d='M5 22Q8 6 20 4q8-1 11 9l-4 1q-3-5-7-3-6 3-7 11z' fill='%23d62839'/%3E%3Ccircle cx='30' cy='15' r='3.6' fill='%23fff' stroke='%23dfe3ea'/%3E%3Crect x='2' y='19' width='22' height='7' rx='3.5' fill='%23fff' stroke='%23dfe3ea'/%3E%3C/svg%3E");
}

/* ---------- Bandeau d'annonce ---------- */
.pf-season-bar {
  position: relative; z-index: 2; padding: 10px 0;
  background: linear-gradient(100deg, var(--season-soft), #FFFFFF 50%, var(--season-soft-2));
  border-bottom: 2px solid var(--season-a);
  color: var(--ink);
}
.pf-season-bar[hidden] { display: none; }
.pf-season-bar__inner { display: flex; align-items: center; gap: 14px; padding-top: 22px; }
.season-noel .pf-season-bar__inner { padding-top: 14px; }
.pf-season-bar__mons { display: flex; flex: 0 0 auto; }
.pf-season-bar__mons img {
  width: 48px; height: 48px; object-fit: contain; margin-right: -10px;
  filter: drop-shadow(0 3px 3px rgba(43, 34, 54, .2));
  animation: pf-season-bob 3.2s ease-in-out infinite; animation-delay: calc(var(--i) * -.9s);
}
@keyframes pf-season-bob { 50% { transform: translateY(-4px) rotate(-3deg); } }
.pf-season-bar__text { flex: 1; margin: 0; font-size: 14.5px; line-height: 1.45; padding-left: 10px; }
.pf-season-bar__text b { color: var(--season-a-dark); }
.pf-season-bar__links { display: flex; flex-wrap: wrap; gap: 8px; flex: 0 0 auto; }
.pf-season-bar__cta {
  display: inline-flex; align-items: center; padding: 7px 14px; border-radius: var(--r-full);
  background: var(--season-a); color: #fff; font-weight: 700; font-size: 13.5px; text-decoration: none; white-space: nowrap;
  transition: background .2s ease, transform .15s ease;
}
.pf-season-bar__cta + .pf-season-bar__cta { background: #fff; color: var(--season-a-dark); border: 2px solid var(--season-a); padding: 5px 12px; }
.pf-season-bar__cta:hover { background: var(--season-b); color: #fff; transform: translateY(-1px); }
.pf-season-bar__close {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; border: 0; background: rgba(43, 34, 54, .08);
  color: var(--ink); font-size: 18px; line-height: 1; cursor: pointer;
}
.pf-season-bar__close:hover { background: rgba(43, 34, 54, .16); }

/* ---------- Couche d'animations (non cliquable) ---------- */
.pf-season-fx { position: fixed; inset: 0; z-index: 150; pointer-events: none; overflow: hidden; }
.pf-season-fx img { position: absolute; display: block; height: auto; filter: drop-shadow(0 6px 8px rgba(43, 34, 54, .25)); }

/* Un Pokémon passe la tête depuis le bas de l'écran, de temps en temps. */
.pf-fx-peek { left: 18px; bottom: 0; width: 110px; transform: translateY(110%); animation: pf-fx-peek 26s ease-in-out infinite; animation-delay: 6s; }
.pf-fx-peek--right { left: auto; right: 18px; width: 96px; }
@keyframes pf-fx-peek {
  0%, 82%, 100% { transform: translateY(110%) rotate(0); }
  86%, 94% { transform: translateY(38%) rotate(-6deg); }
  90% { transform: translateY(34%) rotate(5deg); }
}

/* Un Pokémon traverse l'écran en flottant. */
.pf-fx-drift { top: 32%; left: 0; width: 80px; opacity: .92; transform: translateX(-140px); animation: pf-fx-drift 38s linear infinite; animation-delay: 12s; }
.pf-fx-drift--2 { top: 62%; width: 64px; animation-duration: 47s; animation-delay: 30s; animation-direction: reverse; }
@keyframes pf-fx-drift {
  0% { transform: translate(-140px, 0); }
  8% { transform: translate(calc(25vw - 70px), -26px); }
  16% { transform: translate(calc(50vw - 40px), 10px); }
  24% { transform: translate(calc(75vw - 20px), -18px); }
  32%, 100% { transform: translate(calc(100vw + 40px), 0); }
}
.pf-fx-drift--sled { top: 13%; width: 86px; animation-duration: 44s; animation-delay: 8s; }

/* Chauves-souris (Halloween). */
.pf-fx-bat {
  position: absolute; left: 0; width: 34px; height: 18px; opacity: .85;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='18' viewBox='0 0 34 18'%3E%3Cpath d='M17 5c-4-5-10-6-17-3 4 1 6 4 6 7-3-1-5-1-6 0 6 1 11 4 14 9 1-3 2-4 3-4s2 1 3 4c3-5 8-8 14-9-1-1-3-1-6 0 0-3 2-6 6-7-7-3-13-2-17 3z' fill='%233b2a4a'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translateX(-60px); animation: pf-fx-bat 24s linear infinite, pf-fx-flap .28s steps(2) infinite;
}
.pf-fx-bat--1 { top: 18%; animation-delay: 3s, 0s; }
.pf-fx-bat--2 { top: 24%; width: 26px; height: 14px; animation-delay: 4.2s, .1s; }
.pf-fx-bat--3 { top: 46%; width: 22px; height: 12px; animation-duration: 31s, .28s; animation-delay: 17s, .05s; }
@keyframes pf-fx-bat {
  0% { transform: translate(-60px, 0); }
  10% { transform: translate(30vw, -30px); }
  20% { transform: translate(60vw, 15px); }
  30%, 100% { transform: translate(calc(100vw + 60px), -20px); }
}
@keyframes pf-fx-flap { 50% { scale: 1 .55; } }

/* Neige (Noël) : flocons clairs bordés de bleu pour rester visibles sur le fond clair. */
.pf-flake {
  position: absolute; top: -12px; left: var(--x); width: var(--s); height: var(--s); border-radius: 50%;
  background: #fff; box-shadow: 0 0 0 1px rgba(120, 160, 205, .55), 0 0 6px rgba(140, 180, 225, .7);
  opacity: .9; animation: pf-fx-snow var(--d) linear infinite; animation-delay: var(--delay);
}
@keyframes pf-fx-snow {
  0% { transform: translate(0, -10px); }
  25% { transform: translate(var(--sway), 25vh); }
  50% { transform: translate(0, 50vh); }
  75% { transform: translate(calc(var(--sway) * -1), 75vh); }
  100% { transform: translate(0, 105vh); }
}

/* ---------- Au-dessus du pied de page ---------- */
.season-halloween .footer, .season-noel .footer { position: relative; }
.season-halloween .footer::before,
.season-noel .footer::before { content: ""; position: absolute; left: 0; right: 0; pointer-events: none; background-repeat: repeat-x; }
.season-halloween .footer::before {
  top: -46px; height: 48px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='48' viewBox='0 0 320 48'%3E%3Cpath d='M0 48V41q40-6 80 0t80 0 80 0 80 0V48z' fill='%230d0d1c'/%3E%3Cpath d='M30 42V26a9 9 0 0 1 18 0v16z' fill='%232b2236'/%3E%3Crect x='35' y='27' width='8' height='1.6' fill='%234a3c5c'/%3E%3Crect x='38.2' y='24' width='1.6' height='8' fill='%234a3c5c'/%3E%3Cg transform='translate(112 36)'%3E%3Cellipse rx='12' ry='9.5' fill='%23f07c1a'/%3E%3Cellipse rx='5' ry='9.5' fill='%23ff9a3c'/%3E%3Crect x='-1.5' y='-13' width='3' height='5' rx='1' fill='%233f6b2a'/%3E%3Cpath d='M-6 -2l3-3 3 3zM1 -2l3-3 3 3z' fill='%232b2236'/%3E%3Cpath d='M-6 3l2 2 2-2 2 2 2-2 2 2 2-2' stroke='%232b2236' stroke-width='1.4' fill='none'/%3E%3C/g%3E%3Cpath d='M200 42V30h4v-6h6v6h4v12z' fill='%232b2236'/%3E%3Cg transform='translate(272 39)'%3E%3Cellipse rx='8' ry='6.5' fill='%23f07c1a'/%3E%3Cellipse rx='3.5' ry='6.5' fill='%23ff9a3c'/%3E%3Crect x='-1' y='-9' width='2' height='3.5' fill='%233f6b2a'/%3E%3C/g%3E%3C/svg%3E");
}
.season-noel .footer::before {
  top: -1px; height: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='34' viewBox='0 0 300 34'%3E%3Cpath d='M0 0h300v14q-25 12-50 6t-50 4-50-6-50 8-50-6-50 4z' fill='%23ffffff'/%3E%3Cpath d='M0 0h300v8q-25 8-50 3t-50 3-50-4-50 5-50-4-50 3z' fill='%23eef4fb'/%3E%3C/svg%3E");
}

/* ---------- Petits écrans et accessibilité ---------- */
@media (max-width: 900px) {
  .season-halloween .nav::after { height: 32px; background-size: 192px 32px; }
  .season-noel .nav::after, .season-noel .nav::before { height: 24px; background-size: 144px 24px; }
  .pf-season-bar__inner { flex-wrap: wrap; gap: 8px 10px; padding-top: 18px; }
  .pf-season-bar__text { flex-basis: calc(100% - 140px); font-size: 13.5px; padding-left: 4px; }
  .pf-season-bar__mons img { width: 38px; height: 38px; }
  .pf-season-bar__links { order: 4; flex-basis: 100%; }
  .pf-season-bar__close { position: absolute; top: 18px; right: 12px; }
  .pf-season-bar { position: relative; }
  .pf-fx-peek { width: 76px; left: 8px; }
  .pf-fx-peek--right { width: 70px; right: 8px; }
  .pf-fx-drift { width: 58px; }
  .pf-fx-drift--2, .pf-fx-bat--3 { display: none; }
  .pf-flake:nth-child(n + 18) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .pf-season-fx { display: none; }
  .season-halloween .nav::after, .season-noel .nav::before, .pf-season-bar__mons img { animation: none; }
}
@media print {
  .pf-season-fx, .pf-season-bar { display: none !important; }
}
