/* Animations and effects */

/* Smooth appear for card */
.appear-card {
  opacity: 0;
  transform: translateY(24px) scale(0.98);
  transition: opacity 600ms ease, transform 700ms ease;
  will-change: opacity, transform;
}

.appear-card.in-view {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* CTA button pulse and red smoke glow */
.cta-button {
  position: relative;
  z-index: 1;
  animation: pulse-soft 2.6s ease-in-out infinite;
  box-shadow: 0 0 16px rgba(211, 19, 28, 0.35), 0 0 36px rgba(211, 19, 28, 0.22);
}

.cta-button::before {
  content: "";
  position: absolute;
  inset: -12px;
  border-radius: inherit;
  background: radial-gradient(60% 60% at 50% 50%, rgba(211, 19, 28, 0.35) 0%, rgba(211, 19, 28, 0.18) 55%, rgba(211, 19, 28, 0.08) 80%, transparent 100%);
  filter: blur(14px);
  z-index: -1;
  animation: smoke-ambient 5.5s ease-in-out infinite;
  pointer-events: none;
}

@keyframes pulse-soft {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.04); }
}

@keyframes smoke-ambient {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  50% { transform: translateY(-2px) scale(1.03); opacity: 0.9; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}