
  :root{
    --bg:#ffffff;
    --bg-2:#f8fafc;
    --surface:#ffffff;
    --surface-2:#f1f5f9;
    --border:#e2e8f0;
    --border-strong:#cbd5e1;
    --text:#0f172a;
    --text-dim:#475569;
    --text-mute:#64748b;
    --primary:#3b82f6;
    --primary-2:#2563eb;
    --primary-soft:#eff6ff;
    --primary-glow:rgba(59,130,246,.18);
    --accent:#0ea5e9;
    --success:#10b981;
    --gradient:linear-gradient(135deg,#3b82f6 0%,#0ea5e9 100%);
  }
  *{box-sizing:border-box}

  /* Fallback com as metricas da fonte real.
     Sem isto, quando a webfont chega o texto remede e a pagina inteira se
     reacomoda: era 0,253 de CLS no celular, num unico deslocamento aos 2,7 s
     (o <h1> encolhia e tudo subia 36px). Com ascent/descent/size-adjust
     calibrados, a fonte de sistema ocupa o MESMO espaco que a Inter ocupara,
     e a troca deixa de mover qualquer coisa.
     Os valores sao os do calculo do Next.js para Inter/Roboto sobre Arial.
     Se Arial nao existir, a face e ignorada e a pilha segue para a proxima —
     degradacao segura. */
  @font-face{
    font-family:"Inter Fallback";
    src:local("Arial"),local("Liberation Sans"),local("Helvetica");
    ascent-override:90%; descent-override:22.43%; line-gap-override:0%;
    size-adjust:107.12%;
  }
  @font-face{
    font-family:"Roboto Fallback";
    src:local("Arial"),local("Liberation Sans"),local("Helvetica");
    ascent-override:92.67%; descent-override:24.39%; line-gap-override:0%;
    size-adjust:100.37%;
  }
  html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Inter','Inter Fallback',ui-sans-serif,system-ui,-apple-system,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit}
  .container{max-width:1200px;margin:0 auto;padding:0 clamp(16px,4vw,24px)}

  /* Header espelhado do header da SPA (mesma cor, medidas e comportamento).
     Referencia: bundle React — bg #0040C1, logo 40px, pilulas individuais no
     nav, botao de login e entao o menu, com corte em 768px. */
  .hdr {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 50;
    /* Vidro jateado: o azul da marca a 82% deixa passar 18% do que rola por
       baixo. 82% e o piso, nao uma preferencia — abaixo disso o texto de 12px
       do nav cai de 4,5:1 sobre as secoes de fundo branco. */
    background: rgba(26,26,26,.82);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    /* Fio transparente, nao removido: manter 1px preserva a altura da barra
       (e o alinhamento de tudo que depende dela). */
    border-bottom: 1px solid transparent;
    font-family: Roboto, "Roboto Fallback", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  }
  .hdr-inner {
    max-width: 1280px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 24px;
  }
  .hdr-logo img { height: 65px; width: auto; object-fit: contain; filter: brightness(0) invert(1); }

  /* Menu identico ao da pagina inicial. As medidas abaixo foram lidas do
     cabecalho da SPA em producao, nao estimadas: contentor-pilula unico de
     46px com padding 6px e raio 999px, itens de 13px com padding 8px 18px.
     Antes aqui eram pilulas soltas, uma por link, de 12px e raio 12px. */
  .hdr-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    -webkit-backdrop-filter: blur(22px) saturate(140%);
    backdrop-filter: blur(22px) saturate(140%);
  }
  .hdr-nav a {
    padding: 8px 18px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,.92);
    background: transparent;
    border: none;
    border-radius: 999px;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transition: background .2s, color .2s;
  }
  .hdr-nav a:hover { background: rgba(255,255,255,.14); color: #fff; }
  .hdr-nav a.active { background: rgba(255,255,255,.20); color: #fff; }

  /* Login e menu no mesmo grupo, nesta ordem, como na SPA */
  .hdr-acoes { display: flex; align-items: center; gap: 12px; }

  .hdr-cta {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    background: #fff;
    color: #0040C1;
    border-radius: 12px;
    font-size: 10px;
    font-weight: 700;
    line-height: 15px;
    text-transform: uppercase;
    letter-spacing: 0.025em;
    white-space: nowrap;
    transition: background .2s;
  }
  .hdr-cta:hover { background: #f3f4f6; }
  /* Area de toque de 44px sem alterar o tamanho visivel do botao */
  .hdr-cta::after { content: ""; position: absolute; left: 0; right: 0; top: 50%;
    transform: translateY(-50%); height: 44px; }

  /* Menu de telas estreitas: details nativo, sem JavaScript e acessivel por
     teclado. O painel ocupa a largura do header, como o da SPA. */
  .hdr-menu { display: none; }
  .hdr-menu > summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: -6px 0;
    border-radius: 8px;
    color: #fff;
    transition: background .2s;
  }
  .hdr-menu > summary::-webkit-details-marker { display: none; }
  .hdr-menu > summary:hover,
  .hdr-menu[open] > summary { background: rgba(255,255,255,.10); }
  .hdr-menu-painel {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 60;
    /* O painel cobre conteudo qualquer, entao fica mais fechado que a barra. */
    background: rgba(26,26,26,.95);
    -webkit-backdrop-filter: saturate(180%) blur(14px);
    backdrop-filter: saturate(180%) blur(14px);
    border-top: 1px solid rgba(255,255,255,.10);
    padding: 16px 24px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .hdr-menu-painel a {
    display: block;
    width: 100%;
    text-align: left;
    padding: 12px 16px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.025em;
    text-transform: uppercase;
    color: #fff;
    background: rgba(255,255,255,.10);
    border-radius: 12px;
    text-decoration: none;
    transition: background .2s;
  }
  .hdr-menu-painel a:hover,
  .hdr-menu-painel a.active { background: rgba(255,255,255,.20); }

  /* 900px, nao 767: os rotulos deste site (Recursos, Aplicativo, Seguranca,
     Migracao, Planos, Perguntas) ocupam 697px de menu, contra 594px dos
     rotulos de produto do site anterior. A 768px o cabecalho transbordava
     58px. Acima de 900 o menu cabe; abaixo, assume o botao sanduiche. */
  @media (max-width:900px){
    .hdr-nav { display: none; }
    .hdr-menu { display: block; }
  }

  /* Sem backdrop-filter (Firefox com a flag desligada, WebView antiga) o
     translucido viraria texto branco sobre conteudo. Volta ao azul solido. */
  @supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    .hdr { background: #1a1a1a; }
    .hdr-menu-painel { background: #1a1a1a; }
  }


  /* O cabecalho de vidro, no topo da pagina, nao fica sobre o hero — fica
     ACIMA dele, sobre o fundo do body. Com o body branco o vidro compunha
     rgb(67,67,67) e saia mais claro que o hero logo abaixo. Com o body escuro
     ele compoe rgb(25,25,25) e os dois casam. Nao dava para resolver com uma
     faixa em z-index:-1: essa camada e pintada ANTES do fundo do body. */
  body{background:#1a1a1a}
  /* Estas duas secoes nao declaravam fundo e viviam do branco do body. */
  #comecar,#migracao{background:var(--bg)}

  /* Foco de teclado: a página nao tinha NENHUM estilo de foco. */
  a:focus-visible,button:focus-visible,summary:focus-visible,
  input:focus-visible,[tabindex]:focus-visible{
    outline:3px solid #93c5fd;outline-offset:2px;border-radius:8px}

  @media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
      transition-duration:.01ms!important;scroll-behavior:auto!important}
  }

  /* Hero — azul vibrante igual à home */
  /* Hero cinza, na mesma chapada das secoes escuras (#1a1a1a). O gradiente
     azul e o brilho radial sairam: o cinza aqui e plano de proposito, igual
     ao que ja vale em .ia-sec, .vc-sec e .sec-sec. */
  .hero{position:relative;overflow:hidden;padding:60px 0 100px;background:#1a1a1a;color:#fff}
  .hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:60px;align-items:center}
  @media (max-width:960px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:40px;text-align:center}}
  .kicker{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase}
  .hero h1{font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.05;font-weight:800;letter-spacing:-.025em;margin:20px 0 18px;color:#fff}
  .hero h1 .accent{color:#bfdbfe}
  .hero p.lead{font-size:1.1rem;color:rgba(255,255,255,.88);max-width:540px;margin:0 0 32px}
  .hero p.lead strong{color:#fff}
  @media (max-width:960px){.hero p.lead{margin-left:auto;margin-right:auto}}
  .hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
  @media (max-width:960px){.hero-ctas{justify-content:center}}
  .btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;border-radius:10px;font-weight:600;font-size:15px;cursor:pointer;border:0;transition:all .2s;text-decoration:none}
  .btn-primary{background:#fff;color:var(--primary-2);box-shadow:0 6px 18px rgba(0,0,0,.18)}
  .btn-primary:hover{transform:translateY(-2px);background:#f8fafc;box-shadow:0 10px 28px rgba(0,0,0,.24)}
  .btn-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
  .btn-ghost:hover{background:rgba(255,255,255,.1);border-color:#fff}
  .hero-meta{margin-top:18px;color:rgba(255,255,255,.78);font-size:13px}
  .hero-meta strong{color:#fff}

  /* Hero visual */
  .hero-visual{position:relative;aspect-ratio:4/3;border-radius:20px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(0,0,0,.18);display:flex;align-items:center;justify-content:center;overflow:hidden;backdrop-filter:blur(8px);min-width:0;max-width:100%}
  /* O brilho vaza 30% para fora da caixa. No hero isso e contido pelo
     overflow-x:hidden da secao. O bloco de migracao reaproveita a mesma classe
     como envolucro nu, com overflow:visible, e ali o vazamento empurrava a
     pagina 56px para o lado no celular. Sem fundo, o brilho nao pinta nada. */
  .migration .hero-visual::before{content:none}
  .hero-visual::before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.18),transparent 60%);pointer-events:none}
  .hero-placeholder{position:relative;z-index:1;text-align:center;color:rgba(255,255,255,.85);font-size:13px;padding:24px}
  .hero-placeholder .ico{width:64px;height:64px;margin:0 auto 12px;border-radius:16px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;box-shadow:0 12px 32px rgba(0,0,0,.18)}
  .hero-placeholder .ico svg{width:32px;height:32px;color:#fff}

  /* Sections */
  section{padding:clamp(48px,8vw,90px) 0;position:relative}
  .section-head{text-align:center;max-width:720px;margin:0 auto 56px}
  .section-eyebrow{display:inline-block;padding:6px 14px;border-radius:999px;background:var(--primary-soft);border:1px solid #bfdbfe;color:#1d4ed8;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin-bottom:18px}
  .section-head h2{font-size:clamp(1.8rem,3.4vw,2.6rem);font-weight:800;letter-spacing:-.02em;line-height:1.15;margin:0 0 16px;color:var(--text)}
  .section-head p{color:var(--text-dim);font-size:1.05rem;margin:0}

  /* Plans */
  /* movida para o fim da pagina: alterna com o suporte e o CTA, ambos bg-2 */
  .plans{background:var(--bg)}
  .billing-toggle{background:#fff;border:1px solid var(--border);border-radius:12px;padding:5px;gap:4px;margin:0 auto 40px;display:flex;width:fit-content}
  .billing-toggle button{padding:10px 22px;border-radius:8px;background:transparent;color:var(--text-dim);border:0;cursor:pointer;font-size:14px;font-weight:600;transition:all .2s;position:relative}
  .billing-toggle button.active{background:var(--primary);color:#fff}
  .billing-toggle .save{position:absolute;top:-11px;right:-6px;background:var(--success);color:#fff;font-size:12px;font-weight:700;padding:2px 6px;border-radius:6px;letter-spacing:.05em}

  /* Cinco cartoes lado a lado ficavam estreitos demais para ler. Tres por fila,
     e a fila de baixo com os dois restantes centralizada — por isso flex e nao
     grid: grid alinharia os dois a esquerda. */
  .plan-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:20px;
    max-width:1060px;margin:0 auto}
  .plan-grid > .plan{flex:0 0 calc(33.333% - 14px);max-width:340px}
  @media (max-width:900px){
    .plan-grid{max-width:480px}
    .plan-grid > .plan{flex:0 0 100%;max-width:none}
  }
  @media (min-width:901px){
    .plan{padding:26px 20px}
    .plan-storage{font-size:1.42rem}
    .plan-features li{font-size:13px;gap:9px}
    .plan-price .amount{font-size:2.15rem}
    /* com cinco cartoes lado a lado, o que varia de altura desalinha a fileira
       inteira: o nome fica em uma linha e a descricao ganha altura fixa */
    .plan-name{white-space:nowrap;font-size:11.5px;letter-spacing:.1em}
    .plan-desc{min-height:5.2em;font-size:12.5px}
    .plan-price-note{min-height:2.8em}
    .plan.featured::before{font-size:10.5px;letter-spacing:.1em;white-space:nowrap;padding:5px 11px}
  }
  .plan-price{flex-wrap:nowrap}
  .plan-price .period{white-space:nowrap}
  .plan{background:#fff;border:1px solid var(--border);border-radius:18px;padding:32px 28px;display:flex;flex-direction:column;position:relative;transition:transform .25s,border-color .25s,box-shadow .25s;box-shadow:0 1px 3px rgba(15,23,42,.04)}
  .plan:hover{transform:translateY(-4px);border-color:var(--border-strong);box-shadow:0 20px 40px rgba(15,23,42,.08)}
  .plan.featured{border:2px solid var(--primary);box-shadow:0 20px 50px rgba(59,130,246,.18)}
  .plan.featured::before{content:"MAIS POPULAR";position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--primary);color:#fff;font-size:12px;font-weight:700;letter-spacing:.15em;padding:5px 14px;border-radius:999px}
  .plan-name{font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--primary-2);margin:0 0 8px}
  .plan-storage{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin:0 0 6px;color:var(--text)}
  .plan-desc{color:var(--text-mute);font-size:13px;margin:0 0 24px;min-height:36px}
  .plan-price{display:flex;align-items:baseline;gap:6px;margin:0 0 4px}
  .plan-price .currency{font-size:1rem;color:var(--text-dim);font-weight:600}
  .plan-price .amount{font-size:2.6rem;font-weight:800;letter-spacing:-.03em;color:var(--text)}
  .plan-price .period{color:var(--text-mute);font-size:13px}
  .plan-price-note{color:var(--text-mute);font-size:12px;margin:0 0 24px}
  .plan-features{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:12px;flex:1}
  .plan-features li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--text-dim)}
  .plan-features svg{flex:0 0 18px;width:18px;height:18px;color:var(--success);margin-top:1px}
  .plan-cta{width:100%;padding:13px;border-radius:10px;background:#fff;color:var(--text);border:1px solid var(--border-strong);font-weight:600;font-size:14px;cursor:pointer;transition:all .2s}
  .plan-cta:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-2)}
  .plan.featured .plan-cta{background:var(--primary);border-color:var(--primary);color:#fff}
  .plan.featured .plan-cta:hover{background:var(--primary-2);border-color:var(--primary-2);color:#fff}
  .plans-footnote{text-align:center;color:var(--text-mute);font-size:12px;margin-top:32px;max-width:780px;margin-left:auto;margin-right:auto}

  /* Configurator */
  .config-card{max-width:780px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:20px;padding:40px;box-shadow:0 10px 40px rgba(15,23,42,.06)}
  .config-row{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:28px}
  @media (max-width:680px){.config-row{grid-template-columns:1fr}}
  .config-label{font-size:12px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--text-mute);margin-bottom:10px}
  .config-select{width:100%;padding:13px 16px;background:#fff;border:1px solid var(--border-strong);border-radius:10px;color:var(--text);font-size:15px;font-weight:600;cursor:pointer;font-family:inherit}
  .config-counter{display:flex;align-items:center;background:#fff;border:1px solid var(--border-strong);border-radius:10px;overflow:hidden}
  .config-counter button{width:48px;height:48px;background:transparent;color:var(--text);border:0;font-size:20px;font-weight:700;cursor:pointer;transition:background .15s}
  .config-counter button:hover{background:var(--surface-2)}
  .config-counter input{flex:1;text-align:center;background:transparent;color:var(--text);border:0;font-size:16px;font-weight:700;outline:none;width:100%}
  .config-total{display:flex;justify-content:space-between;align-items:center;padding:24px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:24px}
  .config-total-label{color:var(--text-dim);font-size:14px}
  .config-total-value{font-size:2rem;font-weight:800;letter-spacing:-.02em;color:var(--text)}
  .config-total-value small{font-size:.85rem;color:var(--text-mute);font-weight:500;margin-left:6px}

  /* Compare table */
  .compare{background:#fff}

  /* Steps */
  .steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;max-width:1100px;margin:0 auto}
  @media (max-width:900px){.steps-grid{grid-template-columns:1fr}}
  .step{position:relative;padding:36px 28px;background:#fff;border:1px solid var(--border);border-radius:16px;transition:border-color .25s,transform .25s;box-shadow:0 1px 3px rgba(15,23,42,.04)}
  .step:hover{border-color:var(--primary);transform:translateY(-4px)}
  .step-num{position:absolute;top:-20px;left:28px;width:48px;height:48px;border-radius:12px;background:var(--primary);display:flex;align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;color:#fff;box-shadow:0 8px 20px var(--primary-glow)}
  .step h3{margin:16px 0 12px;font-size:1.15rem;font-weight:700;color:var(--text)}
  .step p{color:var(--text-dim);margin:0;font-size:14px}

  /* Abas. O componente e reusado em mais de um lugar da pagina, entao tudo aqui
     e escopado por .tabs e o JS resolve os alvos dentro do proprio grupo. */
  .tabs{max-width:1100px;margin:0 auto}
  .tab-buttons{display:flex;gap:6px;background:#fff;border:1px solid var(--border);
    border-radius:14px;padding:6px;width:fit-content;max-width:100%;
    margin:0 auto 32px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
  .tab-buttons::-webkit-scrollbar{display:none}
  .tab-buttons button{flex:0 0 auto;padding:12px 22px;background:transparent;
    color:var(--text-dim);border:0;border-radius:999px;cursor:pointer;font-size:14px;
    font-weight:600;transition:background .2s,color .2s;font-family:inherit;
    white-space:nowrap;display:inline-flex;align-items:center;gap:9px}
  .tab-buttons button:hover{color:var(--text)}
  .tab-buttons button[aria-selected="true"]{background:var(--primary);color:#fff}
  .tab-buttons button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
  .tab-ico{width:22px;height:22px;border-radius:6px;flex:0 0 22px;
    display:flex;align-items:center;justify-content:center}
  .tab-ico svg{width:13px;height:13px;color:#fff}
  @media (max-width:700px){
    .tab-buttons{margin-bottom:24px;padding:5px;border-radius:12px}
    .tab-buttons button{padding:10px 15px;font-size:13px}
  }
  .tab-panel{padding:48px 0;max-width:700px;margin:0 auto;text-align:center}
  /* Sem JavaScript nao ha como trocar de aba, entao os paineis ficam todos
     visiveis: o atributo hidden so passa a valer quando o script confirma que
     rodou. Assim nenhum conteudo fica inalcancavel. */
  html.com-js .tab-panel[hidden]{display:none}
  .tab-panel[hidden]{display:block}
  html:not(.com-js) .tab-buttons{display:none}
  .tab-panel h3{font-size:1.8rem;font-weight:800;letter-spacing:-.02em;margin:0 0 18px;color:var(--text)}
  .tab-panel p{color:var(--text-dim);font-size:1.1rem;line-height:1.6;margin:0 0 32px}
  .tab-visual{aspect-ratio:16/9;border-radius:20px;background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;transition:transform 0.3s ease,box-shadow 0.3s ease}
  .tab-visual:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,0.12)}
  .tab-visual .placeholder-icon{position:relative;z-index:1;width:96px;height:96px;border-radius:24px;background:var(--primary);display:flex;align-items:center;justify-content:center;box-shadow:0 16px 40px var(--primary-glow)}
  .tab-visual .placeholder-icon svg{width:48px;height:48px;color:#fff}

  /* Antispam highlight */
  .antispam{background:var(--bg-2);position:relative;overflow:hidden}
  /* Eram cinco paragrafos empilhados sem quebra: o leitor nao achava onde uma
     camada terminava e a outra comecava. Agora cada camada e um bloco com
     numero e titulo, e o que nao e camada saiu da sequencia. */
  .as-camadas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;
    max-width:1100px;margin:0 auto}
  @media (max-width:900px){.as-camadas{grid-template-columns:minmax(0,1fr)}}
  .as-camada{background:#fff;border:1px solid var(--border);border-radius:16px;
    padding:26px 24px;box-shadow:0 1px 3px rgba(15,23,42,.04)}
  .as-num{display:inline-flex;align-items:center;gap:9px;margin-bottom:14px;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;
    font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--text-mute)}
  .as-num b{width:26px;height:26px;border-radius:8px;background:#DB0000;color:#fff;
    display:flex;align-items:center;justify-content:center;font-family:inherit;
    font-size:12.5px;font-weight:700;letter-spacing:0}
  .as-camada h3{margin:0 0 9px;font-size:16.5px;font-weight:700;color:var(--text);
    letter-spacing:-.01em}
  .as-camada p{margin:0;font-size:14.5px;line-height:1.6;color:var(--text-dim)}

  .as-extras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;
    max-width:1100px;margin:20px auto 0}
  @media (max-width:900px){.as-extras{grid-template-columns:minmax(0,1fr)}}
  .as-extra{background:transparent;border:1px dashed var(--border-strong);
    border-radius:16px;padding:24px 22px}
  .as-extra h4{margin:0 0 8px;font-size:15px;font-weight:700;color:var(--text)}
  .as-extra p{margin:0;font-size:14px;line-height:1.6;color:var(--text-dim)}

  .antispam .feat-pills{display:flex;flex-wrap:wrap;gap:10px;margin:28px auto 0;
    max-width:1100px;justify-content:center}
  .antispam .feat-pills span{padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--border);font-size:13px;color:var(--text-dim)}

  /* Migration / why */
  .why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1100px;margin:0 auto}
  @media (max-width:900px){.why-grid{grid-template-columns:1fr}}
  .why-card{padding:36px 28px;background:#fff;border:1px solid var(--border);border-radius:16px;transition:border-color .25s,transform .25s;box-shadow:0 1px 3px rgba(15,23,42,.04)}
  .why-card:hover{border-color:var(--primary);transform:translateY(-4px)}
  .why-icon{width:52px;height:52px;border-radius:13px;background:var(--primary-soft);border:1px solid #bfdbfe;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
  .why-icon svg{width:26px;height:26px;color:var(--primary-2)}
  .why-card h3{margin:0 0 10px;font-size:1.2rem;font-weight:700;color:var(--text)}
  .why-card p{color:var(--text-dim);margin:0;font-size:14px}

  .migration{background:var(--primary-soft);border:1px solid #bfdbfe;border-radius:24px;padding:56px;max-width:1100px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}
  @media (max-width:900px){.migration{grid-template-columns:1fr;text-align:center;padding:40px 28px}}
  @media (max-width:900px){
    .migration > div, .migration .hero-visual{min-width:0}
    .migration .hero-visual > div{flex-direction:column; gap:1rem; align-items:stretch}
  }
  .migration h2{font-size:clamp(1.6rem,2.6vw,2.1rem);font-weight:800;margin:0 0 14px;letter-spacing:-.02em;color:var(--text)}
  .migration p{color:var(--text-dim);margin:0 0 24px}
  .migration .btn-primary{display:inline-flex}

  /* Final CTA */
  .final-cta{text-align:center;background:var(--bg-2)}
  .final-cta h2{font-size:clamp(2rem,4vw,3rem);font-weight:800;letter-spacing:-.02em;margin:0 0 18px;color:var(--text)}
  .final-cta p{color:var(--text-dim);font-size:1.1rem;max-width:560px;margin:0 auto 32px}

  /* Footer */
  footer{background:#fff;border-top:1px solid var(--border);padding:40px 0;color:var(--text-mute);font-size:13px;text-align:center}
  footer .container{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
  @media (max-width:600px){footer .container{justify-content:center;text-align:center}}

  /* Lightbox Gallery Overlay */
  .hwx-lightbox {
    display: none;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(9, 13, 26, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s ease;
  }
  .hwx-lightbox.active {
    display: flex;
    opacity: 1;
  }
  .hwx-lightbox.zoomed-container {
    align-items: flex-start;
    justify-content: flex-start;
    padding: 20px;
  }
  .hwx-lightbox-img {
    max-width: 90%;
    max-height: 85%;
    border-radius: 12px;
    box-shadow: 0 25px 50px -12px rgba(0,0,0,0.5);
    border: 1px solid rgba(255,255,255,0.1);
    transform: scale(0.95);
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  .hwx-lightbox.active .hwx-lightbox-img {
    transform: scale(1);
  }
  .hwx-lightbox-close {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 48px;
    min-height: 48px;
    border-radius: 12px;
    background: rgba(15,23,42,.72);
    color: rgba(255,255,255,0.92);
    font-size: 32px;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s, background 0.2s;
    line-height: 1;
  }
  .hwx-lightbox-close:hover {
    color: #fff;
  }
  .tab-visual, .hero-visual img {
    cursor: pointer;
  }

  /* Gallery Showcase Section */
  .gallery-sec {
    background: #ffffff;
    padding: 90px 0;
    border-top: 1px solid var(--border);
  }
  .gallery-grid {
    display: grid;
    grid-template-columns: 0.92fr 1.08fr;
    gap: 48px;
    align-items: start;
    max-width: 1100px;
    margin: 0 auto;
  }
  @media (max-width: 767px) {
    .gallery-grid {
      grid-template-columns: 1fr;
      gap: 28px;
    }
    .gallery-display { position: static !important; }
  }
  .gallery-display {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 20px 45px rgba(15, 23, 42, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    order: 2;
    position: sticky;
    top: 100px;
  }
  .browser-bar {
    background: var(--surface-2);
    border-bottom: 1px solid var(--border);
    padding: 12px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
  }
  .browser-dots {
    display: flex;
    gap: 6px;
  }
  .browser-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
  }
  .browser-dot.red { background: #ef4444; }
  .browser-dot.yellow { background: #f59e0b; }
  .browser-dot.green { background: #10b981; }
  .browser-url {
    background: #ffffff;
    border: 1px solid var(--border-strong);
    border-radius: 6px;
    padding: 4px 14px;
    font-size: 11px;
    color: var(--text-mute);
    flex: 1;
    text-align: left;
    font-family: monospace;
    user-select: none;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .gallery-preview-wrapper {
    position: relative;
    aspect-ratio: 16/9;
    background: var(--surface-2);
    overflow: hidden;
    cursor: zoom-in;
  }
  .gallery-preview-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease, opacity 0.25s ease-in-out;
  }
  .gallery-preview-wrapper:hover img {
    transform: scale(1.02);
  }
  .gallery-zoom-hint {
    position: absolute;
    bottom: 14px;
    right: 14px;
    background: rgba(15, 23, 42, 0.78);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #ffffff;
    font-size: 11px;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 6px;
    pointer-events: none;
    transition: opacity 0.2s;
    border: 1px solid rgba(255, 255, 255, 0.08);
  }
  .gallery-nav {
    display: flex;
    flex-direction: column;
    gap: 12px;
    order: 1;
  }
  .gallery-nav::-webkit-scrollbar {
    width: 6px;
  }
  .gallery-nav::-webkit-scrollbar-track {
    background: transparent;
  }
  .gallery-nav::-webkit-scrollbar-thumb {
    background: var(--border-strong);
    border-radius: 4px;
  }
  .gallery-card {
    background: #ffffff;
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 20px;
    cursor: pointer;
    text-align: left;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
  }
  .gallery-card:hover {
    border-color: var(--border-strong);
    transform: translateX(4px);
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.03);
  }
  .gallery-card.active {
    border-color: var(--primary);
    background: var(--primary-soft);
    box-shadow: 0 8px 24px var(--primary-glow);
  }
  .gallery-card-title {
    font-size: 14.5px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: color 0.2s;
  }
  .gallery-card-title svg {
    width: 18px;
    height: 18px;
    color: var(--text-mute);
    transition: color 0.2s;
  }
  .gallery-card-desc {
    font-size: 13px;
    color: var(--text-dim);
    line-height: 1.5;
  }
  .gallery-card.active .gallery-card-title {
    color: var(--primary-2);
  }
  .gallery-card.active .gallery-card-title svg {
    color: var(--primary-2);
  }
  
  
  .hwx-lightbox-img.zoomed {
    max-width: none;
    max-height: none;
    width: auto;
    height: min(140vh, 200vw);
    transform: none !important;
    cursor: zoom-out;
    margin: auto;
  }


  .cu-inbox-shot{max-width:1040px;margin:0 auto;border-radius:14px;overflow:hidden;border:1px solid var(--border);box-shadow:0 20px 50px rgba(15,23,42,.12);background:#fff;position:relative;cursor:zoom-in;transition:transform .25s,box-shadow .25s}
  .cu-inbox-shot:hover{transform:translateY(-4px);box-shadow:0 28px 60px rgba(15,23,42,.18)}
  .cu-inbox-bar{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#f1f5f9;border-bottom:1px solid var(--border)}
  .cu-inbox-bar .d{width:11px;height:11px;border-radius:50%;flex:0 0 11px}
  .cu-inbox-bar .d.r{background:#ff5f57}
  .cu-inbox-bar .d.y{background:#febc2e}
  .cu-inbox-bar .d.g{background:#28c840}
  .cu-inbox-bar .u{margin-left:10px;font-size:12px;color:var(--text-mute);background:#fff;border:1px solid var(--border);border-radius:6px;padding:3px 12px}
  .cu-inbox-shot img.hwx-zoomable{display:block;width:100%;height:auto}
  .cu-inbox-hint{position:absolute;bottom:16px;right:16px;display:inline-flex;align-items:center;gap:6px;background:rgba(15,23,42,.80);color:#fff;font-size:12px;font-weight:600;padding:7px 12px;border-radius:8px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none}
  .cu-inbox-hint svg{width:14px;height:14px}


  .ia-sec{background:#1a1a1a;color:#fff;position:relative;overflow:hidden}
  
  .ia-sec .container{position:relative;z-index:1}
  .ia-sec .section-eyebrow{background:rgba(168,85,247,.14);border-color:rgba(168,85,247,.35);color:#d8b4fe}
  .ia-sec .section-head h2{color:#fff}
  .ia-sec .section-head p{color:rgba(255,255,255,.75)}
  .ia-badge{display:inline-flex;align-items:center;gap:8px;margin:0 auto 16px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:600}
  .ia-badge .dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.18)}
  .ia-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto}
  @media (max-width:900px){.ia-grid{grid-template-columns:1fr;max-width:480px}}
  @media (max-width:900px){.support-grid{grid-template-columns:1fr !important;max-width:480px}}
  .ia-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:26px 24px;transition:border-color .25s,transform .25s,background .25s}
  .ia-card:hover{transform:translateY(-4px);border-color:rgba(168,85,247,.5);background:rgba(255,255,255,.06)}
  .ia-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#4f4f4f;margin-bottom:16px}
  .ia-ico svg{color:#fff;width:24px;height:24px;color:#fff}
  .ia-card h3{margin:0 0 10px;font-size:1.12rem;font-weight:700;color:#fff}
  .ia-card p{margin:0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.72)}
  .ia-note{max-width:920px;margin:36px auto 0;padding:18px 22px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.78);font-size:14px;text-align:center}
  .ia-note strong{color:#fff}

  /* Administração do domínio */
  .admin-sec{background:var(--bg-2)}
  .admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:24px;max-width:1100px;margin:0 auto}
  .admin-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:border-color .25s,transform .25s,box-shadow .25s}
  .admin-card:hover{transform:translateY(-4px);border-color:#bfdbfe;box-shadow:0 18px 40px rgba(15,23,42,.08)}
  .admin-shot{display:block;background:#0b152d;border-bottom:1px solid var(--border);cursor:zoom-in;overflow:hidden}
  .admin-shot img{display:block;width:100%;height:auto}
  .admin-card .body{padding:22px 22px 26px}
  .admin-tag{display:inline-block;margin-bottom:12px;padding:4px 10px;border-radius:999px;background:var(--primary-soft);border:1px solid #bfdbfe;color:#1d4ed8;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
  .admin-card h3{margin:0 0 8px;font-size:1.1rem;font-weight:700;color:var(--text)}
  .admin-card p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}

  /* App no celular (molduras de telefone) */
  .appsec{background:#fff}
  .appshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:30px;max-width:920px;margin:0 auto}
  /* Em uma coluna cada mockup de 1080x2400 e desenhado com 358px de largura por
     688 de altura: as tres grades custavam 4.354px no celular. Em duas colunas
     nada e escondido e a pagina encurta ~2.800px. */
  @media (max-width:700px){
    .appshot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  }
  .appshot{text-align:center}
  .phone{width:100%;max-width:230px;margin:0 auto;background:#0b152d;border-radius:30px;padding:8px;box-shadow:0 22px 48px rgba(15,23,42,.20);border:1px solid rgba(0,0,0,.18)}
  .phone img{display:block;width:100%;height:auto;border-radius:22px;background:#fff;cursor:zoom-in}
  .appshot h3{margin:20px 0 6px;font-size:1.05rem;font-weight:700;color:var(--text)}
  .appshot p{margin:0 auto;max-width:250px;font-size:13.5px;line-height:1.55;color:var(--text-dim)}


  .feat2{background:#fff}
  .feat2-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;max-width:1100px;margin:0 auto}
  @media (max-width:900px){.feat2-grid{grid-template-columns:1fr;max-width:560px}}
  .feat2-col{background:var(--bg-2);border:1px solid var(--border);border-radius:18px;padding:30px 28px}
  .feat2-col h3{display:flex;align-items:center;gap:12px;margin:0 0 20px;font-size:1.25rem;font-weight:800;color:var(--text)}
  .feat2-col h3 .ic{width:42px;height:42px;border-radius:11px;background:var(--primary);display:flex;align-items:center;justify-content:center;flex:0 0 42px}
  .feat2-col h3 .ic svg{width:22px;height:22px;color:#fff}
  .feat2-group{margin:0 0 16px}
  .feat2-group:last-child{margin-bottom:0}
  .feat2-group h4{margin:0 0 5px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--primary-2)}
  .feat2-group p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}


  .cal-sec{background:var(--bg)}
  .cal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1100px;margin:0 auto}
  @media (max-width:900px){.cal-grid{grid-template-columns:1fr;max-width:480px}}
  .cal-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px 24px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:border-color .25s,transform .25s,box-shadow .25s}
  .cal-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 12px 30px rgba(59,130,246,.12)}
  .cal-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--gradient);margin-bottom:16px}
  .cal-ico svg{width:24px;height:24px;color:#fff}
  .cal-card h3{margin:0 0 10px;font-size:1.12rem;font-weight:700;color:var(--text)}
  .cal-card p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}
  .cal-tag{display:inline-block;margin-bottom:14px;padding:5px 12px;border-radius:999px;background:var(--primary-soft);color:var(--primary-2);font-size:12px;font-weight:700}


  .vc-sec{background:#1a1a1a;color:#fff;position:relative;overflow:hidden}
  
  .vc-sec .container{position:relative;z-index:1}
  .vc-sec .section-eyebrow{background:rgba(14,165,233,.14);border-color:rgba(14,165,233,.35);color:#7dd3fc}
  .vc-sec .section-head h2{color:#fff}
  .vc-sec .section-head p{color:rgba(255,255,255,.75)}
  .vc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1000px;margin:0 auto}
  @media (max-width:900px){.vc-grid{grid-template-columns:1fr;max-width:460px}}
  .vc-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:26px 24px;transition:border-color .25s,transform .25s,background .25s}
  .vc-card:hover{transform:translateY(-4px);border-color:rgba(14,165,233,.5);background:rgba(255,255,255,.06)}
  .vc-ico{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#4f4f4f;margin-bottom:16px}
  .vc-ico svg{width:24px;height:24px;color:#fff}
  .vc-card h3{margin:0 0 10px;font-size:1.12rem;font-weight:700;color:#fff}
  .vc-card p{margin:0;font-size:14px;line-height:1.55;color:rgba(255,255,255,.72)}
  .vc-note{max-width:880px;margin:34px auto 0;padding:18px 22px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);color:rgba(255,255,255,.78);font-size:14px;text-align:center}
  .vc-note strong{color:#fff}


  .dv-sec{background:var(--bg-2)}
  .dv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:22px;max-width:1100px;margin:0 auto}
  .dv-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px 24px;box-shadow:0 1px 3px rgba(15,23,42,.04);transition:border-color .25s,transform .25s,box-shadow .25s}
  .dv-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 12px 30px rgba(59,130,246,.12)}
  .dv-ico{flex:0 0 44px;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--gradient)}
  .dv-ico svg{width:22px;height:22px;color:#fff}
  .dv-card h3{margin:0 0 8px;font-size:1.06rem;font-weight:700;color:var(--text)}
  .dv-card p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}


  .mrc-sec{background:var(--bg)}
  .mrc-wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:start;max-width:1080px;margin:0 auto}
  @media (max-width:900px){.mrc-wrap{grid-template-columns:1fr;gap:28px}}
  .mrc-lista{display:flex;flex-direction:column;gap:20px}
  .mrc-item{display:flex;gap:16px;align-items:flex-start}
  .mrc-ico{flex:0 0 46px;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--gradient)}
  .mrc-ico svg{width:23px;height:23px;color:#fff}
  .mrc-item h3{margin:0 0 7px;font-size:1.06rem;font-weight:700;color:var(--text)}
  .mrc-item p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}
  .mrc-url{background:var(--surface-2);border:1px solid var(--border);border-radius:18px;padding:28px 26px;min-width:0}
  .mrc-url h3{margin:0 0 16px;font-size:1.1rem;color:var(--text)}
  .mrc-barra{display:flex;align-items:center;gap:10px;min-width:0;background:#fff;border:1px solid var(--border-strong);border-radius:10px;padding:11px 14px;margin-bottom:18px}
  .mrc-barra svg{flex:0 0 16px;width:16px;height:16px;color:var(--success)}
  .mrc-barra span{min-width:0;font-size:13px;color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mrc-nota{margin:0;font-size:13px;line-height:1.55;color:var(--text-mute)}


  .of-sec{background:var(--bg)}
  .of-sec + .of-sec{padding-top:0}

  /* abertura */
  .of-abre{max-width:760px;margin:0 auto;text-align:center}
  .of-formatos{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:26px}
  .of-fmt{display:inline-flex;align-items:baseline;gap:7px;padding:7px 14px;border-radius:8px;
    background:var(--surface-2);border:1px solid var(--border);
    font-size:13px;font-weight:600;color:var(--text)}
  .of-fmt span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;
    color:var(--text-mute);font-weight:500}

  /* bloco de cada programa */
  /* A tela do editor e a prova do que o texto afirma. Espremida numa coluna
     de meia largura ela vira enfeite ilegivel, entao ocupa a largura inteira
     e a captura e feita na escala em que sera exibida. */
  .of-prog{max-width:1120px;margin:0 auto;padding:64px 0}
  .of-prog + .of-prog{border-top:1px solid var(--border)}
  .of-corpo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:16px 56px;align-items:start}
  @media (max-width:820px){
    .of-prog{padding:44px 0}
    .of-corpo{grid-template-columns:minmax(0,1fr);gap:18px}
  }

  .of-rotulo{display:inline-flex;align-items:center;gap:11px;margin-bottom:16px}
  .of-ico{width:34px;height:34px;border-radius:9px;flex:0 0 34px;
    display:flex;align-items:center;justify-content:center}
  .of-ico svg{width:19px;height:19px;color:#fff}
  .of-rotulo span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;
    font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--text-mute)}
  .of-prog h3{margin:0 0 22px;font-size:clamp(1.4rem,2.6vw,1.9rem);font-weight:700;
    letter-spacing:-.019em;line-height:1.18;color:var(--text);max-width:44ch}
  .of-corpo p{margin:0;font-size:15.5px;line-height:1.62;color:var(--text-dim)}
  .of-corpo p + p{margin-top:13px}

  .of-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
  @media (max-width:820px){.of-lista{margin-top:4px}}
  .of-lista li{position:relative;padding-left:17px;font-size:14px;line-height:1.5;color:var(--text-dim)}
  .of-lista li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;
    border-radius:50%;background:var(--border-strong)}

  .of-tela{margin-top:40px}
  .of-legenda{margin:14px 0 0;font-size:13px;line-height:1.55;color:var(--text-mute);
    max-width:78ch}
  @media (max-width:820px){.of-tela{margin-top:28px}}
  .of-tela img{display:block;width:100%;height:auto;border-radius:10px;
    border:1px solid var(--border);box-shadow:0 14px 34px rgba(15,23,42,.10);
    background:#fff;cursor:zoom-in}

  /* colaboracao */
  .of-colab{background:var(--surface-2);border:1px solid var(--border);border-radius:18px;
    padding:44px 40px;max-width:1120px;margin:0 auto}
  @media (max-width:700px){.of-colab{padding:32px 24px}}
  .of-colab-topo{max-width:38ch;margin:0 auto 34px;text-align:center}
  .of-colab-topo h3{margin:0 0 12px;font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:700;
    letter-spacing:-.016em;line-height:1.22;color:var(--text)}
  .of-colab-topo p{margin:0 auto;max-width:52ch;font-size:15.5px;line-height:1.6;
    color:var(--text-dim)}
  .of-colab-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
    gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}
  .of-colab-item{background:var(--surface);padding:26px 22px;display:flex;
    flex-direction:column;gap:10px}
  .of-colab-ico{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;
    justify-content:center;background:var(--primary-soft);border:1px solid #bfdbfe}
  .of-colab-ico svg{width:16px;height:16px;color:var(--primary-2)}
  .of-colab-item h4{margin:0;font-size:15px;font-weight:600;color:var(--text)}
  .of-colab-item p{margin:0;font-size:13.5px;line-height:1.55;color:var(--text-dim)}

  .of-nota{max-width:820px;margin:36px auto 0;font-size:13px;line-height:1.6;
    color:var(--text-mute);text-align:center}


  .sec-sec{background:#1a1a1a;color:#fff;position:relative;overflow:hidden}
  
  .sec-sec .container{position:relative;z-index:1}
  .sec-sec .section-eyebrow{background:rgba(16,185,129,.14);border-color:rgba(16,185,129,.35);color:#6ee7b7}
  .sec-sec .section-head h2{color:#fff}
  .sec-sec .section-head p{color:rgba(255,255,255,.75)}
  .sec-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:1140px;margin:0 auto}
  @media (max-width:980px){.sec-grid{grid-template-columns:1fr 1fr}}
  @media (max-width:700px){.sec-grid{grid-template-columns:1fr;max-width:460px}}
  .sec-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:24px 22px;transition:border-color .25s,transform .25s,background .25s}
  .sec-card:hover{transform:translateY(-4px);border-color:rgba(16,185,129,.5);background:rgba(255,255,255,.06)}
  .sec-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:#4f4f4f;margin-bottom:14px}
  .sec-ico svg{width:22px;height:22px;color:#fff}
  .sec-card h3{margin:0 0 9px;font-size:1.06rem;font-weight:700;color:#fff}
  .sec-card p{margin:0;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.72)}
  .sec-destaque{max-width:940px;margin:34px auto 0;padding:20px 24px;border-radius:14px;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.30);color:rgba(255,255,255,.85);font-size:14.5px;text-align:center;line-height:1.6}
  .sec-destaque strong{color:#fff}


  .lix-sec{background:var(--bg)}
  .lix-wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;max-width:1080px;margin:0 auto}
  @media (max-width:900px){.lix-wrap{grid-template-columns:1fr;gap:30px}}
  .lix-passos{display:flex;flex-direction:column;gap:16px}
  .lix-passo{display:flex;gap:16px;align-items:flex-start}
  .lix-num{flex:0 0 34px;width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--gradient);color:#fff;font-weight:700;font-size:14px}
  .lix-passo h4{margin:0 0 5px;font-size:1rem;font-weight:700;color:var(--text)}
  .lix-passo p{margin:0;font-size:14px;line-height:1.55;color:var(--text-dim)}
  .lix-box{background:var(--surface-2);border:1px solid var(--border);border-radius:18px;padding:30px 28px}
  .lix-box h3{margin:0 0 14px;font-size:1.15rem;color:var(--text)}
  .lix-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
  .lix-lista li{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--text-dim)}
  .lix-lista svg{flex:0 0 18px;width:18px;height:18px;color:var(--success);margin-top:2px}

  /* Celular: dentro dos cartoes o icone acompanha o texto no centro.
     Vale so ate 640px; do tablet para cima os cartoes voltam a alinhar a esquerda. */
  @media (max-width:640px){
    .cal-card,.vc-card,.sec-card,.ia-card,.why-card,.dv-card,.mrc-item,.of-colab-item,
    .gov-card,.as-camada,.as-extra{text-align:center}
    .as-num{justify-content:center}
    .cal-ico,.vc-ico,.sec-ico,.ia-ico,.why-icon,.dv-ico,.mrc-ico,.of-colab-ico,
    .gov-ico{margin-left:auto;margin-right:auto}
    .dv-card,.mrc-item{flex-direction:column;align-items:center}
    .of-colab-item{align-items:center}
  }

  /* Compras publicas: a exigencia de formato aberto e de residencia dos dados
     elimina fornecedor antes da proposta tecnica. Ambas as normas citadas sao
     federais; estado e municipio costumam replica-las em edital. */
  .gov-sec{background:var(--surface-2)}
  .gov-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;
    max-width:1000px;margin:0 auto}
  @media (max-width:820px){.gov-grid{grid-template-columns:minmax(0,1fr)}}
  .gov-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;
    padding:28px 26px;box-shadow:0 1px 3px rgba(15,23,42,.04)}
  .gov-ico{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;
    justify-content:center;background:var(--gradient);margin-bottom:16px}
  .gov-ico svg{width:22px;height:22px;color:#fff}
  .gov-card h3{margin:0 0 9px;font-size:16.5px;font-weight:700;color:var(--text);
    letter-spacing:-.01em}
  .gov-card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--text-dim)}
  .gov-nota{max-width:860px;margin:30px auto 0;font-size:13px;line-height:1.65;
    color:var(--text-mute);text-align:center}
  /* o alvo da ancora precisa parar abaixo do cabecalho e da barra */
  section[id]{scroll-margin-top:calc(var(--hdr-h,90px) + 16px)}

  .ao-topo{position:fixed;right:22px;bottom:22px;z-index:45;width:46px;height:46px;
    border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--text);
    box-shadow:0 8px 24px rgba(15,23,42,.16);display:flex;align-items:center;
    justify-content:center;cursor:pointer;opacity:0;visibility:hidden;
    transform:translateY(8px);
    transition:opacity .25s,transform .25s,visibility .25s,border-color .2s}
  .ao-topo.visivel{opacity:1;visibility:visible;transform:none}
  .ao-topo:hover{border-color:var(--border-strong)}
  .ao-topo svg{width:20px;height:20px}
  @media (max-width:700px){.ao-topo{right:14px;bottom:14px;width:42px;height:42px}}

  .hero-rodape{margin-top:34px}
  /* a margem do botao vinha de ".hero-indice + .hero-ctas", removida em
     22/09/2026 junto com o indice de assuntos do heroi */
  .hero-rodape .hero-ctas{margin-top:22px;justify-content:center}
  .hero-rodape .hero-meta{text-align:center}

  /* Perguntas frequentes. <details> nativo: abre e fecha sem JavaScript, e o
     leitor de tela ja anuncia estado aberto/fechado sem aria extra. */
  .faq{max-width:820px;margin:0 auto;text-align:left}
  .faq details{border:1px solid var(--border);border-radius:14px;background:var(--surface);
    margin-bottom:10px;overflow:hidden;transition:border-color .2s}
  .faq details[open]{border-color:var(--border-strong)}
  .faq summary{list-style:none;cursor:pointer;padding:18px 52px 18px 22px;position:relative;
    font-size:15.5px;font-weight:700;color:var(--text);line-height:1.45}
  .faq summary::-webkit-details-marker{display:none}
  .faq summary:hover{background:var(--surface-2)}
  .faq summary:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}
  .faq summary::after{content:"";position:absolute;right:22px;top:50%;width:10px;height:10px;
    border-right:2px solid var(--text-mute);border-bottom:2px solid var(--text-mute);
    transform:translateY(-70%) rotate(45deg);transition:transform .2s}
  .faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
  .faq .faq-corpo{padding:0 22px 20px;font-size:14.5px;line-height:1.68;color:var(--text-dim)}
  .faq .faq-corpo p{margin:0}
  .faq .faq-corpo p + p{margin-top:11px}
  .faq .faq-corpo ul{margin:11px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
  @media (max-width:700px){
    .faq summary{padding:16px 44px 16px 18px;font-size:15px}
    .faq .faq-corpo{padding:0 18px 18px}
  }
  .final-cta .faq + .btn{margin-top:34px}

  /* Leitura assistida do log. Fica dentro da secao de administracao porque e
     onde o recurso vive; nao vira secao propria para nao quebrar o indice. */
  .adm-ia{max-width:1100px;margin:28px auto 0;background:#fff;
    border:1px solid var(--border);border-radius:18px;padding:34px 32px;
    box-shadow:0 1px 3px rgba(15,23,42,.04)}
  @media (max-width:700px){.adm-ia{padding:26px 20px}}
  .adm-ia-cols{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(0,1.08fr);
    gap:40px;align-items:start}
  @media (max-width:1000px){.adm-ia-cols{grid-template-columns:minmax(0,1fr);gap:26px}}
  .adm-ia-topo{max-width:none}
  .adm-modos{list-style:none;margin:22px 0 0;padding:0;display:flex;
    flex-direction:column;gap:14px}
  .adm-modos li{padding-left:15px;border-left:2px solid var(--border-strong)}
  .adm-modos b{display:block;margin-bottom:3px;font-size:14px;font-weight:700;color:var(--text)}
  .adm-modos span{font-size:13.5px;line-height:1.55;color:var(--text-dim)}
  .adm-ia h3{margin:12px 0 10px;font-size:clamp(1.15rem,2vw,1.45rem);font-weight:700;
    letter-spacing:-.015em;line-height:1.25;color:var(--text)}
  .adm-ia-topo p{margin:0;font-size:15px;line-height:1.62;color:var(--text-dim)}
  .adm-ia-modos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;
    margin-top:26px}
  @media (max-width:820px){.adm-ia-modos{grid-template-columns:minmax(0,1fr)}}
  .adm-ia-modo{border:1px solid var(--border);border-radius:14px;padding:20px 18px;
    background:var(--surface-2)}
  .adm-ia-modo h4{margin:0 0 7px;font-size:14.5px;font-weight:700;color:var(--text)}
  .adm-ia-modo p{margin:0;font-size:13.5px;line-height:1.58;color:var(--text-dim)}
  .adm-ia-nota{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--border);
    font-size:13px;line-height:1.65;color:var(--text-mute);max-width:88ch}

  /* Reproducao da tela de rastreio, em HTML e com dados ficticios. A captura
     real do painel do dono trazia dominio, caixas e IPs de um cliente. */
  .adm-tela{margin-top:26px;border:1px solid var(--border);border-radius:14px;
    overflow:hidden;background:var(--surface-2)}
  .adm-tela-topo{display:flex;align-items:center;gap:9px;padding:9px 14px;
    background:#eef2f7;border-bottom:1px solid var(--border);
    font-size:12px;color:var(--text-mute)}
  .adm-tela-topo b{font-weight:600;color:var(--text-dim)}
  .adm-msg{padding:16px 16px 4px}
  .adm-chip{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11.5px;
    font-weight:700;background:#dbeafe;color:#1d4ed8;margin-bottom:9px}
  .adm-de{font-size:13.5px;color:var(--text);line-height:1.5;word-break:break-word}
  .adm-de span{color:var(--text-mute)}
  .adm-meta{margin:7px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:11.5px;color:var(--text-mute);word-break:break-word}
  .adm-expl{margin:14px 16px;border:1px solid #bfdbfe;background:var(--primary-soft);
    border-radius:10px;padding:14px 16px}
  .adm-expl-rot{display:flex;align-items:center;gap:7px;margin:0 0 8px;
    font-size:12px;font-weight:700;color:#1d4ed8}
  .adm-expl p{margin:0;font-size:13.5px;line-height:1.6;color:var(--text-dim)}
  .adm-log{margin:0 16px 16px;border-top:1px solid var(--border);padding-top:12px}
  .adm-log-rot{margin:0 0 7px;font-size:11.5px;font-weight:700;color:var(--text-mute);
    text-transform:uppercase;letter-spacing:.06em}
  .adm-log pre{margin:0;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:11.5px;line-height:1.75;color:var(--text-mute);white-space:pre}
  .adm-tela-leg{margin:10px 0 0;font-size:12px;color:var(--text-mute);text-align:center}

  /* Os tres programas do Office viram abas: o bloco de cada um empilhava em
     largura inteira com captura, e era a maior faixa da pagina. */
  .of-abas{max-width:1120px}
  .of-abas .tab-panel{max-width:none;padding:0;text-align:left}
  .of-abas .of-prog{padding:0;border-top:0}
  .of-abas .tab-buttons button[aria-selected="true"] .tab-ico{background:rgba(255,255,255,.22)!important}

  .of-formatos-linha{margin:18px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:12.5px;line-height:1.6;color:var(--text-mute)}

  /* Os cinco cartoes do painel administrativo carregam uma captura 1920x1080
     cada: empilhados no celular somavam 4.631px. Em abas, so um por vez. */
  .ad-abas{max-width:1100px}
  .ad-abas .tab-panel{max-width:760px;padding:0;text-align:left}
  .ad-abas .admin-card{margin:0 auto}

  /* Acordeao so no celular. No desktop as grades de 3 colunas ja sao eficientes
     (9 cartoes somam 2.266px de altura individual mas ocupam 1.338px de secao);
     no celular empilham e viram 2.912px. O atributo open fica escrito no HTML:
     sem JavaScript nada colapsa e a pagina se comporta como antes. */
  .cartao-abre > summary{list-style:none;cursor:default;display:block}
  .cartao-abre > summary::-webkit-details-marker{display:none}
  .cartao-abre > summary::marker{content:""}
  .cartao-tit{display:block;margin:0 0 9px;font-size:16.5px;font-weight:700;
    color:var(--text);letter-spacing:-.01em;line-height:1.3}
  .sec-card .cartao-tit,.ia-card .cartao-tit{color:#fff}
  .cartao-corpo > p:first-child,.cartao-corpo > div > p:first-child{margin-top:0}
  @media (max-width:900px){
    .cartao-abre > summary{cursor:pointer;position:relative;padding-right:32px;
      min-height:44px;display:flex;flex-direction:column;justify-content:center}
    .cartao-abre > summary:focus-visible{outline:2px solid var(--primary);outline-offset:3px}
    .cartao-abre > summary::after{content:"";position:absolute;right:4px;top:50%;
      width:9px;height:9px;border-right:2px solid var(--text-mute);
      border-bottom:2px solid var(--text-mute);
      transform:translateY(-70%) rotate(45deg);transition:transform .2s}
    .sec-card > summary::after,.ia-card > summary::after{border-color:rgba(255,255,255,.55)}
    .cartao-abre[open] > summary::after{transform:translateY(-30%) rotate(-135deg)}
    .cartao-abre > summary .cartao-tit{margin-bottom:0}
    .cartao-abre[open] > summary .cartao-tit{margin-bottom:9px}
  }

  /* Os 5 cartoes repetiam 6 dos 8 itens: 30 linhas identicas. Fora dos cartoes,
     o que diferencia cada plano para de se esconder no meio do que e igual. */
  .plan-comum{max-width:1060px;margin:32px auto 0;padding:26px 28px;
    background:var(--surface);border:1px solid var(--border);border-radius:16px}
  .plan-comum-tit{margin:0 0 16px;font-size:12px;font-weight:700;letter-spacing:.14em;
    text-transform:uppercase;color:var(--text-mute);text-align:center}
  .plan-comum-lista{list-style:none;margin:0;padding:0;display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 26px}
  @media (max-width:820px){.plan-comum-lista{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media (max-width:520px){.plan-comum-lista{grid-template-columns:minmax(0,1fr)}}
  .plan-comum-lista li{display:flex;gap:10px;align-items:flex-start;
    font-size:14px;line-height:1.5;color:var(--text-dim)}
  .plan-comum-lista svg{flex:0 0 17px;width:17px;height:17px;color:var(--success);margin-top:2px}
  @media (min-width:901px){.plan-desc{min-height:0}}

  /* Reproducao da Lixeira Global, em HTML e com dados ficticios. A captura real
     trazia dez empresas com razao social e numero de boleto, doze enderecos de
     terceiros e dois Gmail pessoais: nao havia o que anonimizar sem apagar tudo. */
  .lx-tela{margin:26px auto 0;max-width:1080px;border:1px solid var(--border);
    border-radius:14px;overflow:hidden;background:var(--surface)}
  .lx-topo{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;
    background:var(--surface-2);border-bottom:1px solid var(--border);
    font-size:12px;color:var(--text-mute)}
  .lx-topo b{font-weight:600;color:var(--text-dim)}
  .lx-topo span{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:11.5px}
  .lx-linha{display:flex;align-items:center;gap:14px;padding:12px 14px;
    border-bottom:1px solid var(--border)}
  .lx-linha:last-child{border-bottom:0}
  .lx-info{min-width:0;flex:1}
  .lx-assunto{margin:0 0 3px;font-size:13.5px;font-weight:600;color:var(--text);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lx-meta{margin:0;font-size:11.5px;line-height:1.5;color:var(--text-mute);
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lx-meta b{font-weight:600;color:var(--text-dim)}
  .lx-bt{flex:0 0 auto;padding:7px 15px;border-radius:8px;background:var(--primary);
    color:#fff;font-size:12.5px;font-weight:600}
  .lx-leg{margin:10px auto 0;max-width:1080px;font-size:12px;color:var(--text-mute);
    text-align:center}
  @media (max-width:700px){
    .lx-linha{flex-wrap:wrap;gap:9px}
    .lx-bt{width:100%;text-align:center}
  }

  .adm-filtros{display:flex;flex-wrap:wrap;gap:6px;padding:11px 14px;
    border-bottom:1px solid var(--border);background:var(--surface)}
  .adm-filtros span{padding:4px 10px;border-radius:999px;border:1px solid var(--border);
    font-size:11.5px;font-weight:600;color:var(--text-mute);background:#fff}
  .adm-filtros .q-amarelo{background:#fef9c3;border-color:#fde047;color:#854d0e}
  .adm-filtros .q-vermelho{background:#fee2e2;border-color:#fca5a5;color:#991b1b}
  .adm-chip-rec{background:#fee2e2!important;color:#991b1b!important}
  .adm-acao{margin:12px 0 0}
  .adm-acao span{display:inline-block;padding:6px 13px;border-radius:8px;
    border:1px solid #bfdbfe;background:var(--primary-soft);color:#1d4ed8;
    font-size:12.5px;font-weight:600}

  /* Prevencao de vazamento. Fica dentro de Seguranca para nao virar o 19o botao
     do indice, que quebraria a grade de 6x3. */
  .dlp{max-width:1100px;margin:28px auto 0;background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.12);border-radius:18px;padding:34px 32px}
  @media (max-width:700px){.dlp{padding:26px 20px}}
  .dlp-topo{max-width:64ch}
  .dlp h3{margin:12px 0 10px;font-size:clamp(1.15rem,2vw,1.45rem);font-weight:700;
    letter-spacing:-.015em;line-height:1.25;color:#fff}
  .dlp-topo p{margin:0 0 11px;font-size:15px;line-height:1.62;color:rgba(255,255,255,.72)}
  .dlp-tag{display:inline-block;padding:4px 11px;border-radius:999px;
    background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.20);
    color:rgba(255,255,255,.85);font-size:11px;font-weight:700;letter-spacing:.1em;
    text-transform:uppercase}
  .dlp-pontos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:26px}
  @media (max-width:820px){.dlp-pontos{grid-template-columns:minmax(0,1fr)}}
  .dlp-ponto{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:20px 18px;
    background:rgba(255,255,255,.04)}
  .dlp-ponto h4{margin:0 0 7px;font-size:14.5px;font-weight:700;color:#fff}
  .dlp-ponto p{margin:0;font-size:13.5px;line-height:1.58;color:rgba(255,255,255,.70)}

  .dlp-tela{margin-top:26px;border:1px solid var(--border);border-radius:14px;
    overflow:hidden;background:var(--surface)}
  .dlp-tela-topo{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;
    background:var(--surface-2);border-bottom:1px solid var(--border);
    font-size:12px;color:var(--text-mute)}
  .dlp-tela-topo b{font-weight:600;color:var(--text-dim)}
  .dlp-tela-topo span{margin-left:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
    font-size:11.5px}
  .dlp-item{padding:15px 16px;border-bottom:1px solid var(--border)}
  .dlp-item:last-child{border-bottom:0}
  .dlp-marcas{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:9px}
  .dlp-score{padding:3px 9px;border-radius:6px;background:#fef3c7;border:1px solid #fcd34d;
    color:#92400e;font-size:11.5px;font-weight:700}
  .dlp-cat{padding:3px 9px;border-radius:6px;background:var(--surface-2);
    border:1px solid var(--border);color:var(--text-mute);font-size:11.5px;font-weight:600;
    font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
  .dlp-rota{margin:0 0 3px;font-size:13.5px;color:var(--text);word-break:break-word}
  .dlp-rota span{color:var(--text-mute)}
  .dlp-assunto{margin:0 0 7px;font-size:12.5px;color:var(--text-mute)}
  .dlp-motivo{margin:0 0 11px;font-size:13px;line-height:1.55;color:var(--text-dim);font-style:italic}
  .dlp-bts{display:flex;flex-wrap:wrap;gap:8px}
  .dlp-bts span{padding:6px 13px;border-radius:8px;font-size:12.5px;font-weight:600;
    border:1px solid var(--border);color:var(--text-dim);background:#fff}
  .dlp-bts .forte{background:var(--primary);border-color:var(--primary);color:#fff}
  .dlp-leg{margin:10px 0 0;font-size:12px;color:rgba(255,255,255,.55);text-align:center}
  .dlp-nota{margin:22px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);
    font-size:13px;line-height:1.65;color:rgba(255,255,255,.60);max-width:88ch}

  /* A lixeira do Drive tem garantias proprias que a linha unica escondia:
     o administrador restaura sem poder abrir, e a consulta fica auditada. */
  .lxd{max-width:1080px;margin:26px auto 0;background:var(--surface-2);
    border:1px solid var(--border);border-radius:16px;padding:26px 26px}
  @media (max-width:700px){.lxd{padding:22px 18px}}
  .lxd h4{margin:0 0 8px;font-size:16px;font-weight:700;color:var(--text)}
  .lxd > p{margin:0 0 18px;font-size:14.5px;line-height:1.6;color:var(--text-dim);max-width:74ch}
  .lxd-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  @media (max-width:820px){.lxd-grid{grid-template-columns:minmax(0,1fr)}}
  .lxd-item{background:var(--surface);border:1px solid var(--border);border-radius:12px;
    padding:18px 16px}
  .lxd-item b{display:block;margin-bottom:6px;font-size:13.5px;font-weight:700;color:var(--text)}
  .lxd-item span{font-size:13px;line-height:1.55;color:var(--text-dim)}

  /* Icone ao lado do titulo, nao acima. Nos cartoes em <details> basta virar o
     summary em linha; nos demais, uma grade de duas colunas resolve sem tocar
     na marcacao — o icone na coluna 1, o titulo na 2 e o texto atravessando. */
  .cartao-abre > summary{display:flex;flex-direction:row;align-items:center;gap:12px}
  .cartao-abre > summary .cartao-tit{margin:0;flex:1;min-width:0}
  .cartao-abre > summary > .dv-ico,
  .cartao-abre > summary > .sec-ico,
  .cartao-abre > summary > .ia-ico,
  .cartao-abre > summary > .cal-ico{margin-bottom:0;flex:0 0 auto}
  .cartao-corpo{margin-top:14px}

  .vc-card,.why-card,.gov-card{display:grid;grid-template-columns:auto minmax(0,1fr);
    column-gap:12px;align-items:center}
  .vc-card > .vc-ico,.why-card > .why-icon,.gov-card > .gov-ico{
    grid-column:1;grid-row:1;margin-bottom:0}
  .vc-card > h3,.why-card > h3,.gov-card > h3{grid-column:2;grid-row:1;margin:0}
  .vc-card > p,.why-card > p,.gov-card > p{grid-column:1 / -1;grid-row:2;margin-top:14px}

  @media (max-width:900px){
    /* no celular a seta fica no fim da linha do titulo */
    .cartao-abre > summary{flex-direction:row;justify-content:flex-start}
    .cartao-abre[open] > summary .cartao-tit{margin-bottom:0}
  }
  @media (max-width:640px){
    /* a centralizacao pedida antes vale para a linha inteira do titulo */
    .cartao-abre > summary{justify-content:center;text-align:left}
    .cartao-abre > summary .cartao-tit{flex:0 1 auto}
    .vc-card,.why-card,.gov-card{justify-content:center}
    .vc-card > p,.why-card > p,.gov-card > p{text-align:center}
  }

  .hero-selo{margin:20px 0 0;font-size:clamp(1.05rem,1.7vw,1.3rem);font-weight:800;
    letter-spacing:-.01em;line-height:1.35;color:#fff;max-width:30ch}
  .hero-selo-cont{font-weight:600;color:#bfdbfe}
  @media (max-width:960px){.hero-selo{max-width:none}}
  @media (max-width:960px){.hero-selo{text-align:center}}

/* ==================================================================
   Site multipagina — 28/09/2026
   O conteudo deixou de morar num documento unico de 215 KB: cada
   assunto virou URL propria, com titulo e descricao proprios. O que
   segue estiliza o que so passou a existir agora — cabecalho de
   pagina interna, migalhas, mapa da home e rodape com mapa de links.
   ================================================================== */

/* As duas variantes de botao do site (.btn-primary e .btn-ghost) foram
   desenhadas para o hero ESCURO: uma e branca, a outra e texto branco com
   borda translucida. Sobre o #f8fafc desta secao a segunda mede 1,05:1 de
   contraste — invisivel. Esta e a variante para fundo claro: 4,99:1. */
.btn-linha{background:transparent;color:var(--primary-2);border:1px solid var(--border-strong)}
.btn-linha:hover,.btn-linha:focus-visible{background:var(--primary-soft);border-color:var(--primary)}

/* ---- Palco das telas do produto (home) ----
   O .tab-panel original trava em 700px, largura boa para paragrafo e
   pessima para captura de tela. Aqui o texto continua nos 700, a tela
   vai aos 1040 do .cu-inbox-shot. */
.palco .tab-panel{max-width:none;padding:26px 0 0;text-align:left}
.palco-texto{max-width:700px;margin:0 auto 30px;text-align:center}
.palco-texto h3{margin:0 0 12px;font-size:clamp(1.2rem,2.1vw,1.55rem);font-weight:800;
  letter-spacing:-.015em;line-height:1.25;color:var(--text)}
.palco-texto p{margin:0 0 22px;color:var(--text-dim);font-size:1.02rem;line-height:1.65}
/* Proporcao fixa. As telas disponiveis tem proporcoes diferentes (1,70 a
   1,88): sem uma caixa de altura definida, o painel mudava de altura a cada
   troca de aba e empurrava o resto da pagina — deslocamento de layout. O
   recorte parte do alto, que e onde fica a barra de ferramentas. */
.palco-tela img{display:block;width:100%;height:auto;aspect-ratio:16/9;
  object-fit:cover;object-position:top center;background:var(--surface-2)}
@media (max-width:640px){
  .palco .tab-panel{padding-top:18px}
  .palco-texto{margin-bottom:22px}
}

/* Acompanha a promocao de h4 para h3 nos passos da Lixeira Global
   (ver corrigir_fonte). O CSS original so mirava .lix-passo h4. */
.lix-passo h3{margin:0 0 5px;font-size:1rem;font-weight:700;color:var(--text)}

/* Rede de seguranca: <body> e ESCURO (#1a1a1a) neste site, herdado do
   hero. Toda secao que nao declarar fundo proprio herda esse escuro e
   passa a exibir texto quase preto sobre preto — foi exatamente o que
   aconteceu com a secao nova da home, e o mesmo defeito ja tinha ocorrido
   na pagina do MySQL Cluster. Seletor de elemento, entao qualquer classe
   que defina fundo (.hero, .pg-topo, .ia-sec, .vc-sec) continua vencendo
   por especificidade; conferido: nenhuma secao dependia da transparencia. */
section{background:var(--bg)}

/* Cabecalho das paginas internas. Reaproveita o fundo escuro do hero
   para o topo do site nao mudar de cara entre uma pagina e outra, mas
   com metade da altura: aqui o visitante ja escolheu o assunto. */
.pg-topo{background:#1a1a1a;color:#fff;padding:clamp(30px,4.5vw,52px) 0 clamp(38px,5.5vw,62px)}
.pg-topo h1{font-size:clamp(1.75rem,3.3vw,2.6rem);line-height:1.14;font-weight:800;
  letter-spacing:-.022em;margin:16px 0 14px;color:#fff;max-width:22em}
.pg-topo .lead{max-width:46em;margin:0}

/* Migalhas. O mesmo caminho vai em BreadcrumbList no JSON-LD. */
.migalhas{font-size:.84rem;color:rgba(255,255,255,.66)}
.migalhas ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.migalhas li::after{content:"/";margin-left:6px;opacity:.55}
.migalhas li:last-child::after{content:""}
.migalhas a{color:rgba(255,255,255,.8);text-decoration:none}
.migalhas a:hover,.migalhas a:focus-visible{color:#fff;text-decoration:underline}
.migalhas [aria-current]{color:#fff;font-weight:600}

/* Mapa do site, na home. Substitui as ancoras que antes levavam a uma
   secao da mesma pagina: agora cada cartao e a porta de uma URL. */
.mapa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));
  gap:20px;max-width:1100px;margin:0 auto}
.mapa-card{display:flex;flex-direction:column;gap:10px;background:var(--surface);
  border:1px solid var(--border);border-radius:18px;padding:26px;text-decoration:none;
  box-shadow:0 1px 3px rgba(15,23,42,.04);
  transition:border-color .2s,box-shadow .2s,transform .2s}
.mapa-card:hover,.mapa-card:focus-visible{border-color:var(--primary);
  box-shadow:0 12px 28px rgba(15,23,42,.09);transform:translateY(-2px)}
.mapa-ico{width:44px;height:44px;border-radius:12px;background:var(--primary-soft);
  display:flex;align-items:center;justify-content:center;color:var(--primary-2)}
.mapa-ico svg{width:22px;height:22px}
.mapa-card h3{margin:0;font-size:1.05rem;font-weight:700;color:var(--text)}
.mapa-card p{margin:0;color:var(--text-dim);font-size:.94rem;line-height:1.6}
.mapa-seta{margin-top:auto;padding-top:8px;color:var(--primary-2);font-weight:600;
  font-size:.9rem;display:inline-flex;align-items:center;gap:6px}
@media (prefers-reduced-motion:reduce){.mapa-card{transition:none}
  .mapa-card:hover,.mapa-card:focus-visible{transform:none}}

/* Rodape com mapa de links. Com 9 paginas, o rodape deixa de ser uma
   linha de credito e passa a ser navegacao de verdade — e e por onde
   se chega as duas paginas que nao cabem no menu do topo.
   A classe dupla vence o "footer .container{display:flex}" anterior. */
footer .container.rodape-grid{display:grid;
  grid-template-columns:minmax(220px,1.35fr) repeat(2,minmax(150px,1fr));
  gap:34px;align-items:start;text-align:left;justify-content:initial}
.rodape-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.rodape-tit{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-mute)}
.rodape-col a{color:var(--text-dim);text-decoration:none;font-size:.93rem}
.rodape-col a:hover,.rodape-col a:focus-visible{color:var(--primary-2);text-decoration:underline}
.rodape-marca p{margin:0;color:var(--text-mute);font-size:.9rem;line-height:1.6;max-width:32em}
.rodape-logo{display:inline-flex}
.rodape-logo img{height:38px;width:auto;object-fit:contain}
footer .container.rodape-base{display:flex;flex-wrap:wrap;gap:12px 28px;
  justify-content:space-between;align-items:center;text-align:left;
  margin-top:30px;padding-top:22px;border-top:1px solid var(--border);
  color:var(--text-mute);font-size:13px;line-height:1.6}
footer .container.rodape-base .social-links{display:flex;gap:14px;align-items:center}
@media (max-width:760px){
  footer .container.rodape-grid{grid-template-columns:1fr;gap:26px}
  footer .container.rodape-base{justify-content:flex-start}
}
