/* The original three portrait frames, now a continuous ribbon. */
.wedding-carousel { position:relative; }
.wedding-carousel-viewport {
  overflow-x:auto; overflow-y:hidden; scrollbar-width:none;
  overscroll-behavior-x:contain; touch-action:pan-x pan-y;
  cursor:grab; scroll-behavior:auto;
}
.wedding-carousel-viewport::-webkit-scrollbar { display:none; }
.wedding-carousel-viewport:active { cursor:grabbing; }
.wedding-carousel-viewport:focus-visible { outline:2px solid var(--accent); outline-offset:7px; }
.wedding-carousel .gallery {
  display:flex; gap:22px; align-items:flex-start;
}
.wedding-carousel .gallery figure {
  flex:0 0 calc((100% - 44px) / 3); min-width:0; margin:0;
}
.wedding-carousel .carousel-frame {
  width:100%; aspect-ratio:2 / 3; max-height:620px;
  background:var(--paper); overflow:hidden;
}
.wedding-carousel .carousel-frame img {
  width:100%; height:100%; max-height:none; object-fit:contain;
  object-position:center; user-select:none; -webkit-user-drag:none;
}
.wedding-carousel .gallery figcaption {
  margin-top:13px; white-space:normal; overflow:visible; line-height:1.45; padding-bottom:4px;
}
.carousel-instructions {
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
@media (max-width:600px) {
  .wedding-carousel .gallery { gap:15px; }
  .wedding-carousel .gallery figure { flex-basis:calc((100% - 15px) / 2); }
}
