/* Local Splide core handles the track, loop clones and free dragging. */
.rail-title-row { min-width: 0; align-items: center; }
.rail-title-row > div:has(> h2) { flex: 0 0 auto; }
.rail-collapse { appearance: none; display: inline; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; letter-spacing: inherit; line-height: inherit; text-align: inherit; cursor: pointer; box-shadow: none; }
.rail-collapse:focus-visible { outline: 1px solid currentColor; outline-offset: 5px; border-radius: 2px; }
.competition-nav.splide {
  flex: 1 1 0;
  min-width: 0;
  height: 40px;
  margin-left: 12px;
  overflow: hidden;
  visibility: visible;
}
.competition-nav .splide__track { height: 40px; touch-action: pan-y; }
/* Keep fractional logo motion on two small compositor layers. Without this,
   RAF can report 60Hz while rasterized logos visibly advance in pixel steps.
   Splide upstream reference: github.com/Splidejs/splide/issues/1253 */
.competition-nav .splide__list { align-items: center; will-change: transform; }
.competition-nav .splide__slide { height: 40px; }
.competition-nav button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 4px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  cursor: pointer;
  opacity: 1;
  -webkit-tap-highlight-color: transparent;
}
.competition-nav button[aria-disabled="true"] { cursor: default; }
.competition-nav button:focus-visible { outline: 1px solid #dfd4b7; outline-offset: -2px; border-radius: 5px; }
.competition-nav img { display: block; width: auto; height: 30px; max-width: 32px; object-fit: contain; pointer-events: none; user-select: none; }
.competition-nav svg { display: block; max-height: 30px; max-width: 32px; overflow: hidden; pointer-events: none; }
.competition-nav .splide__track { cursor: grab; }
.competition-nav:active .splide__track { cursor: grabbing; }
