@charset "UTF-8";
/**
 * Seasonal Menu - menu déroulant + décors (front office)
 * @author Philippe Guenez
 */

/* ============ Palettes ============ */
html[data-seasonal-effect="halloween"] {
  --sm-bg: #1b1021; --sm-bg2: #2e1739; --sm-text: #f5e6ff;
  --sm-accent: #ff7518; --sm-accent-text: #1b1021; --sm-border: #6b2fa0;
  --sm-glow: rgba(255,117,24,.35);
  --sm-topbar: linear-gradient(#ff7518,#ff7518) no-repeat top left / 100% 5px, radial-gradient(ellipse 5px 12px at 14px 0, #ff7518 0 80%, transparent 82%) repeat-x top left / 70px 24px, radial-gradient(ellipse 4px 8px at 46px 0, #ff7518 0 80%, transparent 82%) repeat-x top left / 70px 24px;
  --sm-icon: "🎃"; --sm-fall: #ff9a3c;
  --sm-deco: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><text y='30' font-size='28'>🎃</text></svg>") no-repeat right 10px top 10px / 32px 32px;
}
html[data-seasonal-effect="christmas"] {
  --sm-bg: #0f3d2e; --sm-bg2: #1a5a43; --sm-text: #ffffff;
  --sm-accent: #ffd54a; --sm-accent-text: #0f3d2e; --sm-border: #c8102e;
  --sm-glow: rgba(200,16,46,.35);
  --sm-topbar: repeating-linear-gradient(45deg,#ffffff 0 10px,#c8102e 10px 20px) no-repeat top left / 100% 6px, radial-gradient(ellipse 4px 13px at 12px 0, #dff3ff 0 80%, transparent 82%) repeat-x 0 6px / 38px 24px, radial-gradient(ellipse 3px 8px at 30px 0, #dff3ff 0 80%, transparent 82%) repeat-x 0 6px / 38px 24px;
  --sm-icon: "🎄"; --sm-fall: #ffffff;
  --sm-deco: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><text y='30' font-size='28'>🎄</text></svg>") no-repeat right 10px top 10px / 32px 32px;
}
html[data-seasonal-effect="blackfriday"] {
  --sm-bg: #0b0b0b; --sm-bg2: #1c1c1c; --sm-text: #ffffff;
  --sm-accent: #ffd400; --sm-accent-text: #000000; --sm-border: #ffd400;
  --sm-glow: rgba(255,212,0,.35);
  --sm-topbar: repeating-linear-gradient(135deg,#ffd400 0 12px,#000 12px 24px) no-repeat top left / 100% 6px;
  --sm-icon: "🔥"; --sm-fall: #ffd400;
  --sm-deco: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><text y='30' font-size='28'>🔥</text></svg>") no-repeat right 10px top 10px / 32px 32px;
}
html[data-seasonal-effect="sales"] {
  --sm-bg: #ffffff; --sm-bg2: #ffe9ec; --sm-text: #222222;
  --sm-accent: #e60023; --sm-accent-text: #ffffff; --sm-border: #e60023;
  --sm-glow: rgba(230,0,35,.25);
  --sm-topbar: repeating-linear-gradient(90deg,#e60023 0 18px,#ff6b81 18px 36px) no-repeat top left / 100% 5px;
  --sm-icon: "🏷️"; --sm-fall: #ff4d6a;
  --sm-deco: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40'><text y='30' font-size='28'>🏷️</text></svg>") no-repeat right 10px top 10px / 32px 32px;
}

/* ============ Menu déroulant ============ */
html[data-seasonal-menu] #_desktop_top_menu .sub-menu,
html[data-seasonal-menu] .top-menu .sub-menu,
html[data-seasonal-menu] .popover.sub-menu,
html[data-seasonal-menu] .ps-mainmenu .dropdown-menu,
html[data-seasonal-menu] header .dropdown-menu,
html[data-seasonal-menu] nav .dropdown-menu {
  background: var(--sm-deco), var(--sm-topbar), var(--sm-bg) !important;
  color: var(--sm-text) !important;
  border: 1px solid var(--sm-border) !important;
  box-shadow: 0 12px 28px var(--sm-glow);
  padding-top: 8px;
  animation: sm-reveal .35s ease-out backwards;
}
html[data-seasonal-menu] #_desktop_top_menu .sub-menu a,
html[data-seasonal-menu] .top-menu .sub-menu a,
html[data-seasonal-menu] .popover.sub-menu a,
html[data-seasonal-menu] .ps-mainmenu .dropdown-menu a,
html[data-seasonal-menu] header .dropdown-menu a,
html[data-seasonal-menu] nav .dropdown-menu a,
html[data-seasonal-menu] header .dropdown-item {
  color: var(--sm-text) !important;
  border-radius: 4px;
  transition: background-color .2s ease, color .2s ease, padding-left .2s ease;
}
html[data-seasonal-menu] #_desktop_top_menu .sub-menu a:hover,
html[data-seasonal-menu] #_desktop_top_menu .sub-menu a:focus,
html[data-seasonal-menu] .top-menu .sub-menu a:hover,
html[data-seasonal-menu] .popover.sub-menu a:hover,
html[data-seasonal-menu] .ps-mainmenu .dropdown-menu a:hover,
html[data-seasonal-menu] header .dropdown-menu a:hover,
html[data-seasonal-menu] nav .dropdown-menu a:hover,
html[data-seasonal-menu] header .dropdown-item:hover {
  background: var(--sm-accent) !important;
  color: var(--sm-accent-text) !important;
  padding-left: 10px;
  text-decoration: none;
}
html[data-seasonal-menu] #_desktop_top_menu .top-menu[data-depth="0"] > li > a {
  transition: color .2s ease, box-shadow .2s ease;
}
html[data-seasonal-menu] #_desktop_top_menu .top-menu[data-depth="0"] > li:hover > a,
html[data-seasonal-menu] #_desktop_top_menu .top-menu[data-depth="0"] > li > a:focus {
  color: var(--sm-accent) !important;
  box-shadow: inset 0 -3px 0 var(--sm-accent);
}

/* ============ Calque décors + pluie ============ */
.sm-layer {
  position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 9990;
}
.sm-decors { position: absolute; inset: 0; pointer-events: none; }
.sm-rain { position: absolute; left: 0; top: 0; pointer-events: none; }
.sm-decor { position: absolute; pointer-events: none; user-select: none; }

/* Toiles d'araignée */
.sm-web { top: 0; left: 0; width: min(22vw, 230px); }
.sm-web svg { display: block; width: 100%; height: auto; }
.sm-web.sm-right { left: auto; right: 0; transform: scaleX(-1); }

/* Araignées suspendues */
.sm-spider {
  top: var(--sm-clear, 0px); text-align: center; transform-origin: 50% 0;
  animation: sm-swing 3.6s ease-in-out infinite alternate;
}
.sm-spider.sm-d2 { animation-duration: 4.4s; animation-delay: -1.5s; }
.sm-spider i { display: block; width: 1px; height: var(--len, 100px); margin: 0 auto; background: rgba(230,230,230,.85); }
.sm-spider b { display: block; font-weight: normal; font-size: 28px; line-height: 1; margin-top: -3px; }

/* Chauves-souris */
.sm-bat { left: -60px; font-size: 28px; animation: sm-fly 22s linear infinite; }

/* Éléments en bas de page */
.sm-bottom { bottom: 0; font-size: clamp(48px, 6vw, 92px); line-height: 1; animation: sm-bob 4s ease-in-out infinite alternate; }
.sm-bl { left: 60px; }
.sm-br { right: 10px; animation-delay: -2s; }

/* Guirlande de Noël */
.sm-garland {
  top: 0; left: 0; right: 0; height: 26px;
  background:
    radial-gradient(circle at 15px 14px, #ff3b3b 0 5px, transparent 6px),
    radial-gradient(circle at 45px 14px, #ffd54a 0 5px, transparent 6px),
    radial-gradient(circle at 75px 14px, #4cd964 0 5px, transparent 6px),
    radial-gradient(circle at 105px 14px, #4aa8ff 0 5px, transparent 6px),
    linear-gradient(transparent 5px, rgba(30,30,30,.7) 5px 6px, transparent 6px);
  background-size: 120px 26px, 120px 26px, 120px 26px, 120px 26px, 100% 26px;
  background-repeat: repeat-x;
  animation: sm-twinkle 1.6s ease-in-out infinite alternate;
}

/* Bandeau d'angle (Black Friday / Soldes) */
.sm-ribbon { top: 0; right: 0; width: 150px; height: 150px; overflow: hidden; }
.sm-ribbon span {
  position: absolute; top: 34px; right: -44px; width: 200px; text-align: center;
  transform: rotate(45deg); background: var(--sm-accent); color: var(--sm-accent-text);
  font: 700 13px/26px Arial, sans-serif; letter-spacing: 1px; box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
.sm-stripe {
  left: 0; right: 0; bottom: 0; height: 8px;
  background: repeating-linear-gradient(135deg, var(--sm-accent) 0 12px, #000 12px 24px);
}

/* Bouton visiteur */
.sm-toggle {
  position: fixed; top: 12px; left: 12px; z-index: 2147483000; width: 42px; height: 42px; padding: 0;
  border-radius: 50%; border: 2px solid var(--sm-border); background: var(--sm-bg); color: var(--sm-text);
  font-size: 18px; line-height: 1; cursor: pointer; opacity: .75; pointer-events: auto;
  box-shadow: 0 2px 8px rgba(0,0,0,.25); transition: opacity .2s ease;
}
.sm-toggle:hover, .sm-toggle:focus { opacity: 1; }
.sm-toggle.sm-off { filter: grayscale(1); opacity: .5; }

/* ============ Animations ============ */
@keyframes sm-reveal { from { opacity: 0; clip-path: inset(0 0 100% 0); } to { opacity: 1; clip-path: inset(0 0 0 0); } }
@keyframes sm-swing  { from { transform: rotate(-7deg); } to { transform: rotate(7deg); } }
@keyframes sm-bob    { from { transform: translateY(0); } to { transform: translateY(-8px); } }
@keyframes sm-fly    { 0% { transform: translate(0,0); } 50% { transform: translate(60vw,-26px); } 100% { transform: translate(115vw,0); } }
@keyframes sm-twinkle { from { opacity: .55; } to { opacity: 1; } }

@media (max-width: 767px) {
  .sm-hide-m { display: none; }
  .sm-web { width: 90px; }
  .sm-ribbon { transform: scale(.7); transform-origin: top right; }
}
@media (prefers-reduced-motion: reduce) {
  html[data-seasonal-respect-motion] .sub-menu,
  html[data-seasonal-respect-motion] .dropdown-menu,
  html[data-seasonal-respect-motion] .sub-menu::before,
  html[data-seasonal-respect-motion] .dropdown-menu::before,
  html[data-seasonal-respect-motion] .sub-menu li,
  html[data-seasonal-respect-motion] .dropdown-menu li,
  html[data-seasonal-respect-motion] .sm-spider,
  html[data-seasonal-respect-motion] .sm-bottom,
  html[data-seasonal-respect-motion] .sm-garland { animation: none !important; }
  html[data-seasonal-respect-motion] .sm-bat { display: none; }
}

/* ============ Effets animés du menu (option « Effets animés du menu ») ============ */
html[data-seasonal-menu-fx] .popover.sub-menu,
html[data-seasonal-menu-fx] #_desktop_top_menu .sub-menu,
html[data-seasonal-menu-fx] .ps-mainmenu .dropdown-menu,
html[data-seasonal-menu-fx] header .dropdown-menu,
html[data-seasonal-menu-fx] nav .dropdown-menu {
  animation: sm-reveal .35s ease-out backwards, sm-glow 2.4s ease-in-out .4s infinite alternate;
}

/* Particules qui tombent dans le panneau */
html[data-seasonal-menu-fx] .popover.sub-menu::before,
html[data-seasonal-menu-fx] .ps-mainmenu .dropdown-menu::before,
html[data-seasonal-menu-fx] header .dropdown-menu::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55; z-index: 0;
  background:
    radial-gradient(circle, var(--sm-fall) 0 1.6px, transparent 2.2px) 0 0 / 40px 40px,
    radial-gradient(circle, var(--sm-fall) 0 1px, transparent 1.6px) 20px 20px / 30px 30px;
  animation: sm-menu-fall 6s linear infinite;
}

/* Apparition progressive des liens */
html[data-seasonal-menu-fx] .sub-menu li,
html[data-seasonal-menu-fx] .dropdown-menu li { animation: sm-item .35s ease-out backwards; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(1), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(1) { animation-delay: .06s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(2), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(2) { animation-delay: .10s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(3), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(3) { animation-delay: .14s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(4), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(4) { animation-delay: .18s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(5), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(5) { animation-delay: .22s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(6), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(6) { animation-delay: .26s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(7), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(7) { animation-delay: .30s; }
html[data-seasonal-menu-fx] .sub-menu li:nth-child(n+8), html[data-seasonal-menu-fx] .dropdown-menu li:nth-child(n+8) { animation-delay: .34s; }

/* Icône du thème devant le lien survolé */
html[data-seasonal-menu-fx] .sub-menu a:hover::before,
html[data-seasonal-menu-fx] .dropdown-menu a:hover::before,
html[data-seasonal-menu-fx] .dropdown-item:hover::before {
  content: var(--sm-icon); display: inline-block; margin-right: .4em; animation: sm-pop .3s ease-out;
}

/* Petite icône qui « saute » sur l'entrée de premier niveau survolée */
html[data-seasonal-menu-fx] #_desktop_top_menu .top-menu[data-depth="0"] > li > a { position: relative; }
html[data-seasonal-menu-fx] #_desktop_top_menu .top-menu[data-depth="0"] > li:hover > a::after,
html[data-seasonal-menu-fx] #_desktop_top_menu .top-menu[data-depth="0"] > li > a:focus::after {
  content: var(--sm-icon); position: absolute; top: -8px; right: -6px; font-size: 14px; line-height: 1;
  pointer-events: none; animation: sm-pop .3s ease-out;
}

@keyframes sm-glow { from { filter: drop-shadow(0 6px 8px var(--sm-glow)); } to { filter: drop-shadow(0 10px 20px var(--sm-glow)); } }
@keyframes sm-menu-fall { from { background-position: 0 0, 20px 20px; } to { background-position: 0 40px, 20px 50px; } }
@keyframes sm-item { from { opacity: 0; transform: translateX(-10px); } to { opacity: 1; transform: none; } }
@keyframes sm-pop { 0% { transform: scale(0) rotate(-30deg); } 70% { transform: scale(1.3) rotate(8deg); } 100% { transform: scale(1) rotate(0); } }

/* ============ v1.3.0 : décors de page supplémentaires ============ */
/* Fanions (Halloween) */
.sm-bunting {
  top: 0; left: 0; right: 0; height: 40px;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='150' height='40'><path d='M0 2 Q75 14 150 2' stroke='%23666' fill='none'/><path d='M8 5 L38 8 L22 34Z' fill='%23ff7518'/><path d='M58 9 L88 10 L73 36Z' fill='%236b2fa0'/><path d='M108 9 L138 6 L123 32Z' fill='%23222'/></svg>") repeat-x top left;
}
.sm-moon { top: 64px; right: 7%; font-size: 56px; line-height: 1; filter: drop-shadow(0 0 18px rgba(255,240,170,.85)); animation: sm-twinkle 5s ease-in-out infinite alternate; }
.sm-ghost { font-size: 34px; line-height: 1; animation: sm-ghost 15s ease-in-out infinite alternate; }
.sm-fog { left: 0; right: 0; bottom: 0; height: 90px; background: linear-gradient(to top, rgba(205,185,235,.4), transparent); animation: sm-twinkle 5s ease-in-out infinite alternate; }

/* Noël */
.sm-star { font-size: 20px; line-height: 1; animation: sm-twinkle 1.4s ease-in-out infinite alternate; }
.sm-sleigh { left: -140px; font-size: 44px; line-height: 1; white-space: nowrap; animation: sm-fly 30s linear infinite; }
.sm-snowbank {
  left: 0; right: 0; bottom: 0; height: 24px;
  background:
    radial-gradient(circle at 20px 26px, #fff 0 20px, transparent 21px) repeat-x 0 0 / 40px 26px,
    radial-gradient(circle at 6px 28px, #e6f2ff 0 14px, transparent 15px) repeat-x 0 0 / 28px 28px;
}

/* Étiquettes suspendues (Black Friday / Soldes) */
.sm-tag b {
  display: inline-block; padding: 4px 10px; margin-top: -2px; border-radius: 4px; font: 700 13px/1.2 Arial, sans-serif;
  background: var(--sm-accent); color: var(--sm-accent-text); box-shadow: 0 2px 6px rgba(0,0,0,.35);
}
.sm-stripe.sm-top { top: 0; bottom: auto; }

/* Ballons (Soldes) */
.sm-balloon { bottom: -70px; font-size: 38px; line-height: 1; animation: sm-rise 18s linear infinite; }

@keyframes sm-ghost { 0% { transform: translate(0,0); } 50% { transform: translate(30vw,-34px); } 100% { transform: translate(58vw,18px); } }
@keyframes sm-rise  { 0% { transform: translate(0,0); } 50% { transform: translate(22px,-60vh); } 100% { transform: translate(-12px,-120vh); } }

/* ============ v1.3.0 : décors dans les sous-menus ============ */
html[data-seasonal-menu-decor] { --sm-deco: linear-gradient(transparent, transparent); }

.sm-pd { position: absolute; inset: 0; pointer-events: none; overflow: hidden; z-index: 2; border-radius: inherit; }
.sm-pd > span { position: absolute; line-height: 1; font-size: 26px; opacity: .9; filter: drop-shadow(0 1px 2px rgba(0,0,0,.45)); }
.sm-pd .tl { top: 2px; left: 2px; }
.sm-pd .tr { top: 2px; right: 2px; }
.sm-pd .bl { bottom: 3px; left: 5px; }
.sm-pd .br { bottom: 3px; right: 6px; }
.sm-pd svg { display: block; width: 64px; height: 64px; }
.sm-pd .tr svg { transform: scaleX(-1); }
.sm-pd .sm-pct { font: 900 28px/1 Arial, sans-serif; color: var(--sm-accent); }
.sm-pd .sm-bob { animation: sm-bob 3s ease-in-out infinite alternate; }
html[data-seasonal-menu-decor] .sm-panel { padding-bottom: var(--sm-pad-sub, 26px); }
html[data-seasonal-menu-decor] .sm-bar { padding-bottom: var(--sm-pad-bar, 26px); }

/* Style du menu appliqué aussi aux sous-menus détectés automatiquement (tout thème) */
html[data-seasonal-menu] .sm-panel {
  background: var(--sm-deco), var(--sm-topbar), var(--sm-bg) !important;
  color: var(--sm-text) !important;
  border: 1px solid var(--sm-border) !important;
  box-shadow: 0 12px 28px var(--sm-glow);
  padding-top: 8px;
  animation: sm-reveal .35s ease-out backwards;
}
html[data-seasonal-menu] .sm-panel a { color: var(--sm-text) !important; border-radius: 4px; transition: background-color .2s ease, color .2s ease, padding-left .2s ease; }
html[data-seasonal-menu] .sm-panel a:hover, html[data-seasonal-menu] .sm-panel a:focus {
  background: var(--sm-accent) !important; color: var(--sm-accent-text) !important; padding-left: 10px; text-decoration: none;
}
html[data-seasonal-menu-fx] .sm-panel { animation: sm-reveal .35s ease-out backwards, sm-glow 2.4s ease-in-out .4s infinite alternate; }
html[data-seasonal-menu-fx] .sm-panel::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .55; z-index: 1;
  background:
    radial-gradient(circle, var(--sm-fall) 0 1.6px, transparent 2.2px) 0 0 / 40px 40px,
    radial-gradient(circle, var(--sm-fall) 0 1px, transparent 1.6px) 20px 20px / 30px 30px;
  animation: sm-menu-fall 6s linear infinite;
}
html[data-seasonal-menu-fx] .sm-panel li { animation: sm-item .35s ease-out backwards; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(1) { animation-delay: .06s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(2) { animation-delay: .10s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(3) { animation-delay: .14s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(4) { animation-delay: .18s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(5) { animation-delay: .22s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(6) { animation-delay: .26s; }
html[data-seasonal-menu-fx] .sm-panel li:nth-child(n+7) { animation-delay: .30s; }
html[data-seasonal-menu-fx] .sm-panel a:hover::before { content: var(--sm-icon); display: inline-block; margin-right: .4em; animation: sm-pop .3s ease-out; }
html[data-seasonal-respect-motion] .sm-panel, html[data-seasonal-respect-motion] .sm-panel::before { animation: none !important; }

@media (max-width: 767px) { .sm-pd { display: none; } }
@media (prefers-reduced-motion: reduce) {
  html[data-seasonal-respect-motion] .sm-ghost, html[data-seasonal-respect-motion] .sm-balloon,
  html[data-seasonal-respect-motion] .sm-sleigh, html[data-seasonal-respect-motion] .sm-moon,
  html[data-seasonal-respect-motion] .sm-star, html[data-seasonal-respect-motion] .sm-pd .sm-bob { animation: none !important; }
}

/* Position du bouton visiteur */
.sm-toggle.sm-pos-top-left     { top: 12px; left: 12px; right: auto; bottom: auto; }
.sm-toggle.sm-pos-top-right    { top: 12px; right: 12px; left: auto; bottom: auto; }
.sm-toggle.sm-pos-bottom-left  { bottom: 12px; left: 12px; top: auto; right: auto; }
.sm-toggle.sm-pos-bottom-right { bottom: 12px; right: 12px; top: auto; left: auto; }

/* ============ v1.4.0 ============ */
/* Bandeau haut dégagé : fanions / guirlande / bande du haut s'effacent au-dessus du texte du bandeau */
.sm-bunting, .sm-garland, .sm-stripe.sm-top {
  -webkit-mask-image: linear-gradient(90deg, #000 var(--sm-cl, 0px), transparent var(--sm-cl, 0px), transparent var(--sm-cr, 0px), #000 var(--sm-cr, 0px));
  mask-image: linear-gradient(90deg, #000 var(--sm-cl, 0px), transparent var(--sm-cl, 0px), transparent var(--sm-cr, 0px), #000 var(--sm-cr, 0px));
}

/* Hauteur du menu principal / des sous-menus (réglable dans la configuration) */
html[data-seasonal-menu] .sm-bar { box-sizing: border-box; }
html:not([data-seasonal-menu-decor]) .sm-pd { display: none; }

/* Image au-dessus de la barre de recherche (placée dans le body : jamais rognée par le thème) */
.sm-search-img {
  position: absolute; left: 0; top: 0; width: auto; max-width: none; margin: 0; padding: 0; border: 0;
  transform: translateX(-50%); pointer-events: none; z-index: 9000;
  animation: sm-floaty 4s ease-in-out infinite alternate;
}
@keyframes sm-floaty { from { transform: translateX(-50%) translateY(0); } to { transform: translateX(-50%) translateY(-5px); } }
@media (max-width: 767px) { .sm-search-img { display: none !important; } }

/* Décor animé sur le logo : tout reste DANS le cadre du logo (le bandeau haut reste dégagé) */
.sm-logo-deco { position: absolute; pointer-events: none; z-index: 4; overflow: hidden; }
.sm-logo-deco > * { position: absolute; display: block; margin: 0; }
.sm-logo-deco .sm-spider { top: 0; }
.lg-hat { width: clamp(48px, 17%, 104px); aspect-ratio: 1 / 1; left: 1%; top: 0; transform-origin: 20% 90%; animation: sm-wiggle 3s ease-in-out infinite alternate; }
.lg-hat svg { display: block; width: 100%; height: 100%; }
.lg-bat { top: 14%; left: -12%; font-size: 28px; line-height: 1; animation: lg-bat-x 8s linear infinite, lg-bat-y 1.3s ease-in-out infinite alternate; }
.lg-bat2 { top: 58%; font-size: 20px; animation: lg-bat-x2 11s linear -3s infinite, lg-bat-y 1.1s ease-in-out infinite alternate; }
.lg-spider { right: 8%; top: 0; text-align: center; transform-origin: 50% 0; animation: sm-swing 3.2s ease-in-out infinite alternate; }
.lg-spider i { display: block; width: 1px; height: 44px; margin: 0 auto; background: rgba(230,230,230,.9); }
.lg-spider b { display: block; font-weight: normal; font-size: 22px; line-height: 1; }
.lg-ghost { left: 36%; bottom: 6%; font-size: 30px; line-height: 1; animation: lg-float 3s ease-in-out infinite alternate; }
.lg-pumpkin { right: 2%; bottom: 2%; font-size: 36px; line-height: 1; filter: drop-shadow(0 0 8px rgba(255,117,24,.8)); animation: sm-bob 2.2s ease-in-out infinite alternate; }
.lg-flake { top: -15%; font-size: 20px; line-height: 1; animation: lg-flake 4.2s linear infinite; }
.lg-spark { font-size: 20px; line-height: 1; animation: sm-twinkle 1.1s ease-in-out infinite alternate; }
.lg-lights {
  left: 0; right: 0; bottom: 0; height: 16px;
  background:
    radial-gradient(circle at 12px 8px, #ff3b3b 0 4px, transparent 5px),
    radial-gradient(circle at 36px 8px, #ffd54a 0 4px, transparent 5px),
    radial-gradient(circle at 60px 8px, #4cd964 0 4px, transparent 5px),
    radial-gradient(circle at 84px 8px, #4aa8ff 0 4px, transparent 5px);
  background-size: 96px 16px; background-repeat: repeat-x; animation: sm-twinkle 1.4s ease-in-out infinite alternate;
}
.lg-shine {
  inset: 0; overflow: hidden;
  background: linear-gradient(115deg, transparent 35%, rgba(255,255,255,.75) 50%, transparent 65%) no-repeat 0 0 / 250% 100%;
  animation: sm-shine 3.6s ease-in-out infinite;
}
.lg-badge {
  right: 2%; bottom: 6%; padding: 4px 10px; border-radius: 4px; font: 700 16px/1 Arial, sans-serif;
  background: var(--sm-accent); color: var(--sm-accent-text); box-shadow: 0 2px 6px rgba(0,0,0,.35);
  transform: rotate(-8deg); animation: sm-badge 1.4s ease-in-out infinite alternate;
}
.lg-flame { left: 2%; bottom: 2%; font-size: 30px; line-height: 1; animation: sm-flame .5s ease-in-out infinite alternate; }
.lg-flame2 { left: 9%; font-size: 22px; animation-delay: -.25s; }
.lg-burst { right: 1%; top: 2%; width: clamp(44px, 16%, 92px); aspect-ratio: 1 / 1; animation: sm-burst 1.6s ease-in-out infinite alternate; }
.lg-burst svg { display: block; width: 100%; height: 100%; }

@keyframes lg-bat-x  { from { left: -12%; } to { left: 108%; } }
@keyframes lg-bat-x2 { from { left: 108%; } to { left: -12%; } }
@keyframes lg-bat-y  { from { transform: translateY(-8px) rotate(-8deg); } to { transform: translateY(10px) rotate(8deg); } }
@keyframes lg-float  { from { transform: translateY(0); } to { transform: translateY(-12px); } }
@keyframes lg-flake  { from { top: -15%; transform: translateX(0); } to { top: 105%; transform: translateX(14px); } }
@keyframes sm-wiggle { from { transform: rotate(-20deg); } to { transform: rotate(-9deg); } }
@keyframes sm-orbit {
  0%   { transform: translate(-60px, 0) rotate(-8deg); }
  25%  { transform: translate(0, -18px) rotate(6deg); }
  50%  { transform: translate(60px, 4px) rotate(-6deg); }
  75%  { transform: translate(0, 22px) rotate(8deg); }
  100% { transform: translate(-60px, 0) rotate(-8deg); }
}
@keyframes sm-shine { 0% { background-position: 0 0; } 60%, 100% { background-position: 100% 0; } }
@keyframes sm-badge { from { transform: rotate(-8deg) scale(1); } to { transform: rotate(-8deg) scale(1.12); } }
@keyframes sm-flame { from { transform: scale(1) rotate(-5deg); } to { transform: scale(1.18) rotate(5deg); } }
@keyframes sm-burst { from { transform: scale(1) rotate(-6deg); } to { transform: scale(1.12) rotate(6deg); } }

@media (prefers-reduced-motion: reduce) {
  html[data-seasonal-respect-motion] .sm-search-img, html[data-seasonal-respect-motion] .sm-logo-deco *,
  html[data-seasonal-respect-motion] .lg-hat, html[data-seasonal-respect-motion] .lg-bat { animation: none !important; }
}

/* ============ v1.5.0 : flèche animée + bulle « Désactiver les effets » ============ */
.sm-hint {
  position: fixed; z-index: 2147482999; display: flex; align-items: center; gap: 4px; height: 42px;
  cursor: pointer; opacity: 0; animation: sm-hint-in .5s ease-out 1.2s forwards;
}
.sm-hint-top-left { top: 12px; left: 60px; }
.sm-hint-bottom-left { bottom: 12px; left: 60px; }
.sm-hint-top-right { top: 12px; right: 60px; flex-direction: row-reverse; }
.sm-hint-bottom-right { bottom: 12px; right: 60px; flex-direction: row-reverse; }
.sm-hint-arrow { width: 34px; height: 22px; flex: none; color: var(--sm-accent); filter: drop-shadow(0 0 2px rgba(0,0,0,.7)); animation: sm-hint-nudge .7s ease-in-out infinite alternate; }
.sm-hint-top-right .sm-hint-arrow, .sm-hint-bottom-right .sm-hint-arrow { animation-name: sm-hint-nudge-r; }
.sm-hint-bubble {
  display: block; padding: 8px 14px; border-radius: 16px; background: var(--sm-accent); color: var(--sm-accent-text);
  font: 700 13px/1.2 Arial, sans-serif; max-width: calc(100vw - 130px); box-shadow: 0 3px 10px rgba(0,0,0,.35);
  animation: sm-hint-pulse 1.6s ease-in-out infinite alternate;
}
@keyframes sm-hint-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes sm-hint-nudge { from { transform: translateX(0); } to { transform: translateX(-9px); } }
@keyframes sm-hint-nudge-r { from { transform: scaleX(-1) translateX(0); } to { transform: scaleX(-1) translateX(-9px); } }
@keyframes sm-hint-pulse { from { transform: scale(1); } to { transform: scale(1.06); } }
.sm-hint-top-right .sm-hint-arrow, .sm-hint-bottom-right .sm-hint-arrow { transform: scaleX(-1); }

/* ============ v1.6.0 : désactivation GLOBALE par le bouton visiteur ============ */
html[data-seasonal-off] .sm-layer,
html[data-seasonal-off] .sm-logo-deco,
html[data-seasonal-off] .sm-search-img,
html[data-seasonal-off] .sm-pd,
html[data-seasonal-off] .sm-hint { display: none !important; }
html[data-seasonal-off] .sm-panel,
html[data-seasonal-off] .sm-panel::before { animation: none !important; }

.sm-hint-bubble { position: relative; padding-right: 30px; }
.sm-hint-x {
  position: absolute; right: 6px; top: 50%; width: 18px; height: 18px; margin-top: -9px; padding: 0; border: 0; border-radius: 50%;
  background: rgba(0,0,0,.18); color: inherit; font: 700 12px/18px Arial, sans-serif; text-align: center; cursor: pointer;
}
.sm-hint-x:hover { background: rgba(0,0,0,.35); }
.sm-hint { animation-delay: .4s; }

/* ============ v1.7.0 : la bulle reste visible même si les animations sont bloquées ============ */
.sm-hint { opacity: 1; animation: sm-hint-in .5s ease-out .2s backwards; }
.sm-toggle.sm-off { filter: grayscale(1); opacity: .55; }
