/*
  Base theme using your brand palette.
  Colors from provided image: #012c9b, #39d75c, #02ddf7 plus supporting shades.
*/

:root {
  /* Genvest Brand Colors - Based on Logo */
  --genvest-blue-dark: #1e3a8a;      /* Primary dark blue from logo */
  --genvest-blue-primary: #3b82f6;    /* Main blue */
  --genvest-blue-light: #60a5fa;      /* Lighter blue */
  --genvest-blue-lighter: #93c5fd;    /* Even lighter blue */
  --genvest-blue-subtle: #dbeafe;     /* Very light blue */
  --genvest-blue-bg: #eff6ff;         /* Background blue */

  /* Supporting Colors */
  --genvest-green: #10b981;           /* Accent green */
  --genvest-green-light: #34d399;     /* Light green */
  --genvest-green-subtle: #d1fae5;    /* Background green */

  /* Neutrals (updated to work with blue theme) */
  --gray-900: #111827;                /* Rich dark */
  --gray-800: #1f2937;
  --gray-700: #374151;
  --gray-600: #4b5563;
  --gray-500: #6b7280;
  --gray-400: #9ca3af;
  --gray-300: #d1d5db;
  --gray-200: #e5e7eb;
  --gray-100: #f3f4f6;
  --white: #ffffff;

  /* Brand core (mapped to Genvest colors) */
  --blue-900: var(--genvest-blue-dark);
  --blue-800: #1d4ed8;
  --blue-600: var(--genvest-blue-primary);
  --sky-400: var(--genvest-blue-light);
  --cyan-400: var(--genvest-blue-lighter);
  --cyan-600: #0284c7;
  --green-500: var(--genvest-green);
  --green-600: #059669;
  --teal-100: var(--genvest-blue-subtle);

  /* Design Tokens */
  --font-heading: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body: "Poppins", "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --bg: linear-gradient(150deg, #ffffff 0%, #f6faff 45%, #edf5ff 100%);
  --text: var(--gray-900);
  --muted: var(--gray-600);
  --primary: var(--genvest-blue-primary);
  --primary-contrast: var(--white);
  --accent: var(--genvest-green);
  --accent-2: var(--genvest-blue-light);
  --surface: rgba(255, 255, 255, 0.9);
  --surface-alt: var(--genvest-blue-bg);
  --ring: color-mix(in oklab, var(--genvest-blue-primary) 30%, transparent);

  /* Logo Gradient (deep blue → bright cyan) */
  --logo-blue-start: #1d4ed8; /* deep blue */
  --logo-blue-mid: #3b82f6;   /* primary blue */
  --logo-blue-end: #02ddf7;   /* bright cyan */

  --radius: 14px;
  --shadow-sm: 0 1px 2px rgba(0,0,0,.06);
  --shadow-md: 0 8px 24px rgba(1,44,155,.18);
  --shadow-lg: 0 18px 40px rgba(1,44,155,.22);
  --container: 1120px;
}

/* Reset/normalise */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  background: var(--bg);
  background-attachment: fixed;
  line-height: 1.65;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
p {
  margin: 0 0 1rem;
  color: var(--gray-700);
  letter-spacing: -0.003em;
}
h1, h2, h3 {
  line-height: 1.2;
  margin: 0 0 .6rem;
  font-family: var(--font-heading);
  letter-spacing: -0.015em;
  color: var(--blue-900);
}
h1 { font-weight: 700; }
h2 { font-weight: 600; }
h3 { font-weight: 600; }

.container {
  width: min(100% - 2rem, var(--container));
  margin-inline: auto;
}

/* Header/Nav */
.site-header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: saturate(140%) blur(12px);
  border-bottom: 1px solid rgba(59, 130, 246, 0.1);
  box-shadow: 0 4px 16px rgba(59, 130, 246, 0.08);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; padding: .75rem 0; position: relative; }
.brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; }
.brand-container { display: flex; flex-direction: column; align-items: stretch; gap: .35rem; width: auto; }
.brand-logo {
  height: 36px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  display: block;
}
.brand-tagline {
  font-size: .65rem;
  font-weight: 700;
  color: var(--primary);
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1.1;
  white-space: nowrap;
  margin-top: -.15rem;
}
.brand-name { font-weight: 700; letter-spacing: .2px; }

.nav { display: flex; gap: 1rem; align-items: center; }
.nav a { padding: .55rem .8rem; border-radius: 10px; color: var(--gray-700); font-weight: 600; }
.nav a:hover { background: var(--gray-100); color: var(--primary); }
.header-cta { 
  margin-left: .5rem; 
  display: none; 
  background: linear-gradient(135deg, #1a4edb, #2563eb);
  color: white;
  border: none;
  box-shadow: 0 4px 12px rgba(26, 78, 219, 0.25);
  font-size: 0.9rem;
  padding: 0.75rem 1.25rem;
}

.header-cta:hover {
  background: linear-gradient(135deg, #1e40af, #1d4ed8);
  box-shadow: 0 6px 20px rgba(26, 78, 219, 0.35);
}

.header-ctas {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: 1.5rem;
}

.header-ctas .btn {
  padding: 0.65rem 1.2rem;
  border-radius: 999px;
  font-size: 0.9rem;
  box-shadow: none;
}

.header-login {
  background: white;
  border: 2px solid #0b3edb;
  color: #0b3edb;
  box-shadow: none;
}

.header-login:hover {
  background: #f8fbff;
  border-color: #052fa2;
  color: #052fa2;
}

.header-get-started {
  background: #0b3edb;
  border: 2px solid #0b3edb;
  box-shadow: 0 6px 18px rgba(11, 62, 219, 0.28);
}

.header-get-started:hover {
  background: #052fa2;
  border-color: #052fa2;
  box-shadow: 0 10px 24px rgba(5, 47, 162, 0.32);
}

.btn-no-arrow::after {
  content: none;
}

.header-ctas .btn-primary {
  color: #ffffff;
}

.nav-ctas { display: none; }
.nav-toggle { display: none; position: relative; width: 40px; height: 40px; border: 0; background: transparent; border-radius: 10px; }
.nav-toggle span { position: absolute; left: 10px; right: 10px; height: 2px; background: var(--gray-700); transition: .25s; }
.nav-toggle span:nth-child(1) { top: 12px; }
.nav-toggle span:nth-child(2) { top: 19px; }
.nav-toggle span:nth-child(3) { top: 26px; }
.nav-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity: 0; }
.nav-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.nav-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15,23,42,.45);
  backdrop-filter: blur(2px);
  border: 0;
  margin: 0;
  padding: 0;
  cursor: pointer;
  display: none;
}

@keyframes zoomIn {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}

/* Responsive logo styles */
@media (max-width: 640px) {
  .brand-logo {
    height: 28px;
    max-width: 120px;
  }
}

@media (max-width: 480px) {
  .brand-logo {
    height: 26px;
    max-width: 96px;
  }
}

@media (max-width: 960px) {
  .header-ctas {
    display: none;
  }
}

/* Hero */
.hero {
  background: radial-gradient(1200px 400px at 10% 0%, color-mix(in oklab, var(--cyan-400) 20%, transparent), transparent),
              radial-gradient(1200px 400px at 90% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent),
              linear-gradient(180deg, #f6fbff, #ffffff);
  border-bottom: 1px solid var(--gray-200);
  min-height: 80vh;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.hero-inner { 
  padding: 2rem 0;
  width: 100%;
  position: relative;
  z-index: 2;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 3rem;
  align-items: center;
  min-height: 60vh;
  position: relative;
}
.hero-copy {
  max-width: none;
  padding: 0;
  display: flex;
  margin-left: 10%;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 3;
}

.hero-copy h1 {
  font-size: clamp(1.98rem, 3.6vw + 0.9rem, 3.24rem);
  color: var(--gray-900);
  font-weight: 800;
  line-height: 1.06;
  margin-top: -.5rem;
  margin-bottom: 1.25rem;
}
.no-wrap { white-space: nowrap; }
@media (max-width: 760px) { .no-wrap { white-space: normal; } }
.hero-copy .highlight {
  background: linear-gradient(90deg, var(--logo-blue-start) 0%, var(--logo-blue-mid) 45%, var(--logo-blue-end) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 900;
}
.hero-copy .highlight-2 {
  background: linear-gradient(90deg, var(--logo-blue-start) 0%, var(--logo-blue-mid) 40%, var(--logo-blue-end) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 900;
}
.lead { font-size: clamp(1.05rem, 1vw + .8rem, 1.25rem); color: var(--gray-600); max-width: 60ch; }
.cta { display: flex; gap: .8rem; margin-top: 1.2rem; }

.chips { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1rem; }
.chip {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .6rem .9rem;
  border-radius: 999px;
  background: #f8feff;
  border: 1px solid rgba(59,130,246,.25);
  box-shadow: 0 6px 20px rgba(2,44,155,.08);
  color: var(--gray-600); /* match hero lead */
  font-weight: 500; /* match hero lead weight */
  font-size: 0.8em; /* 20% smaller */
}

.chip::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #22c55e, #34d399);
  box-shadow: 0 0 0 4px rgba(34,197,94,.18);
}
.trust { display: flex; gap: 1rem; flex-wrap: wrap; margin: 1rem 0; }
.trust-item {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  background: #f8feff;
  color: var(--gray-600); /* match hero lead */
  border: 1px solid rgba(59,130,246,.25);
  padding: .6rem .9rem;
  border-radius: 999px;
  font-weight: 500; /* match hero lead weight */
  box-shadow: 0 6px 20px rgba(2,44,155,.08);
  font-size: 0.8em; /* 20% smaller */
}

.trust-item::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #22c55e, #34d399);
  box-shadow: 0 0 0 4px rgba(34,197,94,.18);
}
.legal { color: var(--muted); font-size: .9rem; max-width: 65ch; }

.hero-visual {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  position: relative;
  z-index: 1;
}
.illustration { width: 100%; height: auto; filter: drop-shadow(0 20px 40px rgba(1,44,155,.15)); }

/* Chat preview card */
.chat-card { position: relative; width: 100%; max-width: 560px; border-radius: 22px; overflow: hidden; box-shadow: 0 30px 80px rgba(1,44,155,.25); border: 1px solid var(--gray-200); background: var(--surface); }
.chat-card.dark {
  border: 1px solid color-mix(in oklab, var(--primary) 25%, #0000);
  background: linear-gradient(180deg, #0f1624, #0c1320 55%, #0a111c);
}
.chat-card.frameless { border: 0; border-radius: 0; box-shadow: none; }
.chat-card.transparent { background: transparent; border: 0; box-shadow: none; }
.chat-head { padding: .9rem 1rem; border-bottom: 1px solid rgba(0,0,0,.06); background: linear-gradient(90deg, rgba(2,54,181,.15), rgba(50,102,204,.08)); }
.chat-card.dark .chat-head { border-bottom-color: rgba(255,255,255,.06); background: linear-gradient(90deg, rgba(2,54,181,.35), rgba(50,102,204,.15)); }
.chat-card .eyebrow { color: var(--primary); letter-spacing: .06em; font-weight: 800; font-size: .8rem; }
.chat-card.dark .eyebrow { color: #a7b7ff; }
.chat-body { padding: 1rem; display: grid; gap: .9rem; }
.chat-card.dark .chat-body { background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)); }
.msg { display: grid; grid-template-columns: auto 1fr; gap: .6rem; align-items: start; }
.msg.user p { color: var(--gray-900); font-weight: 800; }
.msg.bot p { color: var(--green-600); }
.msg p { margin: 0; }
.msg .avatar { width: 28px; height: 28px; background: linear-gradient(180deg, var(--primary), var(--blue-800)); color: #fff; display: grid; place-items: center; font-weight: 800; border-radius: 8px; box-shadow: 0 6px 16px rgba(0,0,0,.35); }
.msg.line { opacity: 0; transform: translateY(6px); animation: rise .45s ease forwards; }
@keyframes rise { to { opacity: 1; transform: translateY(0); } }
.typing { display: inline-grid; grid-auto-flow: column; gap: .25rem; align-items: center; }
.typing span { width: 6px; height: 6px; background: #aaf4bf; border-radius: 50%; opacity: .4; animation: blink 1s infinite; }
.typing span:nth-child(2){ animation-delay: .15s; }
.typing span:nth-child(3){ animation-delay: .3s; }
@keyframes blink { 0%, 100% { opacity: .2; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } }
.chat-input { display: grid; grid-template-columns: 1fr auto; gap: .6rem; padding: .9rem; border-top: 1px solid rgba(0,0,0,.06); background: transparent; }
.chat-card.dark .chat-input { border-top-color: rgba(255,255,255,.06); }
.chat-card.dark .chat-input input { background: rgba(255,255,255,.06); color: #eef3ff; border: 1px solid rgba(255,255,255,.08); }
.chat-input input { width: 100%; padding: .85rem 1rem; border-radius: 14px; border: 1px solid var(--gray-300); background: var(--white); color: var(--text); }
.chat-card.transparent .chat-input input { background: rgba(255,255,255,.9); }
.chat-input input::placeholder { color: var(--gray-400); }
.chat-input input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--ring); outline: none; }
.chat-card.dark .btn-primary { background: linear-gradient(180deg, #2a5bff, #1438c4); box-shadow: 0 10px 30px rgba(32,90,255,.35); }

/* Responsive adjustments - Keep desktop layout on mobile */
@media (max-width: 900px) {
  .hero {
    min-height: auto;
    padding: 2rem 0;
  }
  .hero-inner {
    padding: 1.5rem 0;
  }
  /* KEEP 2-column grid like desktop */
  .hero-grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
    align-items: center;
    min-height: auto;
  }
  .hero-copy {
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
    padding: 0 0.5rem;
    text-align: left;
  }
  .hero-copy h1 {
    font-size: clamp(1.4rem, 5vw, 2rem);
    line-height: 1.1;
  }
  .hero-copy .lead {
    font-size: clamp(0.85rem, 2.5vw, 1rem);
    max-width: 100%;
  }
  .hero-model-container {
    height: auto;
    min-height: 400px;
    padding-bottom: 60px;
    position: relative;
  }
  .hero-model-image {
    max-width: 100%;
  }
  .hero-model-image img {
    transform: scale(1.15);
  }
  /* Chat overlay positioning for mobile side-by-side */
  .hero-insight-overlay {
    position: absolute;
    right: -20px;
    bottom: -30px;
    width: clamp(200px, 45vw, 280px);
  }
  .user-left {
    top: 10%;
    right: -10px;
  }
  .ai-right {
    top: 40%;
    left: -10px;
  }
}

/* Mobile-first chat UI (light variant) */
@media (max-width: 760px) {
  .chat-card { width: 92vw; max-width: 420px; margin-inline: auto; border-radius: 28px; }
  .chat-card.dark {
    background: linear-gradient(180deg, #ffffff, #f7fbff);
    border: 1px solid var(--gray-200);
    box-shadow: 0 20px 60px rgba(12,19,32,.15);
  }
  .chat-card.dark .chat-head { background: color-mix(in oklab, var(--teal-100) 35%, #fff); border-bottom-color: var(--gray-200); }
  .chat-card.dark .eyebrow { color: var(--primary); }
  .chat-card.dark .chat-body { background: linear-gradient(180deg, #ffffff, #fafdff); }
  .chat-card.dark .msg.user p { color: var(--gray-900); }
  .chat-card.dark .msg.bot p { color: var(--green-500); }
  .chat-card.dark .typing span { background: var(--green-500); }
  .chat-card.dark .chat-input { border-top-color: var(--gray-200); }
  .chat-card.dark .chat-input input { background: var(--white); color: var(--text); border: 1px solid var(--gray-300); }
  .chat-card.dark .chat-input input::placeholder { color: var(--gray-400); }
  /* phone notch */
  .chat-card::before { content: ""; position: absolute; top: 8px; left: 50%; transform: translateX(-50%); width: 88px; height: 6px; border-radius: 999px; background: rgba(0,0,0,.08); }
}

/* Device (Android-like) mockup */
.device { position: relative; width: 240px; aspect-ratio: 9 / 19.5; border-radius: 36px; padding: 12px; background: transparent; box-shadow: 0 24px 70px rgba(1,44,155,.18); border: 1px solid rgba(2,54,181,.25); }
.device .screen { position: relative; width: 100%; height: 100%; border-radius: 28px; overflow: hidden; background: transparent; display: grid; grid-template-rows: auto 1fr; }
.device .camera-dot { position: absolute; top: 10px; right: 60px; width: 8px; height: 8px; border-radius: 50%; background: #101826; box-shadow: inset 0 0 0 2px rgba(255,255,255,.06); }
.status-bar { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .35rem .6rem; color: rgba(255,255,255,.7); font-weight: 700; font-size: .8rem; letter-spacing: .02em; background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02)); }
.status-icons { display: inline-grid; grid-auto-flow: column; gap: .35rem; align-items: center; }
.status-icons .sig, .status-icons .wifi, .status-icons .bat { display: inline-block; width: 14px; height: 8px; background: rgba(255,255,255,.6); border-radius: 2px; }
.status-icons .wifi { width: 12px; opacity: .7; }
.status-icons .bat { width: 18px; opacity: .9; }

/* Ensure chat fills the device screen */
.device .chat-card { width: 100%; height: 100%; }

@media (max-width: 900px) {
  .device { width: min(82vw, 300px); }
}

/* Sections */
.section { padding: 3.5rem 0; background: var(--bg); }
.section.alt { background: var(--surface-alt); }
.section.dark {
  background: radial-gradient(1200px 600px at 10% 0%, rgba(2, 44, 155, 0.25), transparent),
              radial-gradient(1200px 600px at 90% 0%, rgba(16, 185, 129, 0.18), transparent),
              linear-gradient(180deg, #0f1624, #0b1220);
  color: #eaf0ff;
}
.section.dark .section-header .kicker { color: #a7b7ff; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
.section.dark .section-header h2 { color: #eaf0ff; }
.section.dark .section-header p { color: rgba(234,240,255,.75); }

.section.dark .feature-cards .feature-card-item {
  border-color: rgba(255,255,255,.12);
  box-shadow: 0 18px 42px rgba(0,0,0,.45), 0 6px 16px rgba(0,0,0,.25);
}
.section.dark .feature-card-item h3 { color: #f3f7ff; }
.section.dark .feature-card-item p { color: rgba(234,240,255,.9); }
.section.dark .cards-dots .dot { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.25); }
.section.dark .cards-dots .dot.is-active { background: var(--primary); border-color: var(--primary); }

/* Dark section: make feature cards darker glass with brand glows for contrast */
.section.dark .feature-cards .feature-card-item {
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(59,130,246,.12), transparent),
    radial-gradient(120% 140% at 100% 100%, rgba(16,185,129,.10), transparent),
    linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.04));
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 18px 42px rgba(0,0,0,.45), 0 6px 16px rgba(0,0,0,.25);
}
.section.dark .feature-cards .feature-card-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 28px 60px rgba(0,0,0,.55), 0 10px 26px rgba(0,0,0,.35);
  border-color: rgba(147,197,253,.35);
}
.section-header { text-align: center; margin-bottom: 2rem; }
.section-header h2 { font-size: clamp(1.6rem, 1.5vw + 1rem, 2rem); color: var(--primary); }
.section-header p { color: var(--muted); }

/* Override for highlights section to match hero banner */
#highlights .section-header h2 { color: var(--gray-900); }
#highlights .section-header p { color: var(--gray-600); }

/* Light theme for highlights section feature cards */
#highlights .feature-cards {
  position: relative;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.5rem;
  align-items: center;
}

#highlights .cards-scroller {
  overflow-x: auto;
  display: grid;
  grid-auto-flow: column;
  gap: 1.5rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding: 0.5rem 0 1rem;
  scrollbar-width: none;
}

#highlights .cards-scroller::-webkit-scrollbar {
  display: none;
}

#highlights .feature-card-item {
  position: relative;
  width: 280px;
  min-height: 140px;
  padding: 1.25rem 1.5rem;
  border-radius: 20px;
  background: linear-gradient(150deg, rgba(244, 248, 255, 0.92) 0%, rgba(221, 236, 255, 0.96) 100%);
  border: 1px solid rgba(59, 130, 246, 0.18);
  box-shadow: 0 14px 36px rgba(59, 130, 246, 0.16);
  scroll-snap-align: center;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  overflow: hidden;
  backdrop-filter: blur(6px);
}

#highlights .feature-card-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 46px rgba(37, 99, 235, 0.22);
}

#highlights .feature-card-item::before,
#highlights .feature-card-item::after {
  content: "";
  position: absolute;
  inset: auto auto 0 0;
  width: 60%;
  height: 60%;
  background: radial-gradient(circle at bottom left, rgba(59, 130, 246, 0.25), transparent 65%);
  z-index: 0;
  pointer-events: none;
  transform: translate(-20%, 30%);
}

#highlights .feature-card-item::after {
  inset: -10% -10% auto auto;
  width: 55%;
  height: 55%;
  background: radial-gradient(circle at top right, rgba(2, 221, 247, 0.28), transparent 70%);
  transform: translate(15%, -5%);
}

#highlights .feature-card-item > * {
  position: relative;
  z-index: 1;
}

#highlights .feature-card-item h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0;
  color: #1a1a1a;
  line-height: 1.25;
}

#highlights .feature-card-item p {
  font-size: 0.85rem;
  color: #666666;
  margin: 0;
  line-height: 1.4;
  flex-grow: 1;
}

#highlights .card-icon {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
  flex-shrink: 0;
  border: none;
  background: transparent;
  transition: all 0.3s ease;
  filter: drop-shadow(0 16px 36px rgba(25, 90, 210, 0.16));
}

#highlights .card-icon img,
#highlights .card-icon svg {
  width: 72px !important;
  height: 72px !important;
  display: block;
}

#highlights .card-icon.blue {
  background: transparent;
  color: var(--blue-600);
}

#highlights .card-icon.green {
  background: transparent;
  color: var(--green-600);
}

#highlights .card-icon.teal {
  background: transparent;
  color: var(--cyan-600);
}

#highlights .feature-card-item:hover .card-icon.blue {
  background: transparent;
}

#highlights .feature-card-item:hover .card-icon.green {
  background: transparent;
}

#highlights .feature-card-item:hover .card-icon.teal {
  background: transparent;
}

#highlights .cards-dots {
  margin-top: 1.5rem;
}

/* Personalized Portfolio Benefit */
/* Personalized portfolios section */
.personalized-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: start; }
.pp-left h2 { font-size: clamp(1.8rem, 2.8vw + .6rem, 2.6rem); margin: .4rem 0 .6rem; color: var(--text); }
.pp-sub { color: var(--muted); max-width: 60ch; }
.pp-pill { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .6rem; border-radius: 999px; background: color-mix(in oklab, var(--accent-2) 12%, #fff); border: 1px solid color-mix(in oklab, var(--accent-2) 28%, #fff); color: var(--primary); font-weight: 800; font-size: .8rem; }
.pp-badges { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.pp-badge { display: inline-flex; align-items: center; gap: .4rem; padding: .4rem .6rem; border-radius: 999px; background: var(--surface); border: 1px solid var(--gray-200); color: var(--gray-700); font-weight: 700; }
.pp-badge i { color: var(--green-600); font-style: normal; }

/* Slider */
.pp-slider { border: 1px solid var(--gray-200); background: var(--surface); border-radius: 16px; padding: .8rem; box-shadow: var(--shadow-sm); max-width: 640px; }
.pp-slider-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: .4rem; font-weight: 800; }
.pp-slider-track { display: grid; grid-template-columns: auto 1fr auto; gap: .6rem; align-items: center; }
.pp-scale { color: var(--gray-600); font-weight: 700; font-size: .9rem; }
.pp-slider input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--green-500)); outline: none; box-shadow: inset 0 0 0 1px rgba(0,0,0,.06); }
.pp-slider input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 20px; height: 20px; border-radius: 50%; background: #fff; border: 2px solid var(--primary); box-shadow: 0 4px 10px rgba(1,44,155,.25); cursor: pointer; }

.pp-ctas { display: flex; gap: .8rem; align-items: center; margin-top: .9rem; }
.pp-note { margin-top: .6rem; color: var(--gray-500); font-size: .8rem; }

/* Enhanced Metrics Section */
.metrics-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.metrics-grid {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  margin-bottom: 1rem;
  width: 100%;
}

.metric-card {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: center;
  padding: 0.875rem;
  background: rgba(255, 255, 255, 0.8);
  border: 1px solid rgba(59, 130, 246, 0.08);
  border-radius: 8px;
  backdrop-filter: blur(10px);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  width: 100%;
  box-sizing: border-box;
  min-height: 0;
}

.metric-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(59, 130, 246, 0.15);
}

.metric-icon {
  width: 32px;
  height: 32px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--blue-600), var(--green-500));
  color: white;
  box-shadow: 0 2px 6px rgba(59, 130, 246, 0.15);
  flex-shrink: 0;
  opacity: 0.95;
}

.metric-content {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  overflow: hidden;
}

.metric-value {
  font-size: 0.7rem;
  font-weight: 400;
  color: var(--gray-700);
  line-height: 1;
  letter-spacing: -0.01em;
}

.metric-value-large {
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  color: var(--gray-800) !important;
  margin-bottom: 0.1rem;
  letter-spacing: -0.01em;
}

.metric-label-large {
  font-size: 0.8rem !important;
  color: var(--gray-500) !important;
  font-weight: 300 !important;
  margin: 0;
  line-height: 1.2;
  margin-bottom: 0.2rem;
}

.metric-label {
  font-size: 0.55rem;
  color: var(--gray-500);
  line-height: 1.1;
  font-weight: 300;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.metric-bar {
  height: 4px;
  background: rgba(59, 130, 246, 0.1);
  border-radius: 999px;
  overflow: hidden;
  width: 100%;
  margin-top: 0.25rem;
}

.metric-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--blue-600), var(--green-500));
  border-radius: 999px;
  transition: width 1s ease-in-out;
  width: 0%;
  animation: fillBar 1.5s ease-out forwards;
}

.metric-fill.fill-100 {
  width: 100%;
}

.metric-fill.fill-99 {
  width: 99%;
}

.metric-fill.fill-25 {
  width: 25%;
}

/* Allocation card */
.pp-right .alloc-card { background: var(--surface); border: 1px solid var(--gray-200); border-radius: 18px; padding: 1rem; box-shadow: var(--shadow-sm); }
.pp-right .alloc-card.dark {
  background:
    radial-gradient(120% 100% at 0% 0%, color-mix(in oklab, var(--accent-2) 16%, transparent), transparent),
    radial-gradient(120% 100% at 100% 0%, color-mix(in oklab, var(--green-500) 14%, transparent), transparent),
    linear-gradient(180deg, #0f1624, #0b1220);
  border-color: rgba(255,255,255,.08);
  box-shadow: 0 24px 60px rgba(1,44,155,.25);
  color: #eaf0ff;
}
.alloc-card.dark .preview-pill { color: #a7b7ff; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.alloc-card.dark h3 { color: #eaf0ff; }
.alloc-card.dark .alloc-head.v2 h3 { color: #eaf0ff; }
.alloc-card.dark .alloc-sub { color: #d6e4ff; font-weight: 600; }
.alloc-card.dark .metric-card { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.alloc-card.dark .metric-label { color: rgba(234,240,255,.8); }
.alloc-card.dark .metric-bar { background: rgba(255,255,255,.18); }
.alloc-card.dark .alloc-benefits .benefit-tile { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
.alloc-card.dark .benefit-title { color: #eaf0ff; }
.alloc-card.dark .benefit-sub { color: rgba(234,240,255,.8); }
.alloc-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .6rem; }
.alloc-head .label { font-weight: 800; color: var(--gray-800); }
.alloc-head .muted { color: var(--gray-500); font-size: .9rem; }

/* V2 preview style */
.alloc-head.v2 { display: grid; gap: .4rem; }
.preview-pill { display: inline-flex; width: max-content; padding: .25rem .5rem; border-radius: 999px; font-weight: 800; font-size: .8rem; color: var(--primary); background: color-mix(in oklab, var(--accent-2) 18%, #fff); border: 1px solid color-mix(in oklab, var(--accent-2) 30%, #fff); }
.alloc-head.v2 h3 { margin: 0; font-size: 1.4rem; color: var(--gray-900); }
.alloc-head.v2 .alloc-sub { margin: 0; color: var(--gray-600); }

.alloc-metrics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .8rem; margin: .8rem 0; }
.metric-card { background: #fff; border: 1px solid var(--gray-200); border-radius: 14px; padding: .8rem; box-shadow: var(--shadow-sm); }
.metric-label { color: var(--gray-600); font-weight: 700; font-size: .9rem; }
.metric-value { font-weight: 900; font-size: 1.5rem; margin: .25rem 0 .35rem; }
.metric-value.eq { color: var(--primary); }
.metric-value.debt { color: var(--green-600); }
.metric-value.gold { color: #f59e0b; }
.metric-bar { height: 8px; border-radius: 999px; background: var(--gray-200); overflow: hidden; }
.metric-bar .fill { display: block; height: 100%; border-radius: 999px; }
.metric-bar .fill.eq { background: var(--primary); }
.metric-bar .fill.debt { background: linear-gradient(90deg, var(--green-500), var(--green-600)); }
.metric-bar .fill.gold { background: #22d3ee; background: #f59e0b; }

.alloc-benefits { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: .8rem; }
.benefit-tile { background: color-mix(in oklab, var(--accent-2) 10%, #fff); border: 1px solid var(--gray-200); border-radius: 12px; padding: .8rem; }
.benefit-title { font-weight: 800; color: var(--gray-800); }
.benefit-sub { color: var(--gray-600); font-size: .9rem; }
.alloc-bar { position: relative; height: 10px; border-radius: 999px; background: var(--gray-200); overflow: hidden; margin-bottom: .8rem; }
.alloc-bar .seg { position: absolute; left: 0; top: 0; bottom: 0; }
.alloc-bar .seg.eq { background: var(--primary); }
.alloc-bar .seg.debt { left: 48%; background: linear-gradient(90deg, var(--green-500), var(--green-600)); }
.alloc-bar .seg.gold { left: calc(48% + 35%); background: #f59e0b; }
.alloc-bar .seg.cash { left: calc(48% + 35% + 14%); background: var(--gray-400); }
.alloc-legend { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .6rem; margin-bottom: .6rem; }
.alloc-legend .box { display: flex; align-items: center; gap: .4rem; color: var(--gray-700); font-weight: 700; }
.alloc-legend .dot { width: 10px; height: 10px; border-radius: 999px; display: inline-block; }
.alloc-legend .dot.eq { background: var(--primary); }
.alloc-legend .dot.debt { background: var(--green-500); }
.alloc-legend .dot.gold { background: #f59e0b; }
.alloc-legend .dot.cash { background: var(--gray-400); }
.alloc-legend .pct { margin-left: auto; color: var(--gray-600); font-weight: 800; }
.alloc-points { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; color: var(--gray-700); }
.alloc-points .ok { color: var(--green-600); font-weight: 900; margin-right: .35rem; }

@media (max-width: 900px) {
  .personalized-grid { grid-template-columns: 1fr; }
}

.grid { display: grid; gap: 1rem; }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Section 2: Features */
.section-header.strong .kicker { display: inline-block; padding: .3rem .6rem; border-radius: 999px; font-weight: 800; color: var(--primary); background: color-mix(in oklab, var(--accent-2) 20%, #fff); border: 1px solid color-mix(in oklab, var(--accent-2) 40%, #fff); margin-bottom: .5rem; }
.section-header.strong h2 { font-size: clamp(1.8rem, 2.4vw + 1rem, 2.4rem); }

.features-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.feature-card {
  background: var(--surface);
  backdrop-filter: blur(12px) saturate(180%);
  border: 1px solid rgba(255, 255, 255, 0.3);
  border-radius: 18px;
  padding: 1.4rem;
  text-align: center;
  box-shadow: 0 20px 40px rgba(59, 130, 246, 0.15), 0 8px 16px rgba(59, 130, 246, 0.08);
  display: grid;
  gap: .6rem;
  align-content: start;
  transition: all 0.3s ease;
}
.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 32px 64px rgba(59, 130, 246, 0.25), 0 16px 32px rgba(59, 130, 246, 0.15);
  border-color: rgba(59, 130, 246, 0.4);
}
.feature-card h3 { margin: .4rem 0; font-size: 1.05rem; }
.feature-card p { color: var(--gray-600); margin: 0 0 .2rem; }
.feat-icon { width: 52px; height: 52px; margin: 0 auto .2rem; display: grid; place-items: center; border-radius: 14px; color: #fff; background: linear-gradient(180deg, var(--primary), var(--blue-800)); box-shadow: 0 12px 26px rgba(1,44,155,.25); }
/* Blue + Green only, using provided palette */
.feat-icon.teal { background: linear-gradient(180deg, var(--blue-600), var(--green-500)); }
.feat-icon.green { background: linear-gradient(180deg, var(--green-500), var(--green-600)); }
.feat-icon.blue { background: linear-gradient(180deg, var(--blue-600), var(--primary)); }
.feat-icon.indigo { background: linear-gradient(180deg, var(--primary), var(--blue-600)); }
.feat-icon.violet { background: linear-gradient(180deg, var(--green-500), var(--blue-600)); }

.micro-cta { display: inline-flex; align-items: center; gap: .35rem; justify-self: center; font-weight: 800; color: var(--primary); }
.micro-cta::after { content: '↗'; font-weight: 900; }

/* Blog cards minor tweaks */
.blog-cards .blog-card { text-align: left; align-content: start; }
.blog-cards .blog-card h3 { font-size: 1.1rem; }
.blog-cards .blog-card p { font-size: .95rem; }

@media (max-width: 900px) {
  .features-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .features-cards { grid-template-columns: 1fr; }
}

/* Section 3: Solution split */
.split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: start; }
.section-header.left { text-align: left; }
.section-header.center { text-align: center; }
.checklist { list-style: none; padding: 0; margin: 1.2rem 0 0; display: grid; gap: 1rem; }
.checklist li { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: center; background: linear-gradient(180deg, #ffffff, #f9fcff); border: 1px solid var(--gray-200); border-radius: 18px; padding: 1rem; box-shadow: 0 12px 26px rgba(12,19,32,.06); }
.tick { width: 40px; height: 40px; border-radius: 12px; background: radial-gradient(120% 120% at 20% 20%, #bdf7cd, var(--green-500) 40%, var(--green-600) 100%); position: relative; box-shadow: 0 12px 28px rgba(28,181,49,.25); }
.tick::after { content: ''; position: absolute; width: 14px; height: 8px; border: 3px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg); left: 12px; top: 13px; }

.ai-panel { border-radius: 22px; overflow: hidden; background: var(--surface); border: 1px solid var(--gray-200); box-shadow: 0 20px 60px rgba(1,44,155,.12); }
.factor-panel { display: grid; gap: .5rem; }
.factor-panel.dark { background: linear-gradient(180deg, #0f1624, #0b1220); color: #eaf0ff; border-color: rgba(255,255,255,.08); }
.fp-head { padding: .5rem .7rem; border-bottom: 1px solid var(--gray-200); }
.factor-panel.dark .fp-head { border-bottom-color: rgba(255,255,255,.08); }
.fp-head h3 { margin: .05rem 0; font-size: 1rem; }
.fp-head .muted { margin: 0; color: var(--gray-600); font-size: .85rem; }
.factor-panel.dark .muted { color: rgba(255,255,255,.7); }

.factors-grid { display: grid; grid-template-columns: 1fr; gap: .45rem; padding: 0 .7rem; }
.factor { display: grid; grid-template-columns: auto 1fr; gap: .5rem; align-items: center; background: transparent; border: 0; border-radius: 10px; padding: .3rem .35rem; box-shadow: none; }
.f-icon { width: 24px; height: 24px; border-radius: 7px; display: grid; place-items: center; font-weight: 900; color: #fff; font-size: .7rem; }
.f-icon.blue { background: linear-gradient(180deg, var(--blue-600), var(--primary)); }
.f-icon.green { background: linear-gradient(180deg, var(--green-500), var(--green-600)); }
.f-row { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.f-title { font-weight: 800; color: var(--gray-800); font-size: .95rem; }
.factor-panel.dark .f-title { color: #eaf0ff; }
.f-val { font-weight: 800; color: var(--gray-700); font-size: .9rem; }
.factor-panel.dark .f-val { color: #cfe1ff; }
.f-bar { height: 5px; background: var(--gray-100); border: 0; border-radius: 999px; overflow: hidden; margin: .18rem 0; }
.factor-panel.dark .f-bar { background: rgba(255,255,255,.08); }
.f-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--green-500), var(--green-600)); border-radius: 999px; }
.f-bar.blue span { background: linear-gradient(90deg, var(--blue-600), var(--primary)); }
.f-bar.low span { background: linear-gradient(90deg, var(--blue-600), var(--teal-100)); }
@keyframes fill { to { width: var(--to, 100%); } }
.f-note { color: var(--muted); font-size: .8rem; margin-top: .05rem; }
.factor-panel.dark .f-note { color: rgba(255,255,255,.65); }

.fp-summary { display: grid; grid-template-columns: 1fr auto; gap: .5rem; align-items: center; padding: .45rem .7rem .6rem; }
.rr { color: var(--gray-700); font-weight: 700; font-size: .9rem; }
.factor-panel.dark .rr { color: #d9e6ff; }
.good-text { color: var(--green-500); font-weight: 900; margin-left: .5rem; font-size: .85rem; }
.decision { display: inline-flex; align-items: center; gap: .35rem; font-weight: 900; color: var(--white); background: linear-gradient(180deg, var(--green-500), var(--green-600)); border-radius: 10px; padding: .35rem .6rem; box-shadow: 0 10px 26px rgba(28,181,49,.25); font-size: .9rem; }
.decision .chev { font-weight: 900; }

@media (max-width: 960px) {
  .split { grid-template-columns: 1fr; }
}

/* Section 4: Showcase slider */
.showcase { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: .5rem; align-items: center; }
.showcase-scroller { overflow-x: auto; display: grid; grid-auto-flow: column; gap: 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; padding: .2rem 0 .6rem; scrollbar-width: none; }
.showcase-scroller::-webkit-scrollbar { display: none; }
.slide { scroll-snap-align: center; background: var(--surface); border: 1px solid var(--gray-200); border-radius: 18px; width: min(92vw, 860px); box-shadow: 0 14px 34px rgba(1,44,155,.12); overflow: hidden; display: grid; grid-template-columns: 1fr; }
.slide .media { aspect-ratio: 3 / 1.7; display: grid; place-items: center; }
.slide .media.gradient.blue { background: radial-gradient(60% 80% at 0% 0%, color-mix(in oklab, var(--accent-2) 30%, transparent), transparent), radial-gradient(70% 90% at 100% 0%, color-mix(in oklab, var(--primary) 30%, transparent), transparent), #f6fbff; }
.slide .media.gradient.green { background: radial-gradient(60% 80% at 0% 0%, color-mix(in oklab, var(--green-500) 25%, transparent), transparent), radial-gradient(70% 90% at 100% 0%, color-mix(in oklab, var(--blue-600) 25%, transparent), transparent), #f6fffb; }
.slide .placeholder { width: 92%; height: auto; filter: drop-shadow(0 16px 36px rgba(1,44,155,.2)); }
.slide-copy { padding: 1rem; }
.slide-copy h3 { margin-bottom: .2rem; }
.slide-copy p { color: var(--gray-600); }

.showcase-btn { width: 40px; height: 40px; border-radius: 12px; border: 1px solid var(--gray-200); background: var(--white); color: var(--primary); font-size: 1.2rem; display: grid; place-items: center; box-shadow: var(--shadow-sm); }
.showcase-btn:hover { border-color: var(--primary); }

.dots { display: flex; justify-content: center; gap: .4rem; margin-top: .8rem; }
.dot { width: 10px; height: 10px; border-radius: 999px; border: 1px solid var(--gray-300); background: var(--gray-200); }
.dot.is-active { background: var(--primary); border-color: var(--primary); }

@media (max-width: 760px) {
  .slide { width: 86vw; }
}

/* Feature Cards */
.feature-cards { position: relative; display: grid; grid-template-columns: 1fr; gap: .5rem; align-items: center; }
.cards-scroller {
  overflow-x: auto;
  display: grid;
  grid-auto-flow: column;
  gap: 1.5rem;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  padding: .5rem 0 1rem;
  scrollbar-width: none;
}
.cards-scroller::-webkit-scrollbar { display: none; }

.feature-card-item {
  position: relative;
  width: 280px;
  min-height: 180px;
  padding: 1.5rem;
  border-radius: 16px;
  background: url('/icons/cad_background.png') center/cover no-repeat;
  border: 1px solid rgba(255,255,255,0.25);
  box-shadow: 0 12px 32px rgba(59,130,246,0.10);
  scroll-snap-align: center;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.feature-card-item:hover { transform: translateY(-3px); box-shadow: 0 16px 40px rgba(59,130,246,0.18); }

/* Gradient backgrounds removed - using card background image instead */

/* Image card stays neutral */
.feature-card-item.feature-card-image { background: transparent; border: 0; }

/* Force darker, legible cards in dark section (override with card background) */
.section.dark .feature-cards .feature-card-item {
  background: url('/icons/cad_background.png') center/cover no-repeat !important;
  backdrop-filter: blur(10px) saturate(150%);
  border: 1px solid rgba(255,255,255,.12);
  box-shadow: 0 20px 48px rgba(0,0,0,.5);
}
.section.dark .feature-card-item h3 { color: #f3f7ff; text-shadow: 0 1px 0 rgba(0,0,0,.25); }
.section.dark .feature-card-item p { color: rgba(234,240,255,.9); text-shadow: 0 1px 0 rgba(0,0,0,.15); }

.card-icon {
  width: 67px;
  height: 67px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.5rem;
  flex-shrink: 0;
}

.card-icon img,
.card-icon svg {
  width: 54px !important;
  height: 54px !important;
  display: block;
}

.card-icon.blue {
  background: linear-gradient(135deg, rgba(29, 78, 216, 0.12), rgba(14, 165, 233, 0.16));
  color: var(--blue-600);
  border: 1px solid rgba(59, 130, 246, 0.18);
  box-shadow: 0 10px 24px rgba(59, 130, 246, 0.15);
}
.card-icon.green {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.12), rgba(52, 211, 153, 0.18));
  color: var(--green-600);
  border: 1px solid rgba(34, 197, 94, 0.22);
  box-shadow: 0 10px 24px rgba(16, 185, 129, 0.15);
}
.card-icon.teal {
  background: linear-gradient(135deg, rgba(2, 132, 199, 0.12), rgba(45, 212, 191, 0.16));
  color: var(--cyan-600);
  border: 1px solid rgba(2, 132, 199, 0.18);
  box-shadow: 0 10px 24px rgba(2, 132, 199, 0.14);
}
.card-icon.purple {
  background: linear-gradient(135deg, rgba(123, 97, 255, 0.16), rgba(139, 92, 246, 0.26));
  color: #7C3AED;
  border: 1px solid rgba(129, 140, 248, 0.24);
  box-shadow: 0 10px 24px rgba(129, 140, 248, 0.18);
}
.card-icon.orange {
  background: linear-gradient(135deg, rgba(249, 115, 22, 0.16), rgba(234, 88, 12, 0.26));
  color: #EA580C;
  border: 1px solid rgba(249, 115, 22, 0.24);
  box-shadow: 0 10px 24px rgba(249, 115, 22, 0.16);
}
.card-icon.indigo {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.18), rgba(79, 70, 229, 0.26));
  color: #4F46E5;
  border: 1px solid rgba(129, 140, 248, 0.26);
  box-shadow: 0 10px 24px rgba(99, 102, 241, 0.18);
}

.feature-card-item h3 {
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
  color: var(--text);
  line-height: 1.3;
}

.feature-card-item p {
  font-size: 0.95rem;
  color: var(--muted);
  margin: 0;
  line-height: 1.5;
  flex-grow: 1;
}

.feature-card-item.feature-card-image {
  width: 280px;
  min-height: 180px;
  padding: 0;
  overflow: hidden;
}

.card-image-full {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 16px;
  background: var(--gray-100);
}

.card-image-full img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.feature-card-item.feature-card-image:hover .card-image-full img {
  transform: scale(1.05);
}

/* hide arrow buttons (not used) */
.cards-btn { display: none !important; }

.cards-dots { margin-top: 1.5rem; }

/* Showcase Split Layout */
.showcase-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  margin-top: 3rem;
}

.showcase-left {
  display: flex;
  justify-content: center;
  align-items: center;
}

.showcase-right {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Mobile Mockup */
.mobile-mockup {
  position: relative;
  max-width: 320px;
  margin: 0 auto;
}

.phone-frame {
  width: 320px;
  height: 640px;
  /* Premium titanium / silver rim */
  background:
    radial-gradient(120% 60% at 20% 0%, rgba(255,255,255,.35), rgba(255,255,255,0) 60%),
    radial-gradient(140% 80% at 80% 100%, rgba(0,0,0,.18), rgba(0,0,0,0) 60%),
    conic-gradient(from 180deg at 50% 50%, #f6f8fb, #c4c9cf, #e9edf2, #999fa6, #d7dde3, #8f959c, #f6f8fb);
  border-radius: 32px;
  padding: 8px;
  position: relative;
  border: 1px solid rgba(255,255,255,.45);
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.45),
              inset 0 1px 0 rgba(255, 255, 255, 0.65),
              inset 0 -1px 0 rgba(0, 0, 0, 0.35),
              inset 0 0 0 2px rgba(255,255,255,.08);
}

.phone-frame::before {
  /* Subtle specular highlight ring */
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 32px;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(255,255,255,.85), rgba(255,255,255,0) 18%, rgba(255,255,255,0) 82%, rgba(255,255,255,.55)),
    radial-gradient(60% 100% at 50% 0%, rgba(255,255,255,.35), rgba(255,255,255,0) 80%);
  mix-blend-mode: screen;
  opacity: .6;
}

.phone-frame::after {
  /* Inner chrome ring */
  content: "";
  position: absolute;
  inset: 4px;
  border-radius: 28px;
  pointer-events: none;
  border: 1px solid rgba(0,0,0,.25);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.22), inset 0 -1px 0 rgba(0,0,0,.28);
}

/* iPhone Dynamic Island */
.phone-island {
  position: absolute;
  top: 10px;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 36px;
  background: linear-gradient(180deg, #0b0c10, #000);
  border-radius: 20px;
  z-index: 10;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 10px 24px rgba(0,0,0,.35);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}
.island-camera, .island-sensor {
  display: inline-block;
  background: #000;
  border-radius: 999px;
}
.island-camera {
  width: 34px; height: 14px; border-radius: 10px;
  background: radial-gradient(40% 100% at 40% 40%, rgba(255,255,255,.15), rgba(255,255,255,0)), #000;
}
.island-sensor { width: 8px; height: 8px; background: #0b0c10; box-shadow: inset 0 0 0 2px rgba(255,255,255,.04); }

/* Natural Titanium variant */
.phone-frame.titanium-natural {
  background: #000000;
  border: 1px solid #1a1a1a;
  box-shadow: 0 28px 64px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255,255,255,0.1), inset 0 -1px 0 rgba(0,0,0,.8);
}

.phone-screen-nova {
  width: 100%;
  height: 100%;
  background: #ffffff;
  border-radius: 24px;
  overflow: hidden;
  position: relative;
  display: flex;
}

.phone-screen-nova img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: inherit;
}

/* NOVA Header */
.nova-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-bottom: 0.5rem;
}

.nova-logo {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.logo-icon {
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, var(--blue-600), var(--green-500));
  border-radius: 8px;
  position: relative;
}

.logo-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 12px;
  height: 12px;
  background: white;
  border-radius: 50%;
}

.logo-text {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--gray-900);
}

.notification-bell {
  color: var(--gray-600);
  padding: 0.5rem;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.8);
}

/* Welcome Card */
.welcome-card {
  background: linear-gradient(135deg, var(--blue-600), var(--blue-900));
  border-radius: 16px;
  padding: 1.5rem;
  color: white;
  text-align: left;
}

.welcome-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  line-height: 1.3;
}

.welcome-card p {
  font-size: 0.85rem;
  margin: 0 0 1rem 0;
  opacity: 0.9;
  line-height: 1.4;
}

.get-started-btn {
  background: rgba(255, 255, 255, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.3);
  color: white;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

/* Feature Icons */
.feature-icons {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.feature-icon-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
}

.feature-icon-bg {
  width: 48px;
  height: 48px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.25rem;
}

.feature-icon-bg.blue { background: linear-gradient(135deg, var(--blue-600), var(--blue-900)); }
.feature-icon-bg.green { background: linear-gradient(135deg, var(--green-500), var(--green-600)); }
.feature-icon-bg.teal { background: linear-gradient(135deg, var(--cyan-400), var(--sky-400)); }

.feature-icon-item span {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--gray-700);
  text-align: center;
}

/* Portfolio Section */
.portfolio-section h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--gray-900);
  margin: 0 0 1rem 0;
}

.investment-cards {
  display: flex;
  gap: 0.75rem;
}

.investment-card {
  flex: 1;
  background: white;
  border-radius: 12px;
  padding: 1rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--gray-200);
}

.invest-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.invest-icon {
  width: 20px;
  height: 20px;
  border-radius: 4px;
}

.invest-icon.blue { background: var(--blue-600); }
.invest-icon.green { background: var(--green-500); }

.invest-name {
  font-weight: 600;
  font-size: 0.85rem;
  color: var(--gray-900);
}

.high-risk-badge {
  background: var(--blue-600);
  color: white;
  padding: 0.125rem 0.375rem;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 600;
  margin-left: auto;
}

.invest-desc {
  font-size: 0.75rem;
  color: var(--gray-600);
  margin: 0 0 0.75rem 0;
  line-height: 1.3;
}

.invest-stats {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.cagr-label {
  font-size: 0.7rem;
  color: var(--gray-500);
  font-weight: 600;
}

.cagr-value {
  font-size: 0.85rem;
  font-weight: 700;
}

.cagr-value.positive { color: var(--green-600); }
.cagr-value.negative { color: #ef4444; }

/* Bottom Navigation */
.bottom-nav {
  display: flex;
  justify-content: space-around;
  background: white;
  border-radius: 16px 16px 0 0;
  padding: 0.75rem 0.5rem;
  margin: 0 -1.5rem -1rem -1.5rem;
  border-top: 1px solid var(--gray-200);
  margin-top: auto;
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  color: var(--gray-500);
  font-size: 0.65rem;
  font-weight: 600;
}

.nav-item.active {
  color: var(--blue-600);
}

/* Showcase Content */
.showcase-content h3 {
  font-size: clamp(1.75rem, 2.5vw, 2.25rem);
  font-weight: 700;
  color: var(--text);
  margin: 0 0 1rem 0;
  line-height: 1.2;
}

.showcase-description {
  font-size: 1.1rem;
  color: var(--muted);
  margin: 0 0 2rem 0;
  line-height: 1.6;
}

.feature-list {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin: 0 0 2.5rem 0;
}

.feature-item {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.feature-check {
  width: 24px;
  height: 24px;
  background: var(--green-500);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 0.125rem;
}

.feature-item > div {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.feature-item strong {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text);
}

.feature-item span {
  font-size: 0.95rem;
  color: var(--muted);
  line-height: 1.4;
}

.showcase-cta {
  display: flex;
  gap: 1rem;
  align-items: center;
}

/* Hero Model Container */
.hero-model-container {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 640px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

/* Hero insight overlay positioning */
.hero-insight-overlay {
  position: absolute;
  right: -100px;
  bottom: 56px;
  width: clamp(220px, 20vw, 260px);
  transform: translateZ(0);
  z-index: 3;
}

@media (max-width: 1200px) {
  .hero-insight-overlay {
    right: -64px;
    bottom: 40px;
  }
}

@media (max-width: 1100px) {
  .hero-insight-overlay {
    right: -10px;
    bottom: 26px;
    width: clamp(210px, 26vw, 250px);
  }
}

@media (max-width: 900px) {
  .hero-insight-overlay {
    position: absolute;
    right: 50%;
    bottom: -40px;
    transform: translateX(50%);
    width: clamp(280px, 85vw, 360px);
    z-index: 3;
  }
}

.hero-insight-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: .65rem;
  padding: .9rem 1rem 1rem;
  border-radius: 20px;
  border: 1px solid rgba(59,130,246,.22);
  background:
    radial-gradient(140% 110% at 0% 0%, color-mix(in oklab, var(--accent-2) 16%, transparent), transparent),
    radial-gradient(140% 120% at 100% 0%, color-mix(in oklab, var(--accent) 12%, transparent), transparent),
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,249,255,.96));
  box-shadow: 0 18px 46px rgba(1,44,155,.18);
  backdrop-filter: saturate(150%) blur(6px);
}

.hero-insight-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  border: 1px solid rgba(255,255,255,.35);
  pointer-events: none;
}

.hero-chat-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.2rem;
  padding-bottom: .45rem;
  border-bottom: 1px solid rgba(59,130,246,.12);
}

.hero-insight-chip {
  align-self: flex-start;
  padding: .25rem .6rem;
  border-radius: 999px;
  background: rgba(255,255,255,.7);
  border: 1px solid rgba(255,255,255,.85);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--blue-700);
}

.hero-chat-status {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .68rem;
  font-weight: 600;
  color: var(--gray-500);
}

.hero-insight-convo {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  padding: .85rem .9rem;
  background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(241,248,255,.9));
  border-radius: 16px;
  border: 1px solid rgba(59,130,246,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}

.convo-row {
  display: flex;
  gap: .5rem;
  align-items: start;
  color: var(--gray-700);
  font-size: .74rem;
  line-height: 1.4;
  opacity: 0;
  transform: translateY(12px);
  animation: heroConvoRise .6s ease forwards;
}

.convo-row.user {
  justify-content: flex-end;
  color: var(--gray-800);
  font-weight: 600;
}

.convo-row:nth-child(1) { animation-delay: .12s; }
.convo-row:nth-child(2) { animation-delay: .48s; }
.convo-row:nth-child(3) { animation-delay: .84s; }

.convo-avatar {
  width: 28px;
  height: 28px;
  border-radius: 10px;
  background: linear-gradient(160deg, var(--primary), var(--accent));
  color: #fff;
  font-weight: 800;
  font-size: .75rem;
  display: grid;
  place-items: center;
  box-shadow: 0 8px 20px rgba(59,130,246,.3);
}

.convo-row.nova .convo-avatar {
  background: linear-gradient(160deg, #0f67ff, #02ddf7);
  box-shadow: 0 8px 20px rgba(2,221,247,.28);
}

.convo-bubble {
  background: rgba(255,255,255,.95);
  border-radius: 16px;
  padding: .6rem .7rem;
  box-shadow: 0 10px 24px rgba(1,44,155,.08);
  border: 1px solid rgba(59,130,246,.14);
  color: inherit;
  max-width: 220px;
}

.convo-row.user .convo-bubble {
  background: linear-gradient(160deg, rgba(59,130,246,.18), rgba(2,221,247,.22));
  border: 1px solid rgba(59,130,246,.28);
  color: var(--gray-800);
  margin-left: auto;
  text-align: left;
}

.convo-row.user .convo-avatar {
  margin-left: .4rem;
}

.convo-row p {
  margin: 0;
}

.convo-row strong {
  color: var(--blue-800);
}

.convo-row.nova strong {
  color: var(--green-600);
}

@keyframes heroConvoRise {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.indicator-dot {
  width: 8px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(16,185,129,.15);
}

@media (max-width: 760px) {
  .hero-insight-card {
    border-radius: 22px;
    padding: 1.1rem 1.25rem 1.25rem;
  }

  .hero-insight-convo {
    padding: 1rem 1.1rem;
  }
}

.hero-model-image {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 792px;
  height: auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hero-model-image img {
  width: 100%;
  height: auto;
  object-fit: contain;
  filter: drop-shadow(0 25px 50px rgba(1,44,155,.2));
  transform: scale(1.3);
}

/* Why Genvest */
.why-genvest {
  position: relative;
  background:
    radial-gradient(140% 140% at 10% 0%, rgba(59,130,246,.12), transparent 65%),
    radial-gradient(130% 140% at 90% 0%, rgba(16,185,129,.10), transparent 60%),
    linear-gradient(180deg, rgba(252,254,255,.95), rgba(234,243,255,.9));
}
.why-genvest::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 120% at 50% 0%, rgba(3,118,205,.08), transparent 65%);
  pointer-events: none;
}
.why-genvest .section-header h2 { color: var(--blue-900); font-weight: 800; }
.why-genvest .section-header p { color: var(--gray-600); }

.why-layout {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 3rem;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  align-items: start;
  margin-top: 2.5rem;
}

@media (max-width: 960px) {
  .why-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .why-snapshot {
    max-width: 100%;
  }
  .why-feature-grid {
    grid-template-columns: 1fr;
  }
}

.why-feature-grid {
  display: grid;
  gap: 1.75rem;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

.why-feature-card {
  position: relative;
  background: #ffffff;
  border-radius: 20px;
  padding: 1.75rem 1.6rem;
  border: 1px solid rgba(15,118,246,.12);
  box-shadow: 0 18px 36px rgba(15,76,129,.08);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: transform .25s ease, box-shadow .25s ease;
}

.why-feature-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(59,130,246,.14), rgba(16,185,129,.08));
  opacity: 0;
  transition: opacity .25s ease;
  z-index: 0;
}

.why-feature-card > * {
  position: relative;
  z-index: 1;
}

.why-feature-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 44px rgba(15,76,129,.14);
}

.why-feature-card:hover::before {
  opacity: 1;
}

.why-feature-head {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.why-feature-head h3 {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--blue-900);
}

.why-feature-card p {
  margin: 0;
  color: var(--gray-600);
  font-size: 0.97rem;
  line-height: 1.55;
}

.why-feature-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  background: rgba(59,130,246,.14);
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.2);
}

.why-feature-icon svg {
  width: 22px;
  height: 22px;
}

.why-feature-icon.sky { background: rgba(59,130,246,.18); color: #0f1a3a; }
.why-feature-icon.mint { background: rgba(16,185,129,.18); color: #064e3b; box-shadow: inset 0 0 0 1px rgba(16,185,129,.25); }
.why-feature-icon.navy { background: rgba(30,58,138,.18); color: #0b1f52; box-shadow: inset 0 0 0 1px rgba(30,58,138,.28); }
.why-feature-icon.aqua { background: rgba(6,182,212,.18); color: #0b3b4d; box-shadow: inset 0 0 0 1px rgba(6,182,212,.26); }

.why-feature-points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.45rem;
}

.why-feature-points li {
  position: relative;
  padding-left: 1.2rem;
  font-size: 0.92rem;
  color: var(--gray-600);
  line-height: 1.55;
}

.why-feature-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}

.why-snapshot {
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(241,248,255,.96));
  color: var(--blue-900);
  border-radius: 24px;
  padding: 2rem;
  border: 1px solid rgba(15,118,246,.16);
  box-shadow: 0 28px 48px rgba(15,76,129,.14);
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  position: relative;
  overflow: hidden;
  max-width: 420px;
  align-self: stretch;
}

.snapshot-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.45rem 0.9rem;
  border-radius: 999px;
  background: rgba(59,130,246,.12);
  border: 1px solid rgba(59,130,246,.28);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.snapshot-highlight {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
}

.snapshot-value {
  font-size: clamp(2.75rem, 3.5vw, 3.2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--blue-900);
}

.snapshot-label {
  font-size: 1.05rem;
  font-weight: 500;
  color: rgba(30,41,59,.75);
}

.snapshot-metrics {
  display: grid;
  gap: 0.9rem;
}

.snapshot-metric {
  padding: 1rem 1.1rem;
  border-radius: 18px;
  background: rgba(241,248,255,.65);
  border: 1px solid rgba(59,130,246,.18);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.snapshot-metric-value {
  font-size: 1.4rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--blue-900);
}

.snapshot-metric-label {
  font-size: 0.9rem;
  color: rgba(30,41,59,.72);
  line-height: 1.4;
}

.snapshot-note {
  margin: 0;
  font-size: 0.85rem;
  color: rgba(51,65,85,.6);
}

.metric-badge {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #0ea5e9, #22d3ee);
  color: white;
  justify-self: flex-start;
  box-shadow: 0 16px 30px rgba(14,165,233,.35);
}

.metric-highlight {
  display: grid;
  gap: .3rem;
}

.metric-highlight .metric-value {
  font-size: clamp(2.4rem, 4vw, 2.9rem);
  font-weight: 800;
  color: var(--blue-900);
}

.metric-highlight p {
  margin: 0;
  color: var(--gray-600);
  font-weight: 600;
}

.metric-list {
  display: grid;
  gap: 1rem;
}

.metric-list div {
  display: grid;
  gap: .3rem;
  padding-left: .1rem;
}

.metric-list dt {
  font-weight: 800;
  color: var(--blue-900);
}

.metric-list dd {
  margin: 0;
  color: var(--gray-600);
  font-size: .95rem;
  line-height: 1.45;
}

.metric-footnote {
  margin: 0;
  font-size: .78rem;
  color: var(--gray-500);
  margin-top: auto;
}

@media (max-width: 640px) {
  .why-bullets {
    grid-template-columns: 1fr;
  }
  .why-metrics {
    padding: 1.4rem 1.2rem;
    height: 85%;
  }
  .metrics-header {
    flex-direction: column;
    text-align: center;
    gap: 0.75rem;
  }
  .metric-card {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 0.75rem;
  }
  .metric-icon {
    justify-self: center;
  }
  .metrics-grid {
    flex: none;
    margin-bottom: 1rem;
  }
}

/* FAQ */
.faq-section {
  background:
    radial-gradient(160% 140% at 0% 0%, rgba(14,165,233,.25), transparent 60%),
    radial-gradient(160% 140% at 100% 0%, rgba(59,130,246,.28), transparent 55%),
    linear-gradient(180deg, #050b1a, #0a162c 60%, #081229 100%);
  color: #e6f0ff;
}
.faq-header {
  text-align: center;
  display: grid;
  gap: 1rem;
  justify-items: center;
  margin-bottom: 2.5rem;
}
.faq-heading {
  font-size: clamp(1.9rem, 3vw, 2.4rem);
  font-weight: 800;
  color: #f8fbff;
}
.faq-sub {
  max-width: 720px;
  color: rgba(230,240,255,.8);
  margin: 0;
}
.faq-tabs {
  display: inline-flex;
  gap: .8rem;
  background: rgba(15,34,64,.6);
  padding: .4rem;
  border-radius: 999px;
  border: 1px solid rgba(148,163,209,.18);
}
.faq-tab {
  border: 0;
  border-radius: 999px;
  padding: .5rem 1.1rem;
  font-weight: 700;
  font-size: .86rem;
  letter-spacing: .02em;
  color: rgba(226,238,255,.75);
  background: transparent;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.faq-tab:hover { transform: translateY(-1px); }
.faq-tab.is-active {
  background: linear-gradient(135deg, #38bdf8, #1d4ed8);
  color: white;
  box-shadow: 0 12px 24px rgba(29,78,216,.35);
}

.faq-accordion {
  display: grid;
  gap: 1rem;
  max-width: 820px;
  margin: 0 auto;
}
.faq-item {
  border-radius: 18px;
  background: rgba(10,19,40,.6);
  border: 1px solid rgba(99,102,241,.22);
  padding: .4rem .2rem;
  transition: border-color .25s ease, background .25s ease;
}
.faq-item[open] {
  border-color: rgba(148,163,255,.4);
  background: rgba(16,24,48,.85);
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  margin: 0;
  padding: 1rem 1.4rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: #f1f5ff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: "";
  width: 14px;
  height: 14px;
  border: 2px solid currentColor;
  border-left: 0;
  border-top: 0;
  transform: rotate(45deg);
  transition: transform .25s ease;
}
.faq-item[open] summary::after {
  transform: rotate(-135deg);
}
.faq-item p {
  margin: 0;
  padding: 0 1.4rem 1.2rem;
  color: rgba(225,235,255,.78);
  line-height: 1.65;
  font-size: .98rem;
}

@media (max-width: 640px) {
  .faq-tabs {
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    padding: .35rem .45rem;
  }
  .faq-tab { flex: 1 1 140px; text-align: center; }
  .faq-item summary { font-size: 1rem; }
}

/* App showcase */
.app-showcase {
  background:
    radial-gradient(140% 120% at 0% 10%, rgba(14,165,233,.14), transparent 55%),
    linear-gradient(180deg, rgba(239,248,255,.96), rgba(226,240,255,.94));
}
.app-head { text-align: center; }
.app-showcase .section-header h2 { color: var(--blue-900); }
.app-showcase .section-header p { color: var(--gray-600); }

.app-showcase-body {
  display: grid;
  grid-template-columns: minmax(0, 360px) minmax(0, 1fr);
  gap: 3rem;
  align-items: center;
  margin-top: 3rem;
}

.app-device {
  display: flex;
  justify-content: center;
}

.app-device-frame {
  background:
    linear-gradient(180deg, rgba(14,116,223,.15), rgba(2,132,199,.08));
  border-radius: 40px;
  padding: 1.2rem;
  box-shadow: 0 30px 60px rgba(15,118,246,.18);
  border: 1px solid rgba(59,130,246,.12);
  max-width: 320px;
}

.app-device-frame img {
  display: block;
  width: 100%;
  border-radius: 32px;
  box-shadow: 0 18px 36px rgba(14,116,223,.18);
}

.app-benefits {
  display: grid;
  gap: 1.3rem;
}
.app-benefits h3 {
  margin: 0;
  font-size: clamp(1.6rem, 2.6vw, 2rem);
  color: var(--blue-900);
}
.app-benefits p {
  margin: 0;
  color: var(--gray-600);
  line-height: 1.7;
}

.app-benefit-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 1rem;
}
.app-benefit-list li {
  position: relative;
  padding-left: 2.2rem;
  color: var(--gray-600);
  line-height: 1.6;
  font-weight: 500;
}
.app-benefit-list li span {
  display: block;
  font-weight: 700;
  color: var(--blue-900);
  margin-bottom: .25rem;
}
.app-benefit-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .3rem;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #4ade80, #16a34a);
  box-shadow: 0 8px 16px rgba(34,197,94,.35);
}

.app-cta {
  display: inline-flex;
  gap: .8rem;
  flex-wrap: wrap;
}
.app-cta .btn-ghost {
  border-color: rgba(59,130,246,.35);
  color: var(--blue-900);
}
.app-cta .btn-ghost:hover {
  border-color: var(--blue-900);
  color: var(--blue-900);
  background: rgba(59,130,246,.08);
}

@media (max-width: 980px) {
  .app-showcase-body {
    grid-template-columns: 1fr;
    text-align: center;
  }
  .app-benefit-list li {
    padding-left: 0;
  }
  .app-benefit-list li::before {
    position: static;
    margin: 0 auto .45rem;
    display: block;
  }
  .app-cta { justify-content: center; }
}

@media (max-width: 520px) {
  .app-device-frame { max-width: 240px; padding: .9rem; }
}

/* Pro upgrade */
.pro-upgrade {
  background:
    radial-gradient(140% 140% at 0% 0%, rgba(59,130,246,.12), transparent 60%),
    linear-gradient(180deg, #f0f7ff, #e8f4ff);
}

/* Pro Comparison Layout */
.pro-comparison-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
  margin-top: 3rem;
}

.pro-content-left h3 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: 2rem;
}

.pro-benefits-list {
  display: grid;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.benefit-item {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: 0.85rem;
}

.benefit-icon {
  margin: 0;
}

.pro-benefits-list .card-icon {
  width: 44px;
  height: 44px;
  margin: 0;
}

.pro-benefits-list .card-icon svg {
  width: 22px;
  height: 22px;
}

.benefit-item > div {
  min-width: 0;
}

.benefit-item strong {
  display: block;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--gray-900);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.benefit-item span {
  display: block;
  color: var(--gray-600);
  line-height: 1.5;
  font-size: 0.95rem;
}

.pro-pricing { padding: 1.5rem; text-align: left; }
.pro-cta-buttons { display: flex; gap: 1rem; align-items: center; margin: .25rem 0 .75rem; }
.pro-cta-buttons .btn { white-space: nowrap; }

.pro-pricing .pro-price-chip {
  background: linear-gradient(135deg, #066ae4, #02bcf7);
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 1rem;
  display: inline-block;
  margin-bottom: 0.75rem;
}

.pro-pricing-note {
  margin: 0;
  color: var(--gray-600);
  font-size: 0.875rem;
}

.pro-content-right {
  position: sticky;
  top: 2rem;
}

.pro-card {
  position: relative;
  border-radius: 24px;
  background: var(--white);
  box-shadow: 0 20px 50px rgba(15,118,246,.15);
  overflow: hidden;
  border: 1px solid rgba(59,130,246,.1);
}

.pro-card-top {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 1rem;
  padding: 1.6rem 2rem;
  background: linear-gradient(135deg, #1d4ed8, #06b6d4);
  color: #f8fbff;
}

/* Team & Trust */
.team-section { background: linear-gradient(180deg, rgba(255,255,255,.85), rgba(240,246,255,.9)); }
.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; }
.team-grid.simple { gap: 1.6rem; }
.team-card {
  background: #fff;
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 24px;
  padding: 1.8rem;
  box-shadow: 0 20px 45px rgba(15, 118, 246, 0.08);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.9rem;
}
.team-card.simple { text-align: left; }
.team-card.simple .member-avatar { margin-bottom: 1.4rem; }
.member-avatar { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #2563eb, #0ea5e9); box-shadow: 0 12px 28px rgba(37,99,235,.25); }
.member-avatar.large { width: 104px; height: 104px; border-radius: 50%; font-size: 1.8rem; letter-spacing: .06em; font-weight: 700; }
.member-avatar .initials { font-weight: 700; font-size: 1.25rem; }
.member-avatar.large .initials { font-size: 1.9rem; }
.member-avatar.has-photo {
  position: relative;
  padding: 0;
  background: transparent;
  border: 1px solid rgba(15,23,42,.35);
  box-shadow: none;
  overflow: hidden;
}
.member-avatar.has-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.member-role { margin: 0; font-size: .78rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: rgba(15,23,42,.55); }
.team-card.simple .member-role { margin-bottom: .35rem; }
.member-name { margin: 0; font-size: 1.2rem; font-weight: 700; color: #0f172a; }
.team-card.simple .member-name { font-size: 1.4rem; margin-top: .25rem; }
.member-qualifications-inline { margin: 0; font-size: .85rem; color: rgba(30,41,59,.65); line-height: 1.5; }
.member-qualifications-inline strong { color: #0f172a; font-weight: 700; }
.member-bio { margin: 0; color: var(--gray-700); font-size: .95rem; line-height: 1.7; }
.chips-row { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.chips-row .chip { background: #f1f5ff; border: 1px solid rgba(59,130,246,.18); color: #0f172a; padding: .35rem .6rem; border-radius: 999px; font-weight: 700; font-size: .8rem; }

@media (max-width: 900px) { .team-grid { grid-template-columns: 1fr; } }
.pro-card-sparkle { font-size: 1.6rem; }
.pro-card-kicker {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 700;
  font-size: .78rem;
}
.pro-card-top h2 {
  margin: .2rem 0 0;
  font-size: clamp(1.6rem, 2.6vw, 2rem);
  line-height: 1.2;
}
.pro-card-tag {
  background: rgba(255,255,255,.2);
  padding: .45rem .9rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .78rem;
  letter-spacing: .06em;
}

.pro-compare {
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(0, .9fr) minmax(0, 1fr);
  column-gap: 1.25rem;
  row-gap: 0;
  padding: 0 2rem;
}
.pro-compare-head {
  font-weight: 700;
  font-size: .95rem;
  color: var(--blue-900);
  padding: 1rem 0;
  text-align: center;
}
.pro-compare-head.feature { text-align: left; color: var(--gray-700); }
.pro-compare-head.highlight {
}

.pro-row {
  display: contents;
}
.pro-feature,
.pro-cell {
  position: relative;
  padding: 1.1rem 0.75rem;
  border-top: 1px solid rgba(148,163,184,.18);
  font-size: .95rem;
  line-height: 1.5;
  min-height: 64px;
  display: flex;
  align-items: center;
}
.pro-feature {
  color: var(--gray-700);
  font-weight: 600;
  justify-content: flex-start;
  gap: 0.75rem;
}
.pro-cell {
  justify-content: center;
  color: var(--gray-600);
  text-align: center;
  gap: 0.5rem;
}
.pro-cell.is-text {
  justify-content: flex-start;
  text-align: left;
  align-items: flex-start;
}
.pro-cell.success {
  color: var(--blue-900);
  font-weight: 600;
}
.pro-cell.muted { color: rgba(148,163,184,.8); }
.pro-cell.has-tag {
  justify-content: center;
}

.availability {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  line-height: 1.2;
}
.availability-icon {
  display: grid;
  place-items: center;
  border-radius: 999px;
  width: 20px;
  height: 20px;
  background: rgba(59,130,246,.12);
  color: var(--blue-900);
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.18);
}
.availability.available .availability-icon {
  background: linear-gradient(135deg, rgba(59,130,246,.18), rgba(37,99,235,.2));
  box-shadow: inset 0 0 0 1px rgba(37,99,235,.18);
}
.availability.unavailable .availability-icon {
  background: rgba(148,163,184,.16);
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.24);
  color: rgba(100,116,139,.85);
}
.availability.unavailable .availability-label {
  color: rgba(100,116,139,.85);
  font-weight: 500;
}
.availability-icon svg {
  width: 12px;
  height: 12px;
}

.plan-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1.25;
  text-align: center;
  background: rgba(59,130,246,.08);
  color: var(--blue-900);
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.12);
  max-width: 9.5rem;
  white-space: normal;
}
.plan-tag-muted {
  background: rgba(148,163,184,.14);
  box-shadow: inset 0 0 0 1px rgba(148,163,184,.22);
  color: rgba(100,116,139,.85);
  font-weight: 500;
}
.plan-tag-highlight {
  background: linear-gradient(135deg, rgba(37,99,235,.12), rgba(59,130,246,.18));
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.22);
  color: var(--blue-900);
}

.pro-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  padding: 0 2rem 2rem;
}
.pro-price-chip {
  background: linear-gradient(135deg, rgba(59,130,246,.15), rgba(14,165,233,.18));
  color: var(--blue-900);
  padding: .55rem 1.1rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: .88rem;
}
.pro-card-footer p { margin: 0; }

@media (max-width: 980px) {
  .pro-comparison-layout {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .pro-content-right {
    position: static;
  }
  
  .pro-content-left {
    order: 2;
  }
  
  .pro-content-right {
    order: 1;
  }
}

@media (max-width: 800px) {
  .pro-compare {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, .9fr);
  }
  
  .benefit-item {
    flex-direction: row;
    text-align: left;
    align-items: flex-start;
    gap: 0.375rem;
  }
  
  .benefit-icon {
    margin: 0;
  }
}

@media (max-width: 640px) {
  .pro-comparison-layout {
    gap: 1.5rem;
  }
  
  .pro-content-left h3 {
    font-size: 1.5rem;
    text-align: center;
  }
  
  .pro-benefits-list {
    gap: 1.25rem;
  }
  
  .benefit-item strong {
    font-size: 1rem;
  }
  
  .benefit-item span {
    font-size: 0.9rem;
  }
  
  .pro-card {
    border-radius: 20px;
  }
  
  .pro-card-top {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 1.25rem 1.5rem;
  }
  
  .pro-card-top h3 {
    margin: 0.25rem 0 0;
    font-size: 1.25rem;
  }
  
  .pro-compare {
    padding: 0 1.5rem;
    grid-template-columns: 1fr;
  }
  
  .pro-compare-head {
    display: none;
  }
  
  .pro-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: .4rem;
    border-bottom: 1px solid rgba(148,163,184,.18);
    padding-block: .8rem;
  }
  
  .pro-feature,
  .pro-cell {
    border: 0;
    text-align: left;
    padding: 0.5rem 0;
    min-height: auto;
    align-items: flex-start;
  }
  
  .pro-cell.success,
  .pro-cell.muted {
    margin-top: 0.25rem;
  }

  .pro-cell {
    justify-content: flex-start;
  }

  .pro-cell.has-tag {
    justify-content: flex-start;
  }

  .availability {
    justify-content: flex-start;
  }
  
  .pro-card-footer {
    padding: 0 1.5rem 1.5rem;
    justify-content: center;
    text-align: center;
  }
}
/* Floating Chat Bubbles */
.floating-chat-bubbles {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  pointer-events: none;
}

.chat-bubble {
  position: absolute;
  opacity: 0;
  transform: translateY(20px) scale(0.95);
  animation: bubbleAppear 0.6s ease-out forwards;
  max-width: 280px;
  filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.15));
}

.chat-bubble.user-bubble {
  right: 0;
}

.chat-bubble.ai-bubble {
  left: 0;
}

/* Bubble positioning */
.user-left {
  top: 15%;
  right: -20px;
  animation-delay: 0s;
}

.ai-right {
  top: 45%;
  left: -20px;
  animation-delay: 2s;
}

.bubble-content {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  background: var(--white);
  border-radius: 20px;
  border: 1px solid var(--gray-200);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.user-bubble .bubble-content {
  flex-direction: row-reverse;
  background: linear-gradient(135deg, var(--blue-600), var(--blue-900));
  color: white;
  border: none;
}

.user-avatar,
.ai-avatar {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.user-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.user-avatar {
  width: 40px;
  height: 40px;
  background: #f5f5dc;
  border-radius: 50%;
  overflow: hidden;
}

.nova-logo {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--blue-600), var(--teal-600));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.nova-icon {
  color: white;
  font-weight: 700;
  font-size: 0.9rem;
}

.bubble-text {
  font-size: 0.9rem;
  line-height: 1.4;
  margin: 0;
  flex: 1;
}

.ai-bubble .bubble-text {
  color: var(--gray-900);
}

.user-bubble .bubble-text {
  color: white;
  text-align: right;
}

/* Animation for chat bubbles */
@keyframes bubbleAppear {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Cycling animation for bubbles */
.chat-bubble[data-delay="0s"] { animation-delay: 0s; }
.chat-bubble[data-delay="2s"] { animation-delay: 2s; }
.chat-bubble[data-delay="5s"] { animation-delay: 5s; }
.chat-bubble[data-delay="7s"] { animation-delay: 7s; }

.hero-phone-frame {
  width: 300px;
  height: 600px;
  background: linear-gradient(145deg, #1a1a2e, #16213e);
  border-radius: 32px;
  padding: 6px;
  position: relative;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.4),
              inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.hero-phone-notch {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 140px;
  height: 26px;
  background: #000;
  border-radius: 0 0 16px 16px;
  z-index: 10;
}

.hero-phone-screen {
  width: 100%;
  height: 100%;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border-radius: 26px;
  overflow: hidden;
  position: relative;
  display: flex;
  flex-direction: column;
}

/* Status Bar */
.hero-status-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1.25rem 0.5rem;
  background: transparent;
  position: relative;
  z-index: 5;
}

.hero-time {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--gray-900);
}

.hero-status-icons {
  display: flex;
  gap: 0.25rem;
  align-items: center;
}

.hero-signal, .hero-wifi, .hero-battery {
  width: 16px;
  height: 10px;
  background: var(--gray-600);
  border-radius: 2px;
  position: relative;
}

.hero-signal::before {
  content: '';
  position: absolute;
  top: 6px;
  left: 2px;
  width: 2px;
  height: 2px;
  background: var(--gray-900);
  border-radius: 50%;
}

.hero-wifi::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 6px;
  border: 2px solid var(--gray-900);
  border-bottom: none;
  border-radius: 8px 8px 0 0;
}

.hero-battery::after {
  content: '';
  position: absolute;
  right: -2px;
  top: 2px;
  width: 2px;
  height: 6px;
  background: var(--gray-600);
  border-radius: 0 1px 1px 0;
}

/* Chat Header */
.hero-chat-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--white);
  border-bottom: 1px solid var(--gray-200);
  position: relative;
}

.hero-back-btn, .hero-menu-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--gray-100);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--gray-600);
  cursor: pointer;
  transition: all 0.2s ease;
}

.hero-back-btn:hover, .hero-menu-btn:hover {
  background: var(--gray-200);
  color: var(--gray-900);
}

.hero-chat-info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
}

.hero-advisor-avatar {
  position: relative;
}

.hero-nova-icon {
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, var(--blue-600), var(--green-500));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: 1.1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.hero-nova-icon.small {
  width: 32px;
  height: 32px;
  font-size: 0.85rem;
}

.hero-advisor-details h4 {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gray-900);
  margin: 0 0 0.125rem 0;
}

.hero-status {
  font-size: 0.8rem;
  color: var(--green-600);
  font-weight: 500;
}

/* Chat Messages */
.hero-chat-messages {
  flex: 1;
  padding: 1rem 1.25rem 2rem;
  overflow-y: hidden;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  background: #f8fafc;
  position: relative;
}

/* Cycling animation */
.hero-chat-messages.cycling {
  padding-bottom: 2rem;
}

.hero-message {
  display: flex;
  gap: 0.75rem;
  max-width: 85%;
  opacity: 0;
  transform: translateY(20px);
  animation: messageAppear 0.5s ease-out forwards;
}

/* Conversation cycling animations */
.hero-message.conversation-1 {
  animation: messageCycle1 16s infinite;
}

.hero-message.conversation-2 {
  animation: messageCycle2 16s infinite;
}

/* Individual message delays within each conversation */
.hero-message[data-delay="0s"] { animation-delay: 0s; }
.hero-message[data-delay="1.5s"] { animation-delay: 1.5s; }
.hero-message[data-delay="3s"] { animation-delay: 3s; }
.hero-message[data-delay="4.5s"] { animation-delay: 4.5s; }
.hero-message[data-delay="6s"] { animation-delay: 6s; }
.hero-message[data-delay="8s"] { animation-delay: 8s; }
.hero-message[data-delay="9.5s"] { animation-delay: 9.5s; }
.hero-message[data-delay="11s"] { animation-delay: 11s; }
.hero-message[data-delay="12.5s"] { animation-delay: 12.5s; }
.hero-message[data-delay="14s"] { animation-delay: 14s; }

@keyframes messageCycle1 {
  0% { opacity: 0; transform: translateY(20px); }
  6.25% { opacity: 1; transform: translateY(0); }    /* Show conversation 1 */
  43.75% { opacity: 1; transform: translateY(0); }   /* Keep visible */
  50% { opacity: 0; transform: translateY(-20px); }  /* Fade out */
  100% { opacity: 0; transform: translateY(-20px); } /* Stay hidden */
}

@keyframes messageCycle2 {
  0% { opacity: 0; transform: translateY(20px); }    /* Hidden initially */
  50% { opacity: 0; transform: translateY(20px); }   /* Stay hidden */
  56.25% { opacity: 1; transform: translateY(0); }   /* Show conversation 2 */
  93.75% { opacity: 1; transform: translateY(0); }   /* Keep visible */
  100% { opacity: 0; transform: translateY(-20px); } /* Fade out for loop */
}

.hero-message.user-message {
  align-self: flex-end;
  flex-direction: row-reverse;
}

.hero-message-avatar {
  flex-shrink: 0;
  align-self: flex-end;
}

.hero-message-content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.hero-message-content.user {
  align-items: flex-end;
}

.hero-message-bubble {
  padding: 0.75rem 1rem;
  border-radius: 18px;
  font-size: 0.9rem;
  line-height: 1.4;
  position: relative;
  max-width: 100%;
  word-wrap: break-word;
}

.hero-message-bubble.ai {
  background: var(--white);
  color: var(--gray-900);
  border: 1px solid var(--gray-200);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-bottom-left-radius: 6px;
}

.hero-message-bubble.user {
  background: linear-gradient(135deg, var(--blue-600), var(--blue-900));
  color: white;
  border-bottom-right-radius: 6px;
}

.hero-message-time {
  font-size: 0.75rem;
  color: var(--gray-500);
  font-weight: 500;
  margin-top: 0.25rem;
}

/* Typing Indicator */
.hero-typing-indicator {
  display: flex;
  gap: 0.25rem;
  align-items: center;
  padding: 0.5rem 0;
}

.hero-typing-indicator span {
  width: 6px;
  height: 6px;
  background: var(--gray-400);
  border-radius: 50%;
  animation: typing 1.4s infinite ease-in-out;
}

.hero-typing-indicator span:nth-child(1) { animation-delay: -0.32s; }
.hero-typing-indicator span:nth-child(2) { animation-delay: -0.16s; }

@keyframes typing {
  0%, 80%, 100% { transform: scale(0.8); opacity: 0.5; }
  40% { transform: scale(1); opacity: 1; }
}

/* Chat Input */
.hero-chat-input {
  padding: 1rem 1.25rem;
  background: var(--white);
  border-top: 1px solid var(--gray-200);
}

.hero-input-container {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  background: var(--gray-100);
  border-radius: 24px;
  padding: 0.5rem 0.75rem;
}

.hero-input-container input {
  flex: 1;
  border: none;
  background: transparent;
  font-size: 0.9rem;
  color: var(--gray-900);
  outline: none;
}

.hero-input-container input::placeholder {
  color: var(--gray-500);
}

.hero-send-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--blue-600), var(--blue-900));
  border: none;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.hero-send-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

/* Apple-like horizontal tiles */
.tiles { position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: .5rem; align-items: center; }
.tile-scroller { overflow-x: auto; display: grid; grid-auto-flow: column; gap: 1rem; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; padding: .2rem 0 .6rem; scrollbar-width: none; }
.tile-scroller::-webkit-scrollbar { display: none; }
.tile { position: relative; width: min(92vw, 1040px); border-radius: 28px; overflow: hidden; scroll-snap-align: center; box-shadow: 0 24px 60px rgba(1,44,155,.18); border: 1px solid var(--gray-200); background: transparent; }
.tile-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1rem; height: auto; }
.tile-card { position: relative; border-radius: 24px; overflow: hidden; aspect-ratio: 1 / 1; }
.tile-media { position: absolute; inset: 0; background: #eaf2ff; }
.tile-media.blue { background: radial-gradient(110% 80% at 0% 0%, color-mix(in oklab, var(--accent-2) 40%, transparent), transparent), radial-gradient(110% 80% at 100% 0%, color-mix(in oklab, var(--primary) 30%, transparent), transparent), #f6fbff; }
.tile-media.green { background: radial-gradient(110% 80% at 0% 0%, color-mix(in oklab, var(--green-500) 35%, transparent), transparent), radial-gradient(110% 80% at 100% 0%, color-mix(in oklab, var(--blue-600) 25%, transparent), transparent), #f7fff9; }
.tile-graphic { width: 92%; height: auto; filter: drop-shadow(0 16px 36px rgba(1,44,155,.2)); }
.tile-card.phone { display: grid; place-items: center; position: relative; }
.tile-card.phone::before { content: ""; position: absolute; inset: -6% -4% auto -4%; height: 70%; z-index: 0; filter: blur(28px); background:
  radial-gradient(60% 60% at 30% 0%, color-mix(in oklab, var(--accent-2) 35%, transparent), transparent),
  radial-gradient(60% 60% at 70% 100%, color-mix(in oklab, var(--green-500) 28%, transparent), transparent);
}
.phone-mock { position: relative; width: 78%; aspect-ratio: 9 / 19.5; border-radius: 28px; padding: 8px; background: #0b1220; border: 1px solid rgba(255,255,255,.2); box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 20px 50px rgba(1,44,155,.25); }
.phone-mock .cam-dot { position: absolute; top: 6px; left: 50%; transform: translateX(-50%); width: 8px; height: 8px; border-radius: 50%; background: #101826; box-shadow: inset 0 0 0 2px rgba(255,255,255,.12); }
.phone-screen { position: relative; width: 100%; height: 100%; border-radius: 20px; overflow: hidden; background: #fff; }
.phone-screen img, .phone-screen video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.phone-screen .phone-placeholder { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }

/* In-phone chat mock (refined) */
.chat-ui { position: absolute; inset: 0; display: grid; grid-template-rows: auto 1fr auto; background:
  radial-gradient(140% 60% at 0% 0%, rgba(12,140,234,.25), transparent 60%),
  radial-gradient(140% 60% at 100% 100%, rgba(57,215,92,.22), transparent 70%),
  linear-gradient(180deg, #0f1624, #0b1220); color: #eaf0ff; }
.chat-head-mini { padding: .55rem .8rem; font-weight: 900; letter-spacing: .01em; border-bottom: 1px solid rgba(255,255,255,.06); color: #e8eefc; background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.02)); }
.msgs { padding: .7rem; display: grid; gap: .45rem; overflow-y: auto; }
.msg { display: flex; }
.msg.ai { justify-content: flex-start; }
.msg.user { justify-content: flex-end; }
.bubble { max-width: 82%; padding: .6rem .7rem; border-radius: 18px; font-size: .9rem; line-height: 1.35; box-shadow: 0 8px 18px rgba(0,0,0,.28); backdrop-filter: blur(2px); }
.msg.ai .bubble { background: linear-gradient(180deg, #2a5bff, #1438c4); color: #fff; border: 1px solid rgba(255,255,255,.08); }
.msg.user .bubble { background: rgba(255,255,255,.95); color: #0b1220; border: 1px solid rgba(0,0,0,.04); }
.nudge { margin: .2rem 0 0; align-self: end; justify-self: center; font-size: .8rem; color: #0b1220; font-weight: 900; background: #c7f9d4; border: 1px solid rgba(28,181,49,.35); padding: .32rem .6rem; border-radius: 999px; }
.typing { display: inline-grid; grid-auto-flow: column; gap: .25rem; }
.typing i { width: 6px; height: 6px; background: rgba(255,255,255,.8); border-radius: 50%; animation: blink 1.1s infinite; opacity: .5; }
.typing i:nth-child(2){ animation-delay: .15s; }
.typing i:nth-child(3){ animation-delay: .3s; }
@keyframes blink { 0%,100%{ transform: translateY(0); opacity:.5 } 50%{ transform: translateY(-3px); opacity:1 } }
@keyframes fillBar {
  0% { width: 0%; }
  100% { width: inherit; }
}
.input-mini { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .45rem; padding: .5rem .6rem; border-top: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.03); }
.input-mini span { color: rgba(255,255,255,.65); font-size: .85rem; background: rgba(255,255,255,.08); padding: .55rem .7rem; border-radius: 14px; }
.input-mini .send { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 9px; background: linear-gradient(180deg, #2a5bff, #1438c4); box-shadow: 0 8px 18px rgba(42,91,255,.35); }
.tile-media img, .tile-media video { width: 100%; height: 100%; object-fit: cover; opacity: .88; }
.tile-overlay { position: absolute; inset: auto 0 0 0; padding: 1rem; color: #fff; text-shadow: 0 6px 18px rgba(0,0,0,.35); background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.35) 70%, rgba(0,0,0,.55) 100%); }
.tile-overlay h3 { font-size: clamp(1.2rem, 1.2vw + 1rem, 1.6rem); margin: 0 0 .2rem; }
.tile-overlay p { margin: 0; opacity: .95; }
.feature-label { position: absolute; top: 12px; left: 12px; padding: .25rem .55rem; border-radius: 999px; font-weight: 800; font-size: .8rem; color: #fff; background: rgba(0,0,0,.35); border: 1px solid rgba(255,255,255,.3); backdrop-filter: blur(2px); }
.tile-card.phone .tile-overlay { inset: auto auto 12px 12px; right: auto; left: 12px; background: rgba(0,0,0,.45); border: 1px solid rgba(255,255,255,.28); backdrop-filter: blur(8px) saturate(120%); box-shadow: 0 8px 22px rgba(0,0,0,.25); border-radius: 16px; padding: .55rem .75rem; text-shadow: none; max-width: 76%; }
.tile-card.phone .tile-overlay h3 { font-size: 1.05rem; margin: 0; }
.tile-card.phone .tile-overlay p { display: none; font-size: .85rem; margin-top: .2rem; opacity: .9; }
.tile-card.phone:hover .tile-overlay p { display: block; }
.tile-card.phone .feature-label { display: none; }
.tile-btn { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--gray-200); background: var(--white); color: var(--primary); font-size: 1.2rem; display: grid; place-items: center; box-shadow: var(--shadow-sm); }
.tile-btn:hover { border-color: var(--primary); }

@media (max-width: 900px) {
  .feature-card-item {
    width: 240px;
    min-height: 160px;
    padding: 1.25rem;
  }

  .showcase-split {
    grid-template-columns: 1fr;
    gap: 3rem;
    text-align: center;
  }

  .phone-frame {
    transform: scale(0.85);
  }

  .hero-phone-frame {
    transform: scale(0.9);
  }

  .tile { width: 88vw; }
  .tile-duo { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .feature-card-item {
    width: 220px;
    min-height: 150px;
    padding: 1rem;
    gap: 0.75rem;
  }

  .card-icon {
    width: 40px;
    height: 40px;
  }

  .feature-card-item h3 {
    font-size: 1.1rem;
  }

  .feature-card-item p {
    font-size: 0.9rem;
  }

  .showcase-split {
    gap: 2rem;
  }

  .phone-frame {
    transform: scale(0.7);
  }

  .hero-phone-frame {
    transform: scale(0.75);
  }

  .showcase-cta {
    flex-direction: column;
    align-items: stretch;
  }

  .tile-duo { grid-template-columns: 1fr; }
}

.card { background: var(--surface); border: 1px solid var(--gray-200); border-radius: var(--radius); padding: 1.2rem; box-shadow: var(--shadow-sm); }
.card.feature { border-color: color-mix(in oklab, var(--primary) 22%, var(--gray-200)); box-shadow: var(--shadow-md); }

.stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.stat { background: var(--surface); border-radius: var(--radius); padding: 1.4rem; border: 1px solid var(--gray-200); text-align: center; box-shadow: var(--shadow-sm); }
.stat .value { font-size: clamp(1.8rem, 4vw + .5rem, 2.6rem); font-weight: 800; color: var(--primary); }
.stat .label { color: var(--muted); font-weight: 600; }

/* Contact */
.contact { display: grid; gap: 1.2rem; }
.contact-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; background: var(--surface); border: 1px solid var(--gray-200); padding: 1.2rem; border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.input-group { display: grid; gap: .35rem; }
.input-group.full { grid-column: 1 / -1; }
.input-group label { font-weight: 700; color: var(--gray-700); }
.input-group input, .input-group textarea {
  width: 100%; padding: .8rem .9rem; border-radius: 12px; border: 1px solid var(--gray-300);
  background: var(--white); color: var(--text); outline: none;
}
.input-group input:focus, .input-group textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px var(--ring); }

/* Buttons */
.btn { 
  display: inline-flex; 
  align-items: center; 
  justify-content: center; 
  font-weight: 700; 
  border-radius: 8px; 
  padding: 0.875rem 1.5rem; 
  transition: all 0.2s ease; 
  border: 1px solid transparent; 
  font-size: 0.95rem;
  text-decoration: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}

.btn:hover { 
  transform: translateY(-1px); 
}

.btn-primary { 
  background: linear-gradient(135deg, #1a4edb, #2563eb); 
  color: white; 
  box-shadow: 0 4px 12px rgba(26, 78, 219, 0.25); 
  border: none;
}

.btn-primary:hover { 
  background: linear-gradient(135deg, #1e40af, #1d4ed8); 
  box-shadow: 0 6px 20px rgba(26, 78, 219, 0.35); 
}

.btn-primary::after {
  content: '→';
  margin-left: 0.5rem;
  font-weight: 900;
  transition: transform 0.2s ease;
}

.btn-primary:hover::after {
  transform: translateX(2px);
}

.btn-ghost { 
  background: white; 
  border-color: #1a4edb; 
  color: #1a4edb; 
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.btn-ghost:hover { 
  background: #f8fafc; 
  border-color: #1e40af; 
  color: #1e40af;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.btn-generate {
  background: linear-gradient(135deg, #16d8a0, #12b58a);
  color: white;
  border: none;
  box-shadow: 0 4px 12px rgba(22, 216, 160, 0.25);
}

.btn-generate:hover {
  background: linear-gradient(135deg, #12b58a, #0d9d7a);
  box-shadow: 0 6px 20px rgba(22, 216, 160, 0.35);
}

/* How It Works Section */
.how-it-works {
  padding: 5rem 0;
  background: radial-gradient(1200px 400px at 10% 0%, color-mix(in oklab, var(--cyan-400) 20%, transparent), transparent),
              radial-gradient(1200px 400px at 90% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent),
              linear-gradient(180deg, #f6fbff, #ffffff);
}

.how-it-works .section-header h2 {
  color: var(--text);
}

.process-container {
  max-width: 1200px;
  margin: 3rem auto 0;
  padding: 0 2rem;
}

.process-steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  align-items: stretch; /* ensure equal height */
}

.process-step {
  position: relative;
  background: white;
  border-radius: 16px;
  padding: 2rem;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-height: 200px;
  height: 100%; /* fill grid cell height */
}

.process-step:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.12);
}

.step-icon {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: transparent !important;
  border: 2px solid var(--genvest-blue-primary);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(26, 78, 219, 0.2);
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}

.step-icon svg { width: 28px; height: 28px; }
.step-icon img { width: 100%; height: 100%; object-fit: contain; }

.step-content h3 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--gray-900);
  line-height: 1.4;
  margin: 0 0 0.5rem 0;
}

.step-content p {
  color: var(--gray-600);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0;
  font-weight: 500;
}

.step-connector {
  position: absolute;
  top: 50%;
  right: -2rem;
  width: 2rem;
  height: 3px;
  background: linear-gradient(90deg, rgba(26, 78, 219, 0.3), rgba(26, 78, 219, 0.1));
  transform: translateY(-50%);
  z-index: 1;
}

.step-connector::after {
  content: '';
  position: absolute;
  right: -4px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid rgba(26, 78, 219, 0.2);
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
}

.process-step.step-4 .step-connector {
  display: none;
}

/* Responsive adjustments for process steps */
@media (max-width: 1024px) {
  .process-steps {
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
  }

  .step-connector {
    display: none;
  }

  .process-step {
    padding: 1.5rem;
  }
}

@media (max-width: 768px) {
  .process-steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }

  .process-container {
    padding: 0 1rem;
  }

  .process-step {
    padding: 1.25rem;
    min-height: 180px;
  }

  .step-icon {
    width: 50px;
    height: 50px;
  }

  .step-content h3 {
    font-size: 1.1rem;
  }

  .step-content p {
    font-size: 0.9rem;
  }
}

@media (max-width: 640px) {
  .process-steps {
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .process-step {
    padding: 1rem;
    min-height: 160px;
  }
}

@media (max-width: 480px) {
  .how-it-works {
    padding: 3rem 0;
  }

  .process-container {
    margin-top: 2rem;
  }

  .process-step {
    padding: 1rem;
    min-height: 160px;
  }
}

/* Tiles Section (from genvest-section 5) */
.wrap {
  max-width: 1200px;
  margin-inline: auto;
  padding: 56px 20px;
  width: 100%;
  box-sizing: border-box;
}

.section[aria-labelledby="mf-head"] {
  background: radial-gradient(1200px 400px at 10% 0%, color-mix(in oklab, var(--cyan-400) 20%, transparent), transparent),
              radial-gradient(1200px 400px at 90% 0%, color-mix(in oklab, var(--accent) 22%, transparent), transparent),
              linear-gradient(180deg, #f6fbff, #ffffff);
  border: none;
  border-radius: 0;
  padding: 48px 24px;
  box-shadow: none;
  max-width: 100%;
  overflow: hidden;
}

.head {
  text-align: center;
  max-width: 880px;
  margin: 0 auto 22px;
}

.head h1 {
  font-size: clamp(28px, 3.8vw, 40px);
  line-height: 1.08;
  margin: 0 0 10px;
  font-weight: 700;
  color: #020202;
}

.head p {
  margin: 0;
  font-size: clamp(15px, 1.6vw, 18px);
  color: #2a2a2a;
}

.tiles {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  max-width: 100%;
  margin: 18px auto 0;
  padding: 0 20px;
}

@media (min-width: 768px) {
  .tiles {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    padding: 0;
  }
}

@media (min-width: 1024px) {
  .tiles {
    max-width: 1000px;
  }
}

.tile {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid rgba(6,106,228,.14);
  border-radius: 20px;
  padding: 22px 20px;
  box-shadow: 0 6px 16px rgba(6,106,228,.06);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.tile::before {
  display: none;
}

.row {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 14px;
  align-items: start;
}

.icn {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, #02bcf7, #066ae4);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), 0 8px 18px rgba(2,188,247,.22);
}

.icn img, .icn svg {
  width: 28px;
  height: 28px;
  display: block;
}

h3 {
  margin: 6px 0 8px;
  font-size: 18px;
  font-weight: 600;
  color: #020202;
}

.sub {
  margin: 0;
  color: #4a4a4a;
  font-size: 15px;
  line-height: 1.55;
}

@media (prefers-color-scheme: dark) {
  body {
    background: #0b0c0f;
    color: #e6edf3;
  }
  
  .section[aria-labelledby="mf-head"] {
    background: linear-gradient(180deg, rgba(6,106,228,.10), rgba(2,188,247,.08));
    border-color: rgba(6,106,228,.25);
  }
  
  .head p, .sub {
    color: #c9d1d9;
  }
  
  .tile {
    background: #0f1116;
    border-color: rgba(6,106,228,.28);
  }
}

/* Footer */
.testimonials {
  background: linear-gradient(180deg, #ffffff, #f8fbff);
}

.testimonials .section-header h2 { color: var(--gray-900); }
.testimonials .section-header p { color: var(--gray-600); }

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.testimonial-card {
  background: #fff;
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(2,44,155,.08);
  padding: 1.25rem 1.25rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.testimonial-card .quote-mark { display: none; }

.testimonial-text {
  color: var(--gray-700);
  line-height: 1.6;
}

.stars { display: inline-flex; gap: .25rem; align-items: center; }
.star { position: relative; width: 18px; height: 18px; display: inline-block; }
.star svg { width: 18px; height: 18px; position: absolute; inset: 0; }
.star .base { display: none; }
.star .fill { fill: #22c55e; }

/* Star mask technique for half stars */
.star.half .fill { clip-path: inset(0 50% 0 0); }
.star.empty .fill { display: none; }

/* Define gradient once (safe to duplicate) */
.testimonials { --star-gradient: linear-gradient(135deg, #22c55e, #34d399); }

.testimonial-footer { display: flex; align-items: center; gap: .75rem; padding-top: .25rem; }
.avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; background: #e5e7eb; }
.name { font-weight: 700; color: var(--gray-900); }
.title { font-size: .85rem; color: var(--gray-500); }

@media (max-width: 1024px) {
  .testimonials-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .testimonials-grid { grid-template-columns: 1fr; }
}
.site-footer {
  background: linear-gradient(to bottom, rgba(2, 6, 23, 0.85), rgba(2, 6, 23, 0.95));
  backdrop-filter: blur(10px);
  color: var(--gray-200);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  position: relative;
}

.compliance-footer {
  padding: 4rem 0 2rem;
}

.compliance-grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 4rem;
  margin-bottom: 3rem;
}

.compliance-info {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.footer-logo {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.logo-icon-footer {
  width: 32px;
  height: 32px;
}

.logo-text {
  font-size: 1.5rem;
  font-weight: 600;
  background: linear-gradient(135deg, #fff, #94a3b8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.compliance-text {
  color: var(--gray-400);
  line-height: 1.6;
  font-size: 0.9rem;
}

.compliance-details {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  background: rgba(255, 255, 255, 0.03);
  padding: 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.detail-row {
  display: flex;
  gap: 0.75rem;
  font-size: 0.875rem;
}

.detail-label {
  color: var(--gray-400);
  min-width: 120px;
}

.detail-value {
  color: var(--gray-200);
}

.detail-value a {
  color: var(--blue-400);
  text-decoration: none;
  transition: color 0.2s;
}

.detail-value a:hover {
  color: var(--blue-300);
}

.compliance-officer {
  background: rgba(255, 255, 255, 0.03);
  padding: 1.25rem;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.compliance-officer h4 {
  color: var(--gray-200);
  font-size: 0.9rem;
  margin-bottom: 0.75rem;
}

.compliance-officer p {
  color: var(--gray-400);
  font-size: 0.875rem;
  margin: 0.35rem 0;
}

.compliance-officer a {
  color: var(--blue-400);
  text-decoration: none;
  transition: color 0.2s;
}

.compliance-officer a:hover {
  color: var(--blue-300);
}

.quick-links {
  padding-top: 0.5rem;
}

.quick-links h3 {
  color: var(--gray-200);
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
}

.links-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 2rem;
}

.links-grid a {
  color: var(--gray-400);
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s;
}

.links-grid a:hover {
  color: var(--gray-200);
}

.contact-info {
  padding-top: 0.5rem;
}

.contact-info h3 {
  color: var(--gray-200);
  font-size: 1.125rem;
  margin-bottom: 1.5rem;
}

.contact-info address {
  color: var(--gray-400);
  font-style: normal;
  line-height: 1.6;
  font-size: 0.875rem;
  margin-bottom: 1.5rem;
}

.contact-phone,
.contact-email {
  margin: 0.75rem 0;
}

.contact-phone a,
.contact-email a {
  color: var(--blue-400);
  text-decoration: none;
  font-size: 0.875rem;
  transition: color 0.2s;
}

.contact-phone a:hover,
.contact-email a:hover {
  color: var(--blue-300);
}

.social-links {
  display: flex;
  gap: 1rem;
  margin-top: 1.5rem;
}

.social-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--gray-400);
  transition: all 0.2s;
}

.social-icon:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--gray-200);
  transform: translateY(-2px);
}

.compliance-disclaimer {
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding: 2rem 0;
  margin: 2rem 0;
}

.compliance-disclaimer p {
  color: var(--gray-500);
  font-size: 0.8rem;
  line-height: 1.6;
  max-width: 80ch;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 1rem;
}

.copyright {
  color: var(--gray-500);
  font-size: 0.875rem;
}

.start-cta {
  display: inline-block;
  padding: 0.875rem 1.5rem;
  background: linear-gradient(135deg, #1a4edb, #2563eb);
  color: white;
  text-decoration: none;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 700;
  transition: all 0.2s;
  border: none;
  box-shadow: 0 4px 12px rgba(26, 78, 219, 0.25);
}

.start-cta:hover {
  background: linear-gradient(135deg, #1e40af, #1d4ed8);
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(26, 78, 219, 0.35);
}

.start-cta::after {
  content: '→';
  margin-left: 0.5rem;
  font-weight: 900;
  transition: transform 0.2s ease;
}

.start-cta:hover::after {
  transform: translateX(2px);
}

@media (max-width: 1024px) {
  .compliance-grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }

  .quick-links,
  .contact-info {
    padding-top: 0;
  }

  .links-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 768px) {
  .compliance-footer {
    padding: 3rem 0 1.5rem;
  }

  .links-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-bottom {
    flex-direction: column;
    gap: 1.5rem;
    text-align: center;
  }

  .start-cta {
    width: 100%;
    text-align: center;
  }
}

@media (max-width: 640px) {
  .links-grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .compliance-details {
    padding: 1rem;
  }

  .detail-row {
    flex-direction: column;
    gap: 0.25rem;
  }

  .detail-label {
    min-width: auto;
  }
}

/* Responsive */
@media (max-width: 900px) {
  .grid.three, .stats { grid-template-columns: 1fr; }
  .contact-form { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .site-header { z-index: 60; }
  .nav {
    display: none;
    position: absolute;
    inset: calc(100% + .75rem) .75rem auto .75rem;
    background: var(--surface);
    border: 1px solid var(--gray-200);
    border-radius: 18px;
    padding: .75rem;
    box-shadow: 0 18px 38px rgba(12, 24, 48, 0.15);
    z-index: 70;
    grid-auto-rows: min-content;
    gap: .25rem;
  }
  .nav.show { display: grid; animation: zoomIn .18s ease; }
  .nav a { padding: .85rem; border-radius: 12px; font-weight: 600; text-align: left; }
  .nav a:hover { background: var(--gray-100); color: var(--primary); }
  .nav-ctas { display: grid; gap: .6rem; margin-top: .75rem; }
  .nav-ctas .btn { width: 100%; justify-content: center; }
  .nav-toggle { display: inline-block; z-index: 71; }
  .nav-backdrop { display: block; z-index: 55; }
  .hero {
    min-height: auto;
    padding: 1rem 0;
  }
  .hero-inner {
    padding: 1rem 0;
  }
  .hero-grid {
    grid-template-columns: 1fr;
    gap: 1rem;
    min-height: auto;
  }
  .hero-copy {
    padding: 0;
    margin-right: 0;
    margin-bottom: 0;
    margin-left: 0;
  }
  .hero-model-container {
    height: 380px;
    order: -1;
  }
  .hero-model-image {
    max-width: 374px;
  }
  .hero-model-image img {
    transform: scale(1.05);
  }
  .hero-copy h1 {
    font-size: clamp(1.8rem, 4vw, 2.5rem);
  }
  .user-left {
    top: 8%;
    right: -5px;
    max-width: 200px;
  }
  .ai-right {
    top: 35%;
    left: -5px;
    max-width: 200px;
  }
  .header-cta { display: none !important; }
}

@media (min-width: 761px) {
  .header-cta { display: inline-flex; }
}

/* Announcement bar */
.announcement { background: linear-gradient(90deg, var(--accent-2), var(--primary)); color: white; }
.announcement-inner { display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center; padding: .4rem 0; }
.announcement-text { font-weight: 600; }
.announcement-cta { color: white; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.25); padding: .35rem .6rem; border-radius: 10px; font-weight: 700; }
.announcement-cta:hover { background: rgba(255,255,255,.25); }
.announcement-close { justify-self: end; width: 28px; height: 28px; border-radius: 8px; border: 0; background: rgba(255,255,255,.15); color: white; font-size: 18px; line-height: 1; cursor: pointer; }
.announcement-close:hover { background: rgba(255,255,255,.25); }

/* Latest Insights Section */
.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  margin-top: 3rem;
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

.insight-card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  cursor: pointer;
  group: true;
}

.insight-card:hover {
  transform: translateY(-4px);
}

.insight-card-inner {
  background: var(--white);
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: box-shadow 0.3s ease;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.insight-card:hover .insight-card-inner {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.insight-image {
  height: 200px;
  overflow: hidden;
  position: relative;
}

.insight-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.insight-card:hover .insight-img {
  transform: scale(1.05);
}

.insight-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--genvest-blue), var(--genvest-sky-blue));
}

.insight-content {
  padding: 1rem;
}

.insight-tags {
  display: flex;
  gap: 0.375rem;
  margin-bottom: 0.625rem;
  flex-wrap: wrap;
}

.insight-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.4rem;
  border-radius: 999px;
  border: 1px solid #e5e7eb;
  font-size: 0.675rem;
  color: #6b7280;
  text-transform: capitalize;
  background: transparent;
}

.insight-title {
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--gray-900);
  margin-bottom: 0.4rem;
  line-height: 1.2;
  transition: color 0.3s ease;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: left;
}

.insight-card:hover .insight-title {
  color: var(--genvest-blue);
}

.insight-excerpt {
  color: var(--gray-600);
  margin-bottom: 0.6rem;
  line-height: 1.2;
  font-size: 0.6rem;
  font-weight: 400;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: left;
  word-break: break-word;
  hyphens: auto;
  text-overflow: ellipsis;
}

.insight-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.7rem;
  color: var(--gray-500);
}

.insights-empty {
  text-align: center;
  padding: 3rem 0;
  color: var(--gray-600);
  grid-column: 1 / -1;
}

.insights-cta {
  text-align: center;
  margin-top: 2.5rem;
}

@media (max-width: 900px) {
  .insights-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}

@media (max-width: 640px) {
  .insights-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  
  .insight-content {
    padding: 1.25rem;
  }
  
  .insight-title {
    font-size: 0.8rem;
    line-height: 1.2;
  }
  
  .insight-excerpt {
    font-size: 0.6rem;
    line-height: 1.25;
    font-weight: 400;
  }
}

/* CTA Section - Dark Theme */
.cta-section {
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f1419 100%) !important;
  color: #fcfcfc !important;
  padding: 4rem 0;
}

.cta-header {
  text-align: center;
  margin-bottom: 3rem;
}

.cta-header h2 {
  font-size: clamp(0.875rem, 1.4vw, 1.12rem);
  font-weight: 600;
  color: #fcfcfc !important;
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.3;
}

.cta-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  align-items: start;
}

/* Left Column - Contact Info */
.cta-left h3 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #fcfcfc !important;
  margin-bottom: 2rem;
}

.contact-methods {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: 2.5rem;
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.contact-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.contact-icon.phone {
  background: #02bcf7;
}

.contact-icon.email {
  background: #16d8a0;
}

.contact-icon.location {
  background: #066ae4;
}

.contact-icon.hours {
  background: #64748b;
}

.contact-icon svg {
  color: #fcfcfc;
}

.contact-details {
  flex: 1;
}

.contact-label {
  font-weight: 700;
  font-size: 1rem;
  color: #fcfcfc !important;
  margin-bottom: 0.25rem;
}

.contact-value {
  font-size: 0.95rem;
  color: rgba(252, 252, 252, 0.9) !important;
  line-height: 1.4;
}

/* Strategy Session Block */
.strategy-session {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  padding: 1.5rem;
  backdrop-filter: blur(10px);
}

.strategy-session h4 {
  font-size: 1.25rem;
  font-weight: 700;
  color: #fcfcfc !important;
  margin-bottom: 0.75rem;
}

.strategy-session p {
  font-size: 0.95rem;
  color: rgba(252, 252, 252, 0.8) !important;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}

.btn-session {
  background: #fcfcfc;
  color: #020202;
  border: none;
  padding: 0.75rem 1.5rem;
  border-radius: 12px;
  font-weight: 600;
  font-size: 0.95rem;
  width: 100%;
  transition: all 0.3s ease;
  cursor: pointer;
}

.btn-session:hover {
  background: rgba(252, 252, 252, 0.9);
  transform: translateY(-1px);
}

/* Right Column - Form */
.cta-form-card {
  background: rgba(255, 255, 255, 0.08);
  border-radius: 20px;
  padding: 2rem;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
}

.cta-form-card h3 {
  font-size: 1.44rem;
  font-weight: 700;
  color: #fcfcfc !important;
  margin-bottom: 1.5rem;
  text-align: center;
}

.cta-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.cta-form .input-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.cta-form label {
  font-weight: 600;
  color: #fcfcfc !important;
  font-size: 0.95rem;
}

.cta-form input,
.cta-form textarea {
  padding: 0.875rem 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.1);
  color: #fcfcfc !important;
  font-size: 0.95rem;
  transition: all 0.3s ease;
}

.cta-form input::placeholder,
.cta-form textarea::placeholder {
  color: rgba(252, 252, 252, 0.6) !important;
}

.cta-form input:focus,
.cta-form textarea:focus {
  outline: none;
  border-color: #066ae4;
  background: rgba(255, 255, 255, 0.15);
  box-shadow: 0 0 0 3px rgba(6, 106, 228, 0.2);
}

.cta-form textarea {
  resize: vertical;
  min-height: 100px;
}

.btn-generate {
  background: #16d8a0;
  color: #fcfcfc;
  border: none;
  padding: 1rem 1.5rem;
  border-radius: 12px;
  font-weight: 700;
  font-size: 1rem;
  width: 100%;
  margin-top: 0.5rem;
  transition: all 0.3s ease;
  cursor: pointer;
}

.btn-generate:hover {
  background: #12b58a;
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(22, 216, 160, 0.4);
}

.btn-generate:disabled {
  background: #9ca3af;
  cursor: not-allowed;
  transform: none;
}

/* Form Messages */
.form-message {
  padding: 1rem;
  border-radius: 8px;
  margin: 1rem 0;
  font-size: 0.95rem;
  line-height: 1.5;
}

.form-message-success {
  background-color: #d1fae5;
  color: #065f46;
  border: 1px solid #10b981;
}

.form-message-error {
  background-color: #fee2e2;
  color: #991b1b;
  border: 1px solid #ef4444;
}

/* reCAPTCHA Notice */
.recaptcha-notice {
  font-size: 0.75rem;
  color: #6b7280;
  text-align: center;
  margin-top: 1rem;
  line-height: 1.5;
}

.recaptcha-notice a {
  color: #066ae4;
  text-decoration: underline;
}

.recaptcha-notice a:hover {
  color: #0451b8;
}

/* Responsive */
@media (max-width: 900px) {
  .cta-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  
  .form-row {
    grid-template-columns: 1fr;
  }
}

/* --------------------------------------------------------------------------
   Global mobile optimisation tweaks
   -------------------------------------------------------------------------- */
@media (max-width: 640px) {
  body { overflow-x: hidden; }
  .container { width: min(100% - 1.25rem, var(--container)); }
  .section { padding: 3rem 0; }
  .section-header.strong { text-align: center; }
  .section-header.strong p { margin-inline: auto; }
  .hero { padding: 2.5rem 0 2rem; }
  .hero-grid { gap: 2.4rem; }
  .hero-copy h1 { font-size: clamp(2.05rem, 4vw + 1.3rem, 2.55rem); }
  .hero-copy .lead { font-size: 1rem; margin-inline: auto; }
  .cta { flex-direction: column; align-items: stretch; }
  .cta .btn { width: 100%; justify-content: center; }
  .chips,
  .trust { justify-content: center; }
  .hero-visual { margin-top: .5rem; }
  .feature-cards { gap: 1rem; }
  .feature-cards .cards-scroller { grid-auto-columns: min(260px, 85vw); padding-inline: .25rem; }
  .feature-card-item { width: 100%; min-height: 0; }
  .team-grid.simple { gap: 1.2rem; }
  .team-card.simple { align-items: center; text-align: center; padding: 1.4rem; }
  .member-avatar.large { width: 88px; height: 88px; }
  .member-role { letter-spacing: .12em; }
  .member-qualifications-inline { font-size: .82rem; }
  .member-bio { font-size: .9rem; }
  .insights-grid { gap: 1.6rem; }
  .insight-card-inner { border-radius: 20px; }
  .site-footer .container { width: min(100% - 1rem, var(--container)); }
  .compliance-grid { grid-template-columns: 1fr; gap: 2rem; }
}

/* --------------------------------------------------------------------------
   ENHANCED MOBILE OPTIMIZATIONS - 2025
   Comprehensive mobile-first improvements for better UX across all devices
   -------------------------------------------------------------------------- */

/* ===== TABLET OPTIMIZATIONS (768px - 900px) ===== */
@media (max-width: 900px) and (min-width: 768px) {
  /* Team section: 2 columns on tablets instead of collapsing to 1 */
  .team-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }

  /* Better spacing for showcase on tablets */
  .showcase-split {
    gap: 2.5rem;
  }

  /* Pro comparison: Better spacing */
  .pro-comparison-layout {
    gap: 2.5rem;
  }
}

/* ===== MOBILE LANDSCAPE & SMALL TABLETS (640px - 768px) ===== */
@media (max-width: 768px) and (min-width: 640px) {
  /* Showcase: Optimize phone mockup size */
  .phone-frame {
    transform: scale(0.8);
    margin: 0 auto;
  }

  /* CTA buttons: Better touch targets */
  .cta .btn {
    padding: 1rem 1.75rem;
    font-size: 1rem;
  }

  /* Feature cards: Slightly larger on this breakpoint */
  .feature-card-item {
    width: 260px;
    padding: 1.35rem;
  }
}

/* ===== ENHANCED MOBILE OPTIMIZATIONS (max-width: 640px) ===== */
@media (max-width: 640px) {

  /* --- Pro Comparison Section Improvements --- */
  .pro-comparison-layout {
    gap: 2rem;
  }

  .pro-content-left h3 {
    font-size: 1.6rem;
    margin-bottom: 1.5rem;
  }

  .pro-benefits-list {
    gap: 1.5rem;
    margin-bottom: 2rem;
  }

  .benefit-item {
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: start;
  }

  .pro-benefits-list .card-icon {
    width: 48px;
    height: 48px;
  }

  .pro-benefits-list .card-icon svg {
    width: 24px;
    height: 24px;
  }

  .benefit-item strong {
    font-size: 1.05rem;
    margin-bottom: 0.4rem;
  }

  .benefit-item span {
    font-size: 0.92rem;
    line-height: 1.6;
  }

  /* Pro pricing CTA improvements */
  .pro-pricing {
    padding: 1.5rem 0;
    text-align: center;
  }

  .pro-cta-buttons {
    flex-direction: column;
    gap: 0.75rem;
    align-items: stretch;
  }

  .pro-cta-buttons .btn {
    width: 100%;
    padding: 1rem 1.5rem;
    font-size: 1rem;
  }

  .pro-pricing-note {
    font-size: 0.85rem;
    text-align: center;
    margin-top: 1rem;
  }

  /* Pro comparison table - mobile optimized */
  .pro-card {
    border-radius: 18px;
  }

  .pro-compare {
    padding: 0 1.25rem;
  }

  .pro-row {
    padding-block: 1rem;
  }

  .pro-feature {
    font-size: 0.95rem;
    font-weight: 600;
    padding: 0.4rem 0;
  }

  .pro-cell {
    padding: 0.3rem 0;
    font-size: 0.9rem;
  }

  .availability {
    font-size: 0.88rem;
  }

  .availability-icon {
    width: 18px;
    height: 18px;
  }

  .availability-icon svg {
    width: 11px;
    height: 11px;
  }

  .plan-tag {
    font-size: 0.8rem;
    padding: 0.28rem 0.7rem;
    max-width: 100%;
  }

  /* --- Showcase Section Improvements --- */
  .showcase-split {
    gap: 2.5rem;
    padding-top: 1rem;
  }

  .mobile-mockup {
    max-width: 280px;
  }

  .phone-frame {
    width: 280px;
    height: 560px;
    transform: scale(0.95);
  }

  .showcase-content {
    padding: 0 0.5rem;
  }

  .showcase-content h3 {
    font-size: clamp(1.6rem, 5vw, 2rem);
    margin-bottom: 1rem;
    line-height: 1.25;
  }

  .showcase-description {
    font-size: 1rem;
    margin-bottom: 1.75rem;
    line-height: 1.65;
  }

  .feature-list {
    gap: 1.35rem;
    margin-bottom: 2rem;
  }

  .feature-item {
    gap: 0.85rem;
  }

  .feature-check {
    width: 22px;
    height: 22px;
    font-size: 0.7rem;
  }

  .feature-item strong {
    font-size: 1rem;
  }

  .feature-item span {
    font-size: 0.92rem;
    line-height: 1.5;
  }

  .showcase-cta {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .showcase-cta .btn {
    width: 100%;
    padding: 1rem 1.5rem;
  }

  /* --- How It Works Section Improvements --- */
  .how-it-works {
    padding: 3.5rem 0;
  }

  .process-container {
    padding: 0 0.75rem;
    margin-top: 2rem;
  }

  .process-steps {
    gap: 1.25rem;
  }

  .process-step {
    padding: 1.35rem;
    min-height: 170px;
    gap: 1.25rem;
  }

  .step-icon {
    width: 54px;
    height: 54px;
  }

  .step-icon img {
    width: 90%;
    height: 90%;
  }

  .step-content h3 {
    font-size: 1.15rem;
    line-height: 1.35;
    margin-bottom: 0.4rem;
  }

  .step-content p {
    font-size: 0.92rem;
    line-height: 1.55;
  }

  /* --- Team Section Improvements --- */
  .team-section .section-header {
    margin-bottom: 2rem;
  }

  .team-grid.simple {
    gap: 1.5rem;
  }

  .team-card.simple {
    padding: 1.75rem 1.5rem;
    align-items: center;
    text-align: center;
  }

  .member-avatar.large {
    width: 96px;
    height: 96px;
    margin-bottom: 1.25rem;
  }

  .member-role {
    font-size: 0.75rem;
    margin-bottom: 0.5rem;
  }

  .member-name {
    font-size: 1.3rem;
    margin-bottom: 0.5rem;
  }

  .member-qualifications-inline {
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
  }

  .member-bio {
    font-size: 0.93rem;
    line-height: 1.65;
  }

  /* --- CTA/Contact Section Improvements --- */
  .cta-section {
    padding: 3rem 0;
  }

  .cta-header h2 {
    font-size: clamp(1.5rem, 5vw, 2rem);
    line-height: 1.3;
    margin-bottom: 1.5rem;
  }

  .cta-grid {
    gap: 2.5rem;
  }

  .cta-left h3 {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
    text-align: center;
  }

  .contact-methods {
    gap: 1.25rem;
  }

  .contact-item {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
  }

  .contact-icon {
    margin-bottom: 0;
  }

  .contact-details {
    align-items: center;
  }

  .contact-label {
    font-size: 0.85rem;
    margin-bottom: 0.25rem;
  }

  .contact-value {
    font-size: 0.95rem;
  }

  .cta-form-card {
    padding: 1.5rem 1.25rem;
  }

  .cta-form-card h3 {
    font-size: 1.4rem;
    margin-bottom: 1.25rem;
    text-align: center;
  }

  .contact-form .form-row {
    grid-template-columns: 1fr;
    gap: 0.75rem;
  }

  .contact-form .input-group {
    gap: 0.4rem;
  }

  .contact-form label {
    font-size: 0.9rem;
  }

  .contact-form input,
  .contact-form textarea {
    padding: 0.9rem;
    font-size: 1rem;
  }

  .contact-form .btn {
    width: 100%;
    padding: 1rem;
    font-size: 1rem;
  }

  /* --- Hero Section Fine-tuning --- */
  .hero {
    padding: 2rem 0;
  }

  /* Buttons stack on mobile for better touch targets */
  .cta {
    flex-direction: column;
    gap: 0.75rem;
    align-items: flex-start;
  }

  .cta .btn {
    width: auto;
    min-width: 200px;
    padding: 0.9rem 1.5rem;
    font-size: 0.95rem;
  }

  .chips,
  .trust {
    gap: 0.65rem;
  }

  .chip,
  .trust-item {
    font-size: 0.75rem;
    padding: 0.55rem 0.75rem;
  }

  /* Slightly smaller chat card */
  .hero-insight-card {
    box-shadow: 0 20px 50px rgba(1,44,155,.25);
  }

  .hero-insight-convo {
    padding: 0.75rem 0.85rem;
  }

  .convo-bubble {
    font-size: 0.7rem;
    padding: 0.55rem 0.65rem;
    max-width: 180px;
  }

  /* --- Feature Cards Scroller --- */
  .feature-cards .cards-scroller {
    gap: 1.25rem;
    padding: 0.5rem 0 1.25rem;
  }

  .feature-card-item {
    width: 100%;
    max-width: 280px;
    padding: 1.25rem;
    gap: 0.85rem;
  }

  .card-icon {
    width: 50px;
    height: 50px;
  }

  .card-icon img,
  .card-icon svg {
    width: 32px !important;
    height: 32px !important;
  }

  .feature-card-item h3 {
    font-size: 1.15rem;
    line-height: 1.3;
  }

  .feature-card-item p {
    font-size: 0.93rem;
    line-height: 1.5;
  }

  /* --- Tiles Section (Smart Mutual Funds) --- */
  .tiles {
    gap: 1rem;
    padding: 0 0.75rem;
  }

  .tile {
    padding: 1.5rem 1.25rem;
  }

  .row {
    gap: 1rem;
  }

  .icn {
    width: 50px;
    height: 50px;
  }

  .icn img,
  .icn svg {
    width: 26px;
    height: 26px;
  }

  .tile h3 {
    font-size: 1.05rem;
    margin-bottom: 0.5rem;
  }

  .tile .sub {
    font-size: 0.92rem;
    line-height: 1.6;
  }

  /* --- Section Headers Global --- */
  .section-header.strong h2 {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
    line-height: 1.2;
    margin-bottom: 0.75rem;
  }

  .section-header.strong p {
    font-size: 1rem;
    line-height: 1.6;
    max-width: 90%;
  }

  /* --- Footer Improvements --- */
  .compliance-footer {
    padding: 3rem 0 1.5rem;
  }

  .compliance-grid {
    gap: 2.5rem;
  }

  .compliance-info {
    gap: 1.25rem;
  }

  .footer-logo .brand-logo {
    height: 32px;
  }

  .compliance-text {
    font-size: 0.88rem;
    line-height: 1.65;
  }

  .detail-row {
    flex-direction: column;
    gap: 0.25rem;
  }

  .detail-label {
    min-width: auto;
    font-size: 0.8rem;
  }

  .detail-value {
    font-size: 0.88rem;
  }

  .quick-links h3,
  .contact-info h3 {
    font-size: 1.15rem;
    margin-bottom: 1rem;
  }

  .links-grid {
    gap: 0.75rem;
  }

  .links-grid a {
    font-size: 0.9rem;
  }
}

/* ===== EXTRA SMALL MOBILE (max-width: 480px) ===== */
@media (max-width: 480px) {

  /* Even more compact spacing for very small screens */
  .section {
    padding: 2.5rem 0;
  }

  .container {
    width: min(100% - 1rem, var(--container));
  }

  /* Hero section ultra-compact - still maintain 2 columns */
  .hero {
    padding: 1.5rem 0;
  }

  .hero-grid {
    gap: 0.75rem;
  }

  .hero-copy {
    padding: 0 0.25rem;
  }

  .hero-copy h1 {
    font-size: clamp(1.2rem, 6vw, 1.75rem);
    margin-bottom: 0.75rem;
  }

  .hero-copy .lead {
    font-size: clamp(0.75rem, 2.5vw, 0.9rem);
    line-height: 1.5;
    margin-bottom: 1rem;
  }

  .cta {
    gap: 0.5rem;
  }

  .cta .btn {
    min-width: 160px;
    padding: 0.75rem 1.25rem;
    font-size: 0.85rem;
  }

  .chips,
  .trust {
    gap: 0.5rem;
    margin-top: 0.75rem;
  }

  .chip,
  .trust-item {
    font-size: 0.7rem;
    padding: 0.5rem 0.65rem;
  }

  .hero-model-container {
    min-height: 350px;
    padding-bottom: 50px;
  }

  .hero-model-image img {
    transform: scale(1.2);
  }

  .hero-insight-overlay {
    right: -15px;
    bottom: -20px;
    width: clamp(160px, 42vw, 220px);
  }

  .hero-insight-card {
    padding: 0.75rem 0.9rem;
    border-radius: 16px;
  }

  .hero-chat-head {
    padding-bottom: 0.35rem;
    gap: 0.8rem;
  }

  .hero-insight-chip {
    font-size: 0.58rem;
    padding: 0.2rem 0.5rem;
  }

  .hero-chat-status {
    font-size: 0.6rem;
  }

  .hero-insight-convo {
    padding: 0.7rem 0.8rem;
    gap: 0.45rem;
  }

  .convo-bubble {
    font-size: 0.65rem;
    padding: 0.5rem 0.6rem;
    max-width: 140px;
  }

  .convo-avatar {
    width: 22px;
    height: 22px;
    font-size: 0.65rem;
  }

  .indicator-dot {
    width: 6px;
  }

  /* Pro comparison even more compact */
  .pro-content-left h3 {
    font-size: 1.4rem;
  }

  .benefit-item strong {
    font-size: 1rem;
  }

  .benefit-item span {
    font-size: 0.88rem;
  }

  /* Showcase ultra-compact */
  .phone-frame {
    width: 260px;
    height: 520px;
    transform: scale(0.9);
  }

  .showcase-content h3 {
    font-size: 1.5rem;
  }

  .showcase-description {
    font-size: 0.95rem;
  }

  /* How It Works ultra-compact */
  .process-step {
    padding: 1.15rem;
    min-height: 155px;
  }

  .step-icon {
    width: 48px;
    height: 48px;
  }

  .step-content h3 {
    font-size: 1.05rem;
  }

  .step-content p {
    font-size: 0.88rem;
  }

  /* Team cards ultra-compact */
  .team-card.simple {
    padding: 1.5rem 1.25rem;
  }

  .member-avatar.large {
    width: 84px;
    height: 84px;
  }

  .member-name {
    font-size: 1.2rem;
  }

  .member-bio {
    font-size: 0.9rem;
  }

  /* Section headers ultra-compact */
  .section-header.strong h2 {
    font-size: clamp(1.6rem, 7vw, 2rem);
  }

  .section-header.strong p {
    font-size: 0.95rem;
  }

  /* CTA buttons ultra-compact but still touch-friendly */
  .cta .btn,
  .showcase-cta .btn,
  .pro-cta-buttons .btn {
    padding: 0.95rem 1.35rem;
    font-size: 0.95rem;
  }
}

/* Waitlist modal */
.waitlist-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(9, 16, 28, 0.55);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  z-index: 2000;
  backdrop-filter: blur(2px);
}

.waitlist-modal {
  position: relative;
  width: min(420px, 100%);
  background: #fff;
  border-radius: 1.25rem;
  padding: 2rem;
  box-shadow: 0 30px 60px -10px rgba(15, 23, 42, 0.4);
  border: 1px solid rgba(148, 163, 184, 0.35);
}

.waitlist-modal h3 {
  margin: 0 0 0.35rem;
  font-size: 1.5rem;
  color: var(--gray-900);
}

.waitlist-modal p {
  margin: 0 0 1.5rem;
  color: var(--gray-600);
  font-size: 1rem;
}

.waitlist-modal-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: none;
  background: transparent;
  font-size: 1.5rem;
  line-height: 1;
  color: var(--gray-500);
  cursor: pointer;
}

.waitlist-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.waitlist-form label {
  font-weight: 600;
  color: var(--gray-800);
}

.waitlist-form input {
  width: 100%;
  border-radius: 0.9rem;
  border: 1px solid var(--gray-200);
  padding: 0.9rem 1rem;
  font-size: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.waitlist-form input:focus {
  outline: none;
  border-color: var(--primary-500, #066ae4);
  box-shadow: 0 0 0 3px rgba(6, 106, 228, 0.2);
}

.waitlist-form .btn {
  width: 100%;
  justify-content: center;
}

.waitlist-message {
  margin-top: 1rem;
  font-size: 0.95rem;
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  background: rgba(15, 23, 42, 0.04);
  color: var(--gray-700);
}

.waitlist-message-success {
  background: rgba(34, 197, 94, 0.12);
  color: #0f5132;
}

.waitlist-message-error {
  background: rgba(248, 113, 113, 0.12);
  color: #981b1b;
}

@media (max-width: 640px) {
  .waitlist-modal {
    padding: 1.75rem;
  }

  .waitlist-modal h3 {
    font-size: 1.35rem;
  }
}

/* ===== TOUCH-FRIENDLY IMPROVEMENTS (All Mobile Devices) ===== */
@media (max-width: 900px) {

  /* Ensure all interactive elements meet minimum touch target size (44x44px) */
  .btn {
    min-height: 44px;
    padding: 0.875rem 1.5rem;
  }

  .nav a {
    min-height: 44px;
    padding: 0.7rem 1rem;
  }

  .faq-tab {
    min-height: 44px;
    padding: 0.65rem 1.25rem;
  }

  /* Better tap spacing for links */
  .links-grid a {
    padding: 0.5rem 0;
  }

  /* Prevent horizontal scroll */
  body {
    overflow-x: hidden;
  }

  /* Improve text readability */
  p {
    line-height: 1.65;
  }

  /* Better form inputs on mobile */
  input,
  textarea,
  select {
    font-size: 16px; /* Prevents zoom on iOS */
    min-height: 44px;
  }

  /* Improve scrollable areas */
  .cards-scroller,
  .tile-scroller {
    -webkit-overflow-scrolling: touch;
    scroll-padding: 1rem;
  }

  /* Add visual feedback for touch */
  .btn:active {
    transform: translateY(0);
    opacity: 0.9;
  }

  /* Better spacing for stacked elements */
  .cta,
  .showcase-cta,
  .pro-cta-buttons {
    gap: 0.75rem;
  }
}
