.product-tour {
  overflow: hidden;
  background: linear-gradient(180deg, #07100d, #0a1612);
}
.product-tour .section-head { margin-bottom: 2rem; }
.carousel { position: relative; }
.carousel-viewport {
  display: flex;
  gap: clamp(1rem, 2vw, 1.5rem);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  padding: .25rem max(0px, calc((100% - 1080px) / 2)) 1.5rem;
}
.carousel-viewport::-webkit-scrollbar { display: none; }
.carousel-viewport:focus-visible { outline: 2px solid var(--gold); outline-offset: 6px; }
.carousel-slide {
  flex: 0 0 min(86vw, 1080px);
  scroll-snap-align: center;
  padding: 0;
  overflow: hidden;
  border: 1px solid #294138;
  border-radius: 20px;
  background: #0d1b17;
  box-shadow: var(--shadow);
}
.carousel-slide img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  background: #101c18;
}
.carousel-image-link { display: block; background: #101c18; }
.carousel-slide-tall img { object-fit: contain; }
.carousel-slide figcaption {
  display: grid;
  grid-template-columns: minmax(220px, .7fr) minmax(280px, 1fr);
  gap: 1.5rem;
  padding: 1.2rem 1.4rem;
  border-top: 1px solid var(--line);
}
.carousel-slide figcaption strong { font-size: 1.05rem; color: var(--ink); }
.carousel-slide figcaption span { color: var(--muted); font-size: .9rem; }
.carousel-controls { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: .35rem; }
.carousel-button {
  min-height: 44px;
  padding: .65rem 1rem;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #10211b;
  color: var(--ink);
  font: 750 .85rem/1 Inter, ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
}
.carousel-button:hover, .carousel-button:focus-visible { border-color: var(--gold); color: var(--gold); }
.carousel-status { min-width: 4.5rem; text-align: center; color: var(--muted); font-size: .82rem; }
@media (max-width: 650px) {
  .carousel-slide { flex-basis: 92vw; }
  .carousel-slide figcaption { grid-template-columns: 1fr; gap: .35rem; padding: 1rem; }
  .carousel-controls { justify-content: space-between; }
  .carousel-button { padding: .65rem .8rem; }
}
@media (prefers-reduced-motion: reduce) { .carousel-viewport { scroll-behavior: auto; } }
