/* ─────────── PHOTO GALLERY / SLIDESHOW ─────────── */
.gallery-wrap{
  position:relative;
  max-width:880px; margin:0 auto;
  padding: 24px;
}
.gallery-sparkle{
  position:absolute;
  width:14px; height:14px;
  color: var(--gold);
  opacity:.85;
  animation: glow-pulse 2.4s ease-in-out infinite alternate, slow-spin 18s linear infinite;
}

/* small label band above/below gallery */
.gallery-band{
  text-align:center;
  font-family:var(--serif);
  font-style:italic;
  letter-spacing:.35em;
  color:var(--gold-deep);
  font-size:.85rem;
  margin: 1rem 0 .4rem;
  position:relative;
}
.gallery-band::before,
.gallery-band::after{
  content:""; display:inline-block;
  width:60px; height:1px;
  background: var(--gold);
  vertical-align:middle;
  margin: 0 1rem;
  opacity:.7;
}

/* slideshow frame */
.slideshow{
  position:relative;
  aspect-ratio: 16/10;
  background:#1a0d12;
  border-radius:14px;
  overflow:hidden;
  box-shadow:
    0 30px 80px -30px rgba(122,46,58,.45),
    inset 0 0 0 1px rgba(201,169,97,.4),
    0 0 0 8px #FBEBD4,
    0 0 0 9px rgba(201,169,97,.5);
}

/* slides */
.slide{
  position:absolute; inset:0;
  opacity:0; transform: scale(1.04);
  transition: opacity 1.4s ease, transform 8s ease;
}
.slide.active{ opacity:1; transform: scale(1); z-index:1 }
.slide img{ width:100%; height:100%; object-fit:cover; display:block }
.slide .caption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 2.5rem 1.5rem 1.2rem;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.55));
  color:#fff;
  font-family:var(--serif);
  font-style:italic;
  letter-spacing:.25em;
  font-size:.95rem;
  text-align:center;
  z-index:2;
}

/* vintage photo corner overlay (per-slide) */
.vc{
  position:absolute; width:24px; height:24px;
  border: 2px solid rgba(255,246,233,.45);
  z-index:3;
  pointer-events:none;
}
.vc.tl{ top:8px;    left:8px;  border-right:0; border-bottom:0 }
.vc.tr{ top:8px;    right:8px; border-left:0;  border-bottom:0 }
.vc.bl{ bottom:8px; left:8px;  border-right:0; border-top:0 }
.vc.br{ bottom:8px; right:8px; border-left:0;  border-top:0 }

/* navigation buttons */
.slide-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  background: rgba(255,246,233,.85);
  color: var(--wine);
  border: 1px solid rgba(201,169,97,.5);
  width:44px; height:44px;
  border-radius:50%;
  display:grid; place-items:center;
  cursor:pointer; z-index:6;
  backdrop-filter: blur(6px);
  transition: all .25s ease;
  font-family:var(--serif); font-size:1.5rem;
}
.slide-nav:hover{ background:#fff; transform:translateY(-50%) scale(1.08) }
.slide-nav.prev{ left:14px  }
.slide-nav.next{ right:14px }

/* fullscreen button */
.slide-fs{
  position:absolute; top:14px; right:14px;
  background: rgba(255,246,233,.85);
  color: var(--wine);
  border: 1px solid rgba(201,169,97,.5);
  width:38px; height:38px;
  border-radius:50%;
  display:grid; place-items:center;
  cursor:pointer; z-index:6;
  backdrop-filter: blur(6px);
  transition: all .25s ease;
  font-family:var(--serif); font-size:1.1rem;
  line-height:1;
}
.slide-fs:hover{ background:#fff; transform: scale(1.08) }

/* in fullscreen: contain (no crop), pure black backdrop */
.slideshow:fullscreen{
  width:100vw; height:100vh; aspect-ratio:auto;
  border-radius:0; box-shadow:none;
  background:#000;
}
.slideshow:fullscreen .slide img{ object-fit: contain }
.slideshow:fullscreen .vc{ display:none }

/* dot indicators */
.dots{
  display:flex; justify-content:center; gap:.6rem;
  margin-top:1.6rem; flex-wrap:wrap;
}
.dot-btn{
  width:9px; height:9px; border-radius:50%;
  border:1px solid var(--gold);
  background:transparent; cursor:pointer;
  transition: all .25s ease;
  padding:0;
}
.dot-btn.active{
  background: var(--wine); border-color: var(--wine);
  transform: scale(1.4);
  box-shadow: 0 0 10px rgba(201,169,97,.6), 0 0 0 3px rgba(201,169,97,.18);
}

@media (max-width: 640px){
  .slide-nav{ width:38px; height:38px; font-size:1.2rem }
}

/* slide progress bar */
.slide-progress{
  position:absolute; left:0; right:0; bottom:0;
  height:3px;
  background: rgba(255,246,233,.18);
  z-index:5;
  overflow:hidden;
  pointer-events:none;
}
.slide-progress .bar{
  display:block;
  height:100%; width:100%;
  background: linear-gradient(90deg, var(--gold-soft), var(--gold), var(--wine));
  transform-origin: left center;
  transform: scaleX(0);
  animation: slide-prog 2s linear forwards;
  box-shadow: 0 0 8px rgba(201,169,97,.6);
}
.slide-progress.paused .bar{ animation-play-state: paused }
@keyframes slide-prog{
  from{ transform: scaleX(0) }
  to  { transform: scaleX(1) }
}
