* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Poppins', Arial, sans-serif; background: #faf9f5; color: #141413; }
h1, h2, h3 { font-family: 'Poppins', Arial, sans-serif; letter-spacing: -0.01em; }

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-8px); }
}
@keyframes fadeSlideUp {
  0% { opacity: 0; transform: translateY(16px); }
  100% { opacity: 1; transform: translateY(0); }
}
@keyframes typingDot {
  0%, 60%, 100% { transform: translateY(0); opacity: 0.4; }
  30% { transform: translateY(-4px); opacity: 1; }
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(36,115,218,0.40); }
  50% { box-shadow: 0 0 0 12px rgba(36,115,218,0); }
}
@keyframes slideIn {
  0% { opacity: 0; transform: translateX(-12px); }
  100% { opacity: 1; transform: translateX(0); }
}
@keyframes scaleIn {
  0% { opacity: 0; transform: scale(0.92); }
  100% { opacity: 1; transform: scale(1); }
}
@keyframes mobileMenuIn {
  0% { opacity: 0; transform: translateX(-12px); }
  100% { opacity: 1; transform: translateX(0); }
}

.animate-float { animation: float 4s ease-in-out infinite; }
.animate-fade-slide-up { animation: fadeSlideUp 0.6s ease-out forwards; }
.animate-fade-slide-up-2 { animation: fadeSlideUp 0.6s ease-out 0.15s forwards; opacity: 0; }
.animate-fade-slide-up-3 { animation: fadeSlideUp 0.6s ease-out 0.3s forwards; opacity: 0; }
.animate-typing-dot { animation: typingDot 1.4s ease-in-out infinite; }
.animate-typing-dot:nth-child(2) { animation-delay: 0.2s; }
.animate-typing-dot:nth-child(3) { animation-delay: 0.4s; }
.animate-pulse-glow { animation: pulseGlow 2s ease-in-out infinite; }
.animate-slide-in { animation: slideIn 0.4s ease-out forwards; }
.animate-scale-in { animation: scaleIn 0.3s ease-out forwards; }

.chat-message { animation: slideIn 0.35s ease-out forwards; }

.mobile-menu-panel { animation: mobileMenuIn 0.25s ease-out forwards; }

.gradient-text { background: linear-gradient(135deg, #103462, #2473da, #51bfc7); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }

.hero-gradient { background: linear-gradient(135deg, #f4f8fd 0%, #eaf7f8 50%, #f6fcfc 100%); }

.card-hover { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -12px rgba(36,115,218,0.30); }

.plan-card { transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
.plan-card:hover { transform: translateY(-6px); }

.popular-card { box-shadow: 0 8px 32px rgba(36,115,218,0.25); border-color: #2473da; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
}

.focus-ring:focus-visible { outline: none; box-shadow: 0 0 0 2px #faf9f5, 0 0 0 4px #2473da; }

.step-circle { animation: scaleIn 0.4s ease-out forwards; animation-timeline: view(); }

/* Anchor sections: offset for fixed navbar */
section[id] { scroll-margin-top: 5.5rem; }

/* Small-screen typography + hero refinements */
@media (max-width: 639px) {
  .hero-chat-card { max-width: 100%; }
  .hero-heading { font-size: 2.15rem !important; }
  .hero-sub { font-size: 1rem !important; }
  .trust-badges { gap: 0.5rem; }
}