  :root{
    --brand: #2563eb;
    --brand-600: #1d4ed8;
    --brand-700: #1e40af;
    --brand-tint: #eff4ff;
    --brand-tint-strong: #dbe6ff;
    --ink: #0b1220;
    --ink-2: #1a2236;
    --muted: #4b5468;
    --muted-2: #6b7384;
    --line: #e6e8ee;
    --line-strong: #d4d8e1;
    --bg: #fbfbfa;
    --bg-2: #f5f5f3;
    --white: #ffffff;
    --radius: 12px;
    --radius-lg: 18px;
    --shadow-sm: 0 1px 2px rgba(11,18,32,.04), 0 1px 1px rgba(11,18,32,.03);
    --shadow-md: 0 8px 24px rgba(11,18,32,.06), 0 2px 6px rgba(11,18,32,.04);
    --shadow-lg: 0 24px 60px -12px rgba(11,18,32,.18), 0 8px 20px rgba(11,18,32,.06);
  }

  *{ box-sizing: border-box; }
  html, body{ margin:0; padding:0; }
  html{ scroll-behavior: smooth; }
  body{
    font-family: 'Manrope', ui-sans-serif, system-ui, -apple-system, sans-serif;
    color: var(--ink);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    font-size: 16px;
    line-height: 1.55;
  }
  img{ max-width:100%; display:block; }
  button{ font-family: inherit; }

  .container{ width: min(1180px, 92%); margin: 0 auto; }

  /* Nav */
  .nav{
    position: sticky; top: 0; z-index: 50;
    background: rgba(251,251,250,.82);
    backdrop-filter: saturate(160%) blur(14px);
    -webkit-backdrop-filter: saturate(160%) blur(14px);
    border-bottom: 1px solid transparent;
    transition: border-color .25s ease, box-shadow .25s ease, background .25s ease;
  }
  .nav.is-scrolled{
    border-bottom-color: var(--line);
    box-shadow: 0 1px 0 rgba(11,18,32,.02);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    height: 72px;
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    font-weight: 700; letter-spacing: -.01em; font-size: 18px;
    color: var(--ink); text-decoration:none;
  }
  .brand-mark{
    width: 28px; height: 28px; border-radius: 7px;
    background: var(--brand);
    display:grid; place-items:center;
    box-shadow: 0 1px 0 rgba(255,255,255,.4) inset, 0 1px 2px rgba(37,99,235,.35);
  }
  .brand-mark svg{ width: 16px; height: 16px; color: white; }
  .nav-links{ display:flex; gap: 28px; align-items:center; }
  .nav-links a{
    color: var(--muted); text-decoration: none; font-size: 14.5px; font-weight: 500;
    transition: color .15s ease;
  }
  .nav-links a:hover{ color: var(--ink); }
  .nav-cta{ display:flex; align-items:center; gap: 14px; }

  @media (max-width: 820px){
    .nav-links{ display:none; }
  }

  /* Buttons */
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    border: 1px solid transparent;
    border-radius: 10px;
    padding: 12px 18px;
    font-weight: 600; font-size: 14.5px; letter-spacing: -.005em;
    cursor: pointer;
    transition: transform .08s ease, box-shadow .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
    text-decoration:none;
    white-space:nowrap;
  }
  .btn-primary{
    background: var(--brand); color: white;
    box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 6px 16px -4px rgba(37,99,235,.45), 0 1px 2px rgba(37,99,235,.25);
  }
  .btn-primary:hover{ background: var(--brand-600); }
  .btn-primary:active{ transform: translateY(1px); }
  .btn-ghost{
    background: transparent; color: var(--ink);
    border-color: var(--line-strong);
  }
  .btn-ghost:hover{ background: var(--white); border-color: var(--ink); }
  .btn-lg{ padding: 14px 22px; font-size: 15px; border-radius: 12px; }

  /* Hero — full-bleed */
  .hero{
    position: relative;
    height: clamp(560px, 78vh, 760px);
    overflow: hidden;
    margin-top: -1px;
    background: #0b1220;
  }
  .hero-content{
    position: relative;
    z-index: 5;
    height: 100%;
    display: flex;
    align-items: center;
  }
  .hero-content .container{
    width: min(1180px, 92%);
    max-width: 760px;
    margin: 0 0 0 auto;
    margin-left: max(4vw, calc((100vw - 1180px) / 2));
  }
  @media (max-width: 1240px){
    .hero-content .container{ margin-left: 4vw; }
  }
  .hero-content .eyebrow{
    background: rgba(255,255,255,.12);
    color: white;
    backdrop-filter: blur(8px);
  }
  .hero-content .eyebrow .dot{
    background: #93b4ff;
    box-shadow: 0 0 0 3px rgba(147,180,255,.25);
  }
  .hero-content h1.hero-title{
    color: white;
    text-shadow: 0 2px 30px rgba(0,0,0,.35);
  }
  .hero-content h1.hero-title em{
    color: #93b4ff;
  }
  .hero-content .hero-sub{
    color: rgba(255,255,255,.85);
    text-shadow: 0 1px 10px rgba(0,0,0,.3);
    max-width: 560px;
  }
  .hero-content .btn-ghost{
    color: white;
    border-color: rgba(255,255,255,.45);
    background: rgba(255,255,255,.05);
    backdrop-filter: blur(6px);
  }
  .hero-content .btn-ghost:hover{
    background: rgba(255,255,255,.12);
    border-color: white;
    color: white;
  }
  @media (max-width: 720px){
    .hero{ height: clamp(520px, 90vh, 640px); }
  }

  .eyebrow{
    display:inline-flex; align-items:center; gap: 8px;
    padding: 6px 12px;
    background: var(--brand-tint);
    color: var(--brand-700);
    border-radius: 999px;
    font-size: 12.5px; font-weight: 600;
    letter-spacing: .01em;
  }
  .eyebrow .dot{
    width: 6px; height: 6px; border-radius: 50%; background: var(--brand);
    box-shadow: 0 0 0 3px rgba(37,99,235,.18);
  }

  h1.hero-title{
    font-size: clamp(38px, 5.2vw, 60px);
    line-height: 1.04;
    letter-spacing: -.025em;
    font-weight: 700;
    margin: 18px 0 18px;
    color: var(--ink);
    text-wrap: pretty;
  }
  h1.hero-title em{
    font-style: normal; color: var(--brand);
  }
  .hero-sub{
    font-size: 18px; color: var(--muted);
    max-width: 520px;
    margin: 0 0 28px;
    text-wrap: pretty;
  }

  /* Hero carousel — full-bleed */
  .carousel{
    position: absolute;
    inset: 0;
    overflow: hidden;
    background: #0b1220;
    z-index: 1;
  }
  .carousel-track{ position: absolute; inset: 0; }
  .slide{
    position:absolute; inset:0;
    opacity: 0;
    transition: opacity .9s ease;
    overflow: hidden;
  }
  .slide.is-active{ opacity: 1; z-index: 1; }
  .slide-img{
    position:absolute; inset:-4%;
    background-size: cover;
    background-position: center;
    transform: scale(1.02);
    transition: transform 7s ease-out;
  }
  .slide.is-active .slide-img{ transform: scale(1.10); }
  .slide-overlay{
    position:absolute; inset:0;
    background:
      linear-gradient(90deg, rgba(11,18,32,.78) 0%, rgba(11,18,32,.55) 45%, rgba(11,18,32,.25) 100%),
      linear-gradient(180deg, rgba(11,18,32,.15) 0%, rgba(11,18,32,.4) 100%);
    z-index: 2;
  }
  .carousel-dots{
    position:absolute; left: 0; right: 0; bottom: 24px;
    z-index: 6;
    display:flex; justify-content:center; gap: 6px;
  }
  .carousel-dot{
    width: 22px; height: 4px; border-radius: 2px; border: 0;
    background: rgba(255,255,255,.45);
    cursor: pointer; padding: 0;
    transition: background .2s ease, width .25s ease;
  }
  .carousel-dot.is-active{ background: white; width: 32px; }
  .carousel-dot:hover{ background: rgba(255,255,255,.85); }

  /* Trust strip */
  .trust-strip{
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 22px 0;
    background: var(--white);
  }
  .trust-strip-row{
    display:flex; align-items:center; justify-content: space-between;
    gap: 24px; flex-wrap: wrap;
  }
  .trust-pill{
    display:inline-flex; align-items:center; gap:10px;
    font-size: 13.5px; color: var(--ink-2); font-weight: 600;
  }
  .trust-pill svg{ width: 18px; height:18px; color: var(--brand); }
  .trust-stat{
    font-size: 13.5px; color: var(--muted); font-weight: 500;
  }
  .trust-stat b{ color: var(--ink); font-weight: 700; }

  /* Section base */
  section.bsec{ padding: 96px 0; }
  @media (max-width: 720px){ section.bsec{ padding: 64px 0; } }

  .sec-head{
    text-align:center;
    max-width: 680px; margin: 0 auto 56px;
  }
  .sec-eyebrow{
    text-transform: uppercase; letter-spacing: .14em;
    font-size: 12px; font-weight: 700;
    color: var(--brand);
    display:inline-block; margin-bottom: 14px;
  }
  .sec-head h2{
    font-size: clamp(28px, 3.6vw, 40px);
    line-height: 1.1; letter-spacing: -.02em;
    margin: 0 0 14px; font-weight: 700;
    text-wrap: balance;
  }
  .sec-head p{
    color: var(--muted); font-size: 17px; margin:0;
    text-wrap: pretty;
  }

  /* How it works */
  .steps{
    display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  }
  @media (max-width: 820px){ .steps{ grid-template-columns: 1fr; } }
  .step{
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 32px 28px;
    position: relative;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
  }
  .step:hover{
    border-color: var(--line-strong);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
  }
  .step-num{
    width: 36px; height: 36px; border-radius: 10px;
    background: var(--brand-tint); color: var(--brand);
    display:grid; place-items:center;
    font-weight: 700; font-size: 15px;
    margin-bottom: 18px;
    letter-spacing: -.02em;
  }
  .step h3{
    margin: 0 0 8px;
    font-size: 19px; letter-spacing: -.01em; font-weight: 700;
  }
  .step p{ margin: 0; color: var(--muted); font-size: 15px; }
  .step-arrow{
    position: absolute; right: -14px; top: 50%; transform: translateY(-50%);
    width: 28px; height: 28px;
    background: var(--bg); border: 1px solid var(--line);
    border-radius: 50%;
    display:grid; place-items:center; color: var(--muted);
    z-index: 2;
  }
  .step-arrow svg{ width: 12px; height: 12px; }
  @media (max-width: 820px){ .step-arrow{ display:none; } }

  /* Features */
  .features-sec{ background: linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%); }
  .features{
    display:grid; grid-template-columns: repeat(3, 1fr); gap: 1px;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
  }
  @media (max-width: 820px){ .features{ grid-template-columns: 1fr; } }
  .feature{
    background: var(--white);
    padding: 32px 28px;
  }
  .feature-icon{
    width: 40px; height: 40px; border-radius: 10px;
    background: var(--brand-tint); color: var(--brand);
    display:grid; place-items:center;
    margin-bottom: 18px;
  }
  .feature-icon svg{ width: 20px; height: 20px; }
  .feature h3{
    margin: 0 0 8px; font-size: 17px; font-weight: 700; letter-spacing: -.01em;
  }
  .feature p{ margin:0; color: var(--muted); font-size: 14.5px; }

  /* Testimonials */
  .testimonials{
    display:grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
  }
  @media (max-width: 820px){ .testimonials{ grid-template-columns: 1fr; } }
  .testimonial{
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    padding: 28px;
    display:flex; flex-direction:column;
  }
  .stars{ display:flex; gap: 2px; color: var(--brand); margin-bottom: 14px; }
  .stars svg{ width: 16px; height: 16px; }
  .testimonial blockquote{
    margin: 0 0 22px;
    font-size: 16px; line-height: 1.55;
    color: var(--ink-2);
    text-wrap: pretty;
    flex: 1;
  }
  .testimonial-author{
    display:flex; align-items:center; gap: 12px;
    padding-top: 18px;
    border-top: 1px solid var(--line);
  }
  .avatar{
    width: 40px; height: 40px; border-radius: 50%;
    background: linear-gradient(135deg, #d6def0, #bccbe6);
    color: var(--brand-700);
    display:grid; place-items:center;
    font-weight: 700; font-size: 14px;
    flex-shrink: 0;
  }
  .testimonial-author .name{ font-weight: 600; font-size: 14.5px; color: var(--ink); }
  .testimonial-author .meta{ font-size: 12.5px; color: var(--muted); }

  /* FAQ */
  .faq-sec{ background: var(--bg); }
  .faq-wrap{ max-width: 760px; margin: 0 auto; }
  .faq-item{
    border-bottom: 1px solid var(--line);
  }
  .faq-q{
    width: 100%; background: transparent; border: 0;
    padding: 22px 0; cursor: pointer;
    display:flex; align-items:center; justify-content: space-between;
    font: inherit; font-weight: 600; font-size: 17px; letter-spacing: -.01em;
    color: var(--ink); text-align: left;
    gap: 24px;
  }
  .faq-q:hover{ color: var(--brand); }
  .faq-icon{
    width: 24px; height: 24px; border-radius: 50%;
    border: 1px solid var(--line-strong);
    display:grid; place-items:center;
    color: var(--muted);
    flex-shrink: 0;
    transition: transform .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
  }
  .faq-item.open .faq-icon{
    transform: rotate(45deg);
    background: var(--brand);
    border-color: var(--brand);
    color: white;
  }
  .faq-icon svg{ width: 12px; height: 12px; }
  .faq-a{
    overflow: hidden;
    max-height: 0;
    transition: max-height .35s ease, padding .25s ease;
  }
  .faq-item.open .faq-a{
    max-height: 400px;
    padding: 0 0 24px;
  }
  .faq-a p{
    margin:0; color: var(--muted); font-size: 15.5px; max-width: 640px;
    line-height: 1.6;
  }

  /* Final CTA */
  .cta-sec{
    padding: 96px 0;
  }
  .cta-card{
    background: linear-gradient(160deg, var(--brand-tint) 0%, var(--white) 100%);
    color: var(--ink);
    border-radius: 24px;
    padding: 64px 56px;
    text-align: center;
    border: 1px solid var(--brand-tint-strong);
    box-shadow: var(--shadow-md);
    position: relative;
    overflow: hidden;
  }
  .cta-card::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(60% 80% at 50% 0%, rgba(37,99,235,.06), transparent 70%);
    pointer-events:none;
  }
  .cta-card h2{
    font-size: clamp(28px, 3.6vw, 40px);
    line-height: 1.1; letter-spacing: -.02em;
    margin: 0 0 14px; font-weight: 700;
    text-wrap: balance;
    position: relative;
  }
  .cta-card p{
    color: var(--muted); font-size: 17px; margin: 0 auto 28px;
    max-width: 520px;
    position: relative;
  }
  .cta-card .btn{ position: relative; }

  /* Footer */
  footer{
    border-top: 1px solid var(--line);
    padding: 48px 0 40px;
    background: var(--white);
  }
  .foot-grid{
    display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px;
    margin-bottom: 40px;
  }
  @media (max-width: 820px){
    .foot-grid{ grid-template-columns: 1fr 1fr; gap: 32px; }
  }
  .foot-brand p{
    margin: 14px 0 0; color: var(--muted); font-size: 14px; max-width: 320px;
  }
  .foot-col h4{
    font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: var(--ink); margin: 0 0 14px;
  }
  .foot-col a{
    display:block; color: var(--muted); text-decoration:none; font-size: 14px;
    margin-bottom: 10px; transition: color .15s ease;
  }
  .foot-col a:hover{ color: var(--ink); }
  .foot-bot{
    border-top: 1px solid var(--line);
    padding-top: 24px;
    display:flex; justify-content: space-between; align-items:center;
    gap: 16px; flex-wrap: wrap;
    color: var(--muted-2); font-size: 12.5px;
  }
