/* A quiet, swipeable sequence for uploaded invitation photographs. */
body .invitation-carousel {
  box-sizing: border-box;
  position: relative;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: center;
  justify-content: flex-start !important;
  gap: 0 !important;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
body .invitation-carousel::-webkit-scrollbar { display: none; }
body .invitation-carousel > * {
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  min-width: 0;
  margin: 0 !important;
  grid-column: auto !important;
  scroll-snap-align: center;
  transform: none !important;
}
body .invitation-carousel > :not(img) { display: flex; align-items: center; justify-content: center; }
body .invitation-carousel > img { display: block; }
body .invitation-carousel > img,
body .invitation-carousel > * > img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(70vh, 640px);
  aspect-ratio: auto !important;
  margin-inline: auto;
  object-fit: contain !important;
  transform: none !important;
}
body .invitation-carousel__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 18px;
  margin: 20px auto 28px;
  color: inherit;
  font: 600 16px/1.3 Manrope, Arial, sans-serif;
}
body .invitation-carousel__controls button {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  padding: 0;
  border: 1px solid #9aab9b;
  border-radius: 50%;
  background: #fffaf1;
  color: #365143;
  font: 24px/1 Arial, sans-serif;
  cursor: pointer;
}
body .invitation-carousel__controls button svg { display: block; width: 20px; height: 20px; }
body .invitation-carousel__controls .invitation-carousel__arrow--next { transform: rotate(180deg); }
body .invitation-carousel__controls button:disabled { opacity: .38; cursor: default; }
body .invitation-carousel__controls button:focus-visible,
body .invitation-carousel:focus-visible { outline: 3px solid #557c61; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  body .invitation-carousel { scroll-behavior: auto; }
}

body .invitation-carousel > figure{flex-direction:column}body .invitation-carousel .gallery-tools{flex-shrink:0}body .invitation-carousel__controls button{border-color:var(--line,#b6a38e);color:var(--ink,#453a32);background:var(--paper,#fffaf1)}
body .invitation-carousel > figure{align-self:center!important}
/* Reserve a visible viewport while lazy photographs decode. */
body .invitation-carousel{min-height:180px}
