/* Best-seller slider: on touch devices a mandatory x-snap container swallows
   vertical drags, so the page won't scroll past it. Proximity snapping + a
   permissive touch-action lets a downward swipe move the page while a sideways
   swipe still pages the carousel. */
@media (pointer:coarse){
  #sbPopTrack{scroll-snap-type:x proximity!important;touch-action:pan-x pan-y!important;overscroll-behavior-x:contain}
}
/* Any other horizontal scrollers on the site get the same treatment. */
@media (pointer:coarse){
  .qtabs,.sb-ledger{touch-action:pan-x pan-y!important}
}

/* ---- Button "sheen" containment ----
   The animated sheen on primary buttons (a transparent→white→transparent
   streak) could render as a stray light bar next to the button when its
   clipping didn't hold — visible on the product page beside the image. Force
   the host to clip its pseudo-element and keep the streak fully transparent
   until hover, so it can never appear as a floating glare. The hover sweep is
   preserved. */
.btn:not(.btn-ghost),
.single_add_to_cart_button,
.sb-checkout{overflow:hidden!important}
.btn:not(.btn-ghost)::after,
.single_add_to_cart_button::after{opacity:0;transition:transform .6s ease,opacity .45s ease}
.btn:not(.btn-ghost):hover::after,
.single_add_to_cart_button:hover::after{opacity:1}