    :root {
      --brand-indigo: #6366F1;
      --brand-blue: #3B82F6;
      --brand-green: #10B981;
      /* tom de indigo para texto/ícone sobre fundo claro (contraste AA) */
      --brand-indigo-ink: #4F46E5;
      --brand-green-ink: #047857;
      --danger-ink: #DC2626;
      --warn-ink: #B45309;

      /* Superfícies — o site é claro; o ritmo vem de branco -> tinta suave */
      --canvas: #FFFFFF;
      --canvas-soft: #F7F9FE;
      --canvas-tint: #EFF3FC;
      --canvas-tint-2: #E9EEFA;
      --panel: #FFFFFF;

      /* Tinta */
      --ink-1: #0F172A;
      --ink-2: #334155;
      --ink-3: #64748B;
      --ink-4: #94A3B8;

      /* Linhas e sombras */
      --line: #E3E9F6;
      --line-soft: #EDF1FA;
      --shadow-sm: 0 1px 2px rgba(15,23,42,0.04), 0 4px 14px rgba(15,23,42,0.05);
      --shadow-md: 0 2px 6px rgba(15,23,42,0.04), 0 14px 34px rgba(15,23,42,0.07);
      --shadow-lg: 0 30px 70px rgba(15,23,42,0.10);

      --grad-primary: linear-gradient(135deg, #6366F1 0%, #3B82F6 100%);
      --grad-green: linear-gradient(135deg, #10B981 0%, #059669 100%);
      --grad-mesh: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(99,102,241,0.14) 0%, transparent 62%),
                   radial-gradient(ellipse 55% 45% at 82% 62%, rgba(59,130,246,0.11) 0%, transparent 55%);
      /* Peças que não são superfície nem tinta, mas mudam com o tema */
      --nav-bg: rgba(255,255,255,0.86);
      --grid-line: rgba(15,23,42,0.028);
      --promo-bg: linear-gradient(135deg, #FFF8EF 0%, #FEF3F2 52%, #FFF7ED 100%);
      --promo-line: #FCE4CF;
      --promo-panel-line: #FBDCC4;
      --promo-cell-bg: linear-gradient(180deg, #FFF8EF 0%, #FEF3E7 100%);
      --promo-cell-ink: #9A3412;
      --promo-cell-lbl: #B45309;

      --transition: 0.25s cubic-bezier(.4,0,.2,1);
      --promo-topbar-h: 36px;
    }

    /* ===== TEMA ESCURO =====
       O tema aplicado fica em data-theme no <html> (script inline no <head>):
       segue o sistema por padrão e respeita a escolha manual quando existe. */
    :root[data-theme="dark"] {
      --brand-indigo-ink: #A5B4FC;
      --brand-green-ink: #6EE7B7;
      --danger-ink: #F87171;
      --warn-ink: #FCD34D;

      --canvas: #070C18;
      --canvas-soft: #0B1120;
      --canvas-tint: #0D1426;
      --canvas-tint-2: #111A2E;
      --panel: #161D30;

      --ink-1: #F8FAFC;
      --ink-2: #CBD5E1;
      --ink-3: #94A3B8;
      --ink-4: #6B7A93;

      --line: #1F2A44;
      --line-soft: #18213A;
      --shadow-sm: 0 1px 2px rgba(0,0,0,0.3), 0 4px 14px rgba(0,0,0,0.25);
      --shadow-md: 0 2px 6px rgba(0,0,0,0.3), 0 14px 34px rgba(0,0,0,0.35);
      --shadow-lg: 0 30px 70px rgba(0,0,0,0.5);

      --grad-mesh: radial-gradient(ellipse 80% 60% at 50% -10%, rgba(99,102,241,0.28) 0%, transparent 60%),
                   radial-gradient(ellipse 50% 40% at 80% 60%, rgba(59,130,246,0.15) 0%, transparent 50%);

      --nav-bg: rgba(7,12,24,0.88);
      --grid-line: rgba(255,255,255,0.03);
      --promo-bg: linear-gradient(135deg, #1B1206 0%, #1B1014 52%, #150E06 100%);
      --promo-line: rgba(245,158,11,0.22);
      --promo-panel-line: rgba(245,158,11,0.26);
      --promo-cell-bg: linear-gradient(180deg, rgba(245,158,11,0.12) 0%, rgba(245,158,11,0.05) 100%);
      --promo-cell-ink: #FCD34D;
      --promo-cell-lbl: #FBBF24;

      color-scheme: dark;
    }
    @media (max-width: 768px) { :root { --promo-topbar-h: 32px; } }
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { scroll-behavior: smooth; scroll-padding-top: calc(60px + var(--promo-topbar-h)); }
    body { font-family: 'Plus Jakarta Sans', sans-serif; background: var(--canvas); color: var(--ink-2); overflow-x: hidden; }
    a { color: inherit; text-decoration: none; }

    /* Shim do .container do Bootstrap (que foi removido): reproduz os mesmos max-widths
       responsivos do Bootstrap 5, para as seções que usam .container manterem a largura. */
    .container { width: 100%; padding-right: 12px; padding-left: 12px; margin-right: auto; margin-left: auto; }
    @media (min-width: 576px)  { .container { max-width: 540px; } }
    @media (min-width: 768px)  { .container { max-width: 720px; } }
    @media (min-width: 992px)  { .container { max-width: 960px; } }
    @media (min-width: 1200px) { .container { max-width: 1140px; } }
    @media (min-width: 1400px) { .container { max-width: 1320px; } }
    /* .me-2 (margem à direita de ícones): única outra classe Bootstrap que usávamos. */
    .me-2 { margin-inline-end: 0.5rem !important; }

    .grad-text { background: var(--grad-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .section-label {
      display: inline-flex; align-items: center; gap: 8px;
      background: rgba(99,102,241,0.1); border: 1px solid rgba(99,102,241,0.25);
      color: var(--brand-indigo-ink); border-radius: 50px; padding: 6px 16px;
      font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 20px;
    }
    .section-title { font-size: clamp(1.9rem, 4vw, 2.75rem); font-weight: 800; line-height: 1.15; letter-spacing: -0.03em; color: var(--ink-1); margin-bottom: 16px; }
    .section-sub { font-size: 1.05rem; color: var(--ink-3); line-height: 1.7; max-width: 560px; margin: 0 auto; }
    .section-head { text-align: center; margin-bottom: 60px; }

    /* PROMO TOPBAR (fina, fixa acima do navbar) */
    .promo-topbar {
      position: fixed; top: 0; left: 0; right: 0; z-index: 1001;
      display: block; color: #fff; height: var(--promo-topbar-h);
      background: linear-gradient(90deg, #312E81 0%, #4338CA 52%, #312E81 100%);
      border-bottom: 1px solid var(--line);
      overflow: hidden;
    }
    .promo-topbar::before {
      content: ''; position: absolute; inset: 0; pointer-events: none;
      background:
        radial-gradient(circle at 0% 50%, rgba(245,158,11,0.28) 0%, transparent 40%),
        radial-gradient(circle at 100% 50%, rgba(239,68,68,0.24) 0%, transparent 45%);
    }
    .ptb-inner {
      position: relative; z-index: 1; max-width: 1200px; margin: 0 auto;
      display: flex; align-items: center; justify-content: center;
      gap: 14px; padding: 0 16px; height: 100%;
      white-space: nowrap; overflow: hidden;
    }
    .ptb-flag {
      display: inline-flex; align-items: center; gap: 7px;
      font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase;
      font-size: 0.7rem; color: #FCD34D;
    }
    .ptb-pulse {
      width: 6px; height: 6px; border-radius: 50%; background: #FCD34D;
      box-shadow: 0 0 0 0 rgba(252,211,77,0.7); animation: ptbPulse 1.6s infinite;
    }
    @keyframes ptbPulse {
      0% { box-shadow: 0 0 0 0 rgba(252,211,77,0.7); }
      70% { box-shadow: 0 0 0 6px rgba(252,211,77,0); }
      100% { box-shadow: 0 0 0 0 rgba(252,211,77,0); }
    }
    .ptb-msg { color: rgba(255,255,255,0.88); font-weight: 600; font-size: 0.78rem; }
    .ptb-msg b { color: #fff; font-weight: 800; }
    .ptb-timer {
      font-weight: 700; letter-spacing: 0.02em; color: #fff;
      font-variant-numeric: tabular-nums; font-size: 0.78rem;
      background: rgba(255,255,255,0.12);
      padding: 3px 11px; border-radius: 50px;
      border: 1px solid rgba(255,255,255,0.18);
    }
    .ptb-timer span { color: #FBBF24; font-weight: 800; }
    .ptb-cta {
      display: inline-flex; align-items: center; gap: 5px;
      font-weight: 800; color: #fff; font-size: 0.75rem; letter-spacing: 0.01em;
      padding: 4px 12px; border-radius: 50px;
      background: linear-gradient(135deg, #F59E0B 0%, #EF4444 100%);
      box-shadow: 0 4px 14px rgba(239,68,68,0.4);
      transition: transform 0.2s, box-shadow 0.2s;
    }
    .promo-topbar:hover { color: #fff; }
    .promo-topbar:hover .ptb-cta { transform: translateX(2px); box-shadow: 0 6px 18px rgba(239,68,68,0.55); }
    .ptb-progress {
      position: absolute; bottom: 0; left: 0; height: 2px;
      background: linear-gradient(90deg, #FBBF24, #F97316, #EF4444);
      box-shadow: 0 0 8px rgba(239,68,68,0.55);
      width: 0%; transition: width 1s linear; z-index: 2;
    }
    .ptb-flame {
      position: absolute; bottom: 0; left: 0%;
      transform: translate(-50%, 0); transform-origin: 50% 100%;
      font-size: 10px; line-height: 1; color: #FBBF24; z-index: 3;
      text-shadow: 0 0 6px rgba(245,158,11,0.95), 0 0 12px rgba(239,68,68,0.55);
      pointer-events: none; transition: left 1s linear;
      animation: ptbFlameFlicker 0.45s ease-in-out infinite alternate;
    }
    @keyframes ptbFlameFlicker {
      0%   { transform: translate(-50%, 0) scale(1) rotate(-3deg); opacity: 0.92; }
      100% { transform: translate(-50%, -1px) scale(1.18) rotate(3deg); opacity: 1; }
    }
    @media (max-width: 768px) {
      .ptb-flag-text, .ptb-msg-full { display: none; }
      .ptb-inner { gap: 10px; padding: 0 12px; }
      .ptb-msg { font-size: 0.72rem; }
      .ptb-timer { font-size: 0.72rem; padding: 2px 9px; }
      .ptb-cta { font-size: 0.7rem; padding: 3px 10px; }
    }
    @media (max-width: 420px) {
      .ptb-msg { display: none; }
      .ptb-inner { gap: 8px; }
    }

    /* NAVBAR */
    #mainNav {
      position: fixed; top: var(--promo-topbar-h); left: 0; right: 0; z-index: 1000;
      background: var(--nav-bg); backdrop-filter: blur(18px) saturate(160%); -webkit-backdrop-filter: blur(18px) saturate(160%);
      box-shadow: 0 1px 0 var(--line), 0 6px 24px rgba(15,23,42,0.04);
    }
    #mainNav .nav-inner {
      display: flex; align-items: center; justify-content: space-between;
      max-width: 1420px; margin: 0 auto; padding: 14px 24px; transition: padding var(--transition);
    }
    .nav-logo { display: flex; align-items: center; gap: 10px; }
    .nav-logo img { height: 36px; width: auto; }
    .nav-logo-text { font-size: 1.25rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.03em; white-space: nowrap; }
    .nav-logo { flex-shrink: 0; }
    .nav-logo-text span { background: var(--grad-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .nav-links { display: flex; align-items: center; gap: 2px; list-style: none; }
    .nav-links a {
      display: flex; align-items: center; gap: 6px; padding: 7px 12px; white-space: nowrap;
      border-radius: 8px; font-size: 0.85rem; font-weight: 600; color: var(--ink-3);
      transition: color var(--transition), background var(--transition);
    }
    .nav-links a:hover, .nav-links a.active { color: var(--brand-indigo-ink); background: rgba(99,102,241,0.09); }
    .nav-actions { display: flex; align-items: center; gap: 10px; }
    .btn-nav-ghost {
      display: inline-flex; align-items: center; gap: 7px; padding: 8px 16px; white-space: nowrap;
      border-radius: 50px; font-size: 0.85rem; font-weight: 600; color: var(--ink-2);
      border: 1px solid var(--line); transition: all var(--transition);
    }
    .btn-nav-ghost:hover { background: rgba(99,102,241,0.08); color: var(--brand-indigo-ink); border-color: rgba(99,102,241,0.35); }
    .btn-nav-primary {
      display: inline-flex; align-items: center; gap: 7px; padding: 8px 18px; white-space: nowrap;
      border-radius: 50px; font-size: 0.85rem; font-weight: 700; color: #fff;
      background: var(--grad-green); box-shadow: 0 4px 16px rgba(16,185,129,0.3); transition: all var(--transition);
    }
    .btn-nav-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(16,185,129,0.4); color: #fff; }
    /* Alternador de tema — segue o sistema até o visitante escolher */
    .btn-theme {
      display: inline-flex; align-items: center; justify-content: center;
      width: 36px; height: 36px; flex-shrink: 0; margin-left: 4px; padding: 0;
      border-radius: 50%; border: 1px solid var(--line); background: var(--panel);
      color: var(--ink-3); font-size: 0.86rem; cursor: pointer; font-family: inherit;
      transition: all var(--transition);
    }
    .btn-theme:hover { color: var(--brand-indigo-ink); border-color: rgba(99,102,241,0.4); transform: translateY(-1px); }
    .btn-theme:focus-visible { outline: 2px solid var(--brand-indigo); outline-offset: 2px; }
    /* Suporte: mesmo botão redondo do tema, logo antes dele; o selo vermelho
       (resposta nova da equipe) vem do suporte-widget.js. */
    .btn-suporte { position: relative; margin-left: 10px; --fsup-badge-ring: var(--panel); }
    .btn-suporte + .btn-theme { margin-left: 6px; }
    /* O menu completo (9 links + Acessar + Teste Grátis + suporte + tema) mede
       ~1400px; numa caixa de 1200 ele estourava até ~1600px de tela e o botão
       de tema já ficava fora da tela. Até 1600 ele fica compacto; em 1360 ou
       menos vira o hambúrguer (media logo abaixo). */
    @media (max-width: 1600px) {
      .nav-links a { padding: 7px 9px; font-size: 0.82rem; }
      .nav-actions { gap: 8px; }
      .btn-nav-ghost { padding: 8px 14px; }
      .btn-nav-primary { padding: 8px 15px; }
    }
    .nav-toggler {
      display: none; background: none; border: 1px solid var(--line);
      border-radius: 8px; padding: 8px; cursor: pointer;
    }
    .nav-toggler span { display: block; width: 20px; height: 2px; background: var(--ink-2); margin: 4px 0; border-radius: 2px; }
    /* CTA verde persistente no header — só aparece no mobile (ao lado do menu) */
    .nav-cta-mobile { display: none; }
    @media (max-width: 1360px) {
      .nav-links, .nav-actions { display: none; }
      .nav-toggler { display: block; margin-left: 10px; }
      /* suporte + tema + botão verde sempre visíveis, empurrados para a direita do hambúrguer */
      .btn-theme { margin-left: auto; }
      .btn-suporte { margin-left: auto; }
      .nav-cta-mobile { display: inline-flex; margin-left: 8px; padding: 8px 15px; font-size: 0.8rem; }
      /* evita CTA verde duplicado quando o menu abre (mantém só "Acessar" no dropdown) */
      .nav-mobile-open .nav-actions .btn-nav-primary { display: none; }
      /* header (logo + CTA + hambúrguer) fica na 1ª linha; links/ações abrem abaixo */
      .nav-links { order: 5; }
      .nav-actions { order: 6; }
      .nav-mobile-open .nav-links, .nav-mobile-open .nav-actions {
        display: flex; flex-direction: column; align-items: flex-start; gap: 4px; width: 100%;
      }
      .nav-mobile-open .nav-actions { flex-direction: row; padding: 12px 0; border-top: 1px solid var(--line); margin-top: 8px; }
      #mainNav .nav-inner { flex-wrap: wrap; padding: 14px 20px; }
    }
    @media (max-width: 380px) {
      .nav-cta-mobile { padding: 7px 12px; font-size: 0.74rem; }
      .nav-logo-text { font-size: 1.1rem; }
    }
    /* Celular: logo + suporte + tema + Começar + hambúrguer numa linha só.
       Com o botão de suporte a fila passava 46px da largura e o hambúrguer
       caía para a segunda linha em 320–390px. */
    @media (max-width: 440px) {
      #mainNav .nav-inner { padding: 12px 14px; }
      .nav-logo { gap: 7px; }
      .nav-logo img { height: 30px; }
      .nav-logo-text { font-size: 1.05rem; }
      .btn-theme { width: 34px; height: 34px; }
      .btn-suporte + .btn-theme { margin-left: 4px; }
      .nav-cta-mobile { margin-left: 6px; padding: 7px 11px; font-size: 0.75rem; }
      .nav-toggler { margin-left: 6px; padding: 6px; }
    }
    /* 320–350px (SE, Fold dobrado): não cabe o texto da marca; fica o ícone. */
    @media (max-width: 350px) {
      .nav-logo-text { display: none; }
    }

    /* HERO */
    .hero {
      min-height: 100vh; background: var(--canvas-tint); background-image: var(--grad-mesh);
      display: flex; align-items: center;
      padding: calc(110px + var(--promo-topbar-h)) 24px 80px;
      position: relative; overflow: hidden;
    }
    .hero-nebula {
      position: absolute; border-radius: 50%; filter: blur(100px); pointer-events: none; z-index: 0;
    }
    .hn1 {
      width: 600px; height: 600px;
      background: radial-gradient(circle, rgba(99,102,241,0.18), transparent);
      top: -15%; left: -8%; animation: heroDrift1 14s ease-in-out infinite;
    }
    .hn2 {
      width: 450px; height: 450px;
      background: radial-gradient(circle, rgba(59,130,246,0.13), transparent);
      bottom: -8%; right: -6%; animation: heroDrift2 16s ease-in-out infinite;
    }
    .hn3 {
      width: 350px; height: 350px;
      background: radial-gradient(circle, rgba(139,92,246,0.12), transparent);
      top: 35%; right: 15%; animation: heroDrift3 18s ease-in-out infinite;
    }
    @keyframes heroDrift1 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(50px,35px); } }
    @keyframes heroDrift2 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(-35px,-45px); } }
    @keyframes heroDrift3 { 0%,100% { transform: translate(0,0); } 50% { transform: translate(-25px,30px); } }
    .hero-inner {
      max-width: 1200px; margin: 0 auto;
      display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; position: relative; z-index: 1;
    }
    @media (max-width: 900px) {
      .hero { min-height: auto; padding-top: calc(84px + var(--promo-topbar-h)); padding-bottom: 56px; align-items: flex-start; }
      .hero-inner { grid-template-columns: minmax(0, 1fr); gap: 40px; text-align: center; }
      .hero-badges, .hero-ctas { justify-content: center; }
      .hero-visual { max-width: 100%; margin-top: 8px; }
      .hero-dashboard { max-width: 100%; }
      .hero-float.f1 { top: -14px; right: 6px; }
      .hero-float.f2 { bottom: 16px; left: 6px; }
    }
    @media (max-width: 560px) {
      .hero-inner > div { min-width: 0; }
      .hero-eyebrow { font-size: 0.66rem; letter-spacing: 0.03em; padding: 6px 12px; white-space: normal; max-width: 100%; line-height: 1.35; }
      .hero-sub { font-size: 1rem; margin-left: auto; margin-right: auto; }
      .hero-float { transform: scale(0.9); }
      .hero-float.f1 { right: 0; }
      .hero-float.f2 { left: 0; }
    }
    .hero-eyebrow {
      display: inline-flex; align-items: center; gap: 8px;
      background: rgba(99,102,241,0.09); border: 1px solid rgba(99,102,241,0.22); color: var(--brand-indigo-ink);
      border-radius: 50px; padding: 6px 16px; font-size: 0.8rem; font-weight: 700;
      letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 22px;
    }
    .hero h1 {
      font-size: clamp(2.4rem, 5vw, 3.8rem); font-weight: 800; line-height: 1.1;
      letter-spacing: -0.04em; color: var(--ink-1); margin-bottom: 10px;
    }
    .hero h1 .typed-wrapper { display: block; min-height: 2.4em; }
    .hero h1 .typed-element { background: var(--grad-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    @media (max-width: 380px) {
      .hero h1 .typed-wrapper { min-height: 3.6em; }
    }
    .hero-sub { font-size: 1.08rem; color: var(--ink-3); line-height: 1.75; margin-bottom: 34px; max-width: 500px; }
    .hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 44px; }
    .btn-hero-primary {
      display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px;
      border-radius: 50px; font-size: 1rem; font-weight: 700; color: #fff;
      background: var(--grad-green); box-shadow: 0 6px 24px rgba(16,185,129,0.35); transition: all var(--transition);
    }
    .btn-hero-primary:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(16,185,129,0.45); color: #fff; }
    .btn-hero-secondary {
      display: inline-flex; align-items: center; gap: 10px; padding: 15px 30px;
      border-radius: 50px; font-size: 1rem; font-weight: 700; color: var(--ink-2);
      background: var(--panel); border: 1.5px solid var(--line); box-shadow: var(--shadow-sm); transition: all var(--transition);
    }
    .btn-hero-secondary:hover { background: var(--panel); border-color: rgba(99,102,241,0.4); color: var(--brand-indigo-ink); transform: translateY(-2px); box-shadow: var(--shadow-md); }
    .hero-badges { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; }
    .hero-badge { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; font-weight: 600; color: var(--ink-3); }
    .hero-badge i { color: var(--brand-green); }

    /* Hero visual / dashboard */
    .hero-visual { position: relative; }
    .hero-dashboard {
      background: var(--panel); border-radius: 20px;
      border: 1px solid var(--line);
      box-shadow: 0 30px 70px rgba(15,23,42,0.10), 0 0 60px rgba(99,102,241,0.10);
      overflow: hidden;
    }
    .dashboard-topbar {
      display: flex; align-items: center; gap: 8px; padding: 13px 18px;
      background: rgba(99,102,241,0.03); border-bottom: 1px solid var(--line);
    }
    .dot { width: 10px; height: 10px; border-radius: 50%; }
    .dot-red { background: #FF5F57; } .dot-yellow { background: #FEBC2E; } .dot-green { background: #28C840; }
    .dashboard-bar-title { margin-left: 8px; font-size: 0.72rem; color: var(--ink-4); font-weight: 500; }
    .dashboard-body { padding: 22px; }
    .dash-stats-row { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 18px; }
    .dash-stat { background: rgba(99,102,241,0.036); border: 1px solid var(--line); border-radius: 11px; padding: 12px; text-align: center; }
    .dash-stat .val { font-size: 1.2rem; font-weight: 800; color: var(--ink-1); display: block; }
    .dash-stat .lbl { font-size: 0.65rem; color: var(--ink-4); font-weight: 500; margin-top: 2px; }
    .dash-stat .chg { font-size: 0.68rem; font-weight: 700; color: var(--brand-green); }
    .dash-chart { background: rgba(99,102,241,0.03); border: 1px solid var(--line); border-radius: 11px; padding: 14px; margin-bottom: 14px; }
    .dash-chart-title { font-size: 0.7rem; font-weight: 700; color: var(--ink-4); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.05em; }
    .chart-bars { display: flex; align-items: flex-end; gap: 5px; height: 54px; }
    .chart-bar { flex: 1; border-radius: 3px 3px 0 0; background: rgba(99,102,241,0.25); }
    .chart-bar.hi { background: var(--grad-primary); }
    .dash-ints { display: flex; gap: 7px; flex-wrap: wrap; }
    .dash-int { display: flex; align-items: center; gap: 5px; background: rgba(99,102,241,0.045); border: 1px solid var(--line); border-radius: 7px; padding: 6px 10px; font-size: 0.7rem; font-weight: 600; color: var(--ink-3); }
    .ic-g { color: #10B981; } .ic-o { color: #F59E0B; } .ic-b { color: #3B82F6; }

    .hero-float {
      position: absolute; background: var(--panel); border: 1px solid var(--line);
      border-radius: 12px; padding: 10px 14px; display: flex; align-items: center; gap: 10px;
      box-shadow: var(--shadow-md); animation: floatY 4s ease-in-out infinite;
    }
    .hero-float.f1 { top: -18px; right: -10px; animation-delay: 0s; }
    .hero-float.f2 { bottom: -16px; left: -22px; animation-delay: 1.8s; }
    .hero-float .fv { font-size: 1rem; font-weight: 800; color: var(--ink-1); }
    .hero-float .fl { font-size: 0.65rem; color: var(--ink-4); font-weight: 500; }
    .fb-ico { width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; }
    .fb-g { background: rgba(16,185,129,0.15); color: #10B981; } .fb-b { background: rgba(59,130,246,0.15); color: #3B82F6; }
    @keyframes floatY { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-10px)} }

    /* PARCEIRO OFICIAL DOS MARKETPLACES */
    .partners { background: var(--canvas); padding: 72px 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .partners-inner { max-width: 1100px; margin: 0 auto; text-align: center; }
    .partners-inner h2 {
      font-size: clamp(1.45rem, 3vw, 2rem); font-weight: 800; letter-spacing: -0.03em;
      color: var(--ink-1); line-height: 1.2; margin-bottom: 10px;
    }
    .partners-inner > p { font-size: 0.98rem; color: var(--ink-3); line-height: 1.65; max-width: 560px; margin: 0 auto 40px; }
    .partners-grid {
      /* 3 colunas porque são SEIS marketplaces: duas fileiras cheias. Com 4 colunas
         os dois últimos sobravam numa segunda fileira pela metade. */
      display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; text-align: left;
    }
    @media (max-width: 1040px) { .partners-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 860px) { .partners-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 460px) { .partners-grid { grid-template-columns: 1fr; } }
    .partner-card {
      display: flex; flex-direction: column; align-items: center; gap: 16px;
      background: var(--panel); border: 1px solid var(--line); border-radius: 18px;
      padding: 26px 20px 20px; box-shadow: var(--shadow-sm); transition: all var(--transition);
    }
    .partner-card:hover { transform: translateY(-4px); border-color: rgba(99,102,241,0.32); box-shadow: 0 18px 44px rgba(99,102,241,0.13); }
    /* caixa de altura fixa: normaliza logotipos de proporções diferentes */
    .partner-logo { height: 40px; width: 100%; display: flex; align-items: center; justify-content: center; }
    .partner-logo img { max-height: 34px; max-width: min(158px, 100%); width: auto; height: auto; display: block; }
    /* Os logotipos oficiais são escuros: no tema escuro eles ganham a placa branca
       (é assim que as marcas pedem para serem aplicadas sobre fundo escuro). */
    :root[data-theme="dark"] .partner-logo {
      height: auto; padding: 10px 14px; border-radius: 12px; background: #fff;
      box-shadow: inset 0 0 0 1px rgba(15,23,42,0.06);
    }
    :root[data-theme="dark"] .partner-lockup span { color: #161823; }
    /* TikTok Shop: a marca oficial é a nota + o nome ao lado */
    .partner-lockup { display: inline-flex; align-items: center; gap: 9px; }
    .partner-lockup img { max-height: 30px; }
    .partner-lockup span { font-size: 1.02rem; font-weight: 800; letter-spacing: -0.03em; color: #161823; white-space: nowrap; }
    .partner-seal {
      display: inline-flex; align-items: center; gap: 7px; padding: 6px 13px; border-radius: 50px;
      background: rgba(99,102,241,0.08); border: 1px solid rgba(99,102,241,0.22);
      font-size: 0.72rem; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase;
      color: var(--brand-indigo-ink); white-space: nowrap;
    }
    .partner-seal i { font-size: 0.78rem; }
    .partners-note { margin-top: 26px; font-size: 0.84rem; color: var(--ink-4); }
    .partners-note i { color: var(--brand-indigo-ink); margin-right: 6px; }

    /* PROMO BANNER */
    .promo-banner {
      position: relative; overflow: hidden; padding: 64px 24px;
      background: var(--promo-bg);
      border-top: 1px solid var(--promo-line);
      border-bottom: 1px solid var(--promo-line);
    }
    .promo-banner::before {
      content: ''; position: absolute; inset: 0; pointer-events: none;
      background:
        radial-gradient(circle at 15% 30%, rgba(245,158,11,0.14) 0%, transparent 45%),
        radial-gradient(circle at 85% 70%, rgba(239,68,68,0.10) 0%, transparent 50%),
        radial-gradient(circle at 50% 100%, rgba(99,102,241,0.07) 0%, transparent 60%);
    }
    .promo-banner::after {
      content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px;
      background: linear-gradient(90deg, transparent, #F59E0B, #EF4444, #F59E0B, transparent);
      background-size: 200% 100%; animation: promoStripe 3s linear infinite;
    }
    @keyframes promoStripe { 0%{background-position:200% 0} 100%{background-position:-200% 0} }
    .promo-inner {
      max-width: 1100px; margin: 0 auto; position: relative; z-index: 1;
      display: grid; grid-template-columns: 1fr auto; gap: 48px; align-items: center;
    }
    @media (max-width: 900px) { .promo-inner { grid-template-columns: 1fr; gap: 32px; text-align: center; } }
    .promo-flag {
      display: inline-flex; align-items: center; gap: 8px;
      background: linear-gradient(135deg, #F59E0B 0%, #EF4444 100%);
      color: #fff; font-size: 0.78rem; font-weight: 800; letter-spacing: 0.08em;
      text-transform: uppercase; padding: 7px 16px; border-radius: 50px;
      box-shadow: 0 6px 22px rgba(239,68,68,0.35); margin-bottom: 16px;
    }
    .promo-pulse {
      width: 8px; height: 8px; border-radius: 50%; background: #fff;
      box-shadow: 0 0 0 0 rgba(255,255,255,0.7); animation: promoPulse 1.6s infinite;
    }
    @keyframes promoPulse {
      0% { box-shadow: 0 0 0 0 rgba(255,255,255,0.7); }
      70% { box-shadow: 0 0 0 8px rgba(255,255,255,0); }
      100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
    }
    .promo-headline {
      font-size: clamp(1.6rem, 3.8vw, 2.6rem); font-weight: 800; line-height: 1.08;
      letter-spacing: -0.03em; color: var(--ink-1); margin-bottom: 14px;
    }
    .promo-headline-top { display: block; font-size: 0.55em; font-weight: 600; color: var(--ink-3); letter-spacing: 0; margin-bottom: 6px; }
    .promo-headline-num {
      display: inline-block;
      background: linear-gradient(135deg, #FBBF24 0%, #F97316 50%, #EF4444 100%);
      -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
      filter: drop-shadow(0 6px 16px rgba(245,158,11,0.22));
    }
    .promo-sub { font-size: 0.95rem; color: var(--ink-3); line-height: 1.65; max-width: 540px; margin-bottom: 20px; }
    @media (max-width: 900px) { .promo-sub { margin-left: auto; margin-right: auto; } }
    .promo-trust { display: flex; flex-wrap: wrap; gap: 10px 22px; }
    @media (max-width: 900px) { .promo-trust { justify-content: center; } }
    .promo-trust span { display: inline-flex; align-items: center; gap: 7px; font-size: 0.8rem; color: var(--ink-2); font-weight: 600; }
    .promo-trust i { color: var(--brand-green-ink); font-size: 0.72rem; }
    .promo-right {
      display: flex; flex-direction: column; gap: 16px;
      background: var(--panel); border: 1px solid var(--promo-panel-line);
      border-radius: 22px; padding: 24px; min-width: 340px;
      box-shadow: 0 24px 60px rgba(180,83,9,0.12);
    }
    .promo-deadline { text-align: center; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); }
    .promo-countdown { display: flex; align-items: stretch; justify-content: center; gap: 6px; }
    .promo-cell {
      flex: 1; min-width: 60px; padding: 12px 6px; text-align: center;
      background: var(--promo-cell-bg);
      border: 1px solid var(--promo-panel-line); border-radius: 12px;
    }
    .promo-cell-val {
      font-size: 1.7rem; font-weight: 800; color: var(--promo-cell-ink); letter-spacing: -0.04em;
      font-variant-numeric: tabular-nums; line-height: 1;
    }
    .promo-cell-lbl {
      font-size: 0.62rem; color: var(--promo-cell-lbl);
      text-transform: uppercase; letter-spacing: 0.08em; margin-top: 6px; font-weight: 700;
    }
    .promo-sep { font-size: 1.4rem; font-weight: 800; color: #FBBF24; align-self: center; line-height: 1; }
    .promo-cta {
      display: inline-flex; align-items: center; justify-content: center; gap: 10px;
      padding: 15px 22px; border-radius: 14px; font-size: 0.95rem; font-weight: 800; color: #fff;
      background: linear-gradient(135deg, #F59E0B 0%, #EF4444 100%);
      box-shadow: 0 8px 24px rgba(239,68,68,0.4);
      transition: all var(--transition);
    }
    .promo-cta:hover { transform: translateY(-3px); color: #fff; box-shadow: 0 14px 34px rgba(239,68,68,0.55); }
    .promo-tiny { text-align: center; font-size: 0.74rem; color: var(--ink-4); font-weight: 600; }
    @media (max-width: 480px) {
      .promo-right { min-width: 0; padding: 18px; }
      .promo-cell { padding: 10px 4px; min-width: 0; }
      .promo-cell-val { font-size: 1.35rem; }
      .promo-sep { display: none; }
      .promo-countdown { gap: 8px; }
    }

    /* FEATURES */
    .features-section { padding: 96px 24px; background: var(--canvas); }
    .features-grid { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 22px; }
    .feature-card {
      background: var(--canvas-soft); border: 1px solid var(--line); border-radius: 20px; padding: 30px 26px;
      transition: all var(--transition); position: relative; overflow: hidden;
    }
    .feature-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-primary); opacity: 0; transition: opacity var(--transition); }
    .feature-card:hover { transform: translateY(-6px); border-color: rgba(99,102,241,0.3); box-shadow: 0 20px 50px rgba(99,102,241,0.11); }
    .feature-card:hover::before { opacity: 1; }
    .feature-icon {
      width: 50px; height: 50px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
      font-size: 1.25rem; margin-bottom: 18px;
      background: linear-gradient(135deg,rgba(99,102,241,0.1),rgba(59,130,246,0.1)); color: var(--brand-indigo);
      transition: all var(--transition);
    }
    .feature-card:hover .feature-icon { background: var(--grad-primary); color: #fff; transform: scale(1.08) rotate(3deg); }
    .feature-card h3 { font-size: 1.02rem; font-weight: 700; color: var(--ink-1); margin-bottom: 9px; letter-spacing: -0.01em; }
    .feature-card p { font-size: 0.88rem; color: var(--ink-3); line-height: 1.65; }

    /* HOW IT WORKS */
    .how-section { padding: 96px 24px; background: var(--canvas-soft); }
    .how-steps { max-width: 1060px; margin: 0 auto; display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; position: relative; }
    .how-steps::before {
      content: ''; position: absolute; top: 36px; left: calc(16.6% + 16px); right: calc(16.6% + 16px);
      height: 2px; background: linear-gradient(90deg, var(--brand-indigo), var(--brand-blue)); opacity: 0.25;
    }
    @media (max-width: 768px) { .how-steps { grid-template-columns: 1fr; } .how-steps::before { display: none; } }
    .how-step {
      text-align: center; padding: 30px 22px; background: var(--panel); border: 1px solid var(--line);
      border-radius: 20px; transition: all var(--transition);
    }
    .how-step:hover { border-color: rgba(99,102,241,0.3); box-shadow: 0 12px 40px rgba(99,102,241,0.09); transform: translateY(-4px); }
    .how-num {
      width: 68px; height: 68px; border-radius: 50%; background: var(--grad-primary);
      display: flex; align-items: center; justify-content: center; font-size: 1.5rem; font-weight: 800;
      color: #fff; margin: 0 auto 22px; box-shadow: 0 8px 24px rgba(99,102,241,0.35);
    }
    .how-step h3 { font-size: 1.05rem; font-weight: 700; color: var(--ink-1); margin-bottom: 10px; }
    .how-step p { font-size: 0.88rem; color: var(--ink-3); line-height: 1.65; }

    /* BENEFITS */
    .benefits-section { padding: 96px 24px; background: var(--canvas); }
    .benefit-row { max-width: 1060px; margin: 0 auto 72px; display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
    .benefit-row:last-child { margin-bottom: 0; }
    .benefit-row.rev { direction: rtl; }
    .benefit-row.rev > * { direction: ltr; }
    @media (max-width: 768px) { .benefit-row { grid-template-columns: 1fr; direction: ltr !important; } }
    .benefit-content h3 { font-size: clamp(1.55rem,3vw,2rem); font-weight: 800; line-height: 1.2; letter-spacing: -0.03em; color: var(--ink-1); margin-bottom: 14px; }
    .benefit-content p { font-size: 0.95rem; color: var(--ink-3); line-height: 1.75; margin-bottom: 22px; }
    .benefit-list { list-style: none; display: flex; flex-direction: column; gap: 10px; }
    .benefit-list li { display: flex; align-items: center; gap: 11px; font-size: 0.88rem; font-weight: 600; color: var(--ink-2); }
    .benefit-list li .ck { width: 20px; height: 20px; border-radius: 50%; background: rgba(16,185,129,0.12); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.6rem; color: var(--brand-green); }
    .benefit-visual {
      border-radius: 20px; overflow: hidden; background: var(--canvas-soft);
      border: 1px solid var(--line); box-shadow: var(--shadow-md);
      aspect-ratio: 4/3; display: flex; align-items: center; justify-content: center; padding: 28px; position: relative;
    }
    .benefit-visual::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%,rgba(99,102,241,0.10) 0%,transparent 60%); }
    .bmock { position: relative; z-index: 1; width: 100%; }
    .brow {
      display: flex; align-items: center; justify-content: space-between;
      background: var(--panel); border: 1px solid var(--line);
      border-radius: 10px; padding: 11px 14px; margin-bottom: 9px; gap: 11px;
      box-shadow: 0 1px 2px rgba(15,23,42,0.04);
    }
    .brow:last-child { margin-bottom: 0; }
    .bi { width: 32px; height: 32px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 0.85rem; flex-shrink: 0; }
    .binfo { flex: 1; }
    .bt { font-size: 0.73rem; font-weight: 700; color: var(--ink-1); }
    .bs { font-size: 0.63rem; color: var(--ink-4); margin-top: 2px; }
    .bst { font-size: 0.68rem; font-weight: 700; padding: 3px 9px; border-radius: 50px; }
    .s-ok { background: rgba(16,185,129,0.12); color: var(--brand-green-ink); }
    .s-sync { background: rgba(99,102,241,0.12); color: var(--brand-indigo-ink); }

    /* STATS */
    .stats-section { padding: 80px 24px; background: var(--canvas-tint); background-image: var(--grad-mesh); position: relative; overflow: hidden; }
    .stats-section::before {
      content: ''; position: absolute; inset: 0;
      background-image: linear-gradient(var(--grid-line) 1px,transparent 1px), linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
      background-size: 60px 60px; pointer-events: none;
    }
    .stats-inner { max-width: 1000px; margin: 0 auto; position: relative; z-index: 1; }
    .stats-title-area { text-align: center; margin-bottom: 56px; }
    .stats-title-area h2 { font-size: clamp(1.9rem,4vw,2.6rem); font-weight: 800; color: var(--ink-1); letter-spacing: -0.03em; margin-bottom: 10px; }
    .stats-title-area p { font-size: 0.95rem; color: var(--ink-3); }
    .stats-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(200px,1fr)); gap: 18px; }
    .stat-card {
      background: var(--panel); border: 1px solid var(--line);
      border-radius: 20px; padding: 30px 22px; text-align: center; box-shadow: var(--shadow-sm); transition: all var(--transition);
    }
    .stat-card:hover { border-color: rgba(99,102,241,0.35); transform: translateY(-4px); box-shadow: 0 18px 44px rgba(99,102,241,0.14); }
    .stat-emoji { font-size: 1.6rem; margin-bottom: 12px; }
    .stat-num { font-size: 2.4rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.04em; line-height: 1; margin-bottom: 7px; display: block; }
    .stat-suf { font-size: 1.4rem; }
    .stat-label { font-size: 0.82rem; color: var(--ink-3); font-weight: 500; }

    /* PRICING */
    .pricing-section { padding: 96px 24px; background: var(--canvas-soft); }
    .pricing-grid {
      max-width: 1160px; margin: 0 auto; display: flex; gap: 22px; align-items: stretch;
      overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; scroll-behavior: smooth;
      padding: 28px 4px 30px; -webkit-overflow-scrolling: touch;
      scrollbar-width: thin; scrollbar-color: rgba(99,102,241,.35) transparent;
      overscroll-behavior-x: contain;
    }
    .pricing-grid::-webkit-scrollbar { height: 8px; }
    .pricing-grid::-webkit-scrollbar-track { background: transparent; }
    .pricing-grid::-webkit-scrollbar-thumb { background: rgba(99,102,241,.28); border-radius: 999px; }
    .pricing-grid::-webkit-scrollbar-thumb:hover { background: rgba(99,102,241,.5); }
    /* Setas redondas de navegação do carrossel de planos */
    .pricing-grid-wrap { position: relative; max-width: 1220px; margin: 0 auto; }
    .pricing-grid-wrap .pricing-grid { margin: 0; }
    .pg-nav {
      position: absolute; top: 50%; transform: translateY(-50%);
      width: 46px; height: 46px; border-radius: 50%; z-index: 4;
      display: flex; align-items: center; justify-content: center; cursor: pointer;
      background: var(--panel); color: var(--brand-indigo); border: 1.5px solid var(--line);
      box-shadow: 0 8px 22px rgba(99,102,241,0.18); font-size: 0.95rem;
      transition: all var(--transition);
    }
    .pg-nav:hover { background: var(--brand-indigo); color: #fff; border-color: var(--brand-indigo); transform: translateY(-50%) scale(1.09); box-shadow: 0 12px 28px rgba(99,102,241,0.32); }
    .pg-prev { left: 2px; }
    .pg-next { right: 2px; }
    /* Estado "fim do lado": fica cinza e sem ação */
    .pg-nav.is-end { color: var(--ink-4); border-color: var(--line-soft); background: var(--canvas-soft); box-shadow: none; cursor: default; }
    .pg-nav.is-end:hover { color: var(--ink-4); border-color: var(--line-soft); background: var(--canvas-soft); transform: translateY(-50%); box-shadow: none; }
    /* Sem overflow (nada a rolar): esconde as setas */
    .pricing-grid-wrap.no-scroll .pg-nav { display: none; }
    @media (max-width: 640px) {
      .pg-nav { width: 40px; height: 40px; font-size: 0.85rem; }
      .pg-prev { left: -4px; }
      .pg-next { right: -4px; }
    }
    /* 3 cards visíveis (grátis -> pro); o restante desliza na horizontal */
    .pricing-card {
      flex: 0 0 clamp(272px, calc((100% - 44px) / 3), 360px); scroll-snap-align: start;
      background: var(--panel); border: 1.5px solid var(--line); border-radius: 24px; padding: 34px 28px;
      position: relative; transition: all var(--transition); display: flex; flex-direction: column;
    }

    /* Tela larga mostra os QUATRO planos de uma vez.
       O clamp acima divide a faixa por 3 e o container para em 1160px, entao o
       Premium ficava SEMPRE fora da tela — inclusive em monitor de 2560px. E o
       Premium e' o plano que carrega Contador IA, departamento pessoal, Coach e
       loja no automatico: o visitante tinha de clicar na seta para descobrir
       que existe um plano acima do "mais popular". Onde sobra largura, ninguem
       deve precisar clicar para ver o plano mais caro.
       Abaixo de 1400px nada muda: segue o carrossel de 3 com as setas. */
    @media (min-width: 1400px) {
      .pricing-grid-wrap { max-width: 1400px; }
      .pricing-grid { max-width: 1340px; }
      .pricing-card { flex: 0 0 clamp(272px, calc((100% - 66px) / 4), 360px); }
    }
    @media (max-width: 640px) {
      /* Em telas pequenas o scroll vira carrossel: cada plano encaixa no
         centro, um de cada vez, mais fluido que um scroll comum. */
      .pricing-grid { scroll-snap-type: x mandatory; scroll-padding-inline: 7vw; }
      .pricing-card { flex-basis: min(86%, 320px); scroll-snap-align: center; scroll-snap-stop: always; }
    }
    .pricing-card:hover { border-color: rgba(99,102,241,0.3); box-shadow: 0 20px 60px rgba(99,102,241,0.11); transform: translateY(-4px); }
    .pricing-card.featured {
      border-color: var(--brand-indigo); background: linear-gradient(180deg,var(--panel) 0%,var(--canvas-soft) 100%);
      box-shadow: 0 8px 40px rgba(99,102,241,0.17), 0 0 0 1px rgba(99,102,241,0.14);
      transform: scale(1.03);
    }
    .pricing-card.featured:hover { transform: scale(1.03) translateY(-4px); }
    .price-badge {
      position: absolute; top: -13px; left: 50%; transform: translateX(-50%);
      background: var(--grad-primary); color: #fff; font-size: 0.7rem; font-weight: 700;
      letter-spacing: 0.06em; text-transform: uppercase; padding: 5px 16px; border-radius: 50px;
      box-shadow: 0 4px 14px rgba(99,102,241,0.35); white-space: nowrap;
    }
    .price-badge.trial { background: var(--grad-green); box-shadow: 0 4px 14px rgba(16,185,129,0.35); }
    .plan-iw {
      width: 54px; height: 54px; border-radius: 15px; display: flex; align-items: center; justify-content: center;
      font-size: 1.35rem; color: var(--brand-indigo); margin-bottom: 18px;
      background: linear-gradient(135deg,rgba(99,102,241,0.1),rgba(59,130,246,0.1)); transition: all var(--transition);
    }
    .pricing-card.featured .plan-iw { background: var(--grad-primary); color: #fff; }
    .plan-name { font-size: 1.12rem; font-weight: 800; color: var(--ink-1); margin-bottom: 5px; }
    .plan-tagline { font-size: 0.8rem; color: var(--ink-4); margin-bottom: 22px; }
    .plan-price { font-size: 2.7rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.04em; line-height: 1; margin-bottom: 3px; }
    .plan-price .cur { font-size: 1.2rem; vertical-align: top; margin-top: 5px; display: inline-block; font-weight: 600; color: var(--ink-3); }
    .plan-price .per { font-size: 0.88rem; font-weight: 500; color: var(--ink-4); }
    .plan-div { height: 1px; background: var(--line); margin: 22px 0; }

    /* ---- Card de plano reorganizado -------------------------------------
       O card tinha uma lista só, de até 22 marcadores, e o botão no fim dela.
       Agora tem três blocos: topo (nome, preço, CTA), grade de limites e
       funções agrupadas por área. Quem separa é templates/planos_lib.php. */
    .plan-tagline { min-height: 2.4em; }
    .plan-topo .btn-plan-cta { margin-top: 16px; }

    /* Limites: grade compacta, não marcador. É o bloco que o visitante compara
       entre um card e outro — por isso fundo próprio e número em destaque. */
    .plan-limites {
      display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px;
      background: var(--line); border: 1px solid var(--line); border-radius: 12px;
      overflow: hidden; margin: 20px 0 4px;
    }
    .plim {
      background: var(--canvas); padding: 10px 11px; display: flex; flex-direction: column; gap: 1px;
      min-width: 0;
    }
    .plim > i { font-size: 0.72rem; color: var(--brand-indigo-ink); margin-bottom: 2px; }
    .plim-v { font-size: 0.95rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.02em; line-height: 1.15; }
    .plim-r { font-size: 0.68rem; color: var(--ink-4); font-weight: 600; text-transform: uppercase; letter-spacing: 0.03em; }
    /* Número ímpar de limites: o último ocupa a linha inteira em vez de deixar buraco. */
    .plim:last-child:nth-child(odd) { grid-column: 1 / -1; flex-direction: row; align-items: baseline; gap: 8px; }
    .plim:last-child:nth-child(odd) > i { margin-bottom: 0; align-self: center; }

    /* Herança: "Tudo do Básico, e mais" era um marcador perdido na lista. */
    .plan-herda {
      margin: 16px 0 0; padding: 9px 12px; border-radius: 10px;
      background: rgba(99,102,241,0.07); border: 1px solid rgba(99,102,241,0.16);
      font-size: 0.8rem; color: var(--ink-2); font-weight: 600; line-height: 1.35;
    }
    .plan-herda i { color: var(--brand-indigo-ink); margin-right: 6px; transform: rotate(90deg); display: inline-block; }
    .plan-herda b { color: var(--ink-1); }

    .plan-func-head {
      margin: 20px 0 10px; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em;
      text-transform: uppercase; color: var(--ink-4);
    }
    .plan-grupos { flex: 1; display: flex; flex-direction: column; gap: 14px; }
    .pgrupo-t {
      display: flex; align-items: center; gap: 7px; font-size: 0.74rem; font-weight: 800;
      color: var(--brand-indigo-ink); letter-spacing: 0.01em; margin-bottom: 4px;
    }
    .pgrupo-t i { font-size: 0.7rem; opacity: 0.8; }

    .plan-features { list-style: none; margin: 0; }
    .plan-features li { display: flex; align-items: flex-start; gap: 9px; font-size: 0.86rem; color: var(--ink-2); font-weight: 500; padding: 6px 0; border-bottom: 1px solid var(--canvas-tint); line-height: 1.4; }
    .plan-features li:last-child { border-bottom: none; }
    .plan-features li .fi { margin-top: 2px; width: 19px; height: 19px; border-radius: 50%; background: rgba(16,185,129,0.1); display: flex; align-items: center; justify-content: center; font-size: 0.58rem; color: var(--brand-green); flex-shrink: 0; }
    .btn-plan-cta {
      display: block; width: 100%; text-align: center; padding: 13px; border-radius: 13px;
      font-size: 0.88rem; font-weight: 700; transition: all var(--transition);
      background: var(--canvas-tint); color: var(--ink-2); border: 1.5px solid var(--line);
    }
    .btn-plan-cta:hover { background: var(--line); border-color: rgba(99,102,241,0.3); color: var(--brand-indigo); transform: translateY(-2px); }
    .pricing-card.featured .btn-plan-cta { background: var(--grad-primary); color: #fff; border-color: transparent; box-shadow: 0 6px 20px rgba(99,102,241,0.28); }
    .pricing-card.featured .btn-plan-cta:hover { box-shadow: 0 10px 30px rgba(99,102,241,0.4); transform: translateY(-2px); }
    .pricing-note { text-align: center; margin-top: 30px; font-size: 0.82rem; color: var(--ink-4); }
    .pricing-note i { color: var(--brand-green); margin-right: 4px; }
    .pricing-grand { max-width: 760px; margin: 14px auto 0; text-align: center; font-size: 0.82rem; color: var(--ink-3); line-height: 1.6; }
    .pricing-grand strong { color: var(--ink-2); font-weight: 700; }
    .pricing-grand i { color: var(--brand-indigo); margin-right: 5px; }

    /* VALUE REFRAME (justifica o preço) */
    .value-reframe {
      max-width: 1100px; margin: 0 auto 46px; border-radius: 28px; padding: 46px 40px;
      background: var(--canvas-tint); background-image: var(--grad-mesh);
      border: 1px solid var(--line);
      position: relative; overflow: hidden; box-shadow: var(--shadow-lg);
    }
    .value-reframe::before {
      content: ''; position: absolute; inset: 0;
      background-image: linear-gradient(var(--grid-line) 1px,transparent 1px), linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);
      background-size: 48px 48px; pointer-events: none;
    }
    .vr-head { position: relative; z-index: 1; text-align: center; max-width: 640px; margin: 0 auto 34px; }
    .vr-eyebrow {
      display: inline-flex; align-items: center; gap: 7px; font-size: 0.72rem; font-weight: 700;
      letter-spacing: 0.08em; text-transform: uppercase; color: var(--brand-indigo-ink); padding: 6px 15px;
      background: rgba(99,102,241,0.10); border: 1px solid rgba(99,102,241,0.24); border-radius: 50px; margin-bottom: 18px;
    }
    .vr-head h3 { font-size: clamp(1.5rem,3.2vw,2.15rem); font-weight: 800; line-height: 1.2; letter-spacing: -0.03em; color: var(--ink-1); margin-bottom: 14px; }
    .vr-head h3 .hl { background: linear-gradient(135deg,#059669,#047857); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
    .vr-head p { font-size: 1rem; color: var(--ink-3); line-height: 1.65; }
    .vr-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 16px; margin-bottom: 30px; }
    .vr-item {
      background: var(--panel); border: 1px solid var(--line); border-radius: 18px;
      padding: 24px 22px; transition: all var(--transition); box-shadow: var(--shadow-sm);
    }
    .vr-item:hover { border-color: rgba(99,102,241,0.35); transform: translateY(-3px); box-shadow: 0 18px 44px rgba(99,102,241,0.14); }
    .vr-item .vi-ic {
      width: 46px; height: 46px; border-radius: 13px; display: flex; align-items: center; justify-content: center;
      font-size: 1.15rem; color: #fff; margin-bottom: 15px; background: var(--grad-primary);
    }
    .vr-item.green .vi-ic { background: var(--grad-green); }
    .vr-item h4 { font-size: 1rem; font-weight: 800; color: var(--ink-1); margin-bottom: 8px; letter-spacing: -0.01em; }
    .vr-item p { font-size: 0.84rem; color: var(--ink-3); line-height: 1.6; }
    .vr-item p b { color: var(--brand-green-ink); font-weight: 700; }
    .vr-foot {
      position: relative; z-index: 1; display: flex; align-items: center; gap: 13px; flex-wrap: wrap; justify-content: center;
      text-align: center; padding: 18px 24px; border-radius: 16px;
      background: rgba(16,185,129,0.09); border: 1px solid rgba(16,185,129,0.28);
      font-size: 0.92rem; font-weight: 600; color: var(--brand-green-ink); line-height: 1.55;
    }
    .vr-foot i { color: var(--brand-green-ink); font-size: 1.15rem; }
    @media (max-width: 560px) { .value-reframe { padding: 34px 22px; } }

    /* TESTIMONIALS */
    .testimonials-section { padding: 96px 24px; background: var(--canvas-tint); background-image: var(--grad-mesh); position: relative; }
    .testimonials-section .section-sub { color: var(--ink-3); }
    .testi-grid { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit,minmax(260px,1fr)); gap: 18px; }
    .testi-card {
      background: var(--panel); border: 1px solid var(--line);
      border-radius: 20px; padding: 26px; transition: all var(--transition); box-shadow: var(--shadow-sm);
    }
    .testi-card:hover { border-color: rgba(99,102,241,0.3); transform: translateY(-4px); box-shadow: 0 18px 44px rgba(99,102,241,0.13); }
    .testi-stars { display: flex; gap: 3px; margin-bottom: 14px; }
    .testi-stars i { color: #F59E0B; font-size: 0.82rem; }
    .testi-card blockquote { font-size: 0.89rem; color: var(--ink-2); line-height: 1.7; font-style: italic; margin-bottom: 18px; position: relative; padding-left: 14px; }
    .testi-card blockquote::before { content: '"'; position: absolute; left: 0; top: -4px; font-size: 2rem; color: var(--brand-indigo); font-style: normal; line-height: 1; }
    .testi-author { display: flex; align-items: center; gap: 11px; }
    .testi-av { width: 38px; height: 38px; border-radius: 50%; background: var(--grad-primary); display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 700; color: #fff; flex-shrink: 0; }
    .testi-name { font-size: 0.86rem; font-weight: 700; color: var(--ink-1); }
    .testi-role { font-size: 0.72rem; color: var(--ink-4); margin-top: 1px; }

    /* FAQ */
    .faq-section { padding: 96px 24px; background: var(--canvas); }
    .faq-list { max-width: 740px; margin: 0 auto; }
    .faq-item { border: 1.5px solid var(--line); border-radius: 16px; margin-bottom: 10px; overflow: hidden; transition: all var(--transition); }
    .faq-item:hover { border-color: rgba(99,102,241,0.28); }
    .faq-q { display: flex; align-items: center; justify-content: space-between; padding: 19px 22px; cursor: pointer; gap: 14px; user-select: none; }
    .faq-q span { font-size: 0.97rem; font-weight: 700; color: var(--ink-1); line-height: 1.4; }
    .faq-arr { width: 30px; height: 30px; border-radius: 50%; background: var(--canvas-tint); display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 0.72rem; color: var(--ink-3); transition: all var(--transition); }
    .faq-item.open .faq-arr { background: var(--brand-indigo); color: #fff; transform: rotate(180deg); }
    .faq-item.open { border-color: rgba(99,102,241,0.34); box-shadow: 0 4px 20px rgba(99,102,241,0.07); }
    .faq-a { display: none; padding: 0 22px 18px; font-size: 0.88rem; color: var(--ink-3); line-height: 1.7; }

    /* CTA SECTION — único bloco saturado da página (fecha a leitura na cor da marca) */
    .cta-section { padding: 96px 24px; background: linear-gradient(135deg, #4F46E5 0%, #6366F1 46%, #3B82F6 100%); text-align: center; position: relative; overflow: hidden; }
    .cta-section::before {
      content: ''; position: absolute; inset: 0;
      background-image: linear-gradient(rgba(255,255,255,0.07) 1px,transparent 1px), linear-gradient(90deg,rgba(255,255,255,0.07) 1px,transparent 1px);
      background-size: 60px 60px;
    }
    .cta-section .section-label { background: rgba(255,255,255,0.18); border-color: rgba(255,255,255,0.4); color: #fff; }
    .cta-inner { max-width: 660px; margin: 0 auto; position: relative; z-index: 1; }
    .cta-inner h2 { font-size: clamp(2rem,4vw,3rem); font-weight: 800; color: #fff; letter-spacing: -0.04em; line-height: 1.15; margin-bottom: 14px; }
    .cta-inner > p { font-size: 1rem; color: rgba(255,255,255,0.82); margin-bottom: 34px; line-height: 1.7; }
    .cta-btns { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; }
    .btn-cta-main { display: inline-flex; align-items: center; gap: 10px; padding: 15px 32px; border-radius: 50px; font-size: 0.97rem; font-weight: 700; color: #fff; background: var(--grad-green); box-shadow: 0 8px 28px rgba(5,150,105,0.4); transition: all var(--transition); }
    .btn-cta-main:hover { transform: translateY(-3px); box-shadow: 0 14px 36px rgba(5,150,105,0.5); color: #fff; }
    .btn-cta-outline { display: inline-flex; align-items: center; gap: 10px; padding: 15px 32px; border-radius: 50px; font-size: 0.97rem; font-weight: 700; color: #fff; border: 1.5px solid rgba(255,255,255,0.45); transition: all var(--transition); }
    .btn-cta-outline:hover { background: rgba(255,255,255,0.14); color: #fff; border-color: #fff; transform: translateY(-2px); }

    /* CONTACT */
    .contact-section { padding: 96px 24px; background: var(--canvas-soft); }
    .contact-inner { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 44px; align-items: start; }
    @media (max-width: 768px) { .contact-inner { grid-template-columns: 1fr; } }
    .cform-card { background: var(--panel); border: 1.5px solid var(--line); border-radius: 24px; padding: 36px; box-shadow: 0 8px 40px rgba(99,102,241,0.05); }
    .cform-card h3 { font-size: 1.25rem; font-weight: 800; color: var(--ink-1); margin-bottom: 22px; }
    /* Cartão do suporte — o formulário virou conversa: os botões abrem o modal
       de suporte (apps/suporte do sistema), que guarda os chamados no cookie
       para o visitante acompanhar e avisa a resposta por e-mail. */
    .sup-cta-head { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 20px; }
    .sup-cta-head h3 { margin-bottom: 4px; }
    .sup-cta-head p { font-size: 0.86rem; color: var(--ink-3); line-height: 1.55; }
    .sup-cta-ico { width: 46px; height: 46px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.1rem; background: var(--grad-primary); box-shadow: 0 8px 20px rgba(99,102,241,0.3); }
    .sup-cta-chat { display: flex; flex-direction: column; gap: 8px; padding: 16px; margin-bottom: 20px; border-radius: 16px; background: var(--canvas-soft); border: 1px solid var(--line-soft, var(--line)); }
    .sup-cta-chat .sb { max-width: 84%; padding: 9px 13px; font-size: 0.84rem; line-height: 1.45; border-radius: 15px 15px 15px 5px; background: var(--panel); border: 1px solid var(--line); color: var(--ink-2); }
    .sup-cta-chat .sb.me { align-self: flex-end; border: 0; border-radius: 15px 15px 5px 15px; color: #fff; background: var(--grad-primary); }
    .sup-cta-label { font-size: 0.74rem; font-weight: 700; color: var(--ink-4); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 10px; }
    .sup-cta-topics { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 16px; }
    @media (max-width: 420px) { .sup-cta-topics { grid-template-columns: 1fr; } }
    .sup-cta-topics button {
      display: flex; align-items: center; gap: 9px; text-align: left; padding: 11px 12px; border-radius: 12px; cursor: pointer;
      border: 1.5px solid var(--line); background: var(--panel); color: var(--ink-2); font-family: inherit; font-size: 0.82rem; font-weight: 600; line-height: 1.3;
      transition: border-color var(--transition), color var(--transition), transform var(--transition), background var(--transition);
    }
    .sup-cta-topics button i { color: var(--brand-indigo); width: 16px; text-align: center; flex-shrink: 0; }
    .sup-cta-topics button:hover { border-color: rgba(99,102,241,0.45); color: var(--brand-indigo-ink); background: rgba(99,102,241,0.05); transform: translateY(-1px); }
    .sup-cta-link { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 12px; padding: 8px; border: 0; background: none; cursor: pointer; font-family: inherit; font-size: 0.84rem; font-weight: 700; color: var(--brand-indigo-ink); }
    .sup-cta-link:hover { text-decoration: underline; text-underline-offset: 3px; }
    .btn-submit {
      display: inline-flex; align-items: center; gap: 9px; width: 100%; justify-content: center;
      padding: 13px; border-radius: 13px; border: none; font-size: 0.92rem; font-weight: 700;
      color: #fff; background: var(--grad-primary); cursor: pointer; box-shadow: 0 6px 20px rgba(99,102,241,0.24);
      transition: all var(--transition); font-family: inherit;
    }
    .btn-submit:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(99,102,241,0.34); }
    .cinfo h3 { font-size: 1.35rem; font-weight: 800; color: var(--ink-1); margin-bottom: 10px; letter-spacing: -0.03em; }
    .cinfo > p { font-size: 0.92rem; color: var(--ink-3); line-height: 1.7; margin-bottom: 22px; }
    .citem { display: flex; align-items: flex-start; gap: 13px; padding: 15px; background: var(--panel); border: 1.5px solid var(--line); border-radius: 13px; margin-bottom: 11px; }
    .citem:last-of-type { margin-bottom: 0; }
    .cico { width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg,rgba(99,102,241,0.1),rgba(59,130,246,0.1)); display: flex; align-items: center; justify-content: center; font-size: 0.95rem; color: var(--brand-indigo); flex-shrink: 0; }
    .cilbl { font-size: 0.72rem; font-weight: 700; color: var(--ink-4); text-transform: uppercase; letter-spacing: 0.06em; }
    .cival { font-size: 0.85rem; font-weight: 600; color: var(--ink-2); margin-top: 2px; }

    /* FOOTER */
    footer { background: var(--canvas-soft); border-top: 1px solid var(--line); padding: 56px 24px 28px; }
    .footer-inner { max-width: 1100px; margin: 0 auto; }
    .footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 36px; margin-bottom: 44px; padding-bottom: 44px; border-bottom: 1px solid var(--line); }
    @media (max-width: 768px) { .footer-top { grid-template-columns: 1fr 1fr; } .footer-brand { grid-column: 1/-1; } }
    @media (max-width: 480px) { .footer-top { grid-template-columns: 1fr; } }
    .footer-logo { font-size: 1.35rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.03em; margin-bottom: 10px; }
    .footer-logo span { background: var(--grad-primary); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
    .footer-brand > p { font-size: 0.84rem; color: var(--ink-3); line-height: 1.7; max-width: 270px; margin-bottom: 18px; }
    .fsocials { display: flex; gap: 9px; }
    .fsoc { width: 34px; height: 34px; border-radius: 8px; background: var(--panel); border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; font-size: 0.85rem; color: var(--ink-3); transition: all var(--transition); }
    .fsoc:hover { background: var(--brand-indigo); border-color: transparent; color: #fff; transform: translateY(-2px); }
    .footer-col h4 { font-size: 0.75rem; font-weight: 700; color: var(--ink-4); text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 14px; }
    .footer-col ul { list-style: none; }
    .footer-col ul li { margin-bottom: 9px; }
    .footer-col ul li a { font-size: 0.84rem; color: var(--ink-3); transition: color var(--transition); }
    .footer-col ul li a:hover { color: var(--brand-indigo-ink); }
    .footer-bottom { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
    .footer-bottom p { font-size: 0.8rem; color: var(--ink-4); }
    .footer-bottom a { color: var(--ink-3); transition: color var(--transition); }
    .footer-bottom a:hover { color: var(--brand-indigo-ink); }

    /* WHATSAPP */
    .wa-float {
      position: fixed; bottom: 22px; right: 22px; width: 56px; height: 56px; border-radius: 50%;
      background: linear-gradient(135deg,#25D366,#20ba5a); color: #fff;
      display: flex; align-items: center; justify-content: center; font-size: 1.6rem;
      box-shadow: 0 6px 20px rgba(37,211,102,0.4); z-index: 9999; cursor: pointer; transition: all var(--transition);
      animation: wapulse 3s infinite;
    }
    .wa-float:hover { transform: scale(1.12); box-shadow: 0 10px 30px rgba(37,211,102,0.55); color: #fff; }
    @keyframes wapulse { 0%,100%{box-shadow:0 6px 20px rgba(37,211,102,0.4)} 50%{box-shadow:0 6px 30px rgba(37,211,102,0.6),0 0 0 10px rgba(37,211,102,0.08)} }

    /* REVEAL */
    .reveal { opacity: 0; transform: translateY(26px); transition: opacity 0.65s ease, transform 0.65s ease; }
    .reveal.visible { opacity: 1; transform: translateY(0); }
    .rd1{transition-delay:.1s} .rd2{transition-delay:.2s} .rd3{transition-delay:.3s} .rd4{transition-delay:.4s}

    /* ============ FX / EXPERIÊNCIA ============ */

    /* Hero como palco de fluxo */
    .hero.flow-host { isolation: isolate; }
    #heroCanvas { display: block; }

    /* ---- TIPOGRAFIA CINÉTICA (conceito A+B) ---- */
    .hero-kinetic {
      font-size: clamp(2.3rem, 5.2vw, 4rem); font-weight: 800; line-height: 1.08;
      letter-spacing: -0.045em; color: var(--ink-1); margin-bottom: 16px;
    }
    .kin-pre {
      display: block; font-size: 0.40em; font-weight: 600; letter-spacing: 0;
      color: var(--ink-3); margin-bottom: 10px;
    }
    .kin-main { display: block; }
    .kin-word {
      position: relative; display: inline-block; padding-bottom: 0.04em;
      background: linear-gradient(100deg, #4F46E5 0%, #6366F1 24%, #2563EB 50%, #7C3AED 76%, #4F46E5 100%);
      background-size: 240% 100%;
      -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
      animation: kinFlow 6.5s linear infinite;
      filter: drop-shadow(0 8px 22px rgba(99,102,241,0.22));
    }
    .kin-word::after {
      content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
      background: linear-gradient(90deg, transparent, #6366F1, #3B82F6, #8B5CF6, transparent);
      background-size: 240% 100%; animation: kinFlow 6.5s linear infinite; opacity: 0.85;
    }
    @keyframes kinFlow { to { background-position: 240% 0; } }

    .hero-ticker {
      display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap;
      font-size: 0.82rem; font-weight: 600; color: var(--ink-3); margin-bottom: 30px;
    }
    .hero-ticker b { color: var(--ink-1); font-weight: 700; }
    .hero-ticker .tk-sep { width: 5px; height: 5px; transform: rotate(45deg); background: var(--brand-indigo); display: inline-block; }

    /* entrada no load (não depende de scroll/GSAP) */
    .hero-rise { opacity: 0; transform: translateY(26px); animation: heroRise 0.9s cubic-bezier(.2,.7,.2,1) forwards; }
    .hero-rise.d1 { animation-delay: 0.05s; } .hero-rise.d2 { animation-delay: 0.18s; }
    .hero-rise.d3 { animation-delay: 0.32s; } .hero-rise.d4 { animation-delay: 0.46s; } .hero-rise.d5 { animation-delay: 0.60s; }
    @keyframes heroRise { to { opacity: 1; transform: none; } }

    /* ---- TILT 3D ---- */
    .tilt-stage { transform-style: preserve-3d; }
    .tilt-inner { transform-style: preserve-3d; will-change: transform; }

    /* ---- CURSOR CUSTOM — REMOVIDO ----
       Substituir o cursor do sistema prejudica a usabilidade; mantemos o
       cursor nativo do SO. (JS correspondente desativado em assets/js/fx.js) */

    /* ---- BOTÕES MAGNÉTICOS ---- */
    [data-magnetic] { transition: transform 0.22s cubic-bezier(.2,.7,.2,1), box-shadow var(--transition); will-change: transform; }

    /* ---- RAIL-RIO DE SCROLL ---- */
    .flow-rail { position: fixed; left: 20px; top: 50%; transform: translateY(-50%); z-index: 900; }
    .flow-rail-track { position: relative; width: 2px; height: 240px; background: rgba(99,102,241,0.20); }
    .flow-rail-fill { position: absolute; top: 0; left: 0; width: 100%; height: 0; background: linear-gradient(180deg, #6366F1, #3B82F6, #8B5CF6); box-shadow: 0 0 10px rgba(99,102,241,0.7); }
    .flow-rail-nodes { position: absolute; inset: -4px 0; display: flex; flex-direction: column; justify-content: space-between; align-items: center; }
    .flow-rail-node { width: 9px; height: 9px; transform: rotate(45deg); background: var(--panel); border: 1.5px solid rgba(99,102,241,0.45); cursor: pointer; position: relative; transition: all .25s; }
    .flow-rail-node:hover { border-color: var(--brand-indigo-ink); }
    .flow-rail-node.active { background: var(--brand-indigo); border-color: var(--brand-indigo-ink); box-shadow: 0 0 12px rgba(99,102,241,0.55); }
    .flow-rail-node::after {
      content: attr(data-label); position: absolute; left: 16px; top: 50%;
      transform: translate(0,-50%) rotate(-45deg); transform-origin: left center; white-space: nowrap;
      font-size: 0.64rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
      color: var(--brand-indigo-ink); background: var(--panel); border: 1px solid rgba(99,102,241,0.35);
      padding: 4px 9px; opacity: 0; transition: opacity .2s; box-shadow: var(--shadow-md);
    }
    .flow-rail-node:hover::after, .flow-rail-node.active::after { opacity: 1; }
    @media (max-width: 1280px) { .flow-rail { display: none; } }

    @media (prefers-reduced-motion: reduce) {
      .kin-word, .kin-word::after { animation: none; }
      .hero-rise { animation: none; opacity: 1; transform: none; }
    }

    /* ============ HERO POWER LINE ============ */
    .hero-power {
      display: flex; align-items: flex-start; gap: 9px; flex-wrap: wrap;
      font-size: 1rem; line-height: 1.5; font-weight: 700; color: var(--ink-1); margin-bottom: 30px;
      min-height: 3em; /* reserva 2 linhas — evita reflow/scroll-jump durante a digitação */
    }
    @media (max-width: 900px) { .hero-power { justify-content: center; } }
    @media (max-width: 600px) { .hero-power { font-size: 0.92rem; min-height: 3.2em; } }
    .hero-power .hp-pre { color: var(--ink-3); font-weight: 600; }
    .hero-power .hp-type {
      background: linear-gradient(100deg,#4F46E5,#6366F1,#2563EB,#7C3AED);
      -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; font-weight: 800;
    }
    .hero-power .typed-cursor { -webkit-text-fill-color: #6366F1; color: #6366F1; font-weight: 400; }

    /* ============ POWERWALL (3%) ============ */
    .powerwall { position: relative; background: var(--canvas-soft); background-image: var(--grad-mesh); padding: 70px 0 76px; overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
    .powerwall-head { text-align: center; max-width: 780px; margin: 0 auto 40px; padding: 0 24px; }
    .powerwall-head h2 { font-size: clamp(1.9rem, 4.4vw, 3rem); font-weight: 800; color: var(--ink-1); letter-spacing: -0.035em; line-height: 1.1; margin-bottom: 14px; }
    .powerwall-head p { color: var(--ink-3); font-size: 1.02rem; line-height: 1.7; }
    .pw-3 { display: inline-block; background: linear-gradient(135deg,#F59E0B 0%,#EA580C 55%,#DC2626 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
    .marquee-mask { position: relative; -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); }
    .marquee { display: flex; gap: 14px; width: max-content; will-change: transform; animation: mqScroll 42s linear infinite; }
    .marquee.rev { animation-direction: reverse; animation-duration: 52s; margin-top: 14px; }
    .powerwall:hover .marquee { animation-play-state: paused; }
    @keyframes mqScroll { to { transform: translateX(-50%); } }
    .pw-chip { display: inline-flex; align-items: center; gap: 11px; padding: 13px 18px; border: 1px solid var(--line); background: var(--panel); box-shadow: 0 1px 2px rgba(15,23,42,0.04); white-space: nowrap; }
    .pw-chip .pwi { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; background: rgba(99,102,241,0.12); transform: rotate(45deg); flex-shrink: 0; }
    .pw-chip .pwi i { transform: rotate(-45deg); color: var(--brand-indigo-ink); font-size: 0.82rem; }
    .pw-chip span { font-size: 0.86rem; font-weight: 700; color: var(--ink-2); }
    .pw-chip b { color: var(--ink-1); font-weight: 800; }

    /* ============ MANIFESTO (por que é diferente) ============ */
    .manifesto { position: relative; background: var(--canvas); padding: 90px 24px 96px; overflow: hidden; border-bottom: 1px solid var(--line); }
    .manifesto::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(ellipse 70% 55% at 50% 0%, rgba(99,102,241,0.10) 0%, transparent 60%); pointer-events: none; }
    .mf-inner { position: relative; z-index: 1; max-width: 1080px; margin: 0 auto; }
    .mf-head { text-align: center; max-width: 820px; margin: 0 auto 52px; }
    .mf-head .section-label { margin-bottom: 18px; }
    .mf-head h2 { font-size: clamp(1.95rem, 4.6vw, 3.05rem); font-weight: 800; color: var(--ink-1); letter-spacing: -0.035em; line-height: 1.12; margin-bottom: 18px; }
    .mf-head p { color: var(--ink-3); font-size: 1.06rem; line-height: 1.75; }
    .mf-head p b { color: var(--ink-1); font-weight: 700; }
    .mf-years { display: inline-flex; align-items: baseline; gap: 10px; margin: 4px 0 22px; }
    .mf-years .n { font-size: clamp(3rem, 9vw, 4.6rem); font-weight: 800; line-height: 1; letter-spacing: -0.04em; background: var(--grad-primary); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
    .mf-years .t { text-align: left; color: var(--ink-2); font-weight: 700; font-size: 0.98rem; line-height: 1.25; }
    .mf-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
    @media (max-width: 900px) { .mf-grid { grid-template-columns: repeat(2, 1fr); } }
    @media (max-width: 520px) { .mf-grid { grid-template-columns: 1fr; } }
    .mf-card { position: relative; background: var(--canvas-soft); border: 1px solid var(--line); border-radius: 16px; padding: 26px 22px; transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
    .mf-card:hover { transform: translateY(-4px); border-color: rgba(99,102,241,0.35); box-shadow: 0 18px 44px rgba(99,102,241,0.12); }
    .mf-ico { width: 46px; height: 46px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: rgba(99,102,241,0.12); color: var(--brand-indigo-ink); font-size: 1.15rem; margin-bottom: 16px; }
    .mf-card h3 { color: var(--ink-1); font-size: 1.06rem; font-weight: 800; letter-spacing: -0.02em; margin-bottom: 9px; }
    .mf-card p { color: var(--ink-3); font-size: 0.92rem; line-height: 1.6; }
    .mf-card p b { color: var(--ink-1); font-weight: 700; }

    /* ============ SHOWCASE (demos animadas) ============ */
    .showcase { padding: 96px 24px; background: var(--canvas-tint); position: relative; overflow: hidden; }
    .showcase::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--grid-line) 1px,transparent 1px), linear-gradient(90deg,var(--grid-line) 1px,transparent 1px); background-size: 64px 64px; pointer-events: none; }
    .showcase .section-head { position: relative; z-index: 1; }
    .showcase .section-sub { color: var(--ink-3); }
    .show-grid { position: relative; z-index: 1; max-width: 1160px; margin: 0 auto; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
    .demo-card.span2 { grid-column: 1 / -1; }
    @media (max-width: 860px) { .show-grid { grid-template-columns: 1fr; } .demo-card.span2 { grid-column: auto; } }
    .demo-card {
      --accent: #6366F1;
      background-color: var(--panel);
      background-image:
        radial-gradient(ellipse 85% 55% at 50% -12%, color-mix(in srgb, var(--accent) 11%, transparent), transparent 62%),
        radial-gradient(circle at 100% 108%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 42%);
      border: 1px solid color-mix(in srgb, var(--accent) 18%, var(--line)); border-radius: 22px; padding: 26px 24px; position: relative; overflow: hidden;
      box-shadow: var(--shadow-sm);
      transition: border-color var(--transition), box-shadow var(--transition), transform var(--transition);
    }
    /* tom levantado — alterna com o branco puro para dar ritmo à rolagem */
    .demo-card.lift { background-color: var(--canvas-soft); }
    .demo-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent, var(--accent), transparent); opacity: 0.75; }
    .demo-card:hover { border-color: color-mix(in srgb, var(--accent) 45%, transparent); box-shadow: 0 22px 50px color-mix(in srgb, var(--accent) 16%, transparent); }
    /* fundo temático por apresentação */
    .demo-card.tm-nf    { --accent: #6366F1; }
    .demo-card.tm-sac   { --accent: #10B981; }
    .demo-card.tm-score { --accent: #8B5CF6; }
    .demo-card.tm-price { --accent: #F59E0B; }
    .demo-card.tm-union { --accent: #3B82F6; }
    .demo-card.tm-pack  { --accent: #F43F5E; }
    .demo-card.tm-recon { --accent: #14B8A6; }
    .demo-card.tm-ship  { --accent: #0EA5E9; }
    .demo-card.tm-track { --accent: #22C55E; }
    .dc-tag { display: inline-flex; align-items: center; gap: 8px; font-size: 0.7rem; font-weight: 800; letter-spacing: 0.07em; text-transform: uppercase; color: color-mix(in srgb, var(--accent) 72%, var(--ink-1)); margin-bottom: 12px; }
    .dc-tag .dc-live { display: inline-flex; align-items: center; gap: 6px; color: var(--brand-green-ink); }
    .dc-tag .dc-live::before { content: ''; width: 6px; height: 6px; transform: rotate(45deg); background: #10B981; animation: dcBlink 1.4s infinite; }
    @keyframes dcBlink { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
    .demo-card h3 { font-size: 1.16rem; font-weight: 800; color: var(--ink-1); letter-spacing: -0.02em; margin-bottom: 6px; }
    .dc-sub { font-size: 0.85rem; color: var(--ink-3); line-height: 1.6; margin-bottom: 22px; }
    .demo-stage { position: relative; }

    /* —— Demo NF —— */
    .nf-track { position: relative; height: 3px; background: rgba(99,102,241,0.072); margin: 6px 6px 20px; }
    .nf-token { position: absolute; top: 50%; left: 6%; width: 11px; height: 11px; transform: translate(-50%,-50%) rotate(45deg); background: #6366F1; box-shadow: 0 0 14px #6366F1; opacity: 0; }
    .play .nf-token { animation: nfTok 3s ease-in-out forwards; }
    @keyframes nfTok { 0%{ left:6%; opacity:0 } 8%{ opacity:1 } 90%{ opacity:1 } 100%{ left:94%; opacity:0.15 } }
    .nf-steps { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
    .nf-step { --lit:#4F46E5; display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 6px; border: 1px solid var(--line); background: rgba(99,102,241,0.03); text-align: center; opacity: 0.45; }
    .nf-step.warn { --lit:var(--danger-ink); } .nf-step.ok { --lit:var(--brand-green-ink); }
    .nf-step i { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: var(--ink-4); background: rgba(99,102,241,0.045); font-size: 0.9rem; }
    .nf-step span { font-size: 0.68rem; font-weight: 700; color: var(--ink-3); line-height: 1.2; }
    .play .nf-step { animation: nfLit 0.45s ease forwards; }
    .play .nf-step.n1 { animation-delay: .25s } .play .nf-step.n2 { animation-delay: .9s } .play .nf-step.n3 { animation-delay: 1.6s } .play .nf-step.n4 { animation-delay: 2.15s } .play .nf-step.n5 { animation-delay: 2.7s }
    @keyframes nfLit { to { opacity: 1; border-color: color-mix(in srgb, var(--lit) 45%, transparent); } }
    .play .nf-step i { animation: nfIco 0.45s ease forwards; }
    .play .nf-step.n1 i { animation-delay: .25s } .play .nf-step.n2 i { animation-delay: .9s } .play .nf-step.n3 i { animation-delay: 1.6s } .play .nf-step.n4 i { animation-delay: 2.15s } .play .nf-step.n5 i { animation-delay: 2.7s }
    @keyframes nfIco { to { color: var(--lit); background: color-mix(in srgb, var(--lit) 16%, transparent); } }

    /* —— Demo SAC —— */
    .sac-win { background: rgba(99,102,241,0.03); border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
    .sac-head { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; font-size: 0.72rem; font-weight: 700; color: var(--ink-3); }
    .sac-badge { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; color: var(--brand-green-ink); font-size: 0.68rem; font-weight: 800; }
    .sac-badge i { color: var(--brand-green-ink); }
    .sac-bubble { max-width: 82%; padding: 10px 13px; border-radius: 12px; font-size: 0.82rem; line-height: 1.45; opacity: 0; transform: translateY(10px); }
    .sac-in { background: rgba(99,102,241,0.054); color: var(--ink-1); border-top-left-radius: 3px; }
    .sac-out { background: var(--grad-primary); color: #fff; margin-left: auto; border-top-right-radius: 3px; margin-top: 10px; }
    .sac-meta { font-size: 0.64rem; color: var(--ink-4); margin-top: 4px; }
    .sac-out .sac-meta { color: rgba(255,255,255,0.75); text-align: right; }
    .sac-typing { display: inline-flex; gap: 4px; padding: 11px 14px; background: rgba(99,102,241,0.054); border-radius: 12px; margin-top: 10px; opacity: 0; }
    .sac-typing span { width: 6px; height: 6px; border-radius: 50%; background: #6366F1; animation: sacDot 1s infinite; }
    .sac-typing span:nth-child(2){ animation-delay: .15s } .sac-typing span:nth-child(3){ animation-delay: .3s }
    @keyframes sacDot { 0%,100%{ transform: translateY(0); opacity:.4 } 50%{ transform: translateY(-4px); opacity:1 } }
    .play .sac-in { animation: sacUp .5s ease .2s forwards; }
    .play .sac-typing { animation: sacShow .3s ease 1.1s forwards, sacHide .3s ease 2.5s forwards; }
    .play .sac-out { animation: sacUp .5s ease 2.6s forwards; }
    @keyframes sacUp { to { opacity: 1; transform: translateY(0); } }
    @keyframes sacShow { to { opacity: 1; } } @keyframes sacHide { to { opacity: 0; height: 0; padding: 0; margin: 0; } }

    /* —— Demo Score real do marketplace —— */
    .score-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
    .score-row:last-child { margin-bottom: 0; }
    .score-mk { width: 92px; flex-shrink: 0; font-size: 0.78rem; font-weight: 700; color: var(--ink-2); display: flex; align-items: center; gap: 7px; }
    .score-mk i { font-size: 0.7rem; }
    .score-bar { flex: 1; height: 8px; background: rgba(99,102,241,0.063); border-radius: 50px; overflow: hidden; }
    .score-fill { height: 100%; width: 0; border-radius: 50px; background: var(--grad-primary); }
    .score-fill.g { background: var(--grad-green); } .score-fill.o { background: linear-gradient(90deg,#F59E0B,#F97316); }
    .play .score-fill { animation: scoreFill 1.3s cubic-bezier(.2,.7,.2,1) .2s forwards; }
    @keyframes scoreFill { to { width: var(--w); } }
    .score-val { width: 34px; text-align: right; font-size: 0.86rem; font-weight: 800; color: var(--ink-1); font-variant-numeric: tabular-nums; }

    /* —— Demo Preço catálogo —— */
    .price-stage { display: flex; flex-direction: column; gap: 14px; }
    .price-graph { position: relative; height: 110px; border-left: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 4px; }
    .price-step { position: absolute; bottom: 0; width: 10px; height: 10px; transform: rotate(45deg) scale(0); background: var(--brand-indigo); box-shadow: 0 0 10px rgba(99,102,241,0.35); }
    .price-step.win { background: #10B981; box-shadow: 0 0 12px rgba(16,185,129,0.45); }
    .play .price-step { animation: priceStep .4s cubic-bezier(.2,.7,.2,1) forwards; }
    .play .price-step.p1{ animation-delay:.3s } .play .price-step.p2{ animation-delay:.6s } .play .price-step.p3{ animation-delay:.9s } .play .price-step.p4{ animation-delay:1.2s } .play .price-step.p5{ animation-delay:1.5s }
    @keyframes priceStep { to { transform: rotate(45deg) scale(1); } }
    .price-line { position: absolute; left: 0; right: 0; border-top: 1px dashed rgba(220,38,38,0.45); }
    .price-line span { position: absolute; right: 0; top: -18px; font-size: 0.64rem; font-weight: 700; color: var(--danger-ink); }
    .price-win-badge { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 8px 14px; background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.3); color: var(--brand-green-ink); font-size: 0.8rem; font-weight: 800; opacity: 0; transform: translateY(8px); }
    .play .price-win-badge { animation: sacUp .5s ease 1.7s forwards; }

    /* —— Demo União estoque —— */
    .union-stage { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: center; }
    .union-src { text-align: center; }
    .union-box { width: 92px; padding: 16px 10px; border: 1.5px solid rgba(99,102,241,0.4); background: rgba(99,102,241,0.08); }
    .union-box .ub-num { font-size: 1.8rem; font-weight: 800; color: var(--ink-1); line-height: 1; }
    .union-box .ub-lbl { font-size: 0.62rem; font-weight: 700; color: var(--ink-3); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 4px; }
    .union-fan { display: flex; flex-direction: column; gap: 7px; }
    .union-ad { display: flex; align-items: center; gap: 9px; padding: 8px 12px; border: 1px solid var(--line); background: rgba(99,102,241,0.03); opacity: 0; transform: translateX(-14px); }
    .union-ad i { color: var(--brand-indigo-ink); font-size: 0.78rem; }
    .union-ad .ua-t { font-size: 0.76rem; font-weight: 700; color: var(--ink-1); }
    .union-ad .ua-w { margin-left: auto; font-size: 0.68rem; font-weight: 700; color: var(--ink-4); }
    .play .union-ad { animation: unionIn .5s cubic-bezier(.2,.7,.2,1) forwards; }
    .play .union-ad.u1{ animation-delay:.3s } .play .union-ad.u2{ animation-delay:.5s } .play .union-ad.u3{ animation-delay:.7s } .play .union-ad.u4{ animation-delay:.9s } .play .union-ad.u5{ animation-delay:1.1s }
    @keyframes unionIn { to { opacity: 1; transform: translateX(0); } }
    .union-more { font-size: 0.72rem; font-weight: 700; color: var(--brand-indigo-ink); margin-top: 4px; opacity: 0; }
    .play .union-more { animation: sacShow .4s ease 1.3s forwards; }

    /* —— Demo Empacotamento com prova em vídeo —— */
    .pack-stage { display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; align-items: stretch; }
    @media (max-width: 640px) { .pack-stage { grid-template-columns: 1fr; } }
    .pack-cam { position: relative; min-height: 210px; border-radius: 14px; overflow: hidden; border: 1px solid var(--line);
      background: radial-gradient(120% 90% at 50% 18%, rgba(99,102,241,0.16), transparent 60%), #05070F; }
    .pack-cam::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.028) 0 1px, transparent 1px 3px); pointer-events: none; }
    .pc-corner { position: absolute; width: 22px; height: 22px; border: 2px solid rgba(165,180,252,0.65); }
    .pc-corner.tl { top: 12px; left: 12px; border-right: 0; border-bottom: 0; }
    .pc-corner.tr { top: 12px; right: 12px; border-left: 0; border-bottom: 0; }
    .pc-corner.bl { bottom: 12px; left: 12px; border-right: 0; border-top: 0; }
    .pc-corner.br { bottom: 12px; right: 12px; border-left: 0; border-top: 0; }
    .pc-rec { position: absolute; top: 15px; left: 46px; display: flex; align-items: center; gap: 7px; font-size: 0.66rem; font-weight: 800; letter-spacing: 0.09em; color: #FCA5A5; z-index: 3; }
    .pc-dot { width: 9px; height: 9px; border-radius: 50%; background: #EF4444; box-shadow: 0 0 10px #EF4444; }
    .play .pc-dot { animation: pcRec 1s steps(1) infinite; }
    @keyframes pcRec { 0%,49% { opacity: 1; } 50%,100% { opacity: 0.25; } }
    .pc-time { font-variant-numeric: tabular-nums; color: rgba(255,255,255,0.62); }
    .pc-scan { position: absolute; left: 0; right: 0; height: 2px; top: 8%; opacity: 0; background: linear-gradient(90deg, transparent, rgba(110,231,183,0.9), transparent); }
    .play .pc-scan { animation: pcScan 1.7s ease-in-out 0.3s; }
    @keyframes pcScan { 0% { top: 12%; opacity: 0; } 12% { opacity: 1; } 88% { opacity: 1; } 100% { top: 78%; opacity: 0; } }
    .pc-items { position: absolute; left: 0; right: 0; bottom: 40px; display: flex; justify-content: center; gap: 12px; z-index: 2; }
    .pc-item { width: 36px; height: 36px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.16); color: #C7D2FE; font-size: 0.86rem; opacity: 0; }
    .play .pc-item { animation: pcDrop 0.6s cubic-bezier(.3,1.35,.5,1) forwards; }
    .play .pc-item.pv1 { animation-delay: 0.5s; } .play .pc-item.pv2 { animation-delay: 0.9s; } .play .pc-item.pv3 { animation-delay: 1.3s; }
    @keyframes pcDrop { 0% { opacity: 0; transform: translateY(-48px) scale(0.6) rotate(-8deg); } 60% { opacity: 1; } 100% { opacity: 1; transform: translateY(0) scale(1) rotate(0); } }
    .pc-tray { position: absolute; left: 50%; transform: translateX(-50%); bottom: 22px; width: 158px; height: 12px; border: 2px solid rgba(129,140,248,0.5); border-top: 0; border-radius: 0 0 12px 12px; }
    .pack-side { display: flex; flex-direction: column; gap: 9px; justify-content: center; }
    .pack-check { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); background: rgba(99,102,241,0.03); border-radius: 10px; font-size: 0.78rem; font-weight: 700; color: var(--ink-2); opacity: 0; transform: translateX(12px); }
    .pack-check > i:first-child { color: var(--brand-indigo-ink); width: 16px; text-align: center; font-size: 0.82rem; }
    .pk-ok { margin-left: auto; color: var(--brand-green-ink); transform: scale(0); }
    .play .pack-check { animation: packIn 0.5s ease forwards; }
    .play .pk1 { animation-delay: 0.5s; } .play .pk2 { animation-delay: 1.0s; } .play .pk3 { animation-delay: 1.6s; }
    @keyframes packIn { to { opacity: 1; transform: translateX(0); } }
    .play .pk-ok { animation: packPop 0.4s cubic-bezier(.3,1.5,.5,1) forwards; }
    .play .pk1 .pk-ok { animation-delay: 0.85s; } .play .pk2 .pk-ok { animation-delay: 1.35s; } .play .pk3 .pk-ok { animation-delay: 1.95s; }
    @keyframes packPop { to { transform: scale(1); } }
    .pack-up { margin-top: 3px; opacity: 0; }
    .play .pack-up { animation: sacShow 0.4s ease 2.1s forwards; }
    .pack-up-lbl { display: flex; align-items: center; gap: 8px; font-size: 0.72rem; font-weight: 700; color: var(--ink-2); margin-bottom: 6px; }
    .pack-up-lbl i { color: var(--brand-indigo-ink); }
    .pack-up-pct { margin-left: auto; color: var(--ink-1); font-variant-numeric: tabular-nums; }
    .pack-up-bar { height: 7px; border-radius: 50px; background: rgba(99,102,241,0.072); overflow: hidden; }
    .pack-up-fill { height: 100%; width: 0; border-radius: 50px; background: var(--grad-green); }
    .play .pack-up-fill { animation: packFill 1s cubic-bezier(.3,.7,.2,1) 2.2s forwards; }
    @keyframes packFill { to { width: 100%; } }
    .pack-done { display: inline-flex; align-items: center; gap: 9px; align-self: flex-start; margin-top: 5px; padding: 9px 14px; border-radius: 10px; background: rgba(16,185,129,0.12); border: 1px solid rgba(16,185,129,0.3); color: var(--brand-green-ink); font-size: 0.78rem; font-weight: 800; opacity: 0; transform: translateY(8px); }
    .play .pack-done { animation: sacUp 0.5s ease 3.3s forwards; }

    /* —— Demo Conciliação de repasses —— */
    .recon-stage { display: flex; flex-direction: column; gap: 8px; }
    .recon-row { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; border: 1px solid var(--line); background: rgba(99,102,241,0.03); border-radius: 9px; font-size: 0.8rem; opacity: 0; transform: translateY(8px); }
    .rc-k { color: var(--ink-2); font-weight: 600; }
    .rc-v { color: var(--ink-1); font-weight: 800; font-variant-numeric: tabular-nums; }
    .recon-row.exp { border-color: rgba(99,102,241,0.3); background: rgba(99,102,241,0.08); }
    .recon-row.exp .rc-v { color: var(--brand-indigo-ink); }
    .recon-row.got .rc-v { color: var(--danger-ink); }
    .play .recon-row { animation: sacUp 0.5s ease forwards; }
    .play .r1 { animation-delay: 0.2s; } .play .r2 { animation-delay: 0.5s; } .play .r3 { animation-delay: 0.9s; } .play .r4 { animation-delay: 1.3s; }
    .recon-flag { display: flex; align-items: center; gap: 9px; margin-top: 4px; padding: 10px 12px; border-radius: 9px; background: rgba(245,158,11,0.12); border: 1px solid rgba(245,158,11,0.35); color: var(--warn-ink); font-size: 0.76rem; font-weight: 800; opacity: 0; transform: translateY(8px); }
    .recon-flag i { color: #F59E0B; }
    .play .recon-flag { animation: sacUp 0.5s ease 1.8s forwards; }

    /* —— Demo Expedição 1-clique —— */
    .ship-stage { display: flex; flex-direction: column; gap: 14px; }
    .ship-top { display: flex; align-items: center; gap: 16px; min-height: 88px; }
    .ship-printer { flex: 0 0 auto; width: 62px; height: 52px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; color: var(--brand-indigo-ink); background: rgba(99,102,241,0.1); border: 1px solid rgba(99,102,241,0.28); position: relative; }
    .ship-printer::after { content: ''; position: absolute; bottom: -3px; left: 12px; right: 12px; height: 4px; background: rgba(99,102,241,0.35); border-radius: 3px; }
    .ship-label { width: 138px; height: 84px; background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 9px 10px; opacity: 0; transform: translateY(-88px); box-shadow: 0 14px 30px rgba(15,23,42,0.12); }
    .play .ship-label { animation: shipOut 0.7s cubic-bezier(.3,.9,.3,1) 0.4s forwards; }
    @keyframes shipOut { to { opacity: 1; transform: translateY(0); } }
    .sl-bars { height: 28px; border-radius: 2px; margin-bottom: 7px; background: repeating-linear-gradient(90deg, var(--ink-1) 0 2px, transparent 2px 5px); }
    .sl-txt { font-size: 0.64rem; font-weight: 700; color: var(--ink-2); line-height: 1.4; }
    .ship-steps { display: flex; flex-wrap: wrap; gap: 8px; }
    .ship-chip { display: inline-flex; align-items: center; gap: 7px; padding: 7px 11px; border-radius: 8px; border: 1px solid var(--line); background: rgba(99,102,241,0.03); font-size: 0.74rem; font-weight: 700; color: var(--ink-2); opacity: 0; transform: translateY(6px); }
    .ship-chip i { color: var(--brand-green-ink); }
    .play .ship-chip { animation: sacUp 0.45s ease forwards; }
    .play .sc1 { animation-delay: 1.1s; } .play .sc2 { animation-delay: 1.4s; } .play .sc3 { animation-delay: 1.7s; }

    /* —— Demo Rastreio & pós-venda —— */
    .track-stage { display: flex; flex-direction: column; gap: 16px; padding-top: 6px; }
    .track-line { position: relative; height: 3px; background: rgba(99,102,241,0.072); margin: 8px 12px 0; border-radius: 2px; }
    .track-fill { position: absolute; left: 0; top: 0; height: 100%; width: 0; background: var(--grad-primary); border-radius: 2px; }
    .play .track-fill { animation: trackFill 2.4s cubic-bezier(.4,.5,.3,1) 0.3s forwards; }
    @keyframes trackFill { to { width: 100%; } }
    .track-truck { position: absolute; top: -9px; left: 0; color: var(--brand-indigo-ink); font-size: 0.9rem; }
    .play .track-truck { animation: trackTruck 2.4s cubic-bezier(.4,.5,.3,1) 0.3s forwards; }
    @keyframes trackTruck { to { left: calc(100% - 14px); } }
    .track-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
    .track-step { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 0.72rem; font-weight: 700; color: var(--ink-4); text-align: center; }
    .track-step .td { width: 11px; height: 11px; border-radius: 50%; background: rgba(99,102,241,0.1); border: 2px solid var(--line); }
    .play .track-step { animation: trackLit 0.4s ease forwards; }
    .play .ts1 { animation-delay: 0.5s; } .play .ts2 { animation-delay: 1.1s; } .play .ts3 { animation-delay: 1.7s; } .play .ts4 { animation-delay: 2.3s; }
    @keyframes trackLit { to { color: var(--ink-1); } }
    .play .ts1 .td, .play .ts2 .td, .play .ts3 .td { animation: trackDot 0.4s ease forwards; }
    .play .ts1 .td { animation-delay: 0.5s; } .play .ts2 .td { animation-delay: 1.1s; } .play .ts3 .td { animation-delay: 1.7s; }
    .play .ts4 .td { animation: trackDotOk 0.4s ease 2.3s forwards; }
    @keyframes trackDot { to { background: #6366F1; border-color: #818CF8; box-shadow: 0 0 8px rgba(99,102,241,0.45); } }
    @keyframes trackDotOk { to { background: #059669; border-color: #34D399; box-shadow: 0 0 9px rgba(16,185,129,0.5); } }
    .track-msg { display: inline-flex; align-items: center; gap: 9px; align-self: flex-start; padding: 10px 14px; border-radius: 12px; border-top-left-radius: 3px; background: rgba(37,211,102,0.1); border: 1px solid rgba(37,211,102,0.28); color: var(--ink-1); font-size: 0.8rem; font-weight: 600; opacity: 0; transform: translateY(8px); }
    .track-msg i { color: #25D366; }
    .tm-meta { color: var(--ink-4); font-size: 0.66rem; font-weight: 600; }
    .play .track-msg { animation: sacUp 0.5s ease 1.9s forwards; }

    /* —— Selo de resultado por card —— */
    .dc-seal { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; padding: 7px 14px; border-radius: 50px; background: rgba(16,185,129,0.09); border: 1px solid rgba(16,185,129,0.28); color: var(--brand-green-ink); font-size: 0.75rem; font-weight: 800; opacity: 0; transform: translateY(8px); }
    .dc-seal i { font-size: 0.72rem; }
    .play .dc-seal { animation: sacUp 0.5s ease 2.9s forwards; }

    @media (prefers-reduced-motion: reduce) {
      .marquee { animation: none; }
      .play .nf-token, .play .nf-step, .play .nf-step i, .play .sac-in, .play .sac-typing, .play .sac-out,
      .play .score-fill, .play .price-step, .play .price-win-badge, .play .union-ad, .play .union-more,
      .play .pc-dot, .play .pc-scan, .play .pc-item, .play .pack-check, .play .pk-ok, .play .pack-up, .play .pack-up-fill, .play .pack-done,
      .play .recon-row, .play .recon-flag, .play .ship-label, .play .ship-chip, .play .track-fill, .play .track-truck, .play .track-step, .play .track-step .td, .play .track-msg { animation: none; }
      .nf-step { opacity: 1; } .score-fill { width: var(--w); } .sac-in, .sac-out { opacity: 1; transform: none; }
      .price-step { transform: rotate(45deg) scale(1); } .union-ad { opacity: 1; transform: none; } .price-win-badge, .union-more { opacity: 1; transform: none; }
      .pc-item { opacity: 1; } .pack-check { opacity: 1; transform: none; } .pk-ok { transform: scale(1); } .pack-up, .pack-done { opacity: 1; transform: none; } .pack-up-fill { width: 100%; }
      .recon-row, .recon-flag { opacity: 1; transform: none; } .ship-label { opacity: 1; transform: none; } .ship-chip { opacity: 1; transform: none; }
      .track-fill { width: 100%; } .track-step { color: var(--ink-1); } .track-step .td { background: #6366F1; border-color: #818CF8; } .ts4 .td { background: #059669; border-color: #34D399; } .track-msg { opacity: 1; transform: none; }
      .play .dc-seal { animation: none; } .dc-seal { opacity: 1; transform: none; }
    }

    /* ============ COMPARATIVO ============ */
    .compare-section { padding: 96px 24px; background: var(--canvas); position: relative; overflow: hidden; }
    .compare-section::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(var(--grid-line) 1px,transparent 1px), linear-gradient(90deg,var(--grid-line) 1px,transparent 1px); background-size: 64px 64px; pointer-events: none; }
    .compare-section .section-head { position: relative; z-index: 1; }
    .compare-section .section-sub { color: var(--ink-3); }
    .compare-wrap { position: relative; z-index: 1; max-width: 960px; margin: 40px auto 0; border: 1px solid var(--line); border-radius: 18px; overflow: hidden; background: var(--panel); box-shadow: var(--shadow-lg); }
    .compare-head, .compare-row { display: grid; grid-template-columns: 1.5fr 1fr 1.4fr; align-items: center; }
    .compare-head { padding: 15px 22px; border-bottom: 1px solid var(--line); font-size: 0.74rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }
    .ch-them { color: var(--ink-4); text-align: center; }
    .ch-us { color: var(--ink-1); text-align: center; position: relative; }
    .ch-us .ch-logo { display: inline-flex; align-items: center; gap: 7px; }
    .ch-us .ch-logo i { color: var(--brand-indigo-ink); }
    .cr-us, .ch-us { background: linear-gradient(180deg, rgba(99,102,241,0.10), rgba(99,102,241,0.05)); box-shadow: inset 1px 0 0 rgba(99,102,241,0.18), inset -1px 0 0 rgba(99,102,241,0.18); }
    .compare-row { padding: 15px 22px; border-top: 1px solid var(--line-soft); opacity: 0; transform: translateY(12px); }
    .compare-row:first-of-type { border-top: 0; }
    .cr-feat { display: flex; align-items: center; gap: 11px; font-size: 0.9rem; font-weight: 700; color: var(--ink-1); }
    .cr-feat i { color: var(--brand-indigo-ink); width: 18px; text-align: center; font-size: 0.9rem; }
    .cr-them { text-align: center; font-size: 0.82rem; color: var(--ink-3); font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
    .cr-them .x { color: var(--danger-ink); }
    .cr-us { text-align: center; font-size: 0.82rem; color: var(--ink-1); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 15px 12px; }
    .cr-us .v { color: var(--brand-green-ink); }
    .play .compare-row { animation: sacUp 0.55s cubic-bezier(.2,.7,.2,1) forwards; }
    .play .cr1 { animation-delay: 0.15s; } .play .cr2 { animation-delay: 0.27s; } .play .cr3 { animation-delay: 0.39s; } .play .cr4 { animation-delay: 0.51s; }
    .play .cr5 { animation-delay: 0.63s; } .play .cr6 { animation-delay: 0.75s; } .play .cr7 { animation-delay: 0.87s; } .play .cr8 { animation-delay: 0.99s; }
    .play .cr9 { animation-delay: 1.11s; } .play .cr10 { animation-delay: 1.23s; } .play .cr11 { animation-delay: 1.35s; } .play .cr12 { animation-delay: 1.47s; }
    .play .cr13 { animation-delay: 1.59s; } .play .cr14 { animation-delay: 1.71s; }
    @media (prefers-reduced-motion: reduce) { .play .compare-row { animation: none; } .compare-row { opacity: 1; transform: none; } }

    /* GSAP: estado inicial dos cards da vitrine (anti-flash; só quando JS confirma GSAP) */
    .gcards .demo-card { opacity: 0; transform: translateY(46px); will-change: transform, opacity; }
    .compare-cta { position: relative; z-index: 1; text-align: center; margin-top: 30px; }
    .compare-cta a { display: inline-flex; align-items: center; gap: 10px; padding: 14px 30px; border-radius: 50px; font-size: 0.97rem; font-weight: 700; color: #fff; background: var(--grad-green); box-shadow: 0 8px 28px rgba(16,185,129,0.35); transition: all var(--transition); }
    .compare-cta a:hover { transform: translateY(-2px); box-shadow: 0 12px 34px rgba(16,185,129,0.45); }
    @media (max-width: 600px) {
      .compare-head, .compare-row { grid-template-columns: 1.3fr 0.8fr 1fr; }
      .compare-head { padding: 12px 12px; font-size: 0.6rem; letter-spacing: 0.02em; }
      .compare-row { padding: 12px; }
      .cr-feat { font-size: 0.76rem; gap: 8px; }
      .cr-feat i { display: none; }
      .cr-them, .cr-us { font-size: 0.68rem; padding: 12px 4px; }
    }

    /* ===== Tabela comparativa de planos =================================
       Existe porque o card mostra o que o plano TEM, e o visitante quer saber
       o que ele PERDE ao descer um nível. Sai da mesma fonte dos cards, com a
       herança resolvida em planos_lib.php. */
    .cmp-planos { max-width: 1100px; margin: 52px auto 0; }
    .cmp-head-txt { text-align: center; margin-bottom: 22px; }
    .cmp-head-txt h3 { font-size: clamp(1.3rem, 2.4vw, 1.85rem); font-weight: 800; color: var(--ink-1); letter-spacing: -0.03em; margin-bottom: 8px; }
    .cmp-head-txt p { font-size: 0.92rem; color: var(--ink-3); }

    /* Rolagem horizontal só na tabela: em telas estreitas o resto da página
       não pode ganhar barra lateral por causa dela. */
    .cmp-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 16px; background: var(--canvas); -webkit-overflow-scrolling: touch; }
    .cmp-tab { width: 100%; border-collapse: collapse; font-size: 0.85rem; min-width: 640px; }
    .cmp-tab thead th {
      position: sticky; top: 0; z-index: 2; background: var(--canvas-soft);
      padding: 13px 12px; text-align: center; font-weight: 800; color: var(--ink-1);
      font-size: 0.82rem; border-bottom: 1px solid var(--line); white-space: nowrap;
    }
    .cmp-tab thead th.cmp-rec { text-align: left; min-width: 260px; }
    .cmp-tab thead th.is-trial { color: var(--brand-green); }
    .cmp-tab thead th.is-sob { color: var(--brand-indigo-ink); }
    .cmp-tab td { padding: 11px 12px; text-align: center; border-bottom: 1px solid var(--canvas-tint); color: var(--ink-2); vertical-align: middle; }
    .cmp-tab tr:last-child td { border-bottom: none; }
    .cmp-tab td.cmp-rec { text-align: left; font-weight: 500; line-height: 1.4; color: var(--ink-2); }
    .cmp-tab td.cmp-val { font-weight: 700; color: var(--ink-1); white-space: nowrap; }
    .cmp-tab td.cmp-sob { color: var(--brand-indigo-ink); }
    .cmp-sim { color: var(--brand-green); font-size: 0.82rem; }
    .cmp-nao { color: var(--ink-4); opacity: 0.55; }
    .cmp-tab tbody tr:hover td { background: var(--canvas-tint); }

    .cmp-area td {
      background: var(--canvas-soft); text-align: left !important; font-weight: 800;
      font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase;
      color: var(--brand-indigo-ink); padding: 10px 12px;
    }
    .cmp-area td i { margin-right: 7px; opacity: 0.85; }
    .cmp-area:hover td { background: var(--canvas-soft) !important; }

    /* Tier de contato. A Olist tem um "sob consulta" e nós não tínhamos —
       é o sinal mais barato de que a plataforma atende operação grande. */
    .cmp-sob-medida {
      margin-top: 18px; padding: 22px 24px; border-radius: 16px;
      border: 1px solid rgba(99,102,241,0.22); background: rgba(99,102,241,0.06);
      display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
    }
    .csm-eyebrow { font-size: 0.72rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; color: var(--brand-indigo-ink); margin-bottom: 6px; }
    .csm-eyebrow i { margin-right: 6px; }
    .cmp-sob-medida h4 { font-size: 1.1rem; font-weight: 800; color: var(--ink-1); margin-bottom: 5px; letter-spacing: -0.02em; }
    .cmp-sob-medida p { font-size: 0.87rem; color: var(--ink-3); line-height: 1.55; max-width: 620px; }
    .btn-csm {
      flex-shrink: 0; display: inline-flex; align-items: center; gap: 9px; padding: 13px 22px;
      border-radius: 12px; background: var(--grad-primary); color: #fff; font-weight: 700;
      font-size: 0.9rem; text-decoration: none; box-shadow: 0 6px 20px rgba(99,102,241,0.28);
      transition: transform .15s, box-shadow .15s;
    }
    .btn-csm:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 10px 28px rgba(99,102,241,0.34); }
    @media (max-width: 640px) { .cmp-sob-medida { flex-direction: column; align-items: flex-start; } .btn-csm { width: 100%; justify-content: center; } }
