/* Album slider (end of invitation) + fullscreen lightbox */
.album-section { padding: 48px 20px 110px; background: #fff; text-align: center; font-family: 'OpenSans', sans-serif; color: #3a2e2c; }
.album-kicker { margin: 0; font-family: 'PlayfairDisplay', serif; letter-spacing: .35em; text-transform: uppercase; font-size: 12px; color: #a08a86; }
.album-title { margin: 14px 0 22px; font-family: 'Aquarelle', cursive; font-weight: 400; font-size: 40px; color: #b5485a; }
.album-stage { position: relative; border-radius: 14px; overflow: hidden; background: #f4efed; box-shadow: 0 10px 30px rgba(80, 40, 40, .12); }
.album-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; aspect-ratio: 2 / 3; }
.album-track::-webkit-scrollbar { display: none; }
.album-slide { flex: 0 0 100%; scroll-snap-align: center; cursor: zoom-in; display: flex; align-items: center; justify-content: center; }
.album-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }
.album-slide { position: relative; overflow: hidden; }
.album-slide img.landscape { object-fit: contain; position: relative; }
.album-slide.blur-bg::before { content: ''; position: absolute; inset: -30px; background: inherit; filter: blur(22px) brightness(.92); }
.album-slide.blur-bg { background: center / cover no-repeat; }
.album-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .85); color: #3a2e2c; font-size: 26px; line-height: 38px; cursor: pointer; box-shadow: 0 2px 8px rgba(0, 0, 0, .15); }
.album-prev { left: 10px; } .album-next { right: 10px; }
.album-nav:hover { background: #fff; }
.album-count { position: absolute; right: 12px; bottom: 12px; padding: 3px 10px; border-radius: 20px; background: rgba(0, 0, 0, .45); color: #fff; font-size: 12px; }
.album-thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 14px 2px 4px; scrollbar-width: none; }
.album-thumbs::-webkit-scrollbar { display: none; }
.album-thumb { flex: 0 0 56px; height: 76px; border: 2px solid transparent; border-radius: 8px; background: center / cover no-repeat;
  opacity: .55; cursor: pointer; transition: opacity .2s, border-color .2s; padding: 0; }
.album-thumb.active { opacity: 1; border-color: #b5485a; }
.album-all { margin-top: 18px; padding: 10px 22px; border: 1px solid #b5485a; border-radius: 30px; background: transparent; color: #b5485a; font-size: 14px; cursor: pointer; }
.album-all:hover { background: #b5485a; color: #fff; }

.album-lightbox { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; background: rgba(15, 10, 10, .94); }
.album-lightbox.open { display: flex; }
.lb-img { max-width: 92vw; max-height: 88vh; object-fit: contain; box-shadow: 0 10px 40px rgba(0, 0, 0, .5); user-select: none; }
.lb-close { position: absolute; top: 14px; right: 18px; border: 0; background: none; color: #fff; font-size: 40px; cursor: pointer; line-height: 1; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); border: 0; background: rgba(255, 255, 255, .12); color: #fff;
  width: 52px; height: 52px; border-radius: 50%; font-size: 34px; line-height: 50px; cursor: pointer; }
.lb-nav:hover { background: rgba(255, 255, 255, .25); }
.lb-prev { left: 20px; } .lb-next { right: 20px; }
.lb-count { position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%); color: #ddd; font-size: 13px; letter-spacing: .1em; }
body.lb-lock { overflow: hidden; }
@media (max-width: 540px) { .lb-nav { width: 40px; height: 40px; font-size: 26px; line-height: 38px; } .lb-prev { left: 6px; } .lb-next { right: 6px; } }
