.banner-grid {
  display: flex;
  align-items: flex-start;
  width: 100%;
}

.banner-grid__item {
  flex: 1 1 0;
  min-width: 0;
  padding: 0 2px;
}

.banner-grid--slots-4 .banner-grid__item {
  flex: 0 0 25%;
  max-width: 25%;
}

.banner-grid__frame {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f8f9fa;
  overflow: hidden;
  aspect-ratio: 2 / 3;
}

.banner-grid--slots-1 .banner-grid__frame {
  aspect-ratio: 21 / 9;
}

.banner-grid,
.banner-grid *,
.banner-marquee,
.banner-marquee * {
  pointer-events: auto !important;
}

.banner-grid__frame img {
  pointer-events: none !important;
}

.banner-grid__item,
.banner-marquee__item {
  pointer-events: auto;
}

.banner-grid__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  appearance: none;
  -webkit-appearance: none;
  pointer-events: auto;
}

.banner-grid__link:focus-visible {
  outline: 2px solid #d87c08;
  outline-offset: 2px;
}

.banner-grid__frame img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
}

@media (max-width: 767.98px) {
  .banner-grid__frame {
    aspect-ratio: 3 / 4;
  }

  .banner-grid--slots-1 .banner-grid__frame {
    aspect-ratio: 16 / 9;
  }
}

/* Marquee: tinggi seragam, lebar mengikuti proporsi gambar */
.banner-marquee {
  overflow: hidden;
  width: 100%;
  --banner-marquee-height: 220px;
}

@media (min-width: 768px) {
  .banner-marquee {
    --banner-marquee-height: 280px;
  }
}

.banner-marquee__track {
  display: flex;
  align-items: center;
  width: max-content;
  will-change: transform;
  animation: bannerMarqueeScroll 40s linear infinite;
}

.banner-marquee:hover .banner-marquee__track {
  animation-play-state: paused;
}

.banner-marquee__item {
  flex: 0 0 auto;
  height: var(--banner-marquee-height);
  padding: 0 6px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
}

.banner-marquee .banner-grid__frame {
  height: 100%;
  width: auto;
  aspect-ratio: unset;
  background-color: transparent;
}

.banner-marquee .banner-grid__link {
  height: 100%;
  width: auto;
}

.banner-marquee .banner-grid__frame img {
  display: block;
  height: 100%;
  width: auto;
  max-height: var(--banner-marquee-height);
  object-fit: contain;
  object-position: center;
}

@keyframes bannerMarqueeScroll {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

.banner-tobii-link {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1400;
  box-shadow: 0 8px 24px rgba(33, 37, 41, 0.18);
}

@media (max-width: 575.98px) {
  .banner-tobii-link {
    right: 0.75rem;
    bottom: 0.75rem;
  }
}

/* Gambar tinggi/infografis tetap terbaca di lightbox Tobii */
.tobii__slide figure,
.tobii__slide img {
  max-height: 90vh;
  width: auto;
  max-width: 90vw;
  object-fit: contain;
}

/* Preview banner: tanpa judul & tanpa counter */
body.tobii-is-open .tobii__counter,
body.tobii-is-open .tobii__caption {
  display: none !important;
}

body.tobii-is-open .tobii__btn--previous,
body.tobii-is-open .tobii__btn--next {
  display: none !important;
}
