/* ═══════════════════════════════════════════════
   NEXUS — Landing Page Styles
   Aesthetic: Premium fintech × Bloomberg × Stripe
   ═══════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=DM+Sans:wght@300;400;500;600&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

/* ─── Tokens ──────────────────────────────────── */
:root {
  --bg:         #08090e;
  --bg-s:       #0d0f16;
  --bg-e:       #13151f;
  --border:     rgba(255,255,255,0.07);
  --border-s:   rgba(255,255,255,0.12);
  --text:       #f0f2f8;
  --text-2:     #8892a4;
  --text-3:     #4a5568;
  --accent:     #4361ee;
  --accent-2:   #7c8ef7;
  --accent-glow:rgba(67,97,238,0.25);
  --green:      #10b981;
  --red:        #ef4444;
  --font-d:     'Outfit', sans-serif;
  --font-b:     'DM Sans', sans-serif;
  --font-m:     'IBM Plex Mono', monospace;
  --r-lg:       16px;
  --r-xl:       24px;
  --trans:      0.2s ease;
}

[data-theme="light"] {
  --bg:         #f5f7ff;
  --bg-s:       #ffffff;
  --bg-e:       #eef0f9;
  --border:     rgba(0,0,0,0.07);
  --border-s:   rgba(0,0,0,0.12);
  --text:       #0d0f1e;
  --text-2:     #4a5568;
  --text-3:     #94a3b8;
  --accent-glow:rgba(67,97,238,0.12);
}

/* ─── Reset ────────────────────────────────────── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior: smooth; }
body { font-family:var(--font-b); background:var(--bg); color:var(--text); line-height:1.6; overflow-x:hidden; }
a { text-decoration:none; }
img { max-width:100%; }

/* ─── Container ────────────────────────────────── */
.container { max-width:1140px; margin:0 auto; padding:0 24px; }

/* ─── Nav ──────────────────────────────────────── */
.nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:16px 0;
  transition:background var(--trans), backdrop-filter var(--trans), border-color var(--trans);
  border-bottom:1px solid transparent;
}
.nav.scrolled {
  background:rgba(8,9,14,0.85);
  backdrop-filter:blur(16px);
  border-bottom-color:var(--border);
}
[data-theme="light"] .nav.scrolled { background:rgba(245,247,255,0.85); }

.nav-inner { max-width:1140px; margin:0 auto; padding:0 24px; display:flex; align-items:center; gap:32px; }
.nav-logo { display:flex; align-items:center; gap:10px; font-family:var(--font-d); font-size:18px; font-weight:800; color:var(--text); letter-spacing:-0.02em; }
.logo-icon { width:30px; height:30px; background:var(--accent); border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:16px; font-weight:900; color:white; font-family:var(--font-d); }
.nav-links { display:flex; gap:28px; margin-left:16px; }
.nav-links a { font-size:14px; font-weight:500; color:var(--text-2); transition:color var(--trans); }
.nav-links a:hover { color:var(--text); }
.nav-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.btn-ghost { font-size:14px; font-weight:600; color:var(--text-2); padding:8px 16px; border-radius:8px; transition:all var(--trans); }
.btn-ghost:hover { color:var(--text); background:var(--bg-e); }
.btn-cta { font-size:14px; font-weight:700; color:white; background:var(--accent); padding:9px 20px; border-radius:10px; transition:all var(--trans); font-family:var(--font-d); }
.btn-cta:hover { background:#3451d1; transform:translateY(-1px); box-shadow:0 4px 20px var(--accent-glow); }
.btn-theme { background:none; border:1px solid var(--border-s); border-radius:8px; padding:6px 10px; cursor:pointer; font-size:14px; transition:all var(--trans); }
.btn-theme:hover { background:var(--bg-e); }
.nav-mobile-btn { display:none; background:none; border:1px solid var(--border-s); border-radius:8px; padding:8px 12px; cursor:pointer; font-size:16px; color:var(--text); margin-left:auto; }
.nav-mobile-menu { display:none; flex-direction:column; gap:4px; padding:16px 24px; background:var(--bg-s); border-top:1px solid var(--border); }
.nav-mobile-menu.open { display:flex; }
.nav-mobile-menu a { padding:10px 0; font-size:15px; color:var(--text-2); border-bottom:1px solid var(--border); }

/* ─── Hero ─────────────────────────────────────── */
.hero { padding:140px 0 80px; position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:center; }
.hero-bg { position:absolute; inset:0; z-index:0; }
.hero-grid {
  position:absolute; inset:0;
  background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);
  background-size:60px 60px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 100%);
}
.hero-glow {
  position:absolute; border-radius:50%; filter:blur(80px); pointer-events:none;
  animation:float 8s ease-in-out infinite;
}
.g1 { width:600px; height:400px; background:rgba(67,97,238,0.18); top:-100px; left:50%; transform:translateX(-60%); }
.g2 { width:400px; height:300px; background:rgba(124,62,237,0.12); top:200px; right:-100px; animation-delay:-4s; }
@keyframes float { 0%,100%{transform:translateX(-60%) translateY(0)} 50%{transform:translateX(-60%) translateY(-30px)} }

.hero .container { position:relative; z-index:1; text-align:center; }
.hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(67,97,238,0.1); border:1px solid rgba(67,97,238,0.3);
  border-radius:100px; padding:6px 16px;
  font-size:13px; font-weight:500; color:var(--accent-2);
  margin-bottom:32px; font-family:var(--font-m);
  animation:fadeDown 0.6s ease both;
}
.badge-dot { width:6px; height:6px; border-radius:50%; background:var(--green); animation:pulse 2s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.4} }

.hero-title {
  font-family:var(--font-d); font-size:clamp(48px,7vw,88px); font-weight:900;
  line-height:1.05; letter-spacing:-0.03em; margin-bottom:24px;
  animation:fadeDown 0.6s 0.1s ease both;
}
.gradient-text {
  background:linear-gradient(135deg, #4361ee 0%, #a78bfa 50%, #4361ee 100%);
  background-size:200% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:shimmer 4s linear infinite;
}
@keyframes shimmer { to { background-position:200% center; } }

.hero-sub {
  font-size:clamp(16px,2vw,20px); color:var(--text-2); max-width:600px; margin:0 auto 40px;
  line-height:1.7; animation:fadeDown 0.6s 0.2s ease both;
}
.hero-ctas {
  display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:56px;
  flex-wrap:wrap; animation:fadeDown 0.6s 0.3s ease both;
}
.btn-hero-primary {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--accent); color:white; font-family:var(--font-d);
  font-size:16px; font-weight:700; padding:14px 32px; border-radius:12px;
  transition:all var(--trans);
}
.btn-hero-primary:hover { background:#3451d1; transform:translateY(-2px); box-shadow:0 8px 32px var(--accent-glow); }
.btn-hero-ghost {
  font-size:15px; font-weight:600; color:var(--text-2); padding:14px 28px;
  border:1px solid var(--border-s); border-radius:12px; transition:all var(--trans);
}
.btn-hero-ghost:hover { color:var(--text); border-color:var(--border-s); background:var(--bg-e); }

.hero-stats {
  display:flex; align-items:center; justify-content:center; gap:32px;
  flex-wrap:wrap; margin-bottom:64px; animation:fadeDown 0.6s 0.4s ease both;
}
.stat { text-align:center; }
.stat-n { font-family:var(--font-d); font-size:28px; font-weight:800; letter-spacing:-0.02em; }
.stat-l { font-size:13px; color:var(--text-2); margin-top:2px; }
.stat-div { width:1px; height:40px; background:var(--border-s); }

/* ─── Dashboard Preview ─────────────────────────── */
.hero-preview {
  background:var(--bg-s); border:1px solid var(--border-s); border-radius:16px;
  overflow:hidden; box-shadow:0 40px 80px rgba(0,0,0,0.5);
  max-width:820px; margin:0 auto; text-align:left;
  animation:fadeUp 0.8s 0.5s ease both;
}
@keyframes fadeDown { from{opacity:0;transform:translateY(-16px)} to{opacity:1;transform:none} }
@keyframes fadeUp   { from{opacity:0;transform:translateY(24px)}  to{opacity:1;transform:none} }

.preview-bar {
  display:flex; align-items:center; gap:8px; padding:10px 16px;
  background:var(--bg-e); border-bottom:1px solid var(--border);
  font-size:12px; color:var(--text-3); font-family:var(--font-m);
}
.preview-dot { width:10px; height:10px; border-radius:50%; }
.preview-dot.r{background:#ef4444} .preview-dot.y{background:#f59e0b} .preview-dot.g{background:#10b981}
.preview-bar span { margin-left:8px; }
.preview-body { display:flex; height:280px; }

.preview-sidebar {
  width:48px; background:var(--bg-e); border-right:1px solid var(--border);
  display:flex; flex-direction:column; align-items:center; padding:12px 0; gap:4px;
}
.ps-logo { width:28px; height:28px; background:var(--accent); border-radius:6px; display:flex; align-items:center; justify-content:center; font-family:var(--font-d); font-size:14px; font-weight:900; color:white; margin-bottom:8px; }
.ps-item { font-size:15px; padding:8px; border-radius:8px; cursor:pointer; opacity:0.5; }
.ps-item.active { background:rgba(67,97,238,0.15); opacity:1; }

.preview-main { flex:1; display:flex; flex-direction:column; overflow:hidden; }
.preview-header { display:flex; align-items:center; gap:12px; padding:10px 16px; border-bottom:1px solid var(--border); }
.ph-search { flex:1; background:var(--bg-e); border-radius:8px; padding:6px 12px; font-size:12px; color:var(--text-3); font-family:var(--font-m); }
.ph-user { width:24px; height:24px; border-radius:50%; background:var(--accent); color:white; display:flex; align-items:center; justify-content:center; font-size:10px; flex-shrink:0; }

.preview-cards { display:flex; gap:8px; padding:10px 12px; }
.pc { flex:1; background:var(--bg-e); border-radius:8px; padding:10px; }
.pc-l { font-size:9px; color:var(--text-3); text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px; font-family:var(--font-m); }
.pc-v { font-family:var(--font-m); font-size:14px; font-weight:600; }
.pc-c { font-size:10px; margin-top:2px; }
.pc-c.up { color:var(--green); } .pc-c.dn { color:var(--red); }

.preview-chart { padding:0 12px; flex:1; }
.preview-chart svg { width:100%; height:60px; }

.preview-list { padding:0 12px 8px; }
.pl-item { display:flex; align-items:center; gap:8px; padding:5px 0; border-bottom:1px solid var(--border); font-size:11px; }
.pl-sym { font-family:var(--font-m); font-weight:600; width:36px; }
.pl-name { color:var(--text-2); flex:1; }
.pl-p { font-family:var(--font-m); font-weight:500; }
.pl-c { font-family:var(--font-m); font-size:10px; width:40px; text-align:right; }
.up { color:var(--green); } .dn { color:var(--red); }

/* ─── Trust Bar ─────────────────────────────────── */
.trust-bar { padding:32px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.trust-label { text-align:center; font-size:12px; color:var(--text-3); text-transform:uppercase; letter-spacing:0.1em; font-family:var(--font-m); margin-bottom:20px; }
.trust-logos { display:flex; align-items:center; justify-content:center; gap:32px; flex-wrap:wrap; }
.trust-logo { font-family:var(--font-d); font-size:14px; font-weight:700; color:var(--text-3); letter-spacing:0.05em; }

/* ─── Section Commons ────────────────────────────── */
.section-header { text-align:center; margin-bottom:64px; }
.section-tag { display:inline-block; font-family:var(--font-m); font-size:12px; color:var(--accent-2); text-transform:uppercase; letter-spacing:0.1em; margin-bottom:16px; }
.section-title { font-family:var(--font-d); font-size:clamp(32px,4vw,48px); font-weight:800; letter-spacing:-0.02em; margin-bottom:16px; }
.section-sub { font-size:17px; color:var(--text-2); }

/* ─── Features ──────────────────────────────────── */
.features { padding:100px 0; }
.features-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.feature-card {
  background:var(--bg-s); border:1px solid var(--border);
  border-radius:var(--r-xl); padding:32px;
  transition:all var(--trans);
}
.feature-card:hover { border-color:var(--border-s); transform:translateY(-2px); }
.feature-card.large { grid-column:span 2; }
.fc-icon { font-size:28px; margin-bottom:16px; }
.feature-card h3 { font-family:var(--font-d); font-size:20px; font-weight:700; margin-bottom:8px; }
.feature-card p { font-size:14px; color:var(--text-2); line-height:1.7; }

.fc-visual { margin-top:24px; }
.route-demo { display:flex; align-items:center; gap:12px; background:var(--bg-e); border-radius:12px; padding:16px 20px; }
.rd-asset { font-family:var(--font-m); font-size:14px; font-weight:600; background:rgba(67,97,238,0.15); color:var(--accent-2); padding:6px 14px; border-radius:8px; }
.rd-arrow { color:var(--text-3); font-size:18px; }
.rd-route { font-family:var(--font-m); font-size:13px; color:var(--text-2); flex:1; text-align:center; }

/* ─── How it works ──────────────────────────────── */
.how { padding:100px 0; background:var(--bg-s); }
.steps { display:flex; align-items:flex-start; justify-content:center; gap:0; }
.step { flex:1; max-width:300px; text-align:center; padding:0 24px; }
.step-num { font-family:var(--font-d); font-size:64px; font-weight:900; color:var(--border-s); line-height:1; margin-bottom:16px; }
.step h3 { font-family:var(--font-d); font-size:20px; font-weight:700; margin-bottom:8px; }
.step p { font-size:14px; color:var(--text-2); line-height:1.7; }
.step-connector { width:80px; height:1px; background:var(--border-s); flex-shrink:0; margin-top:40px; }

/* ─── Pricing ────────────────────────────────────── */
.pricing { padding:100px 0; }
.plans { display:flex; align-items:stretch; justify-content:center; gap:24px; flex-wrap:wrap; }
.plan {
  background:var(--bg-s); border:1px solid var(--border);
  border-radius:var(--r-xl); padding:40px 36px;
  width:320px; position:relative;
  transition:all var(--trans);
}
.plan:hover { border-color:var(--border-s); }
.plan.featured { border-color:var(--accent); box-shadow:0 0 40px var(--accent-glow); }
.plan-badge {
  position:absolute; top:-14px; left:50%; transform:translateX(-50%);
  background:var(--accent); color:white;
  font-size:12px; font-weight:700; padding:4px 16px; border-radius:100px;
  font-family:var(--font-d);
}
.plan-name { font-family:var(--font-d); font-size:20px; font-weight:700; margin-bottom:8px; }
.plan-price { font-family:var(--font-d); font-size:52px; font-weight:900; letter-spacing:-0.02em; margin-bottom:32px; }
.plan-price span { font-size:18px; color:var(--text-2); font-weight:500; }
.plan-features { list-style:none; display:flex; flex-direction:column; gap:10px; margin-bottom:32px; }
.plan-features li { font-size:14px; color:var(--text-2); }
.plan-features li strong { color:var(--text); }
.plan-features li.off { opacity:0.4; }
.plan-btn { display:block; text-align:center; background:var(--accent); color:white; font-family:var(--font-d); font-size:15px; font-weight:700; padding:14px; border-radius:12px; transition:all var(--trans); }
.plan-btn:hover { background:#3451d1; }
.plan-btn-ghost { display:block; text-align:center; border:1px solid var(--border-s); color:var(--text); font-family:var(--font-d); font-size:15px; font-weight:600; padding:14px; border-radius:12px; transition:all var(--trans); }
.plan-btn-ghost:hover { background:var(--bg-e); }

/* ─── CTA Section ────────────────────────────────── */
.cta-section { padding:100px 0; }
.cta-box { text-align:center; background:var(--bg-s); border:1px solid var(--border); border-radius:32px; padding:80px 40px; position:relative; overflow:hidden; }
.cta-glow { position:absolute; width:400px; height:400px; background:var(--accent-glow); border-radius:50%; filter:blur(80px); top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none; }
.cta-box h2 { font-family:var(--font-d); font-size:clamp(32px,4vw,48px); font-weight:900; letter-spacing:-0.02em; margin-bottom:16px; position:relative; }
.cta-box p { font-size:17px; color:var(--text-2); margin-bottom:32px; position:relative; }
.cta-box .btn-hero-primary { position:relative; }

/* ─── Footer ─────────────────────────────────────── */
.footer { padding:60px 0 32px; border-top:1px solid var(--border); }
.footer-top { display:flex; gap:64px; margin-bottom:48px; flex-wrap:wrap; }
.footer-brand { flex:1; min-width:200px; }
.footer-brand .nav-logo { margin-bottom:12px; }
.footer-brand p { font-size:14px; color:var(--text-2); max-width:240px; line-height:1.7; }
.footer-links { display:flex; gap:48px; flex-wrap:wrap; }
.fl-col { display:flex; flex-direction:column; gap:10px; }
.fl-col h4 { font-family:var(--font-d); font-size:14px; font-weight:700; margin-bottom:4px; }
.fl-col a { font-size:14px; color:var(--text-2); transition:color var(--trans); }
.fl-col a:hover { color:var(--text); }
.footer-bottom { border-top:1px solid var(--border); padding-top:24px; font-size:12px; color:var(--text-3); }

/* ─── Responsive ──────────────────────────────────── */
@media(max-width:768px) {
  .nav-links,.nav-actions .btn-ghost,.nav-actions .btn-theme { display:none; }
  .nav-mobile-btn { display:block; }
  .nav-actions { gap:8px; }
  .nav-actions .btn-cta { display:none; }
  .hero { padding:100px 0 60px; min-height:auto; }
  .features-grid { grid-template-columns:1fr; }
  .feature-card.large { grid-column:1; }
  .steps { flex-direction:column; align-items:center; gap:32px; }
  .step-connector { display:none; }
  .hero-preview { display:none; }
  .plans { flex-direction:column; align-items:center; }
  .footer-top { flex-direction:column; gap:32px; }
  .hero-stats { gap:24px; }
  .stat-div { display:none; }
}
