
/* ===== V68 — płynna Oferta / Terapie / Masaże ===== */

/* Keep the horizontal lane extremely lightweight. */
[data-v39-slider]{
  overflow-x:auto!important;
  overflow-y:visible!important;
  touch-action:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-x:contain!important;
  overscroll-behavior-y:auto!important;
  scroll-behavior:auto!important;
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
  transform:none!important;
  filter:none!important;
}
[data-v39-slider]::-webkit-scrollbar{display:none!important}

/* Cards should never carry blur/transform transitions while the user swipes. */
[data-v39-slider] > .visit-card-v38{
  filter:none!important;
  backface-visibility:visible!important;
  will-change:auto!important;
  transition:box-shadow .25s ease, border-color .25s ease!important;
}

/* A single entrance animation when the whole row reaches the viewport. */
.v68-visit-card{
  opacity:0;
  transform:translate3d(0,28px,0);
}
.v68-offer-visible > .v68-visit-card{
  animation:v68OfferEnter 1.15s cubic-bezier(.16,1,.3,1) both;
}
.v68-offer-visible > .v68-visit-card:nth-child(2){animation-delay:.10s}
.v68-offer-visible > .v68-visit-card:nth-child(3){animation-delay:.20s}
.v68-offer-visible > .v68-visit-card:nth-child(4){animation-delay:.30s}

@keyframes v68OfferEnter{
  from{opacity:0;transform:translate3d(0,28px,0)}
  to{opacity:1;transform:none}
}

/* The moment someone touches/drags, stop all motion. */
[data-v39-slider].v68-is-interacting > .v68-visit-card{
  animation:none!important;
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}

/* Mobile/tablet: NO scroll snap. This is the main anti-sticking fix.
   Swipe is free, arrows still move exactly one card using v39-ui.js. */
@media(max-width: 1024px){
  [data-v39-slider]{
    scroll-snap-type:none!important;
    scroll-padding:0!important;
    contain:layout paint!important;
    padding-inline:0!important;
  }
  [data-v39-slider] > *{
    scroll-snap-align:none!important;
    scroll-snap-stop:normal!important;
  }

  .visit-grid-v38,
  .visit-grid-v38--two,
  .visit-grid-v38--three{
    gap:10px!important;
  }

  .visit-card-v38{
    min-height:0!important;
    height:auto!important;
    flex:0 0 min(86vw,500px)!important;
  }
}

/* Phones: slightly narrower card = easier horizontal gesture and next-card hint. */
@media(max-width:760px){
  [data-v39-slider]{
    margin-inline:0!important;
    padding-bottom:2px!important;
  }
  .visit-card-v38{
    flex-basis:84vw!important;
    padding:23px 20px!important;
  }
  .visit-slider-controls-v39{
    margin:12px 0 10px!important;
  }
}

/* Desktop still gets light proximity snap, not mandatory lock. */
@media(min-width:1025px){
  [data-v39-slider]{
    scroll-snap-type:x proximity!important;
  }
  [data-v39-slider] > *{
    scroll-snap-align:start!important;
  }
}

/* reduced motion */
@media(prefers-reduced-motion:reduce){
  .v68-visit-card,
  .v68-offer-visible > .v68-visit-card{
    animation:none!important;
    opacity:1!important;
    transform:none!important;
  }
}
