/* Keep document scrolling on the viewport. Hidden overflow on body creates a
   separate scroll container and prevents its sticky child following the viewport.
   Clip preserves horizontal overflow protection without a scroll container. */
html, body {
  overflow-x: clip;
  overflow-y: visible;
}

/* Shared site-wide header/ticker behaviour.
   One source of truth for the sticky announcement ticker + navigation wrapper. */
body > .sticky.top-0.z-50 {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 50 !important;
  width: 100%;
  align-self: stretch;
  flex-shrink: 0;
}

/* Preserve the same moving ticker behaviour on every page. */
body > .sticky.top-0.z-50 .ticker-wrapper {
  overflow: hidden;
  white-space: nowrap;
  width: 100%;
  box-sizing: border-box;
}
body > .sticky.top-0.z-50 .ticker-content {
  display: inline-block;
  padding-left: 100%;
  animation: site-header-ticker 80s linear infinite;
}
body > .sticky.top-0.z-50 .ticker-content:hover {
  animation-play-state: paused;
}
@keyframes site-header-ticker {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100%); }
}
@media (prefers-reduced-motion: reduce) {
  body > .sticky.top-0.z-50 .ticker-content {
    animation: none !important;
    padding-left: 0 !important;
    text-align: center;
    width: 100%;
  }
}
