/* Carousel container with smooth transition & perfect-fit slides */
.gr-opc-carousel { position: relative; }
.gr-opc-c-viewport { overflow: hidden; }
.gr-opc-c-track {
  display: flex;
  gap: 20px;
  will-change: transform;
  transform: translate3d(0,0,0);
  transition: transform 400ms ease;
  padding: 2px;
}
.gr-opc-c-slide { flex: 0 0 auto; box-sizing: border-box; }
.gr-opc-c-slide .gr-opc-card { height: 100%; }

/* Nav buttons 48x48 using sprite (left-right image combined) */
.gr-opc-c-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: 200% 100%;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.gr-opc-c-prev { left: -6px; background-image: url('./nav-sprite.png'); background-position: left center; }
.gr-opc-c-next { right: -6px; background-image: url('./nav-sprite.png'); background-position: right center; }

/* Square thumb inside carousel */
.gr-opc-carousel .gr-opc-thumb { aspect-ratio: 1 / 1; }
