/* ============================================================
   VERSÃO A — "Tour do produto"
   Referência: Salesforce (trilho de abas verticais que troca o print
   do produto) + HubSpot (zigzag texto/imagem alternado, carrossel).

   Carrega DEPOIS de editorial.css e só ADICIONA: todas as classes usam
   o prefixo .va- para nunca brigar com o CSS existente.
   ============================================================ */

:root{
  /* neutros derivados do amarelo da marca (não são cinzas "puros") */
  --va-panel:#FFFFFF;
  --va-line:rgba(10,10,11,.12);
  --va-line-2:rgba(10,10,11,.20);
  --va-shadow:0 24px 60px -24px rgba(10,10,11,.35);
  --va-shadow-sm:0 10px 30px -14px rgba(10,10,11,.30);
}

/* .tools-top nasceu só para seções escuras (cor fixa clara). Agora ele
   também aparece sobre papel, então o texto de apoio precisa escurecer. */
.s-paper .tools-top .lead{ color:var(--txt-l); }
/* destaque amarelo herdado do antigo bloco "Manifesto" (removido da home —
   ver comentário em index.html): a frase de efeito passou a abrir esta
   seção, então o .hl que dava o "soco" visual veio junto. */
.tools-top .lead .hl{ color:var(--yellow); font-weight:700; }
.s-paper .tools-top .lead .hl{ color:var(--yellow-ink); }

/* ---------------------------------------------------------------
   HERO — split com print flutuante + cartões de alerta sobrepostos
   --------------------------------------------------------------- */
.va-hero{ position:relative; overflow:hidden; padding-top:clamp(120px,13vw,168px); padding-bottom:clamp(72px,8vw,104px); }
/* O print real do sistema é bem largo (1731x845), então ele precisa de mais
   coluna para a interface ficar legível — daí a coluna da imagem ser a maior
   e o H1 ter teto menor (ele é nowrap e a maior linha tem de caber). */
/* align-items:stretch (padrão do grid): a coluna de texto é mais alta que
   o vídeo por causa da faixa "+1.000 / 27 / R$10mi+". Em vez de forçar o
   vídeo pra cima/baixo dentro dessa altura (o que sempre deixava topo OU
   base descolados de um lado), o vídeo agora estica pra preencher a
   própria altura da coluna de texto — ver .va-video, que troca o
   aspect-ratio fixo por height:100%. Topo e base ficam alinhados nos dois
   lados ao mesmo tempo, sem mexer no espaçamento do texto. */
.va-hero-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:clamp(30px,3.2vw,46px); align-items:stretch; position:relative; z-index:2; }
.va-hero h1{ font-size:clamp(31px,3.5vw,46px); line-height:.98; letter-spacing:-.035em; }
.va-hero h1 .line-wrap{ white-space:nowrap; }
.va-hero h1 .hl{ color:var(--yellow); }
.va-hero h1 .cyc{ display:inline-block; min-width:5.2ch; }
.va-hero .va-sub{ margin-top:26px; max-width:46ch; font-size:clamp(16px,1.35vw,18.5px); line-height:1.6; color:var(--txt-d); }
.va-hero .va-cta{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin-top:34px; }

/* moldura do print. Avança até a borda do container (sem 100vw, para não
   criar rolagem lateral) e ganha largura sem tirar da coluna de texto. */
.va-shot{ position:relative; margin-right:calc(-1 * var(--pad)); height:100%; }
.va-frame{ border:1px solid var(--line-d2); border-radius:14px; overflow:hidden; background:var(--ink-2); box-shadow:0 40px 90px -30px rgba(0,0,0,.85); }
.va-frame .bar{ display:flex; align-items:center; gap:8px; padding:12px 16px; border-bottom:1px solid var(--line-d); background:var(--ink-3); }
.va-frame .dot{ width:10px; height:10px; border-radius:50%; background:var(--line-d2); flex:none; }
.va-frame .url{ font-family:var(--f-mono); font-size:12px; color:var(--txt-d-dim); margin-left:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.va-frame img{ width:100%; height:auto; display:block; }

/* ---- vídeo institucional no hero ----
   height:100% (não aspect-ratio fixo): a caixa preenche a altura inteira
   da coluna de texto ao lado (que é quem manda no tamanho da linha do
   grid). O <video> por baixo usa object-fit:cover, então ele recorta as
   bordas da imagem em vez de distorcer — em telas bem estreitas, onde a
   coluna de texto quebra em mais linhas e fica bem alta, isso deixa o
   vídeo mais "fechado" (menos panorâmico); ver breakpoint com min-height. */
.va-video{
  position:relative; width:100%; height:100%; min-height:220px; overflow:hidden;
  border-radius:16px; border:1px solid var(--line-d2); background:#000;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.85);
}
.va-video video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; }

/* na quina esquerda de propósito: na direita cruza com o botão
   flutuante do WhatsApp enquanto a pessoa rola a página */
.va-ctl{ position:absolute; left:14px; bottom:14px; z-index:2; display:inline-flex; align-items:center; gap:8px; }
.va-cbtn{
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:40px; height:40px; border-radius:50%; cursor:pointer;
  border:1px solid rgba(255,255,255,.24); background:rgba(10,10,11,.62);
  backdrop-filter:blur(8px); color:#fff; transition:background .2s, border-color .2s;
}
.va-cbtn:hover{ background:rgba(10,10,11,.85); border-color:rgba(255,255,255,.45); }
.va-cbtn:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; }

/* play/pausa: alterna qual ícone aparece via classe (estado real do <video>) */
.va-cbtn[data-video-play] .ic-play{ display:none; }
.va-cbtn[data-video-play].is-paused .ic-pause{ display:none; }
.va-cbtn[data-video-play].is-paused .ic-play{ display:block; }

/* som: mesmo padrão, mas usa aria-pressed (também informa leitor de tela) */
.va-cbtn[data-video-sound] .som{ display:none; }
.va-cbtn[data-video-sound][aria-pressed="true"] .som{ display:block; }
.va-cbtn[data-video-sound][aria-pressed="true"] .mudo{ display:none; }
.va-cbtn[data-video-sound][aria-pressed="true"]{ background:var(--yellow); color:var(--ink); border-color:var(--yellow); }

/* cartões flutuantes sobre o print (padrão Salesforce).
   Escuros de propósito: o print do sistema é quase todo branco, então
   cartão branco sumia dentro dele. */
.va-pop{
  position:absolute; display:flex; align-items:center; gap:11px;
  background:#15151b; color:#fff; border:1px solid rgba(255,255,255,.18);
  border-radius:12px; padding:13px 16px; max-width:262px;
  box-shadow:0 20px 46px -14px rgba(0,0,0,.9);
}
.va-pop .ic{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:none; }
.va-pop .ic.warn{ background:rgba(255,212,0,.18); color:var(--yellow); }
.va-pop .ic.ok{ background:rgba(74,205,116,.18); color:#5FD888; }
.va-pop .tx{ min-width:0; display:flex; flex-direction:column; gap:2px; }
.va-pop .tt{ display:block; font-family:var(--f-disp); font-weight:800; font-size:13.5px; line-height:1.25; letter-spacing:-.01em; color:#fff; }
.va-pop .ss{ display:block; font-family:var(--f-mono); font-size:11.5px; line-height:1.3; color:var(--txt-d); }
/* em quinas opostas e quase fora da moldura: por dentro cobririam a interface.
   O da direita fica com offset POSITIVO — a moldura já encosta na borda do
   container, então um valor negativo criaria rolagem lateral. */
.va-pop-1{ left:-24px; bottom:-22px; }
.va-pop-2{ right:12px; top:-26px; }

@media (prefers-reduced-motion:no-preference){
  .va-pop{ animation:vaFloat 5.5s ease-in-out infinite; }
  .va-pop-2{ animation-delay:-2.6s; }
}
@keyframes vaFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-9px); } }

/* ---------------------------------------------------------------
   FAIXA DE PROVA — "quem já opera com a gente"
   --------------------------------------------------------------- */
.va-proof{ padding:clamp(40px,5vw,58px) 0 0; text-align:center; }
.va-proof .lb{ font-family:var(--f-mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--txt-l); }

/* ---------------------------------------------------------------
   MANIFESTO, OPÇÃO 2 — guardada, não usada no momento.
   Ver o comentário "OPÇÃO 2" em index.html (bloco desativado, junto do
   original). Este CSS fica pronto para o dia que quiser ativar: sem
   nenhum elemento .va-manifesto2/.va-blk2 no DOM, estas regras não têm
   efeito nenhum na página como está hoje.
   --------------------------------------------------------------- */
.va-manifesto2 .va-meta2{
  display:grid; grid-template-columns:1fr auto 1fr; align-items:stretch;
  gap:clamp(20px,3vw,32px); margin-top:clamp(56px,7vw,84px);
  text-align:left; width:100%; max-width:960px;
}
.va-blk2{ border-top:0; padding:26px 28px; border-radius:16px; background:rgba(255,255,255,.03); border:1px solid var(--line-d); }
.va-blk2-ic{ display:inline-grid; place-items:center; width:38px; height:38px; border-radius:10px; margin-bottom:16px; }
.va-blk2.is-problem{ border-left:3px solid #E2685F; }
.va-blk2.is-problem .va-blk2-ic{ background:rgba(226,104,95,.14); color:#E2685F; }
.va-blk2.is-problem h4{ color:#E2685F; }
.va-blk2.is-answer{ border-left:3px solid var(--yellow); }
.va-blk2.is-answer .va-blk2-ic{ background:rgba(255,212,0,.14); color:var(--yellow); }
.va-blk2.is-answer h4{ color:var(--yellow); }
.va-blk2 h4{ font-family:var(--f-mono); font-size:13px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; }
.va-blk2 p{ color:var(--txt-d); font-size:16px; line-height:1.6; margin-top:12px; }
.va-blk2-arrow{ display:flex; align-items:center; justify-content:center; color:var(--txt-d-dim); }
@media (max-width:760px){
  .va-manifesto2 .va-meta2{ grid-template-columns:1fr; }
  .va-blk2-arrow{ transform:rotate(90deg); margin:-4px auto; }
}

/* ---------------------------------------------------------------
   FERRAMENTAS — padrão HubSpot: coluna de texto FIXA à esquerda e a
   grade de cards rolando ao lado. Todas as 12 ferramentas aparecem.
   --------------------------------------------------------------- */
.va-hub{ display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); gap:clamp(32px,4.5vw,72px); align-items:start; }

/* a coluna de texto acompanha a rolagem enquanto os cards passam.
   O topo precisa limpar a barra fixa (84px), senão o texto passa por baixo. */
.va-hub-tx{ position:sticky; top:112px; }
.va-hub-in{ padding:0; }
.va-hub-tag{ display:flex; align-items:center; gap:14px; }
.va-hub-tag span{
  font-family:var(--f-mono); font-size:11.5px; font-weight:700; letter-spacing:.14em;
  text-transform:uppercase; color:var(--ink); border:1px solid var(--va-line-2);
  border-radius:20px; padding:7px 14px; white-space:nowrap;
}
.va-hub-tag i{ flex:1; height:1px; border-top:1px dashed var(--va-line-2); }
.va-hub-tx h2{ font-size:clamp(28px,3.2vw,44px); line-height:1.06; letter-spacing:-.035em; margin-top:26px; }
.va-hub-tx > .va-hub-in > p{ margin-top:22px; font-size:clamp(16px,1.35vw,18px); line-height:1.62; color:var(--txt-l); max-width:42ch; }
.va-hub-cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:32px; }

.va-hub-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.va-hc{
  background:var(--va-panel); border:1px solid var(--va-line); border-radius:14px;
  padding:26px 26px 22px; display:flex; flex-direction:column;
  transition:background .25s var(--ease), border-color .25s, box-shadow .25s var(--ease);
}
.va-hc:hover{ background:var(--paper-2); border-color:var(--va-line-2); box-shadow:var(--va-shadow-sm); }
.va-hc-hd{ display:flex; align-items:center; gap:12px; padding-bottom:16px; border-bottom:1px dashed var(--va-line-2); }
.va-hc-hd .ic{ flex:none; color:var(--yellow-ink); display:grid; place-items:center; }
.va-hc-hd h3{ font-size:18px; line-height:1.2; letter-spacing:-.02em; }
.va-hc > p{ font-size:14.5px; line-height:1.6; color:var(--txt-l); margin-top:16px; }
.va-hc-more{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  margin-top:auto; padding-top:20px; font-family:var(--f-disp); font-weight:800;
  font-size:14.5px; color:var(--ink); transition:gap .2s var(--ease);
}
.va-hc-more:hover{ gap:13px; }
.va-hc-more:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; border-radius:2px; }

/* ---------------------------------------------------------------
   ZIGZAG — os 4 pilares, texto/imagem alternando de lado
   --------------------------------------------------------------- */
.va-zig{ display:grid; gap:clamp(64px,8vw,116px); margin-top:clamp(50px,6vw,80px); }
.va-row{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:clamp(32px,5vw,72px); align-items:center; }
.va-row:nth-child(even) .va-row-tx{ order:2; }
.va-row-tx .no{ font-family:var(--f-mono); font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--yellow-ink); font-weight:700; }
.s-ink .va-row-tx .no{ color:var(--yellow); }
.va-row-tx h3{ font-size:clamp(26px,2.9vw,38px); line-height:1.05; letter-spacing:-.03em; margin-top:14px; }
.va-row-tx ul{ display:grid; gap:12px; margin-top:26px; }
.va-row-tx li{ display:flex; align-items:flex-start; gap:11px; font-size:16px; line-height:1.5; color:var(--txt-l); }
.s-ink .va-row-tx li{ color:var(--txt-d); }
.va-row-tx li svg{ flex:none; margin-top:3px; color:var(--yellow-ink); }
.s-ink .va-row-tx li svg{ color:var(--yellow); }
.va-row-im{ position:relative; border-radius:16px; overflow:hidden; border:1px solid var(--va-line); box-shadow:var(--va-shadow); background:var(--ink); cursor:zoom-in; }
.s-ink .va-row-im{ border-color:var(--line-d2); }
.va-row-im img{ width:100%; height:auto; display:block; }
.va-row-im:focus-visible{ outline:2px solid var(--yellow); outline-offset:3px; }
/* lupa: sempre visível (mesmo no toque, que não tem hover) pra indicar que
   dá pra clicar; ganha destaque amarelo ao passar o mouse/focar. */
.va-zoom{
  position:absolute; right:14px; bottom:14px; z-index:2;
  display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:50%;
  background:rgba(10,10,11,.62); backdrop-filter:blur(8px);
  color:#fff; border:1px solid rgba(255,255,255,.24);
  transition:background .2s, border-color .2s, color .2s;
}
.va-row-im:hover .va-zoom, .va-row-im:focus-visible .va-zoom{ background:var(--yellow); color:var(--ink); border-color:var(--yellow); }

/* ---------------------------------------------------------------
   CARROSSEL — segmentos atendidos (arrasta / setas / dots)
   --------------------------------------------------------------- */
.va-car{ position:relative; margin-top:clamp(34px,4vw,48px); }
.va-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px,1fr);
  gap:18px; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:4px 4px 18px; margin:-4px -4px 0;
  scrollbar-width:none;
}
.va-track::-webkit-scrollbar{ display:none; }
.va-slide{
  scroll-snap-align:start; background:var(--va-panel); border:1px solid var(--va-line);
  border-radius:14px; padding:26px 24px; display:flex; flex-direction:column; gap:14px;
  min-height:190px; transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s;
}
.va-slide:hover{ transform:translateY(-4px); box-shadow:var(--va-shadow-sm); border-color:var(--va-line-2); }
.va-slide .si{ width:46px; height:46px; border-radius:11px; display:grid; place-items:center; background:var(--paper-2); color:var(--yellow-ink); flex:none; }
/* ícone do segmento é imagem (.webp com o amarelo já embutido) */
.va-slide .si img{ width:28px; height:28px; object-fit:contain; display:block; }
.va-slide h4{ font-size:19px; line-height:1.2; letter-spacing:-.02em; }
.va-slide p{ font-size:14.5px; line-height:1.55; color:var(--txt-l); margin-top:auto; }
.va-slide.cta{ background:var(--ink); border-color:var(--ink); justify-content:center; gap:16px; }
.va-slide.cta h4{ color:#fff; }
.va-slide.cta .btn{ align-self:flex-start; }

.va-car-nav{ display:flex; align-items:center; gap:10px; margin-top:6px; }
.va-arrow{
  all:unset; box-sizing:border-box; width:44px; height:44px; border-radius:50%; cursor:pointer;
  display:grid; place-items:center; border:1.5px solid var(--va-line-2); color:var(--ink);
  transition:background .2s, color .2s, border-color .2s, opacity .2s;
}
.va-arrow:hover{ background:var(--ink); color:#fff; border-color:var(--ink); }
.va-arrow:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }
.va-arrow[disabled]{ opacity:.3; cursor:default; }
.va-arrow[disabled]:hover{ background:transparent; color:var(--ink); border-color:var(--va-line-2); }
.va-dots{ display:flex; gap:7px; margin-left:8px; }
.va-dot{ all:unset; width:8px; height:8px; border-radius:50%; background:var(--va-line-2); cursor:pointer; transition:background .2s, width .2s; }
.va-dot.on{ background:var(--ink); width:22px; border-radius:4px; }
.va-dot:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; }

/* o mesmo carrossel, quando fica sobre fundo escuro */
.s-ink .va-slide, .s-ink-2 .va-slide{ background:var(--ink-3); border-color:var(--line-d); }
.s-ink .va-slide h4, .s-ink-2 .va-slide h4{ color:#fff; }
.s-ink .va-slide p, .s-ink-2 .va-slide p{ color:var(--txt-d); }
.s-ink .va-slide .si, .s-ink-2 .va-slide .si{ background:rgba(255,212,0,.12); color:var(--yellow); }
.s-ink .va-slide:hover, .s-ink-2 .va-slide:hover{ background:#1b1b22; border-color:var(--line-d2); }
.s-ink .va-slide.cta, .s-ink-2 .va-slide.cta{ background:var(--yellow); border-color:var(--yellow); }
.s-ink .va-slide.cta h4, .s-ink-2 .va-slide.cta h4{ color:var(--ink); }
.s-ink .va-arrow, .s-ink-2 .va-arrow{ border-color:var(--line-d2); color:#fff; }
.s-ink .va-arrow:hover, .s-ink-2 .va-arrow:hover{ background:#fff; color:var(--ink); border-color:#fff; }
.s-ink .va-arrow[disabled]:hover, .s-ink-2 .va-arrow[disabled]:hover{ background:transparent; color:#fff; border-color:var(--line-d2); }
.s-ink .va-arrow:focus-visible, .s-ink-2 .va-arrow:focus-visible{ outline-color:var(--yellow); }
.s-ink .va-dot, .s-ink-2 .va-dot{ background:var(--line-d2); }
.s-ink .va-dot.on, .s-ink-2 .va-dot.on{ background:var(--yellow); }

/* ---------------------------------------------------------------
   MOBILE — mockup de celular ao lado do texto
   --------------------------------------------------------------- */
.va-mob{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.72fr); gap:clamp(34px,5vw,72px); align-items:center; }
/* .lead sozinho não tem regra base no editorial.css (só variantes por contexto) */
.va-mob .lead{ margin-top:22px; font-size:17px; line-height:1.6; color:var(--txt-d); max-width:48ch; }
.va-phone{ justify-self:center; position:relative; width:min(300px,80%); }
/* padding-top reserva o espaço do notch ANTES da imagem começar (em vez
   do notch flutuar por cima cobrindo o topo do print). Como border,
   padding e notch são todos px fixos (não escalam com a imagem), o print
   trocar de tamanho nunca mais volta a esconder o título — precisava
   recalcular a mão toda vez que a imagem mudava, o que já causou dois
   ajustes errados seguidos. */
.va-phone .body{ border:10px solid #1a1a20; border-radius:40px; overflow:hidden; background:#1a1a20; padding-top:28px; box-shadow:0 40px 80px -30px rgba(0,0,0,.8); }
.va-phone .body img{ width:100%; height:auto; display:block; }
.va-phone .notch{ position:absolute; top:10px; left:50%; transform:translateX(-50%); width:44%; height:22px; background:#1a1a20; border-radius:0 0 14px 14px; z-index:2; }

/* ---------------------------------------------------------------
   RESPONSIVO
   --------------------------------------------------------------- */
/* faixa estreita de duas colunas (1081-1300px): a coluna de texto ainda
   cabe ao lado do vídeo, mas fica alta demais (a legenda quebra em mais
   linhas), e "esticar" o vídeo até essa altura o deixava quase quadrado/
   vertical. Mantém a proporção de vídeo (16:9) aqui também. */
@media (min-width:1081px) and (max-width:1300px){
  .va-shot{ height:auto; }
  .va-video{ height:auto; aspect-ratio:16/9; min-height:0; }
}
@media (max-width:1080px){
  .va-hero-grid{ grid-template-columns:minmax(0,1fr); gap:44px; }
  .va-hero h1 .line-wrap{ white-space:normal; }
  /* empilhado, não tem coluna de texto pra "esticar" até a altura dela —
     volta a ter proporção fixa, senão a caixa do vídeo colapsa a 0. */
  .va-shot{ height:auto; }
  .va-video{ height:auto; aspect-ratio:16/9; min-height:0; }
  /* sem espaço para as duas colunas: o texto deixa de ser fixo e empilha */
  .va-hub{ grid-template-columns:minmax(0,1fr); gap:0; }
  .va-hub-tx{ position:static; }
  .va-hub-in{ padding:0 0 38px; }
  .va-hub-tx > .va-hub-in > p{ max-width:60ch; }
  .va-hub-grid{ padding:0; }
  .va-mob{ grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px){
  .va-row{ grid-template-columns:minmax(0,1fr); gap:26px; }
  .va-row:nth-child(even) .va-row-tx{ order:0; }
  .va-pop{ display:none; }           /* o print já é pequeno: cartões sobrepostos atrapalham */
  .va-track{ grid-auto-columns:minmax(230px,80%); }
}
@media (max-width:620px){
  .va-hub-grid{ grid-template-columns:minmax(0,1fr); gap:14px; }
}
@media (max-width:480px){
  .va-track{ grid-auto-columns:minmax(0,88%); }
}
