/* =====================================================================
   Seasonal theme - shared pieces (overlay layer + effects switch).
   Loaded only while a festival is active.
   ===================================================================== */

/* Click-through layer for moving decorations. Under the fixed navbar
   (Bootstrap .fixed-top is 1030) so menus are never covered. */
.bm-fx-layer {
  position: fixed; inset: 0; z-index: 1020;
  pointer-events: none; overflow: hidden;
}
.bm-fx-layer * { pointer-events: none; }

/* Visitor switched effects off: hide moving pieces, keep colours. */
.fx-off .bm-fx-layer,
.fx-off .bm-fx-motion { display: none !important; }

/* Effects on/off switch, bottom-left (scroll-to-top owns bottom-right). */
.bm-fx-toggle {
  position: fixed; left: 22px; bottom: 26px; z-index: 901;
  width: 48px; height: 48px; border-radius: 50%;
  display: grid; place-items: center; padding: 0;
  border: 1.5px solid var(--bm-border);
  background: var(--bm-card);
  box-shadow: var(--bm-shadow);
  cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}
.bm-fx-toggle:hover { transform: translateY(-3px) rotate(-8deg); box-shadow: var(--bm-shadow-lg); }
.bm-fx-toggle:focus-visible { outline: 3px solid var(--bm-blue); outline-offset: 3px; }
.bm-fx-toggle img { width: 30px; height: 30px; display: block; }
.bm-fx-toggle[aria-pressed="false"] img { filter: grayscale(1); opacity: .55; }

@media (max-width: 575px) {
  .bm-fx-toggle { left: 14px; bottom: 18px; width: 42px; height: 42px; }
  .bm-fx-toggle img { width: 26px; height: 26px; }
}

@media print {
  .bm-fx-layer, .bm-fx-toggle, .bm-fx-motion { display: none !important; }
}
