.single-product form.cart .single_add_to_cart_button {
  position: relative;
  box-sizing: border-box;
  transition: width 140ms ease-out, background-color 140ms ease-out;
  white-space: nowrap;
}
.single-product form.cart .single_add_to_cart_button.loading::after,
.single-product form.cart .single_add_to_cart_button.loading::before,
.single-product form.cart .single_add_to_cart_button.added::after {
  display: none !important;
  content: none !important;
  animation: none !important;
}
.single-product form.cart .single_add_to_cart_button.loading { opacity: .8; }
.single-product form.cart .single_add_to_cart_button.ah-cart-lap-active { background: #f00 !important; }
.ah-cart-border-trail {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
  top: 0;
  left: 0;
  overflow: visible;
  animation: ah-cart-trail-fade 680ms linear 1 both;
}
.ah-cart-border-trail rect { animation: ah-cart-trail-lap 640ms linear 1 both; }
@keyframes ah-cart-trail-lap {
  from { stroke-dashoffset: var(--ah-trail-offset); }
  to { stroke-dashoffset: calc(var(--ah-trail-offset) - 100px); }
}
@keyframes ah-cart-trail-fade {
  0% { opacity: 0; }
  5%, 88% { opacity: 1; }
  100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .single-product form.cart .single_add_to_cart_button { transition: none; }
  .ah-cart-border-trail { display: none; animation: none; }
}
