/* ============================================================
   Dados Nacional — shared styles
   Padrão: Tailwind CDN + Inter; este arquivo só adiciona o que
   o Tailwind não cobre (animações, scrollbar, glow do hero).
   ============================================================ */

:root {
  --dn-blue-900: #1e3a8a;
  --dn-blue-700: #1d4ed8;
  --dn-blue-600: #2563eb;
  --dn-blue-500: #3b82f6;
  --dn-amber-300: #fcd34d;
  --dn-amber-400: #fbbf24;
}

body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  background: #f8fafc;
  color: #0f172a;
}

/* ---------- scrollbar ---------- */
.custom-scrollbar::-webkit-scrollbar { width: 6px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #2563eb; border-radius: 10px; }

/* ---------- animations ---------- */
.fade-in { animation: fadeIn .4s ease; }
@keyframes fadeIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.slide-up { opacity: 0; transform: translateY(32px); animation: slideUp .6s ease forwards; }
@keyframes slideUp { to { opacity: 1; transform: none; } }
.slide-up:nth-child(1) { animation-delay: .05s; }
.slide-up:nth-child(2) { animation-delay: .15s; }
.slide-up:nth-child(3) { animation-delay: .25s; }
.slide-up:nth-child(4) { animation-delay: .35s; }
.slide-up:nth-child(5) { animation-delay: .45s; }
.slide-up:nth-child(6) { animation-delay: .55s; }

/* ---------- hover card ---------- */
.home-card { transition: transform .25s ease, box-shadow .25s ease; }
.home-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -10px rgba(37, 99, 235, .18); }

/* ---------- hero glow ---------- */
.hero-glow { animation: heroGlow 4s ease-in-out infinite alternate; }
@keyframes heroGlow {
  from { opacity: .15; transform: scale(1); }
  to   { opacity: .3;  transform: scale(1.08); }
}

/* ---------- pulse for CTA ---------- */
.pulse { animation: pulse-ring 2s infinite; }
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0    rgba(37, 99, 235, .5); }
  70%  { box-shadow: 0 0 0 12px rgba(37, 99, 235, 0); }
  100% { box-shadow: 0 0 0 0    rgba(37, 99, 235, 0); }
}

/* ---------- step connector ---------- */
.step-dot { position: relative; }
.step-dot::after {
  content: '';
  position: absolute;
  left: 50%; top: 100%;
  transform: translateX(-50%);
  width: 2px; height: 28px;
  background: linear-gradient(to bottom, #93c5fd, transparent);
}
.step-dot:last-of-type::after { display: none; }

/* ---------- nav link active ---------- */
.nav-link {
  position: relative;
  font-weight: 600;
  color: #475569;
  transition: color .2s ease;
}
.nav-link:hover { color: var(--dn-blue-700); }
.nav-link.active { color: var(--dn-blue-700); }
.nav-link.active::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: var(--dn-blue-700);
  border-radius: 2px;
}

/* ---------- Brazil map ---------- */
.br-state {
  fill: #cbd5e1;
  stroke: #ffffff;
  stroke-width: 1;
  cursor: pointer;
  transition: fill .2s ease, transform .2s ease;
}
.br-state:hover { fill: #93c5fd; }
.br-state.active { fill: var(--dn-blue-600); }
.br-state.waitlist { fill: #cbd5e1; }
.br-state.waitlist:hover { fill: #94a3b8; }
.br-state.coming-soon { fill: #e2e8f0; cursor: not-allowed; }
.br-state.coming-soon:hover { fill: #e2e8f0; }
.br-state.selected { stroke: #1d4ed8; stroke-width: 3; }
