/* ===== Programs page slideshow ===== */

.slideshow{
  position:relative;
  width:100%;
  aspect-ratio:16/7;
  min-height:280px;
  border-radius:var(--radius);
  overflow:hidden;
  background:var(--paper-dim);
  box-shadow:0 20px 50px rgba(36,31,24,0.16);
}
.slideshow-track{
  position:relative; width:100%; height:100%;
}
.slide{
  position:absolute; inset:0;
  opacity:0; visibility:hidden;
  transition:opacity .8s ease;
}
.slide.active{ opacity:1; visibility:visible; }
.slide img{
  width:100%; height:100%; object-fit:cover; display:block;
}
.slide-caption{
  position:absolute; left:0; right:0; bottom:0;
  padding:34px 40px 24px;
  background:linear-gradient(0deg, rgba(24,20,14,0.82) 0%, rgba(24,20,14,0) 100%);
  color:var(--paper);
  font-size:1.02rem;
  max-width:70ch;
}

.slideshow-empty{
  display:flex; align-items:center; justify-content:center; height:100%;
  color:#6b6455; font-family:var(--mono); font-size:0.9rem; text-align:center; padding:30px;
}
.slideshow-empty code{ background:var(--white); padding:2px 6px; border-radius:4px; }

.slideshow-nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:44px; height:44px; border-radius:50%;
  background:rgba(247,241,228,0.9); border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s ease, transform .2s ease;
  z-index:5;
}
.slideshow-nav:hover{ background:var(--white); transform:translateY(-50%) scale(1.06); }
.slideshow-nav.prev{ left:18px; }
.slideshow-nav.next{ right:18px; }
.slideshow-nav svg{ width:20px; height:20px; color:var(--ink); }

.slideshow-dots{
  position:absolute; bottom:18px; right:24px; z-index:5;
  display:flex; gap:8px;
}
.slideshow-dot{
  width:9px; height:9px; border-radius:50%; border:1.5px solid var(--paper);
  background:transparent; cursor:pointer; padding:0;
  transition:background .2s ease, transform .2s ease;
}
.slideshow-dot.active{ background:var(--gold); border-color:var(--gold); transform:scale(1.15); }

@media (max-width: 720px){
  .slideshow{ aspect-ratio:4/5; }
  .slide-caption{ padding:22px 20px 18px; font-size:0.92rem; }
  .slideshow-nav{ width:36px; height:36px; }
}

/* ===== Compact slideshow variant — for use inside a feature-art photo slot ===== */
.feature-slideshow{
  aspect-ratio: 500 / 380;
  min-height: 0;
  box-shadow: none;
}
.feature-slideshow .slideshow-nav{
  width: 34px; height: 34px;
}
.feature-slideshow .slideshow-nav svg{
  width: 15px; height: 15px;
}
.feature-slideshow .slide-caption{
  padding: 16px 18px 14px;
  font-size: 0.85rem;
}
.feature-slideshow .slideshow-dots{
  bottom: 12px; right: 16px;
}
