/**
 * Animated gradient buttons for the buyer journey (Event Info → Checkout).
 * Each control keeps its existing colour family; only the gradient motion is shared.
 */
@keyframes sfBtnGradient{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

/* Green primary CTAs */
.btn-proceed,
.js-proceed-checkout.btn-proceed,
.bc-checkout,
.co-pay-btn,
.ei-btn--primary,
.sf-reservation-extend{
  background:linear-gradient(120deg,#047857 0%,#10b981 25%,#34d399 50%,#059669 75%,#065f46 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent;
}

/* Teal / manage-order */
.btn-nav,
.btn-manage-order{
  background:linear-gradient(120deg,#115e59 0%,#0d9488 25%,#2dd4bf 50%,#0f766e 75%,#134e4a 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent;
}

/* Indigo / primary-accent */
.back-to-top,
.add-cart-btn:not(:disabled),
.plus-button,
.qty-btn.plus-button{
  background:linear-gradient(120deg,#312e81 0%,#6366f1 25%,#a5b4fc 50%,#4f46e5 75%,#4338ca 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent;
}

/* Red filled (confirm / destructive primary) */
.sf-confirm-ok{
  background:linear-gradient(120deg,#b91c1c 0%,#ef4444 25%,#fca5a5 50%,#dc2626 75%,#991b1b 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent;
}

/* Soft red outline family */
.btn-directions,
.cart-actions--products #clear_products{
  background:linear-gradient(120deg,#ffffff 0%,#fecaca 25%,#fee2e2 50%,#fca5a5 75%,#ffffff 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
}

/* View Cart — indigo */
.bc-view{
  background:linear-gradient(120deg,#312e81 0%,#6366f1 25%,#a5b4fc 50%,#4f46e5 75%,#4338ca 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent!important;
}

/* Edit Tickets — amber */
.bc-edit,
.cart-actions--products .btn-edit-tickets:not(#clear_products){
  background:linear-gradient(120deg,#9a3412 0%,#ea580c 25%,#fb923c 50%,#c2410c 75%,#7c2d12 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
  color:#fff!important;
  border-color:transparent!important;
}

/* Soft gray / white outline family */
.btn-map-view,
.bc-products,
.btn-clear,
.ei-btn:not(.ei-btn--primary):not(.ei-btn--muted),
.sf-reservation-cancel,
#applyUnifiedCodeBtn.btn-outline-primary,
.mobile-filters-btn,
.sort-btn{
  background:linear-gradient(120deg,#ffffff 0%,#d1d5db 25%,#e5e7eb 50%,#9ca3af 75%,#ffffff 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
}

/* Muted / disabled filled gray */
.ei-btn--muted,
.add-cart-btn:disabled{
  background:linear-gradient(120deg,#d1d5db 0%,#9ca3af 25%,#e5e7eb 50%,#9ca3af 75%,#d1d5db 100%)!important;
  background-size:280% 280%!important;
  animation:sfBtnGradient 6s ease-in-out infinite;
}

@media (prefers-reduced-motion:reduce){
  .btn-proceed,
  .js-proceed-checkout.btn-proceed,
  .bc-checkout,
  .co-pay-btn,
  .ei-btn--primary,
  .sf-reservation-extend,
  .btn-nav,
  .btn-manage-order,
  .back-to-top,
  .add-cart-btn,
  .plus-button,
  .qty-btn.plus-button,
  .sf-confirm-ok,
  .btn-directions,
  .cart-actions--products #clear_products,
  .btn-map-view,
  .bc-view,
  .bc-edit,
  .bc-products,
  .btn-clear,
  .ei-btn,
  .cart-actions--products .btn-edit-tickets,
  .sf-reservation-cancel,
  #applyUnifiedCodeBtn.btn-outline-primary,
  .mobile-filters-btn,
  .sort-btn,
  .ei-btn--muted{
    animation:none!important;
    background-size:auto!important;
  }
}
