:root {
  --brand-950: #0b1328;
  --brand-900: #12224a;
  --brand-800: #16306d;
  --brand-700: #1d4ed8;
  --brand-600: #2563eb;
  --brand-500: #3b82f6;
  --brand-400: #60a5fa;
  /* Keep legacy accent vars mapped to blue for existing gradients */
  --accent-700: #1e40af;
  --accent-600: #2563eb;
  --accent-500: #3b82f6;
  --accent-400: #93c5fd;
  --line-100: #dbe7ff;
  --line-200: #c7d9ff;
  --surface-50: #f8faff;
  --surface-100: #f1f5ff;
  --surface-200: #e8eefc;
  --ink-900: #0f172a;
  --ink-700: #334155;
  --font-body: 'Manrope', sans-serif;
  --font-display: 'Cormorant Garamond', serif;
}

body {
  font-family: var(--font-body);
  color: var(--ink-900);
  background-color: var(--surface-50);
  position: relative;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image: repeating-linear-gradient(
    0deg,
    rgba(29, 78, 216, 0.032) 0px,
    rgba(29, 78, 216, 0.032) 1px,
    transparent 1px,
    transparent 42px
  );
  z-index: -1;
}

h1, h2, h3, h4, .brand-title {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
}

.bg-clip-text.text-transparent {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
}

/* Text colors mapped to premium blue scale */
.text-blue-900,
.text-blue-800,
.text-blue-700,
.text-indigo-900,
.text-indigo-800,
.text-indigo-700,
.text-purple-900,
.text-purple-800,
.text-purple-700,
.text-teal-900,
.text-teal-800,
.text-teal-700,
.text-emerald-900,
.text-emerald-800,
.text-emerald-700,
.text-green-900,
.text-green-800,
.text-green-700,
.text-cyan-900,
.text-cyan-800,
.text-cyan-700 {
  color: var(--brand-800) !important;
}

.text-blue-600,
.text-blue-500,
.text-indigo-600,
.text-indigo-500,
.text-purple-600,
.text-purple-500,
.text-teal-600,
.text-teal-500,
.text-emerald-600,
.text-emerald-500,
.text-green-600,
.text-green-500,
.text-cyan-600,
.text-cyan-500,
.text-pink-600,
.text-pink-500,
.text-orange-600,
.text-orange-500,
.text-red-600,
.text-red-500,
.text-yellow-600,
.text-yellow-500 {
  color: var(--brand-700) !important;
}

/* Backgrounds normalized to blue + neutral surfaces */
.bg-blue-900,
.bg-blue-800,
.bg-blue-700,
.bg-indigo-900,
.bg-indigo-800,
.bg-indigo-700,
.bg-purple-900,
.bg-purple-800,
.bg-purple-700,
.bg-teal-900,
.bg-teal-800,
.bg-teal-700,
.bg-emerald-900,
.bg-emerald-800,
.bg-emerald-700,
.bg-green-900,
.bg-green-800,
.bg-green-700 {
  background-color: var(--brand-800) !important;
}

.bg-blue-600,
.bg-blue-500,
.bg-indigo-600,
.bg-indigo-500,
.bg-purple-600,
.bg-purple-500,
.bg-teal-600,
.bg-teal-500,
.bg-emerald-600,
.bg-emerald-500,
.bg-green-600,
.bg-green-500,
.bg-cyan-600,
.bg-cyan-500,
.bg-orange-600,
.bg-orange-500,
.bg-red-600,
.bg-red-500,
.bg-yellow-600,
.bg-yellow-500,
.bg-pink-600,
.bg-pink-500 {
  background-color: var(--brand-700) !important;
}

.bg-blue-100,
.bg-blue-50,
.bg-indigo-100,
.bg-indigo-50,
.bg-purple-100,
.bg-purple-50,
.bg-teal-100,
.bg-teal-50,
.bg-emerald-100,
.bg-emerald-50,
.bg-green-100,
.bg-green-50,
.bg-cyan-100,
.bg-cyan-50,
.bg-yellow-100,
.bg-yellow-50,
.bg-orange-100,
.bg-orange-50,
.bg-red-100,
.bg-red-50,
.bg-pink-100,
.bg-pink-50,
.bg-rose-100,
.bg-rose-50 {
  background-color: var(--surface-100) !important;
}

/* Borders */
.border-blue-100,
.border-blue-200,
.border-blue-300,
.border-blue-500,
.border-indigo-100,
.border-indigo-200,
.border-indigo-300,
.border-indigo-500,
.border-purple-100,
.border-purple-200,
.border-purple-300,
.border-purple-500,
.border-teal-100,
.border-teal-200,
.border-teal-300,
.border-teal-500,
.border-emerald-100,
.border-emerald-200,
.border-emerald-300,
.border-emerald-500,
.border-green-100,
.border-green-200,
.border-green-300,
.border-green-500,
.border-orange-100,
.border-orange-200,
.border-red-100,
.border-red-200,
.border-pink-100,
.border-pink-200,
.border-yellow-100,
.border-yellow-200,
.border-rose-100,
.border-rose-200 {
  border-color: rgba(59, 130, 246, 0.3) !important;
}

.focus\:ring-blue-500:focus,
.focus\:ring-blue-600:focus,
.focus\:ring-emerald-500:focus,
.focus\:ring-purple-500:focus {
  --tw-ring-color: var(--brand-500) !important;
}

/* Gradient utilities coerced to blue tonal system */
.from-blue-50,
.from-blue-100,
.from-indigo-50,
.from-indigo-100,
.from-purple-50,
.from-purple-100,
.from-emerald-50,
.from-emerald-100,
.from-green-50,
.from-green-100,
.from-orange-50,
.from-orange-100,
.from-red-50,
.from-red-100,
.from-pink-50,
.from-pink-100,
.from-teal-50,
.from-teal-100,
.from-yellow-50,
.from-yellow-100,
.from-rose-50,
.from-rose-100 {
  --tw-gradient-from: var(--surface-100) var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(241, 245, 255, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.from-blue-500,
.from-blue-600,
.from-indigo-500,
.from-indigo-600,
.from-purple-500,
.from-purple-600,
.from-emerald-500,
.from-emerald-600,
.from-green-500,
.from-green-600,
.from-orange-500,
.from-orange-600,
.from-red-500,
.from-red-600,
.from-pink-500,
.from-pink-600,
.from-teal-500,
.from-teal-600,
.from-yellow-500,
.from-yellow-600,
.from-rose-500,
.from-rose-600 {
  --tw-gradient-from: var(--brand-700) var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(29, 78, 216, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.to-blue-100,
.to-indigo-100,
.to-purple-100,
.to-emerald-100,
.to-green-100,
.to-orange-100,
.to-red-100,
.to-pink-100,
.to-teal-100,
.to-yellow-100,
.to-rose-100 {
  --tw-gradient-to: var(--surface-200) var(--tw-gradient-to-position);
}

.to-blue-500,
.to-blue-600,
.to-indigo-500,
.to-indigo-600,
.to-purple-500,
.to-purple-600,
.to-emerald-500,
.to-emerald-600,
.to-green-500,
.to-green-600,
.to-orange-500,
.to-orange-600,
.to-red-500,
.to-red-600,
.to-pink-500,
.to-pink-600,
.to-teal-500,
.to-teal-600,
.to-yellow-500,
.to-yellow-600,
.to-rose-500,
.to-rose-600 {
  --tw-gradient-to: var(--brand-500) var(--tw-gradient-to-position);
}

.via-purple-600,
.via-emerald-600,
.via-indigo-600,
.via-teal-600 {
  --tw-gradient-stops: var(--tw-gradient-from), var(--brand-600) var(--tw-gradient-via-position), var(--tw-gradient-to);
}

/* Buttons and cards */
.btn-primary,
.btn-whatsapp {
  letter-spacing: 0.01em;
}

.card-glow {
  box-shadow: 0 20px 60px rgba(29, 78, 216, 0.16);
}

/* Hero background */
.animated-bg {
  background: linear-gradient(-45deg, var(--brand-950), var(--brand-900), var(--brand-800), var(--brand-700));
  background-size: 400% 400%;
  animation: gradientShift 16s ease infinite;
}

a {
  color: var(--brand-700);
}

a:hover {
  color: var(--brand-800);
}
