/* Orientation-aware gallery carousel shared by org, event, and course views. */

.hero-carousel .carousel-item {
  height: 480px;
  background: #171a1f;
}

.gallery-carousel-slide {
  width: 100%;
  height: 100%;
  min-height: 0;
  background:
    radial-gradient(circle at 18% 12%, rgba(255, 255, 255, .12), transparent 28%),
    linear-gradient(135deg, #20242a 0%, #101216 100%);
  overflow: hidden;
}

.gallery-carousel-slide__track {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 1.8vw, 22px);
  padding: clamp(12px, 2vw, 28px);
}

.gallery-carousel-slide__photo {
  height: 100%;
  min-width: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 8px;
  background: rgba(255, 255, 255, .07);
  box-shadow: 0 18px 50px rgba(0, 0, 0, .32);
}

.gallery-carousel-slide__photo img,
.hero-carousel .carousel-item .gallery-carousel-slide__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.gallery-carousel-slide__photo--landscape,
.gallery-carousel-slide__photo--panorama {
  width: min(100%, 1180px);
}

.gallery-carousel-slide__photo--portrait {
  width: min(29%, 340px);
}

.gallery-carousel-slide--portrait .gallery-carousel-slide__photo--portrait {
  width: min(34%, 390px);
}

.gallery-carousel-slide--portrait-pair .gallery-carousel-slide__photo--portrait {
  width: min(38%, 430px);
}

.gallery-carousel-slide--square-pair .gallery-carousel-slide__photo--squareish,
.gallery-carousel-slide__photo--squareish {
  width: min(44%, 520px);
}

.gallery-carousel-slide--course {
  border-radius: var(--radius-lg);
}

.gallery-carousel-slide--course .gallery-carousel-slide__track {
  padding: clamp(10px, 1.5vw, 20px);
}

.gallery-carousel-slide--course .gallery-carousel-slide__photo {
  box-shadow: 0 14px 38px rgba(0, 0, 0, .28);
}

.cv-carousel .gallery-carousel-slide,
.cv-carousel .gallery-carousel-slide__track {
  position: absolute;
  inset: 0;
}

@media (max-width: 767.98px) {
  .hero-carousel .carousel-item {
    height: 320px;
  }

  .gallery-carousel-slide__track {
    gap: 10px;
    padding: 12px;
  }

  .gallery-carousel-slide__photo--portrait {
    width: 31%;
  }

  .gallery-carousel-slide--portrait .gallery-carousel-slide__photo--portrait {
    width: min(64%, 230px);
  }

  .gallery-carousel-slide--portrait-pair .gallery-carousel-slide__photo--portrait {
    width: 45%;
  }

  .gallery-carousel-slide--square-pair .gallery-carousel-slide__photo--squareish {
    width: 48%;
  }
}

@media (max-width: 480px) {
  .gallery-carousel-slide--portrait-triptych .gallery-carousel-slide__track {
    justify-content: flex-start;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
  }

  .gallery-carousel-slide--portrait-triptych .gallery-carousel-slide__photo--portrait {
    width: 68%;
    flex: 0 0 68%;
    scroll-snap-align: center;
  }

  .gallery-carousel-slide--portrait-pair .gallery-carousel-slide__photo--portrait {
    width: 48%;
  }
}
