.swipe-left,
.swipe-right {
  display: flex;
  justify-content: center;
  align-items: center;
  flex: 0 0 clamp(56px, 3.96vw, 76px);
  width: clamp(56px, 3.96vw, 76px);
  min-width: clamp(56px, 3.96vw, 76px);
}

.swipe-left {
  margin-left: clamp(14px, 3.5vw, 50px);
}

.swipe-right {
  margin-right: clamp(14px, 3.5vw, 50px);
}

.arrow {
  cursor: pointer;
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.arrow:hover circle {
  stroke: var(--button-red-200);
}

.arrow:hover path {
  fill: var(--button-red-200);
}

.align-center {
  align-items: center !important;
  display: flex !important;
}

.h-80 {
  height: 80% !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible {
  outline: 2px solid var(--button-black);
  outline-offset: 3px;
}

.footer a:focus-visible {
  outline-color: var(--text-white);
}

picture {
  display: contents;
}

/* The gallery "All photos" trigger is a <button> (opens the dialog); normalize the element defaults */
button#allPhotos {
  border: none;
  cursor: pointer;
  font-family: 'e-Ukraine Regular', Helvetica, sans-serif;
}

/* Reduced motion: near-instant transitions/animations, no smooth scroll, no carousel slide animation */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .swiper-wrapper {
    transition-duration: 0ms !important;
  }
}
