/* Minimal, smooth, no-lib carousel using scroll-snap */
.sfp-carousel { position:relative; width:100%; }
.sfp-c-track {
  display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding:4px 0;
}
.sfp-c-slide { flex:0 0 100%; scroll-snap-align:center; }
.sfp-c-slide img { width:100%; height:auto; display:block; border-radius:12px; border:1px solid var(--border); background:#000; }

/* Arrows */
.sfp-c-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:36px; height:36px; border-radius:999px; border:1px solid var(--border);
  background:#fff; box-shadow:var(--shadow); cursor:pointer; font-size:20px; line-height:34px;
}
.sfp-c-prev { left:10px; }
.sfp-c-next { right:10px; }
@media (max-width: 640px){
  .sfp-c-arrow { display:none; } /* rely on swipe on mobile */
}
.sfp-carousel{
  --dot-size: 8px;
  --btn-size: 34px;
  position: relative;
  width: 100%;
}

.sfp-carousel__stage{
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  background: #000;
}

/* Track & slides */
.sfp-carousel__track{
  display: flex;
  transition: transform .38s ease;
  will-change: transform;
}
.sfp-carousel__slide{
  flex: 0 0 100%;
  max-width: 100%;
  position: relative;
}
.sfp-carousel__slide img{
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover; /* feels like native media feeds */
}

/* Prev / Next buttons */
.sfp-carousel__btn{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: var(--btn-size);
  height: var(--btn-size);
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.35);
  background: rgba(0,0,0,.45);
  color: #fff;
  font-size: 18px;
  line-height: calc(var(--btn-size) - 2px);
  text-align: center;
  cursor: pointer;
  z-index: 2;
  user-select: none;
}
.sfp-carousel__btn--prev{ left: 8px; }
.sfp-carousel__btn--next{ right: 8px; }
.sfp-carousel__btn:hover{ background: rgba(0,0,0,.6); }

/* Dots */
.sfp-carousel__dots{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 8px;
  display: flex;
  gap: 6px;
  z-index: 2;
}
.sfp-carousel__dots button{
  width: var(--dot-size);
  height: var(--dot-size);
  border-radius: 999px;
  border: 0;
  background: rgba(255,255,255,.45);
  cursor: pointer;
  padding: 0;
}
.sfp-carousel__dots button.is-active{
  background: #fff;
}

/* Reduce motion accessibility */
@media (prefers-reduced-motion: reduce){
  .sfp-carousel__track{ transition: none; }
}

.sfp-carousel__stage{
  position: relative;
  overflow: hidden;          /* ← hides non-active slides */
  border-radius: 12px;
  background: #000;
}
.sfp-carousel__track{
  display: flex;             /* ← lays slides horizontally */
  transition: transform .38s ease;
  will-change: transform;
}
.sfp-carousel__slide{
  flex: 0 0 100%;            /* ← each slide = full width */
  max-width: 100%;
}
.sfp-carousel__slide img{
  width: 100%; height: 100%;
  display: block; object-fit: cover;
}

