/* CTA shine wave: keeps existing button shape and base colors intact. */
.btn-primary::after,
.jshop-btn__wrap::after,
.productfull .product-buttons::after,
.sp-module.like .button_buy::after,
.jshop.cart_buttons .pull-right a::after,
#sp-bottom .bottom-block .btn-primary::after {
  overflow: hidden;
  background-image: linear-gradient(110deg, transparent 0%, transparent 36%, rgba(255,255,255,0.16) 44%, rgba(255,255,255,0.62) 50%, rgba(255,255,255,0.16) 56%, transparent 64%, transparent 100%);
  background-repeat: no-repeat;
  background-size: 260% 100%;
  background-position: 160% 0;
  animation: alutron-cta-shine-wave 3.2s ease-in-out infinite;
}

.btn-primary:hover::after,
.jshop-btn__wrap:hover::after,
.productfull .product-buttons:hover::after,
.sp-module.like .button_buy:hover::after,
.jshop.cart_buttons .pull-right a:hover::after,
#sp-bottom .bottom-block .btn-primary:hover::after {
  animation-duration: 1.8s;
}

@keyframes alutron-cta-shine-wave {
  0% { background-position: 160% 0; }
  42% { background-position: -90% 0; }
  100% { background-position: -90% 0; }
}

@media (prefers-reduced-motion: reduce) {
  .btn-primary::after,
  .jshop-btn__wrap::after,
  .productfull .product-buttons::after,
  .sp-module.like .button_buy::after,
  .jshop.cart_buttons .pull-right a::after,
  #sp-bottom .bottom-block .btn-primary::after {
    animation: none;
    background-position: 160% 0;
  }
}
