/* Custom animations and utilities */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
.animate-float { animation: float 4s ease-in-out infinite; }

@keyframes gradient-shift {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.animate-gradient {
  background-size: 200% 200%;
  animation: gradient-shift 6s ease infinite;
}

/* Scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #94a3b8; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #64748b; }

/* Smooth section reveals */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Plan card hover lift */
.plan-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.plan-card:hover {
  transform: translateY(-4px);
}

/* FAQ transitions */
.faq-content {
  transition: max-height 0.3s ease, opacity 0.3s ease;
}

/* Custom selection color */
::selection {
  background: #818cf8;
  color: white;
}

/* Focus styles */
input:focus, textarea:focus, select:focus {
  outline: none;
}

/* Glass effect helper */
.glass {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.dark .glass {
  background: rgba(15, 23, 42, 0.7);
}

/* Form radio card active ring */
input[type="radio"]:checked + div {
  ring-width: 2px;
}

/* Loading spinner */
.spinner {
  border: 3px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  border-top: 3px solid white;
  width: 20px;
  height: 20px;
  animation: spin 1s linear infinite;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Mobile menu slide */
#mobile-menu {
  transition: max-height 0.3s ease, opacity 0.3s ease;
}
