/* ==== Gallery Slider ==== */
.gallery-slider-section {
  padding: 4rem 0;
  background: var(--color-surface);
}
.gallery-slider-section .section-title {
  text-align:center;
  margin-bottom:2rem;
  font-size:var(--fs-xl);
  color:var(--color-heading);
}

/* slider wrapper */
.gallery-slider {
  position:relative;
  max-width:720px;
  margin:0 auto;
  border-radius:1.5rem;
  overflow:hidden;
  box-shadow:var(--shadow-lg);
  background:#fff;
  aspect-ratio: 16 / 9;   /* keeps a consistent rounded‑rectangular frame */
}
.slider-track {
  display:flex;
  transition:transform .5s cubic-bezier(.25,.8,.25,1);
  height:100%;
}
.slide {
  flex:0 0 100%;
  display:flex;
  align-items:center;
  justify-content:center;
}
.slide img {
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:1.5rem;      /* rounded rectangular frame */
}

/* arrows */
.slider-btn {
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  background:rgba(0,0,0,.4);
  color:#fff;
  border:none;
  width:44px;
  height:44px;
  border-radius:50%;
  font-size:1.5rem;
  cursor:pointer;
  transition:background .2s;
}
.slider-btn:hover { background:rgba(0,0,0,.7); }
.slider-btn.prev { left:12px; }
.slider-btn.next { right:12px; }

/* dots */
.slider-dots {
  display:flex;
  justify-content:center;
  gap:.5rem;
  margin-top:1rem;
}
.dot {
  width:10px; height:10px;
  border-radius:50%;
  background:var(--color-muted);
  border:none;
  cursor:pointer;
  transition:background .2s, transform .2s;
}
.dot.active,
.dot:hover { background:var(--color-primary); transform:scale(1.2); }

/* view‑more button */
.gallery-viewmore {
  text-align:center;
  margin-top:1.5rem;
}
.gallery-viewmore .btn-primary {
  /* inherits global button styles */
}

/* responsive */
@media (max-width:768px) {
  .gallery-slider { aspect-ratio: 4 / 3; }
  .slider-btn { width:36px; height:36px; font-size:1.2rem; }
}