/* ════════════════════════════════════════
   ANIMATIONS & TRANSITIONS
   ════════════════════════════════════════ */

@keyframes fadeUp {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes livePulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.4;
    transform: scale(1.5);
  }
}

.au-0 { animation: fadeUp 0.6s ease both; }
.au-1 { animation: fadeUp 0.6s 0.1s ease both; }
.au-2 { animation: fadeUp 0.6s 0.2s ease both; }
.au-3 { animation: fadeUp 0.6s 0.3s ease both; }
.au-4 { animation: fadeUp 0.6s 0.4s ease both; }

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

/* ════════════════════════════════════════
   SPACING & ALIGNMENT HELPERS
   ════════════════════════════════════════ */
.text-center { text-align: center !important; }
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }

.mb-0 { margin-bottom: 0 !important; }
.mb-xs { margin-bottom: 0.25rem !important; }
.mb-sm { margin-bottom: 0.4rem !important; }
.mb-md { margin-bottom: 0.75rem !important; }
.mb-lg { margin-bottom: 1rem !important; }
.mb-xl { margin-bottom: 1.5rem !important; }
.mb-xxl { margin-bottom: 2rem !important; }

.mt-0 { margin-top: 0 !important; }
.mt-xs { margin-top: 0.25rem !important; }
.mt-sm { margin-top: 0.5rem !important; }
.mt-md { margin-top: 1rem !important; }
.mt-lg { margin-top: 1.5rem !important; }
.mt-xl { margin-top: 2rem !important; }

.mx-auto { margin-left: auto !important; margin-right: auto !important; }
.w-full { width: 100% !important; }
.flex-col { flex-direction: column !important; }
.flex-row { flex-direction: row !important; }
.align-center { align-items: center !important; }
.justify-center { justify-content: center !important; }

/* Font Weights */
.font-normal { font-weight: 400 !important; }
.font-medium { font-weight: 500 !important; }
.font-semibold { font-weight: 600 !important; }
.font-bold { font-weight: 700 !important; }
.font-extrabold { font-weight: 800 !important; }

/* Font Sizes */
.text-xs { font-size: 0.7rem !important; }
.text-sm { font-size: 0.8rem !important; }
.text-base { font-size: 0.9rem !important; }
.text-md { font-size: 0.95rem !important; }
.text-lg { font-size: 1rem !important; }
.text-xl { font-size: 1.1rem !important; }

/* Colors */
.text-white { color: var(--white) !important; }
.text-slate-900 { color: var(--slate-900) !important; }
.text-slate-800 { color: var(--slate-800) !important; }
.text-slate-700 { color: var(--slate-700) !important; }
.text-slate-600 { color: var(--slate-600) !important; }
.text-slate-500 { color: var(--slate-500) !important; }
.text-slate-400 { color: var(--slate-400) !important; }
.text-blue-700 { color: var(--blue-700) !important; }
.text-blue-600 { color: var(--blue-600) !important; }
.text-orange-500 { color: var(--orange-500) !important; }

/* Backgrounds */
.bg-white { background-color: var(--white) !important; }
.bg-slate-50 { background-color: var(--slate-50) !important; }
.bg-slate-100 { background-color: var(--slate-100) !important; }
.bg-slate-900 { background-color: var(--slate-900) !important; }
.bg-blue-50 { background-color: var(--blue-50) !important; }

/* Borders */
.border-none { border: none !important; }
.border-slate-100 { border-color: var(--slate-100) !important; }
.border-slate-200 { border-color: var(--slate-200) !important; }
.border-blue-100 { border-color: var(--blue-100) !important; }

/* ════════════════════════════════════════
   ACCESSIBILITY
   ════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

:focus-visible {
  outline: 3px solid var(--blue-600) !important;
  outline-offset: 3px !important;
  border-radius: 4px !important;
}

/* ════════════════════════════════════════
   PRINT STYLES
   ════════════════════════════════════════ */
@media print {
  .nav-wrap, .sticky-bar, .wa-float, .urgency-strip, .nav {
    display: none !important;
  }
  body {
    padding-top: 0 !important;
  }
  section {
    page-break-inside: avoid !important;
  }
}
