/* =====================================================
   Unified Button Styles — BrickByClick.ai
   Purple-to-blue gradient with animated moving glow
   !important used to reliably override Tailwind CDN +
   per-page inline <style> blocks
   ===================================================== */

@keyframes liquidFlow {
  0%   { background-position: 0% 50%; }
  25%  { background-position: 100% 0%; }
  50%  { background-position: 100% 100%; }
  75%  { background-position: 0% 100%; }
  100% { background-position: 0% 50%; }
}

@keyframes ctaPulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(59,130,246,0.3), 0 0 0 0 rgba(59,130,246,0.4) !important; }
  50%      { box-shadow: 0 4px 20px rgba(59,130,246,0.3), 0 0 0 8px rgba(59,130,246,0) !important; }
}

/* ---- Base gradient button ---- */
.btn-primary,
.btn-gold,
.btn-emerald,
.btn-submit,
.btn-demo,
.btn-pricing,
.bp-cta,
.cta-btn-primary,
.crm-btn-primary,
.roi-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  padding: 18px 36px !important;
  background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%) !important;
  border-radius: 14px !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: 0 4px 20px rgba(59,130,246,0.3), inset 0 1px 0 rgba(255,255,255,0.1) !important;
  position: relative !important;
  overflow: hidden !important;
  border: none !important;
  cursor: pointer !important;
  z-index: 0;
}

/* ---- Animated glow overlay ---- */
.btn-primary::before,
.btn-gold::before,
.btn-emerald::before,
.btn-submit::before,
.btn-demo::before,
.btn-pricing::before,
.bp-cta::before,
.cta-btn-primary::before,
.crm-btn-primary::before,
.roi-cta::before {
  content: '' !important;
  position: absolute !important;
  inset: -2px !important;
  background: linear-gradient(120deg, #3B82F6, #06B6D4, #8B5CF6, #3B82F6, #06B6D4) !important;
  background-size: 300% 300% !important;
  border-radius: inherit !important;
  z-index: -1 !important;
  opacity: 0;
  transition: opacity 0.3s ease !important;
  animation: liquidFlow 3s ease infinite paused !important;
}

/* ---- Hover: lift + glow ---- */
.btn-primary:hover,
.btn-gold:hover,
.btn-emerald:hover,
.btn-submit:hover,
.btn-demo:hover,
.btn-pricing:hover,
.bp-cta:hover,
.cta-btn-primary:hover,
.crm-btn-primary:hover,
.roi-cta:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 30px rgba(59,130,246,0.4), inset 0 1px 0 rgba(255,255,255,0.2) !important;
}

.btn-primary:hover::before,
.btn-gold:hover::before,
.btn-emerald:hover::before,
.btn-submit:hover::before,
.btn-demo:hover::before,
.btn-pricing:hover::before,
.bp-cta:hover::before,
.cta-btn-primary:hover::before,
.crm-btn-primary:hover::before,
.roi-cta:hover::before {
  opacity: 1 !important;
  animation-play-state: running !important;
}

/* ---- Active press ---- */
.btn-primary:active,
.btn-gold:active,
.btn-emerald:active,
.btn-submit:active,
.btn-demo:active,
.btn-pricing:active,
.bp-cta:active,
.cta-btn-primary:active,
.crm-btn-primary:active,
.roi-cta:active {
  transform: scale(0.97) !important;
  transition: transform 0.1s !important;
}

/* ---- Keep children above the ::before overlay ---- */
.btn-primary span, .btn-primary svg, .btn-primary i,
.btn-gold span, .btn-gold svg, .btn-gold i,
.btn-emerald span, .btn-emerald svg, .btn-emerald i,
.btn-submit span, .btn-submit svg, .btn-submit i,
.btn-demo span, .btn-demo svg, .btn-demo i,
.btn-pricing span, .btn-pricing svg, .btn-pricing i,
.bp-cta span, .bp-cta svg, .bp-cta i,
.cta-btn-primary span, .cta-btn-primary svg, .cta-btn-primary i,
.crm-btn-primary span, .crm-btn-primary svg, .crm-btn-primary i,
.roi-cta span, .roi-cta svg, .roi-cta i {
  position: relative !important;
  z-index: 1 !important;
}

/* ---- Disabled state ---- */
.btn-primary:disabled,
.btn-gold:disabled,
.btn-emerald:disabled,
.btn-submit:disabled,
.btn-demo:disabled,
.bp-cta:disabled,
.crm-btn-primary:disabled {
  opacity: 0.7 !important;
  cursor: not-allowed !important;
  transform: none !important;
}

/* ---- calc-cta container > a ---- */
.calc-cta a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: 100% !important;
  padding: 16px !important;
  background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%) !important;
  border-radius: 12px !important;
  font-weight: 700 !important;
  font-size: 1rem !important;
  color: #fff !important;
  text-decoration: none !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: 0 4px 20px rgba(59,130,246,0.3), inset 0 1px 0 rgba(255,255,255,0.1) !important;
  position: relative !important;
  overflow: hidden !important;
  z-index: 0;
}
.calc-cta a::before {
  content: '' !important;
  position: absolute !important;
  inset: -2px !important;
  background: linear-gradient(120deg, #3B82F6, #06B6D4, #8B5CF6, #3B82F6, #06B6D4) !important;
  background-size: 300% 300% !important;
  border-radius: inherit !important;
  z-index: -1 !important;
  opacity: 0;
  transition: opacity 0.3s ease !important;
  animation: liquidFlow 3s ease infinite paused !important;
}
.calc-cta a:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 30px rgba(59,130,246,0.4), inset 0 1px 0 rgba(255,255,255,0.2) !important;
}
.calc-cta a:hover::before {
  opacity: 1 !important;
  animation-play-state: running !important;
}
.calc-cta a span, .calc-cta a svg {
  position: relative !important;
  z-index: 1 !important;
}

/* ---- Hero pulse variant ---- */
.btn-primary-hero {
  animation: ctaPulse 2s ease-in-out infinite, liquidFlow 6s ease infinite !important;
  background-size: 300% 300% !important;
}
.btn-primary-hero::before {
  opacity: 0.6 !important;
  animation-play-state: running !important;
}

/* ---- Mobile ---- */
@media (max-width: 640px) {
  .btn-primary,
  .btn-gold,
  .btn-emerald,
  .btn-submit,
  .btn-demo,
  .btn-pricing,
  .bp-cta,
  .cta-btn-primary,
  .crm-btn-primary,
  .roi-cta {
    padding: 16px 28px !important;
  }
}
