/* Bandeau d'annonce saisonnier. Composant generique + themes (.seasonal-banner--<theme>).
   Pour retirer : enabled=false dans content/banner.json (ou supprimer ce fichier,
   js/seasonal-banner.js, scripts/generate-banner.js et les blocs "banner" des pages). */
.seasonal-banner {
  --banner-bg: #3d3d3d; --banner-fg: #ffffff; --banner-accent: #ffffff;
  position: relative; z-index: 2147483001;
  background: var(--banner-bg); color: var(--banner-fg);
  font-family: 'Mulish', Helvetica, Arial, sans-serif; font-size: 14.5px; line-height: 1.45;
  padding: 12px 48px; text-align: center;
}
.seasonal-banner--noel { --banner-bg: #1f3d2b; --banner-fg: #f6ecd6; --banner-accent: #e0b04a; }
.seasonal-banner__inner { display: inline-flex; align-items: center; gap: 10px; max-width: 1100px; }
.seasonal-banner__icon { flex: none; width: 20px; height: 20px; color: var(--banner-accent); }
.seasonal-banner__text { margin: 0; }
.seasonal-banner__short { display: none; }
.seasonal-banner__link {
  color: var(--banner-accent); font-weight: 500; white-space: nowrap;
  text-decoration: underline; text-underline-offset: 3px;
}
.seasonal-banner__link:focus-visible, .seasonal-banner__close:focus-visible { outline: 2px solid var(--banner-accent); outline-offset: 2px; }
.seasonal-banner__close {
  position: absolute; top: 50%; right: 12px; transform: translateY(-50%);
  width: 32px; height: 32px; padding: 0; border: 0; background: transparent;
  color: var(--banner-fg); opacity: .8; cursor: pointer; display: flex; align-items: center; justify-content: center;
}
.seasonal-banner__close:hover { opacity: 1; }
.seasonal-banner__close svg { width: 16px; height: 16px; }

/* Le header du site est fixe : on le decale sous le bandeau, il remonte au scroll
   (--sb-offset est maintenu par js/seasonal-banner.js). */
html.has-seasonal-banner header { top: var(--sb-offset, 0px); }
html.has-seasonal-banner .mobile-nav { top: calc(67px + var(--sb-offset, 0px)); }

@media (max-width: 900px) {
  html.has-seasonal-banner .mobile-nav { top: calc(63px + var(--sb-offset, 0px)); }
}
@media (max-width: 640px) {
  .seasonal-banner { padding: 9px 38px 9px 14px; text-align: left; font-size: 13.5px; line-height: 1.4; }
  .seasonal-banner__long { display: none; }
  .seasonal-banner__short { display: inline; }
  .seasonal-banner__close { right: 4px; width: 30px; }
}
@media print { .seasonal-banner { display: none !important; } }
