/* Small accessibility additions. All reference geometry lives in styles.css
   and layout.css; these rules do not change the default desktop composition. */

.skip-link {
  position: fixed;
  z-index: 10000;
  top: 12px;
  left: 12px;
  padding: 12px 18px;
  background: #6c5ce7;
  color: #ffffff;
  border-radius: 8px;
  transform: translateY(-180%);
}
.skip-link:focus { transform: translateY(0); }

:where(a, button, input, [tabindex]):focus-visible {
  outline: 2px solid #9586ff;
  outline-offset: 5px;
}

[data-swiper="viewport"]:focus-visible,
.swiper-group:focus-visible {
  outline-offset: 8px;
  border-radius: 12px;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Graceful fallback if an optional carousel dependency cannot initialize. */
[data-native-carousel] {
  overflow-x: auto !important;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
[data-native-carousel] > * { display: flex; }
[data-native-carousel] > * > * { scroll-snap-align: start; }

@media (pointer: coarse) {
  .swiper-btn::after {
    content: "";
    position: absolute;
    inset: -6px;
  }
  .swiper-btn { position: relative; }
}
