/**
 * CTA effects: polished hover-only polish (no idle bounce loops).
 * SPIN bubble/GSAP hover motion lives in button-bubble.js — CSS uses filter/shadow only.
 */

/* ---- Shared transition base ---- */
.topbar-right a,
.login-btn,
.mega-cats a,
.mf-cart,
.subzero-gacor-fixed-footer a,
#bottomLoginBtn,
#bottomChatBtn,
#bottomCartBtn,
.cyber-mecha .faq-item,
.faq-item,
.btn-spin-metal,
.btn-buy,
.btn-add-cart,
.btn-buy-voucher,
.qoala-cta,
.pd-sticky-btn-buy,
.pd-sticky-btn-cart,
.mf-buy,
.modal-btn-primary,
.compare-actions .btn-primary:not(:disabled) {
  transition:
    transform 0.2s ease,
    box-shadow 0.2s ease,
    filter 0.2s ease,
    border-color 0.2s ease,
    background 0.2s ease,
    opacity 0.2s ease;
}

/* ---- Nav / footer link CTAs ---- */
.topbar-right a:hover,
.login-btn:hover,
.mega-cats a:hover,
.mf-cart:hover,
.subzero-gacor-fixed-footer a:hover,
#bottomLoginBtn:hover,
#bottomChatBtn:hover,
#bottomCartBtn:hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.topbar-right a:active,
.login-btn:active,
.mega-cats a:active,
.mf-cart:active,
.subzero-gacor-fixed-footer a:active,
#bottomLoginBtn:active,
#bottomChatBtn:active,
#bottomCartBtn:active {
  transform: translateY(0);
}

/* ---- FAQ accordion items ---- */
.cyber-mecha .faq-item,
.faq-item {
  overflow: visible;
}

.cyber-mecha .faq-item:hover,
.faq-item:hover {
  transform: translateY(-2px);
  filter: brightness(1.04);
  box-shadow:
    0 4px 16px rgba(255, 140, 60, 0.3),
    0 0 10px rgba(255, 45, 149, 0.15);
}

.faq-item .faq-answer {
  overflow: hidden;
}

/*
 * SPIN (non-AMP): bubble goo/GSAP owns transform — hover via filter/shadow only
 * so inline GSAP scale doesn't fight CSS translateY.
 */
.btn-spin,
#meteorbet88-slot-standalone-v3 .btn-spin {
  animation: none;
}

.btn-spin:hover:not(:disabled),
#meteorbet88-slot-standalone-v3 .btn-spin:hover:not(:disabled) {
  filter: brightness(1.1);
  box-shadow:
    0 6px 22px rgba(255, 215, 0, 0.32),
    0 0 0 1px rgba(255, 215, 0, 0.35);
}

/* AMP SPIN metal — no bubble, full hover lift allowed */
.btn-spin-metal {
  animation: none;
}

.btn-spin-metal:hover:not(:disabled) {
  transform: translateY(-2px);
  filter: brightness(1.08);
  box-shadow:
    0 6px 22px rgba(255, 215, 0, 0.35),
    0 0 0 1px rgba(255, 215, 0, 0.4);
}

.btn-spin-metal:active:not(:disabled) {
  transform: translateY(0);
}

/* ---- Filled action buttons ---- */
.btn-buy:hover:not(:disabled),
.btn-add-cart:hover:not(:disabled),
.btn-buy-voucher:hover:not(:disabled),
.qoala-cta:hover:not(:disabled),
.pd-sticky-btn-buy:hover:not(:disabled),
.pd-sticky-btn-cart:hover:not(:disabled),
.mf-buy:hover:not(:disabled),
.modal-btn-primary:hover:not(:disabled),
.compare-actions .btn-primary:not(:disabled):hover {
  transform: translateY(-2px);
  filter: brightness(1.06);
  box-shadow:
    0 4px 16px rgba(255, 193, 7, 0.3),
    0 2px 8px rgba(0, 0, 0, 0.1);
}

.btn-buy:active:not(:disabled),
.btn-add-cart:active:not(:disabled),
.btn-buy-voucher:active:not(:disabled),
.qoala-cta:active:not(:disabled),
.pd-sticky-btn-buy:active:not(:disabled),
.pd-sticky-btn-cart:active:not(:disabled),
.mf-buy:active:not(:disabled),
.modal-btn-primary:active:not(:disabled),
.compare-actions .btn-primary:not(:disabled):active {
  transform: translateY(0);
}

/* Festive SPIN halo — static ambient glow (no scale pulse) */
.btn-spin,
#meteorbet88-slot-standalone-v3 .btn-spin,
.btn-spin-metal {
  position: relative;
  isolation: isolate;
}

.btn-spin::before,
#meteorbet88-slot-standalone-v3 .btn-spin::before,
.btn-spin-metal::before {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: 999px;
  background:
    radial-gradient(circle, rgb(255 45 149 / 28%), transparent 68%),
    radial-gradient(circle, rgb(255 215 0 / 32%), transparent 72%),
    radial-gradient(circle, rgb(255 140 26 / 18%), transparent 78%);
  filter: blur(14px);
  opacity: 0.45;
  animation: none;
  z-index: -1;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

.btn-spin:hover:not(:disabled)::before,
#meteorbet88-slot-standalone-v3 .btn-spin:hover:not(:disabled)::before,
.btn-spin-metal:hover:not(:disabled)::before {
  opacity: 0.65;
}

/* Non-AMP SPIN: quieter halo */
.btn-spin::before,
#meteorbet88-slot-standalone-v3 .btn-spin::before {
  opacity: 0.35;
}

.btn-spin:hover:not(:disabled)::before,
#meteorbet88-slot-standalone-v3 .btn-spin:hover:not(:disabled)::before {
  opacity: 0.55;
}

/* Disabled: no motion */
.btn-buy:disabled,
.btn-add-cart:disabled,
.btn-buy-voucher:disabled,
.btn-spin:disabled,
#meteorbet88-slot-standalone-v3 .btn-spin:disabled,
.pd-sticky-btn:disabled,
.mf-btn:disabled,
.compare-actions .btn-primary:disabled {
  animation: none !important;
}

.btn-spin:disabled::before,
#meteorbet88-slot-standalone-v3 .btn-spin:disabled::before,
.btn-spin-metal:disabled::before {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .topbar-right a,
  .login-btn,
  .mega-cats a,
  .btn-buy,
  .btn-add-cart,
  .btn-buy-voucher,
  .btn-spin,
  #meteorbet88-slot-standalone-v3 .btn-spin,
  .btn-spin-metal,
  .qoala-cta,
  .pd-sticky-btn-buy,
  .pd-sticky-btn-cart,
  .mf-buy,
  .mf-cart,
  .subzero-gacor-fixed-footer a,
  .modal-btn-primary,
  #bottomLoginBtn,
  #bottomChatBtn,
  #bottomCartBtn,
  .compare-actions .btn-primary:not(:disabled),
  .cyber-mecha .faq-item,
  .faq-item {
    transition: none !important;
    animation: none !important;
    transform: none !important;
    filter: none !important;
  }

  .topbar-right a:hover,
  .login-btn:hover,
  .mega-cats a:hover,
  .mf-cart:hover,
  .subzero-gacor-fixed-footer a:hover,
  #bottomLoginBtn:hover,
  #bottomChatBtn:hover,
  #bottomCartBtn:hover,
  .cyber-mecha .faq-item:hover,
  .faq-item:hover,
  .btn-spin:hover:not(:disabled),
  #meteorbet88-slot-standalone-v3 .btn-spin:hover:not(:disabled),
  .btn-spin-metal:hover:not(:disabled),
  .btn-buy:hover:not(:disabled),
  .btn-add-cart:hover:not(:disabled),
  .btn-buy-voucher:hover:not(:disabled),
  .qoala-cta:hover:not(:disabled),
  .pd-sticky-btn-buy:hover:not(:disabled),
  .pd-sticky-btn-cart:hover:not(:disabled),
  .mf-buy:hover:not(:disabled),
  .modal-btn-primary:hover:not(:disabled),
  .compare-actions .btn-primary:not(:disabled):hover {
    transform: none !important;
    filter: none !important;
    box-shadow: none !important;
  }

  .btn-spin::before,
  #meteorbet88-slot-standalone-v3 .btn-spin::before,
  .btn-spin-metal::before {
    opacity: 0;
  }
}
