:root {
  --brand-50: #eff6ff; --brand-100: #dbeafe; --brand-200: #bfdbfe; --brand-300: #93c5fd; --brand-400: #60a5fa; --brand-500: #3b82f6; --brand-600: #2563eb; --brand-700: #1d4ed8; --brand-800: #1e40af; --brand-900: #1e3a8a; --brand-950: #172554;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Outfit', system-ui, sans-serif; color: #1f2937; background: #fff; }
.font-heading { font-family: 'Space Grotesk', system-ui, sans-serif; }
.hero-bg { background: radial-gradient(circle at 20% 18%, color-mix(in srgb, var(--brand-400) 42%, transparent), transparent 30%), linear-gradient(135deg, var(--brand-950), #111827 60%, var(--brand-800)); }
.btn { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; border-radius: 1.1rem; padding: .85rem 1.25rem; font-weight: 900; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.btn:hover { transform: translateY(-1px) scale(1.02); box-shadow: 0 16px 34px rgba(15, 23, 42, .18); }
.btn-primary { background: var(--brand-600); color: white; }
.btn-light { background: white; color: var(--brand-900); }
.btn-outline { border: 1px solid currentColor; color: inherit; }
.card { border: 1px solid rgba(15, 23, 42, .11); border-radius: 1.5rem; background: white; padding: 1.5rem; transition: transform .18s ease, box-shadow .18s ease; }
.card:hover { transform: translateY(-3px); box-shadow: 0 20px 44px rgba(15, 23, 42, .12); }
.field { width: 100%; border: 1px solid #cbd5e1; border-radius: .95rem; padding: .85rem 1rem; background: white; }
.field:focus { outline: none; border-color: var(--brand-500); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-500) 22%, transparent); }
.label { color: var(--brand-700); font-size: .76rem; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.skip-link { position: absolute; left: -999px; top: .5rem; z-index: 100; background: white; padding: .5rem 1rem; }
.skip-link:focus { left: .5rem; }
.mobile-menu { display: none; }
.mobile-menu.open { display: grid; }
[data-animate] { opacity: 0; transform: translateY(18px); transition: opacity .55s ease, transform .55s ease; }
[data-animate].visible { opacity: 1; transform: translateY(0); }
@media (max-width: 768px) { .desktop-nav { display: none !important; } }
