.swiper {
  position: relative;
  margin-top: 2em;
  margin-bottom: 2em;
}

.swiper-wrapper {
  aspect-ratio: 4 / 3;
}

.swiper-slide {
  width: 100%;
  height: 100%;
}

.img-wrapper {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.img-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: object-fit 0.3s;
  opacity: 0;
  transition: opacity 0.6s;
}

.img-wrapper.is-portrait img {
  width: auto;
  height: 100%;
  object-fit: contain;
}

.img-wrapper.is-landscape img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.img-wrapper img.is-loaded {
  opacity: 1;
}

.swiper-nav {
  display: flex;
  justify-content: center;
  gap: 2em;
  margin-top: 2.2em;
  margin-bottom: 2em;
}

.swiper-button-next,
.swiper-button-prev {
  position: static !important;
  width: 12px;
  height: 12px;
  color: var(--chorus-dark-gray);
}

.swiper-button-next:hover,
.swiper-button-prev:hover {
  color: var(--chorus-color-accent-light);
}

.swiper-button-prev {
  right: calc(50% + 0.25em) !important;
  left: auto;
}

.swiper-button-next {
  left: calc(50% + 0.25em) !important;
  right: auto;
  transform: rotate(180deg);
}

@media screen and (max-width: 450px) {
  .swiper-nav {
    margin-top: 2.25em;
  }

  .swiper-button-next,
  .swiper-button-prev {
    width: 9px;
    height: 9px;
  }
}
