/* Identidade visual do ObraClique — âmbar sobre quase-preto.
 *
 * ⚠️ OS VALORES SÃO OS MESMOS DO IDENTIDADE_VISUAL.md e do painel do ERP. Não
 * são cores "parecidas": são as mesmas. Site e sistema falando línguas visuais
 * diferentes é o que faz o cliente achar que comprou outra coisa.
 *
 * ⚠️ TEXTO SOBRE O ÂMBAR É ESCURO, NUNCA BRANCO. Branco sobre âmbar não tem
 * contraste e fica ilegível na tela do balcão com luz do dia batendo.
 *
 * ⚠️ Cor com significado não é identidade: verde de confirmar, vermelho de
 * apagar e âmbar de aviso continuam fixos. São semáforo. */

:root{
  --ambar:#E0A008; --ambar-2:#946408; --ambar-claro:#F7C948;
  --tinta:#12171A; --tinta-2:#525C64; --tinta-3:#6E7880;
  --superficie:#F7F9FA; --superficie-2:#EDF1F4;
  --linha:#E2E7EB; --linha-suave:#EFF2F5;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Asap,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--tinta);
  background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:Archivo,system-ui,sans-serif;letter-spacing:-.02em}
a{color:inherit}
img{max-width:100%;display:block}
.env{width:min(1180px,100% - 32px);margin-inline:auto}

/* ---------------- o logo: nível de bolha + Obra<b>Clique</b> ---------------- */
/* ⚠️ "Obra" em peso normal e "Clique" em NEGRITO, sem espaço. O círculo e o
 * tubo acompanham a cor do texto; só a bolha é fixa no âmbar -- é ela que faz
 * a marca ser reconhecida mesmo miúda. */
.marca{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--tinta)}
.marca svg{width:28px;height:28px;flex:none}
.marca .nome{font-family:Archivo;font-size:21px;font-weight:400;letter-spacing:-.03em;line-height:1}
.marca .nome b{font-weight:800}

/* ---------------- barra de promoção ---------------- */
.promo{background:var(--tinta);color:#fff;font-size:14px;text-align:center;padding:9px 16px}
.promo b{color:var(--ambar-claro)}
.promo a{color:var(--ambar-claro);font-weight:700}

/* ---------------- navegação ---------------- */
.navwrap{position:sticky;top:10px;z-index:60;padding:10px 0 0}
.nav{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--linha);
  border-radius:999px;padding:8px 10px 8px 18px;box-shadow:0 8px 28px rgba(18,23,26,.10)}
.nav ul{display:flex;gap:2px;list-style:none;margin:0 auto;padding:0}
.nav ul a,.nav ul button{display:flex;align-items:center;gap:5px;padding:9px 14px;border:0;background:none;
  font:inherit;font-size:14.5px;font-weight:600;color:var(--tinta);border-radius:999px;cursor:pointer;text-decoration:none}
.nav ul a:hover,.nav ul button:hover,.nav ul .aberto{background:rgba(224,160,8,.16)}
/* aperto do menu */
/* ⚠️ NADA DE QUEBRAR LINHA NO ITEM DO MENU. Com os rótulos maiores
   ("Preços dos pacotes", "Módulos avulsos"), abaixo de 1024px eles quebravam
   dentro da pílula e a barra crescia de 55px para 87px — medido. Uma barra de
   navegação que muda de altura conforme a janela parece defeito. */
.nav ul a, .nav ul button{white-space:nowrap}

/* Entre 900 e 1150px o menu aperta em vez de quebrar: fonte e espaçamento
   menores, que é o que sobra de folga antes de ele sumir de vez no celular. */
@media(max-width:1150px){
  .nav{padding-left:14px}
  .nav ul a,.nav ul button{padding:9px 9px;font-size:13.5px}
  .nav .entrar{padding:10px 8px;font-size:13.5px}
  .nav .cta{padding:10px 14px;font-size:13.5px}
}
.nav .cta{background:var(--ambar);color:var(--tinta);font-weight:700;padding:10px 20px;border-radius:999px;
  text-decoration:none;font-size:14.5px;white-space:nowrap;transition:.15s}
.nav .cta:hover{background:var(--ambar-claro);transform:translateY(-1px)}
.nav .entrar{padding:10px 14px;font-size:14.5px;font-weight:600;text-decoration:none;white-space:nowrap}
.chev{width:11px;height:11px;transition:transform .2s}
.aberto .chev{transform:rotate(180deg)}
.menuzao{position:absolute;left:0;right:0;top:calc(100% + 10px);background:var(--superficie);
  border:1px solid var(--linha);border-radius:20px;padding:18px;box-shadow:0 20px 50px rgba(18,23,26,.16);
  display:none;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.menuzao.on{display:grid;animation:cai .18s cubic-bezier(.2,.7,.3,1)}
@keyframes cai{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mcard{border-radius:16px;padding:16px 15px;
  background:linear-gradient(168deg, rgba(224,160,8,.17) 0%, rgba(224,160,8,.06) 44%, #fff 92%);
  border:1px solid rgba(224,160,8,.34)}
.mcard h4{margin:0 0 11px;font-size:11px;font-weight:800;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ambar-2);display:flex;align-items:center;gap:8px}
/* Um fio âmbar puxando o título para a linha, em vez de ele boiar sozinho. */
.mcard h4::after{content:"";flex:1;height:1px;background:rgba(224,160,8,.35)}
.mcard h4.vazio::after{display:none}
.mitem{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;
  text-decoration:none;background:rgba(255,255,255,.66);
  border:1px solid rgba(224,160,8,.20);margin-bottom:6px;
  transition:transform .15s cubic-bezier(.2,.7,.3,1),box-shadow .15s,border-color .15s,background .15s}
.mitem:last-child{margin-bottom:0}
/* O texto precisa poder encolher, senão a etiqueta de preço é espremida
   para fora da linha em telas apertadas. */
.mtxt{min-width:0;flex:1}
/* A etiqueta de preço, na cor do módulo. O número grande é o do CARTÃO — a
   mesma regra do cartão de pacote e da seção de preços. */
.mpreco{flex:none;font-family:Archivo;font-size:13.5px;font-weight:800;white-space:nowrap;
  color:var(--mc);padding:4px 9px;border-radius:999px;
  background:color-mix(in srgb, var(--mc) 10%, #fff);
  border:1px solid color-mix(in srgb, var(--mc) 24%, transparent)}
.mpreco i{font-family:Asap;font-style:normal;font-weight:600;font-size:10.5px;
  color:var(--tinta-3);margin-left:1px}
/* Vazio (módulo sem preço na tabela) não deve deixar uma pastilha em branco. */
.mpreco:empty{display:none}
/* No painel "Sistema" não há preço: as telas são núcleo. No lugar dele vai a
   resposta que o visitante quer ali — vem no plano, ou vem de um módulo. */
.msel{flex:none;font-size:11px;font-weight:800;white-space:nowrap;
  padding:4px 9px;border-radius:999px;color:var(--mc);
  background:color-mix(in srgb, var(--mc) 10%, #fff);
  border:1px solid color-mix(in srgb, var(--mc) 24%, transparent)}
/* ⚠️ Texto ESCURO sobre o âmbar (IDENTIDADE_VISUAL.md): o âmbar-2 é a versão
   fechada da cor da marca, feita justamente para escrever em cima do claro. */
.msel.nucleo{color:var(--ambar-2);background:rgba(224,160,8,.16);
  border-color:rgba(224,160,8,.36)}
/* ⚠️ O REALCE DE "ONDE ESTOU" CONTINUA ÂMBAR (decisão do Leo em 02/09) — o
 * item aberto, abaixo. O hover é outra coisa: ali a linha sobe e a borda pega
 * a cor do módulo, que é a mesma do ícone ao lado. */
.mitem:hover{background:#fff;transform:translateY(-1px);
  border-color:color-mix(in srgb, var(--mc) 45%, transparent);
  box-shadow:0 6px 16px rgba(18,23,26,.10)}
/* ⚠️ O módulo ABERTO fica marcado no próprio menu. Sem isso, quem entra numa
   página de módulo perde a noção de onde está — que era metade da sensação de
   "site à parte" que o Leo apontou. */
.mitem.atual{background:#fff;border-color:rgba(224,160,8,.55);
  box-shadow:inset 3px 0 0 var(--ambar),0 4px 14px rgba(18,23,26,.08)}
/* O preço de cada módulo, à direita do nome, dentro do menu. */
/* ---- os pacotes dentro do menu ----
 * Cartão inteiro clicável, com a cor do plano numa faixa em cima: é a mesma
 * identidade da seção de preços, para quem desce a página reconhecer o que já
 * viu no menu.
 *
 * ⚠️ FUNDO ÂMBAR (Leo, 07/09/2026), mas LAVADO e em degradê. O âmbar cheio
 * (#E0A008) apagaria os textos secundários, que são cinza — e a regra da
 * identidade é que sobre o âmbar o texto é escuro. Aqui ele entra a 14% no
 * topo e some no branco lá embaixo, o que aquece o cartão sem tirar contraste
 * de nada.
 *
 * ⚠️ E A COR DO PLANO CONTINUA MANDANDO. Ela é a única coisa que separa Balcão
 * de Depósito de Loja num relance, e se repete na seção de preços e na página
 * do plano. O âmbar é o chão; o plano é quem assina — na faixa, no selo, no
 * preço, nos chips e no "ver tudo". */
.pcard{position:relative;display:flex;flex-direction:column;gap:5px;
  background:
    radial-gradient(130% 80% at 100% 0, color-mix(in srgb, var(--pc) 17%, transparent), transparent 60%),
    radial-gradient(90% 70% at 8% 108%, color-mix(in srgb, var(--pc) 15%, transparent), transparent 68%),
    linear-gradient(168deg, rgba(224,160,8,.24) 0%, rgba(224,160,8,.10) 46%, rgba(224,160,8,.03) 78%, #fff 100%);
  border-radius:16px;padding:17px 16px 15px;text-decoration:none;color:var(--tinta);
  border:1px solid rgba(224,160,8,.45);
  box-shadow:0 1px 2px rgba(18,23,26,.05);
  transition:transform .18s cubic-bezier(.2,.7,.3,1),box-shadow .18s,border-color .18s;
  overflow:hidden;isolation:isolate}
/* A faixa do topo vai da cor do plano ao âmbar: as duas identidades na mesma
   linha, e o plano "Loja" (quase preto) deixa de ser o único sem cor. */
.pcard::before{content:"";position:absolute;inset:0 0 auto;height:5px;
  background:linear-gradient(90deg, var(--pc) 0%, var(--pc) 42%, var(--ambar) 100%)}
.pcard:hover{transform:translateY(-3px);
  box-shadow:0 14px 34px rgba(18,23,26,.14),0 0 0 1px color-mix(in srgb, var(--pc) 45%, transparent);
  border-color:color-mix(in srgb, var(--pc) 55%, transparent)}
/* O destaque acompanha o da seção: anel na cor do plano, não borda fina. */
.pcard.destaque{box-shadow:0 0 0 2px var(--pc) inset,0 6px 20px rgba(18,23,26,.09)}
.pselo{align-self:flex-start;color:#fff;font-size:10px;font-weight:800;
  background:linear-gradient(100deg, var(--pc), color-mix(in srgb, var(--pc) 72%, var(--ambar)));
  letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;margin-top:2px;
  box-shadow:0 2px 6px color-mix(in srgb, var(--pc) 35%, transparent)}
.pnome{font-family:Archivo;font-size:20px;font-weight:800;line-height:1.1;letter-spacing:-.02em}
.pquem{color:var(--tinta-2);font-size:12.5px;line-height:1.35}
/* ⚠️ O PREÇO GANHA A COR DO PLANO. É o número que a pessoa veio ver, e em
   preto ele era a única coisa sem identidade no cartão. As três cores são
   escuras o bastante para o contraste sobre o âmbar lavado. */
.ppreco{font-family:Archivo;font-size:27px;font-weight:800;line-height:1;margin-top:5px;
  color:var(--pc);letter-spacing:-.03em}
.ppreco i{font-family:Asap;font-style:normal;font-weight:400;font-size:13px;color:var(--tinta-3)}
.ppix{font-size:12px;color:var(--tinta-2)}
/* "Tudo do Balcão" é a escada entre os planos: ganha uma marca âmbar à
   esquerda para não se perder no meio das outras linhas pequenas. */
.pvem{margin-top:8px;font-size:12.5px;font-weight:700;padding-left:9px;
  border-left:3px solid var(--ambar);line-height:1.3}
.pextras{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;font-weight:700;margin-top:3px}
/* Cada módulo vira uma pastilha na cor dele. `currentColor` é a cor que o
   JS escreve no elemento, então o fundo e a borda saem sozinhos dela. */
.pmod{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;
  background:color-mix(in srgb, currentColor 11%, #fff);
  border:1px solid color-mix(in srgb, currentColor 28%, transparent);white-space:nowrap}
.pusers{font-size:11.5px;color:var(--tinta-3);margin-top:2px}
.pver{margin-top:9px;font-size:12.5px;font-weight:800;color:var(--pc);
  display:inline-flex;align-items:center;gap:4px;transition:gap .16s}
.pver i{font-style:normal;transition:transform .16s}
.pcard:hover .pver{gap:9px}

/* O botão do menu aberto no momento (a página de módulo marca "Módulos"). */
.nav ul button.atual{background:rgba(224,160,8,.16)}
.mico{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;flex:none;font-size:16px}
.mitem b{display:block;font-size:14.5px}
.mitem small{color:var(--tinta-2);font-size:12.5px;line-height:1.35;display:block}

/* ---------------- botões ---------------- */
.bt{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;
  font-weight:700;font-size:16px;text-decoration:none;border:2px solid transparent;transition:.16s;
  cursor:pointer;font-family:inherit}
.bt-1{background:var(--ambar);color:var(--tinta)}
.bt-1:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 10px 26px rgba(224,160,8,.32)}
.bt-2{border-color:rgba(255,255,255,.34);color:#fff}
.bt-2:hover{background:rgba(255,255,255,.10)}

/* ---------------- o botao que chama ----------------
 *
 * ⚠️ O BOTAO QUE LEVA AO CADASTRO PRECISA SER ACHADO SEM SER PROCURADO
 * (Leo, 09/09/2026: *"criar alguma interatividade tambem nos botoes que levam
 * ao cadastro, faze-los chamar atencao"*). Duas camadas, e nenhuma delas pisca
 * cor nem muda de tamanho:
 *   - passou o mouse, um brilho atravessa o botao uma vez;
 *   - o `.bt-chama` repete esse mesmo brilho sozinho, UMA VEZ A CADA 6
 *     SEGUNDOS. E um farol, nao um pisca-pisca: a varredura dura 1,1s e o
 *     resto do tempo o botao fica parado.
 *
 * ⚠️ O `.bt-chama` NAO E DADO A TODO BOTAO AMARELO. Se os tres cartoes de
 * plano brilhassem juntos, a secao de precos viraria vitrine de loja de
 * eletronico e o brilho pararia de querer dizer alguma coisa. Ele vive em dois
 * lugares: o botao do hero e o do topo -- e o do topo so acende depois que o
 * hero sai da tela (ver `chamarCta` em layout.js), senao os dois disputariam
 * o olho na mesma dobra.
 */
.bt-1,.bt-chama{position:relative;overflow:hidden}
.bt-1>*,.bt-chama>*{position:relative;z-index:2}
.bt-1::before,.bt-chama::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,transparent 22%,rgba(255,255,255,.62) 50%,transparent 78%);
  transform:translateX(-110%)}
/* Em 6s a varredura ocupa 18% -- 1,1 segundo andando, 4,9 parado. */
.bt-1:hover::before{animation:brilhoDoBotao 6s ease-out}
.bt-chama::before{animation:brilhoDoBotao 6s ease-out 2.5s infinite}
@keyframes brilhoDoBotao{0%{transform:translateX(-110%)}18%,100%{transform:translateX(110%)}}
/* o topo e um <a> solto na lista; sem caixa propria o `overflow` nao corta nada */
.nav .cta{display:inline-block}

/* ⚠️ NO HERO DO CELULAR, NAO. La a faixa ja tem o brilho DELA (o
   `::after` que avisa que se arrasta) -- dois brilhos por cima um do outro
   viram tremulacao. */
@media(max-width:760px){.hero-inicial .botoes .bt-1::before{display:none}}
@media(prefers-reduced-motion:reduce){.bt-1::before,.bt-chama::before{display:none}}

/* ---------------- hero ---------------- */
.hero{background:linear-gradient(160deg,var(--tinta) 0%,#1b2226 55%,#232e34 100%);color:#fff;
  padding:112px 0 76px;margin-top:-58px;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-160px;top:-140px;width:560px;height:560px;border-radius:50%;
  background:radial-gradient(circle,rgba(224,160,8,.20),transparent 68%)}
.hero .grid{display:grid;gap:40px;grid-template-columns:1fr;align-items:center;position:relative;z-index:1}
/* ⚠️ A IMAGEM GANHA A COLUNA MAIOR (Leo, 03/09/2026). O texto ja tinha sido
   escrito curto; a arte e o que faz o visitante entender em um segundo do que
   se trata, e ela estava do mesmo tamanho do bloco de texto. */
@media(min-width:1000px){.hero .grid{grid-template-columns:.84fr 1.16fr}}
.tag{display:inline-flex;align-items:center;gap:7px;background:rgba(224,160,8,.16);color:var(--ambar-claro);
  border:1px solid rgba(224,160,8,.4);font-weight:600;font-size:13px;padding:6px 14px;border-radius:999px;margin-bottom:18px}
.hero h1{font-size:clamp(27px,3.9vw,40px);line-height:1.12;margin:0 0 15px;font-weight:800}
.hero h1 em{font-style:normal;color:var(--ambar)}
/* ⚠️ O TITULO E O TEXTO ENCOLHERAM, OS BOTOES NAO (pedido explicito do Leo).
   Botao pequeno em pagina de venda e clique perdido -- e o "Testar 14 dias
   gratis" e o unico lugar para onde a pagina inteira aponta. */
.hero p.sub{font-size:16.5px;line-height:1.55;color:#cfd6da;margin:0 0 22px;max-width:32em}
.botoes{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:20px}
.selos{display:flex;gap:16px;flex-wrap:wrap;font-size:13.5px;color:#aeb8bd}
.selos span{display:flex;align-items:center;gap:6px}
.ok{color:var(--ambar)}

/* ---------------- os aparelhos do hero ---------------- */
/*
 * ⚠️ IMAGEM PRONTA, NAO MOLDURA MONTADA EM CSS. Chegou a existir aqui uma
 * construcao com notebook, celular e tablet desenhados em CSS e prints por
 * dentro. Funcionava, mas o Leo tinha uma arte melhor -- e insistir na versao
 * montada seria refazer pior o que ja estava pronto.
 *
 * ⚠️ O QUE ISSO CUSTA, PARA QUEM VIER DEPOIS: numa imagem chapada, trocar uma
 * tela exige refazer a arte. Foi por isso que a anterior envelheceu. Se um dia
 * as telas mudarem muito, o caminho e gerar a arte de novo, nao remendar.
 */
.aparelhos{position:relative;display:flex;justify-content:center}
/* ⚠️ Ela avanca para fora da coluna, para a direita: e o que da tamanho sem
   espremer o texto. O hero tem `overflow:hidden`, entao nao cria rolagem
   lateral -- conferido em 1440, 1280 e 375. */
.mockup{width:118%;max-width:none;height:auto;margin-right:-18%;
  filter:drop-shadow(0 22px 44px rgba(0,0,0,.45))}

/* ⚠️ O AVANÇO ENCOLHE JUNTO COM A TELA. Com o mesmo -18% em toda largura, num
   notebook de 1024px sobravam 67px da arte fora da janela — 10% dela, e a
   parte cortada era justo o tablet da direita. Medido; a olho passaria, porque
   na tela grande do desenvolvedor não acontece. */
@media(max-width:1300px){.mockup{width:108%;margin-right:-8%}}
@media(max-width:1000px){.mockup{width:100%;margin-right:0}}
/* ⚠️ ESTES DOIS VALORES VIERAM DO `style=` DE CADA SELO, sem mudar nada: no
   computador eles resolvem exatamente como resolviam. Saíram de lá porque
   estilo embutido ganha de folha de estilo, e o celular precisa poder pôr os
   selos noutro lugar sem recorrer a `!important`. */
.chip-nota{top:-10px;right:4%}
.chip-entrega{bottom:-6px;left:2%}
.chip{position:absolute;background:#fff;color:var(--tinta);border-radius:11px;padding:8px 13px;font-size:13px;
  font-weight:600;box-shadow:0 10px 26px rgba(0,0,0,.26);display:flex;gap:7px;align-items:center;z-index:2}
.chip .v{color:#16a34a;font-weight:800}
/* ⚠️ O TERCEIRO SELO SÓ EXISTE NO TELEFONE, e esta linha precisa vir DEPOIS de
   `.chip{...display:flex}`. Ela estava antes: mesma especificidade (uma classe
   cada), e aí quem ganha é a última escrita — o selo do PIX aparecia no
   computador, sem posição nenhuma, empilhado em cima da arte. */
.chip-pix{display:none}
@media(max-width:620px){.chip{display:none}}

/* ---------------- seções ---------------- */
section{padding:66px 0}
.tit{text-align:center;max-width:44rem;margin:0 auto 40px}
/* ⚠️ O RÓTULO USA `--ambar-2` (#946408), NÃO o âmbar da marca (#E0A008).
 * Em fundo claro o âmbar da marca dá contraste 2,0 -- ilegível. O tom escuro
 * era #A8730A e ainda reprovava: 4,10 no branco e 3,88 no cinza das seções,
 * com o mínimo de 4,5 para texto de 12px. Escurecido em 03/09/2026 para
 * #946408, que mede 5,14 e 4,87. Medido no navegador, não estimado.
 * Clarear isso de volta some com o rótulo na tela do balcão com luz do dia. */
.rot{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--ambar-2);margin-bottom:10px}
.tit h2{font-size:clamp(25px,3.6vw,37px);line-height:1.16;margin:0 0 12px;font-weight:800}
.tit p{font-size:16.5px;color:var(--tinta-2);line-height:1.55;margin:0}
.cinza{background:var(--superficie)}
.escuro{background:var(--tinta);color:#fff}
.escuro .tit p{color:#b9c2c7}
.escuro .rot{color:var(--ambar)}

/* ---------------- o diferencial: texto sobre a foto ---------------- */
/*
 * ⚠️ O TEXTO FICA NUM PAINEL DE VIDRO, não solto sobre a foto. Foto de loja
 * tem luz de teto, prateleira clara e faixa de LED no balcão — o contraste
 * muda de um canto para o outro, e texto solto some justamente onde a foto
 * clareia. O painel põe um PISO: seja o que for que estiver atrás, o fundo do
 * texto nunca fica mais claro do que ele.
 *
 * É a mesma solução do painel do menu, pelo mesmo motivo — só que lá o risco
 * era clarear demais e aqui é a foto variar.
 */
.diferencial{position:relative;padding:0;overflow:hidden;background:var(--tinta)}
.diferencial::before{
  content:"";position:absolute;inset:0;
  background:url("/img/balcao-hero.jpg") center/cover no-repeat;
}
/* ⚠️ O escurecimento é em GRADIENTE, mais forte do lado do texto. Escurecer a
   foto inteira por igual mataria o lado direito, que é onde está a cena. */
.diferencial::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(10,14,16,.86) 0%, rgba(10,14,16,.72) 42%,
                                     rgba(10,14,16,.30) 72%, rgba(10,14,16,.15) 100%);
}
.diferencial .env{position:relative;z-index:1;padding-block:56px}
.diferencial .vidro{
  max-width:37rem;border-radius:20px;padding:24px 26px;
  background:linear-gradient(rgba(27,34,38,.42), rgba(27,34,38,.42)), rgba(18,23,26,.34);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  box-shadow:0 22px 60px rgba(0,0,0,.4);
  border:1px solid rgba(255,255,255,.10);
}
.diferencial .rot{color:var(--ambar);margin-bottom:10px}
.diferencial h2{font-size:clamp(24px,3.1vw,32px);line-height:1.14;margin:0 0 12px;
  font-weight:800;color:#fff}
.diferencial p{font-size:16.5px;line-height:1.62;color:rgba(255,255,255,.86);margin:0 0 14px}
.diferencial p strong{color:#fff;font-weight:700}
.diferencial .pontos{list-style:none;margin:0 0 16px;padding:0;display:flex;
  flex-direction:column;gap:11px}
.diferencial .pontos li{display:flex;gap:9px;font-size:15.5px;line-height:1.55;
  color:rgba(255,255,255,.86)}
.diferencial .pontos i{font-style:normal;font-weight:800;color:var(--ambar);flex:none}
.diferencial .pontos strong{color:#fff;font-weight:700}
.diferencial .fecho{color:#fff;font-weight:700;margin-bottom:0}
@media(max-width:700px){
  .diferencial .env{padding-block:40px}
  .diferencial .vidro{padding:22px}
}

/* ---------------- fora da loja: o carrossel de tres celulares ---------------- */
/*
 * Tres aparelhos: um na frente e dois atras. Clicar num de tras, arrastar ou
 * usar as setas do teclado traz ele para a frente.
 *
 * ⚠️ A MOLDURA E DESENHADA EM CSS, e nao a imagem de mockup pronta. Recortar a
 * tela de dentro de um mockup em imagem exige acertar o retangulo no pixel, e
 * qualquer print de proporcao diferente desalinha. Em CSS a moldura se adapta
 * ao print, escala sem borrar e nao pesa um byte.
 *
 * ⚠️ E O FUNDO E ESCURO (pedido do Leo). Tres celulares claros sobre fundo
 * claro somem; sobre o quase-preto eles viram o assunto da secao.
 */
.foradaloja{background:linear-gradient(160deg,var(--tinta) 0%,#1a2328 60%,#222e34 100%);
  color:#fff;position:relative;overflow:hidden}
.foradaloja::after{content:"";position:absolute;left:-120px;bottom:-160px;width:520px;height:520px;
  border-radius:50%;background:radial-gradient(circle,rgba(224,160,8,.16),transparent 68%)}
.foradaloja .env{position:relative;z-index:1}
/* ⚠️ AS REGRAS SAO ESCRITAS COM `.dupla` NO MEIO DE PROPOSITO.
 * Sem isso o texto sai ESCURO nesta secao escura -- e foi o que aconteceu:
 * `.foradaloja p` e `.dupla p` tem a MESMA especificidade, e como o bloco de
 * `.dupla` vem depois neste arquivo, era ele que ganhava. O texto ficava
 * cinza-escuro sobre fundo quase-preto, quase ilegivel.
 *
 * A licao, para quem mexer aqui: em CSS, empate de especificidade e decidido
 * pela ORDEM. Uma secao que inverte as cores precisa de seletor mais
 * especifico que o generico, nao so de vir antes ou depois. */
.foradaloja .rot{color:var(--ambar)}
.foradaloja .dupla h2{font-size:clamp(25px,3.4vw,35px);line-height:1.16;margin:0 0 16px;
  font-weight:800;color:#fff}
.foradaloja .dupla p{font-size:16.5px;line-height:1.62;color:rgba(255,255,255,.88);margin:0 0 14px}
.foradaloja .dupla p strong{color:#fff;font-weight:700}

/* ---- o palco ---- */
.carrossel{position:relative;height:520px;display:flex;align-items:center;justify-content:center;
  touch-action:pan-y;user-select:none;cursor:grab}
.carrossel:active{cursor:grabbing}

/* ---- cada celular ---- */
.zap{position:absolute;width:224px;transition:transform .45s cubic-bezier(.25,.8,.3,1),
  opacity .45s, filter .45s;will-change:transform}
/* ⚠️ A MESMA MOLDURA SERVE AO CARROSSEL E AO HERO DO CELULAR. Duas
   regras iguais com nomes diferentes divergiriam no primeiro ajuste de raio ou
   de sombra — e as duas aparecem na mesma página, uma embaixo da outra. */
.zap .moldura, .celular-hero .quadro{background:#0d1114;border-radius:34px;padding:9px;
  box-shadow:0 26px 60px rgba(0,0,0,.6), inset 0 0 0 1.5px rgba(255,255,255,.14)}
.zap .tela, .celular-hero .tela{position:relative;border-radius:26px;overflow:hidden;background:#fff;aspect-ratio:9/19.5}
.zap .tela img, .celular-hero .tela img{width:100%;height:100%;object-fit:cover;object-position:top}
/* a ilhota do topo, que e o que faz ler como celular moderno */
.zap .ilha, .celular-hero .ilha{position:absolute;top:9px;left:50%;transform:translateX(-50%);
  width:64px;height:17px;border-radius:99px;background:#0d1114;z-index:2}

/* ---- as tres posicoes ---- */
.zap[data-pos="frente"]  {transform:translateX(0) scale(1);        z-index:3;opacity:1}
.zap[data-pos="esquerda"]{transform:translateX(-172px) scale(.82); z-index:2;opacity:.72;filter:brightness(.72)}
.zap[data-pos="direita"] {transform:translateX(172px) scale(.82);  z-index:2;opacity:.72;filter:brightness(.72)}
.zap[data-pos="esquerda"]:hover,.zap[data-pos="direita"]:hover{opacity:.92;filter:brightness(.88)}

/* ---- a legenda do que esta na frente ---- */
.carrossel-legenda{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);
  background:rgba(255,255,255,.12);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:7px 16px;
  font-size:13px;font-weight:600;color:#fff;white-space:nowrap;z-index:4}

/* ---- as bolinhas ---- */
.carrossel-pontos{display:flex;gap:8px;justify-content:center;margin-top:22px}
.carrossel-pontos button{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.3);transition:.2s}
.carrossel-pontos button.on{background:var(--ambar);width:26px;border-radius:99px}

@media(max-width:700px){
  .carrossel{height:430px}
  .zap{width:182px}
  .zap[data-pos="esquerda"]{transform:translateX(-124px) scale(.8)}
  .zap[data-pos="direita"] {transform:translateX(124px) scale(.8)}
}
/* ⚠️ Quem pediu menos animacao no sistema operacional nao leva nenhuma. */
@media(prefers-reduced-motion:reduce){.zap{transition:none}}

/* duas colunas com foto */
.dupla{display:grid;gap:38px;grid-template-columns:1fr;align-items:center}
@media(min-width:900px){.dupla{grid-template-columns:1fr 1fr}.dupla.invertido>*:first-child{order:2}}
.foto{border-radius:18px;overflow:hidden;box-shadow:0 18px 46px rgba(18,23,26,.18)}
.foto.retrato img{max-height:520px;width:100%;object-fit:cover;object-position:top}
.dupla h2{font-size:clamp(24px,3.2vw,33px);line-height:1.18;margin:0 0 16px;font-weight:800}
.dupla p{font-size:16.5px;line-height:1.62;color:var(--tinta-2);margin:0 0 14px}
.dupla p strong{color:var(--tinta)}

/* ---------------- funcionalidades com detalhe ---------------- */
.func{display:grid;gap:22px;grid-template-columns:1fr}
@media(min-width:940px){.func{grid-template-columns:320px 1fr}}
.listaf{display:flex;flex-direction:column;gap:6px}
.listaf button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:12px 14px;
  border:1px solid transparent;background:#fff;border-radius:12px;font:inherit;font-size:15px;
  font-weight:600;cursor:pointer;transition:.15s;color:var(--tinta)}
.listaf button:hover{background:rgba(224,160,8,.10)}
.listaf button.on{background:#fff;border-color:var(--ambar);box-shadow:0 6px 20px rgba(224,160,8,.20)}
.listaf .pt{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;flex:none;font-size:15px}
.detalhe{background:#fff;border:1px solid var(--linha);border-radius:18px;overflow:hidden;
  box-shadow:0 10px 34px rgba(18,23,26,.09)}
/* ⚠️ CELULAR SOBREPOSTO AO COMPUTADOR (Leo, 02/09/2026). Uma tela só não
   conta a história inteira: o argumento é que É O MESMO SISTEMA nos dois, não
   um aplicativo reduzido. Ver os dois juntos diz isso sem precisar escrever. */
.capa.composta{position:relative;aspect-ratio:2.15/1;background:var(--tinta);padding:14px 14px 0;overflow:hidden}
.capa.composta .desktop{height:100%;border-radius:8px 8px 0 0;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.35)}
.capa.composta .desktop img{width:100%;height:100%;object-fit:cover;object-position:top left}
/* O celular fica na DIREITA e para baixo, sobrando do quadro: dá profundidade
   e não tapa o miolo da tela grande, que é o que se quer ler. */
.capa.composta .cel{position:absolute;right:18px;bottom:-8px;width:15%;min-width:78px;
  background:#2b3439;border-radius:12px;padding:4px;box-shadow:0 14px 34px rgba(0,0,0,.55)}
.capa.composta .cel .tel{border-radius:9px;overflow:hidden;background:#fff;aspect-ratio:9/18}
.capa.composta .cel .tel img{width:100%;height:100%;object-fit:cover;object-position:top}
@media(max-width:640px){.capa.composta .cel{width:20%;right:10px}}
.detalhe .capa{aspect-ratio:2.35/1;overflow:hidden;background:var(--superficie-2)}
.detalhe .capa img{width:100%;height:100%;object-fit:cover;object-position:top left}
.detalhe .txt{padding:22px}
.detalhe h3{margin:0 0 10px;font-size:21px}
.detalhe p{margin:0 0 14px;font-size:15.5px;line-height:1.62;color:var(--tinta-2)}
.pontos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.pontos li{display:flex;gap:9px;font-size:14.5px;line-height:1.55}
.pontos i{font-style:normal;font-weight:800;flex:none}
/* ⚠️ A caixa de aviso é âmbar de AVISO, não âmbar de marca. Mesma cor, papel
 * diferente -- e é assim que ela funciona também dentro do sistema. */
.aviso-caixa{margin-top:16px;background:#FFF8E6;border-left:3px solid var(--ambar);border-radius:0 10px 10px 0;
  padding:12px 14px;font-size:14px;line-height:1.6;color:var(--tinta)}

/* ---------------- cards ---------------- */
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
.card{background:#fff;border:1px solid var(--linha);border-radius:16px;padding:22px;transition:.18s}
.card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(18,23,26,.10);border-color:transparent}
.card .ico{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-size:21px;margin-bottom:13px}
.card h3{margin:0 0 7px;font-size:18px}
.card p{margin:0;color:var(--tinta-2);font-size:14.5px;line-height:1.55}


/* ---------------- preços ---------------- */
.chave{display:flex;justify-content:center;margin-bottom:26px}
.chave .caixa{display:inline-flex;background:var(--tinta);border-radius:14px;padding:6px;gap:4px}
.chave button{border:0;background:none;font:inherit;font-weight:700;font-size:15px;color:rgba(255,255,255,.65);
  padding:10px 20px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:8px}
.chave button.on{background:var(--ambar);color:var(--tinta)}
.chave .off{background:#dc2626;color:#fff;font-size:11px;font-weight:800;padding:3px 8px;border-radius:999px}
.chave button.on .off{background:var(--tinta);color:var(--ambar)}
.planos{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start}
.plano{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 6px 22px rgba(18,23,26,.09);
  display:flex;flex-direction:column;transition:.2s;position:relative}
.plano:hover{transform:translateY(-6px);box-shadow:0 22px 50px rgba(18,23,26,.17)}
.plano .cabeca{padding:18px 20px;color:#fff;position:relative}
.plano .cabeca h3{margin:0;font-size:23px;font-weight:800}
.plano .cabeca p{margin:4px 0 0;font-size:13.5px;opacity:.92;line-height:1.4}
.rosca{position:absolute;right:-10px;top:-10px;width:60px;height:60px;border-radius:50%;background:#dc2626;
  color:#fff;display:grid;place-items:center;transform:rotate(12deg);box-shadow:0 6px 16px rgba(0,0,0,.3);
  border:3px solid #fff;text-align:center;line-height:1}
.rosca b{font-size:16px;font-weight:800;display:block}
.rosca small{font-size:9px;font-weight:800}
.plano .corpo{padding:20px;display:flex;flex-direction:column;gap:14px;flex:1}
.de{color:#9aa3a8;text-decoration:line-through;font-size:14px}
.por{display:flex;align-items:flex-end;gap:5px}
.por b{font-family:Archivo;font-size:34px;font-weight:800;line-height:1}
.por span{color:var(--tinta-2);font-size:14px;padding-bottom:3px}
.equiv{font-size:13px;color:var(--tinta-2)}
/* ⚠️ A linha do PIX e VERDE, nao ambar. Ambar aqui competiria com o botao de
   assinar; verde le como "desconto" sem disputar a atencao. */
.pix{background:#EEF6F1;color:#1E6B54;border-radius:9px;padding:7px 11px;font-size:13px;font-weight:600}
.pix b{font-weight:800}
.pixmod{font-family:Asap;font-weight:600;font-size:11.5px;color:#1E6B54;margin-top:3px}
.econ{background:#f0fdf4;color:#166534;border-radius:9px;padding:8px 11px;font-size:13.5px;font-weight:700}
.lista{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:14px;line-height:1.45}
.lista li{display:flex;gap:8px}
.lista i{flex:none;font-style:normal;font-weight:800}
.mais{color:var(--tinta-3);font-style:italic;font-size:13px;padding-left:22px}
.herda{background:var(--superficie-2);border-radius:9px;padding:8px 11px;font-size:13.5px;font-weight:700}
.modlinha{display:flex;gap:8px;font-size:14px;line-height:1.45}
.modlinha i{font-style:normal;font-weight:800;flex:none}
.usuarios{font-size:13.5px;font-weight:700;margin-top:2px}
.plano .pe{margin-top:auto;padding-top:6px}
.plano .bt{width:100%;font-size:15.5px;padding:13px}
.selo-plano{position:absolute;top:0;left:0;right:0;background:var(--tinta);color:var(--ambar);text-align:center;
  font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:6px;z-index:1}
.plano.destaque{outline:3px solid var(--tinta);outline-offset:-3px}
.plano.destaque .cabeca{padding-top:32px}

/* ---------------- cadastro ---------------- */
/* ⚠️ O CARTAO PRECISA DIZER A SUA COR DE TEXTO. Ele e branco DENTRO de uma
   secao `.escuro`, que manda `color:#fff` para tudo que esta dentro dela -- e
   como o cartao nunca redefiniu isso, o `<h3>Criar meu teste</h3>` era branco
   no branco: estava na pagina, media 24px de altura e nao dava para ler.
   Achado em 09/09/2026, ao medir o cartao no navegador; e antigo. Quem escrever
   texto novo aqui dentro sem cor propria herda esta, e nao a da secao. */
.form{background:#fff;color:var(--tinta);border-radius:20px;padding:28px;box-shadow:0 22px 60px rgba(0,0,0,.30);max-width:560px;margin-inline:auto}
.form h3{margin:0 0 5px;font-size:22px}
.form>p{margin:0 0 20px;color:var(--tinta-2);font-size:14.5px;line-height:1.5}
.campos{display:grid;gap:13px;grid-template-columns:1fr}
@media(min-width:560px){.campos{grid-template-columns:1fr 1fr}.campos .todo{grid-column:1/-1}}
label{display:block;font-size:12.5px;font-weight:600;color:var(--tinta-2);margin-bottom:4px}
input,select{width:100%;padding:11px 13px;border:1px solid #d6dadd;border-radius:10px;font:inherit;font-size:15px;background:#fff}
input:focus,select:focus{outline:0;border-color:var(--ambar);box-shadow:0 0 0 3px rgba(224,160,8,.22)}
.esconde{position:absolute;left:-9999px}
.aviso{border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.5;margin-top:14px;display:none}
.aviso.mostra{display:block}
.aviso.bom{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}
.aviso.ruim{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}

/* ---------------- cadastro em passos ----------------
 *
 * ⚠️ TRES PERGUNTAS CURTAS NO LUGAR DE OITO CAMPOS (Leo, 09/09/2026:
 * *"algo acho que funciona bem e formulario no esquema passo a passo"*). O
 * cartao antigo mostrava tudo de uma vez, CNPJ a vista logo de cara: quem
 * chega pelo anuncio decide se vale a pena ANTES de digitar a primeira letra,
 * e oito campos respondem "nao" por ele.
 *
 * ⚠️ OS PASSOS SAO SO CSS. Os campos nunca saem do mesmo <form> -- ver o
 * comentario no HTML. Trocar de passo e trocar a classe `on`, e nada mais.
 */
.trilha{display:flex;list-style:none;margin:0 0 22px;padding:0}
.trilha li{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;
  font-size:10.5px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--tinta-3);transition:color .2s}
/* a linha que liga cada passo ao anterior; acende junto com ele */
.trilha li::before{content:"";position:absolute;top:13px;right:50%;left:-50%;height:3px;
  background:#e6e9ec;border-radius:2px;transition:background .3s}
.trilha li:first-child::before{display:none}
.trilha li i{position:relative;z-index:1;width:29px;height:29px;border-radius:50%;
  display:grid;place-items:center;background:#eceff1;color:var(--tinta-3);
  font-style:normal;font-size:13.5px;font-weight:800;transition:.25s}
.trilha li.ativo{color:var(--tinta)}
.trilha li.ativo i{background:var(--ambar);color:var(--tinta);
  box-shadow:0 0 0 5px rgba(224,160,8,.20);transform:scale(1.06)}
.trilha li.feito{color:var(--tinta-2)}
.trilha li.feito i{background:var(--tinta);color:var(--ambar)}
.trilha li.feito::before,.trilha li.ativo::before{background:var(--ambar)}
/* passo ja preenchido volta com um clique -- e o cursor precisa dizer isso */
.trilha li.feito{cursor:pointer}

.passo{display:none}
.passo.on{display:block;animation:passoEntra .26s ease both}
.passo.on.voltando{animation-name:passoVolta}
@keyframes passoEntra{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
@keyframes passoVolta{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}

.campos .dica{display:block;margin-top:5px;font-size:12.5px;color:var(--tinta-3);line-height:1.45}
/* ⚠️ O ERRO FICA COLADO NO CAMPO, e nao numa tarja no pe do cartao. Num
   formulario em passos a tarja e pior que inutil: ela pode estar falando de um
   campo que esta escondido dois passos atras. */
.campos .msg{display:none;margin-top:5px;font-size:12.5px;font-weight:600;color:#b91c1c;line-height:1.4}
.campos .ruim .msg{display:block}
.campos .ruim input,.campos .ruim select{border-color:#dc2626;background:#fffafa}
.campos .ruim input:focus,.campos .ruim select:focus{box-shadow:0 0 0 3px rgba(220,38,38,.16)}

.passo-pe{display:flex;gap:10px;margin-top:20px}
.passo-pe .bt{flex:1}
/* ⚠️ `hidden` sozinho nao esconde botao nenhum aqui: `.bt` e
   display:inline-flex e ganha do display:none que o navegador da ao atributo. */
.passo-pe .bt[hidden]{display:none}
.bt-volta{flex:0 0 auto;background:#fff;color:var(--tinta-2);border-color:#d6dadd;padding:14px 18px}
.bt-volta:hover{background:#f3f5f6;color:var(--tinta)}
/* ⚠️ NO CELULAR OS DOIS BOTOES EMPILHAM, e o principal fica EM CIMA.
   Lado a lado num cartao de 287px, "Criar meu teste gratis" quebrava em tres
   linhas e virava um bloco gordo do lado de um "Voltar" do mesmo tamanho: os
   dois pareciam ter o mesmo peso, quando um encerra o cadastro e o outro
   desfaz. O `column-reverse` faz o "Voltar", que vem primeiro no HTML (e onde
   o teclado espera achar o "voltar"), aparecer EMBAIXO sem trocar a ordem de
   quem le a pagina com leitor de tela. */
@media(max-width:560px){
  .passo-pe{flex-direction:column-reverse}
  .passo-pe .bt{flex:0 0 auto;width:100%}
}
.form .passo-selo{margin:12px 0 0;text-align:center;font-size:12.5px;color:var(--tinta-3)}
.form .letra-miuda{font-size:12.5px;color:var(--tinta-3);line-height:1.55;margin:16px 0 0}
.form .letra-miuda b{color:var(--tinta-2)}
.form .letra-miuda a{color:var(--ambar-2);font-weight:600}
@media(prefers-reduced-motion:reduce){.passo.on{animation:none}}

/* ---------------- dúvidas ---------------- */
.faq{max-width:780px;margin-inline:auto;display:flex;flex-direction:column;gap:10px}
details{background:#fff;border:1px solid var(--linha);border-radius:12px;padding:0 18px}
details[open]{border-color:var(--ambar)}
summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:15.5px;list-style:none;
  display:flex;justify-content:space-between;gap:12px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-size:20px;color:var(--ambar-2);font-weight:800}
details[open] summary::after{content:"−"}
details p{margin:0 0 16px;color:var(--tinta-2);font-size:14.5px;line-height:1.6}

/* ---------------- rodapé ---------------- */
footer{background:var(--tinta);color:#96a0a6;padding:44px 0 28px;font-size:14px}
footer .cols{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:26px}
footer h5{color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 11px}
footer a{color:#96a0a6;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:var(--ambar)}
footer .marca{color:#fff}
footer .fim{border-top:1px solid rgba(255,255,255,.10);padding-top:18px;font-size:13px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

@media(max-width:860px){.nav ul{display:none}.hero{padding-top:92px}.fone{display:none}}

/* O link para a página completa do plano, no pé do cartão de preços.
 * ⚠️ É um LINK, e o cartão inteiro NÃO é clicável: dentro dele já existe o
 * botão "Começar grátis", e link dentro de link o navegador desmonta. */
.verplano{display:block;margin-top:10px;font-size:13.5px;font-weight:700;text-decoration:none}
.verplano:hover{text-decoration:underline}
/* O plano aberto fica marcado no painel do menu, como já acontece com o módulo. */
.pcard.atual{box-shadow:0 0 0 2px var(--pc) inset,0 6px 20px rgba(18,23,26,.09)}


/* ============ A JANELA DO CADASTRO ============
 *
 * Aparece assim que o formulário do teste grátis é enviado, conta o que está
 * acontecendo, e depois vira o resultado — com endereço, usuário e senha.
 *
 * ⚠️ ELA OCUPA A TELA de propósito. A criação leva uns 30 segundos, e antes
 * disso a pessoa via o formulário limpar e uma frase pequena embaixo: parecia
 * que nada tinha acontecido. Uma janela no meio da tela é a diferença entre
 * "deu certo" e "será que enviou?".
 *
 * ⚠️ NÃO FECHA CLICANDO FORA. A senha aparece aqui dentro e aparece uma vez
 * só — uma janela que some com um clique distraído levaria a senha junto. */
.janelao{
  position:fixed;inset:0;z-index:9999;
  background:rgba(18,23,26,.72);
  backdrop-filter:blur(3px);
  display:flex;align-items:center;justify-content:center;
  padding:20px;overflow-y:auto;
  animation:janelaEntra .22s ease-out;
}
@keyframes janelaEntra{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.janelao{animation:none}}

.janelao-cartao{
  background:#fff;border-radius:16px;width:100%;max-width:520px;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  overflow:hidden;margin:auto;
}

.jl-topo{padding:30px 30px 24px;text-align:center;background:#12171A;color:#fff}
.jl-topo h3{font-family:Archivo,sans-serif;font-size:21px;font-weight:800;margin:14px 0 6px;
  letter-spacing:-.01em}
.jl-topo .jl-passo{margin:0;font-size:14.5px;color:rgba(255,255,255,.72);line-height:1.5}
.jl-topo.jl-ok{background:#12332A}

/* o girador: um anel âmbar que roda */
.jl-girando{width:38px;height:38px;margin:0 auto;border-radius:50%;
  border:3px solid rgba(255,255,255,.16);border-top-color:var(--ambar);
  animation:jlGira .9s linear infinite}
@keyframes jlGira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.jl-girando{animation-duration:3s}}

.jl-certo{width:38px;height:38px;margin:0 auto;border-radius:50%;background:#3FA97A;
  color:#0B1F18;font-size:22px;font-weight:800;line-height:38px;text-align:center}

.jl-corpo{padding:24px 30px 30px}
.jl-linha{display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  padding:9px 0;border-bottom:1px solid var(--linha)}
.jl-linha:last-child{border-bottom:0}
.jl-linha b{font-size:13px;color:var(--tinta-2);font-weight:600;white-space:nowrap}
.jl-mono{font-family:ui-monospace,"Cascadia Code",Consolas,monospace;font-size:15px;
  font-weight:700;color:var(--tinta);text-align:right;word-break:break-all}
a.jl-mono{color:var(--tinta);text-decoration:none;border-bottom:1px solid #CFD6DB}

.jl-acesso{background:var(--superficie);border:1px solid var(--linha);border-radius:11px;
  padding:6px 16px;margin-bottom:16px}
/* A senha é o que a pessoa veio buscar: fica maior que o resto. */
.jl-senha .jl-mono{font-size:19px;letter-spacing:1px}

.jl-nota{margin:0 0 12px;font-size:14.5px;line-height:1.6;color:var(--tinta-2)}
.jl-nota b{color:var(--tinta)}
.jl-espera{margin:16px 0 0;font-size:13.5px;color:var(--tinta-3);text-align:center}

.jl-aviso{margin:0 0 20px;padding:12px 15px;border-radius:9px;font-size:14px;line-height:1.55;
  background:#FDF5E0;border-left:3px solid var(--ambar);color:var(--tinta)}

.jl-passos{border-top:1px solid var(--linha);padding-top:18px;margin-bottom:22px}
.jl-passos h4{font-family:Archivo,sans-serif;font-size:12px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--tinta-3);margin:0 0 12px}
.jl-passos ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.jl-passos li{font-size:14.5px;line-height:1.5;color:var(--tinta-2)}
.jl-passos li b{color:var(--tinta)}

.jl-bt{display:block;width:100%;text-align:center}
.jl-fechar{display:block;width:100%;margin-top:12px;background:transparent;border:0;
  padding:11px;cursor:pointer;font-family:Asap,sans-serif;font-size:14.5px;color:var(--tinta-2)}
.jl-fechar:hover{color:var(--tinta)}

@media (max-width:520px){
  .jl-topo,.jl-corpo{padding-left:20px;padding-right:20px}
  .jl-linha{flex-direction:column;gap:2px;align-items:flex-start}
  .jl-mono{text-align:left}
}


/* ---------------- as tarjas de transição ---------------- */
/*
 * ⚠️ ÂMBAR COM TEXTO ESCURO. O âmbar #E0A008 é claro: branco em cima dele dá
 * contraste 2,28 e some. Todo texto aqui é a tinta escura da marca.
 *
 * ⚠️ AS LISTRAS SE MOVEM DEVAGAR (28s por volta). Rápido vira pisca-pisca de
 * promoção e cansa em três segundos; devagar dá a impressão de coisa ligada,
 * que é o que a tarja está dizendo com as palavras.
 */
.tarja{
  position:relative;overflow:hidden;padding:30px 0;
  background:linear-gradient(135deg,var(--ambar) 0%,var(--ambar-claro) 52%,var(--ambar) 100%);
  border-top:2px solid var(--tinta);border-bottom:2px solid var(--tinta);
}
.tarja::before{
  content:"";position:absolute;inset:-40% -10%;pointer-events:none;
  background:repeating-linear-gradient(115deg,
    rgba(18,23,26,.055) 0 12px, rgba(18,23,26,0) 12px 34px);
  animation:tarjaAnda 28s linear infinite;
}
@keyframes tarjaAnda{to{transform:translateX(-34px)}}
@media(prefers-reduced-motion:reduce){.tarja::before{animation:none}}

.tarja-caixa{position:relative;display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}

/* O selo com a bolinha: a marca de "isto está acontecendo". */
.tarja-selo{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--tinta);color:var(--ambar-claro);
  padding:5px 13px;border-radius:999px;
  font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
}
.tarja-selo i{width:8px;height:8px;border-radius:50%;background:#38D07A;box-shadow:0 0 0 0 rgba(56,208,122,.65);animation:tarjaPulso 2.2s ease-out infinite}
@keyframes tarjaPulso{
  70%{box-shadow:0 0 0 9px rgba(56,208,122,0)}
  100%{box-shadow:0 0 0 0 rgba(56,208,122,0)}
}
@media(prefers-reduced-motion:reduce){.tarja-selo i{animation:none}}

.tarja-frase{
  margin:0;max-width:760px;color:var(--tinta);
  font-family:Archivo,system-ui,sans-serif;font-weight:600;
  font-size:clamp(17px,2.1vw,22px);line-height:1.42;letter-spacing:-.015em;
}
.tarja-frase b{font-weight:800}

/* Os fatos, em pastilhas: cada um é uma coisa que a loja faz de verdade. */
.tarja-fatos{
  display:flex;flex-wrap:wrap;justify-content:center;gap:8px;
  margin:2px 0 0;padding:0;list-style:none;
}
.tarja-fatos li{
  background:rgba(18,23,26,.09);border:1px solid rgba(18,23,26,.14);
  color:var(--tinta);border-radius:999px;padding:6px 13px;
  font-size:13.5px;font-weight:600;line-height:1;
}
.tarja-fatos li b{font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:15px}

@media(max-width:560px){
  .tarja{padding:24px 0}
  .tarja-fatos li{font-size:12.5px;padding:5px 11px}
}


/* ---------------- "por dentro": o palco escuro ---------------- */
/*
 * ⚠️ O FUNDO ESCURO É FUNCIONAL. O conteúdo desta seção são prints do sistema,
 * que são telas CLARAS: sobre cinza claro elas se dissolvem no fundo, sobre
 * escuro viram a peça iluminada da sala.
 *
 * ⚠️ Tudo aqui é texto claro sobre escuro — o oposto da regra do âmbar. As duas
 * convivem: o que não pode é branco sobre âmbar.
 */
.pordentro{position:relative;overflow:hidden;padding:60px 0 66px;background:var(--tinta);color:#fff}
.pordentro::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(1100px 420px at 50% -8%, rgba(224,160,8,.20), transparent 70%);
}
.pordentro > .env{position:relative}
.tit-escuro h2{color:#fff}
.tit-escuro .rot{color:var(--ambar)}
.tit-escuro p{color:rgba(255,255,255,.66)}

/* O trilho de abas, com as setas nas pontas. */
.trilho-caixa{display:flex;align-items:center;gap:8px;margin-bottom:22px}
.trilho{
  display:flex;gap:8px;flex:1;overflow-x:auto;scroll-behavior:smooth;
  scrollbar-width:none;-ms-overflow-style:none;padding:2px;
}
.trilho::-webkit-scrollbar{display:none}
.trilho button{
  display:inline-flex;align-items:center;gap:8px;flex:none;cursor:pointer;
  padding:9px 15px;border-radius:999px;font:inherit;font-size:14.5px;font-weight:700;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.82);
  transition:.16s;
}
.trilho button:hover{background:rgba(255,255,255,.14);color:#fff}
.trilho button.on{color:#fff;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.trilho button .pt{font-size:15px;line-height:1}
.trilho-seta{
  flex:none;width:34px;height:34px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.16);color:#fff;
  font-size:20px;line-height:1;transition:.16s;
}
.trilho-seta:hover{background:rgba(255,255,255,.16)}
@media(max-width:640px){.trilho-seta{display:none}}

/* O palco: a janela de um lado, a explicação do outro. */
.palco{display:grid;gap:20px;grid-template-columns:1fr;align-items:start}
/* ⚠️ CENTRALIZADO NA VERTICAL: a janela do print tem 318px de altura e o
   painel de texto tem 517 — encostadas no topo, sobrava um vazio de 200px
   embaixo da tela, e vazio no meio de uma secao escura parece erro de
   carregamento. Centralizado, a diferenca de altura vira respiro. */
@media(min-width:1000px){.palco{grid-template-columns:1.12fr .88fr;gap:26px;align-items:center}}

.palco-tela{position:relative;padding-bottom:22px}
.moldura{
  border-radius:14px;overflow:hidden;background:#0C1013;
  border:1px solid rgba(255,255,255,.14);box-shadow:0 26px 64px rgba(0,0,0,.55);
}
.moldura .barra{display:flex;align-items:center;gap:6px;padding:9px 12px;background:rgba(255,255,255,.06)}
.moldura .barra i{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.22);flex:none}
.moldura .barra i:first-child{background:#F05A4F}
.moldura .barra i:nth-child(2){background:#F5BF4F}
.moldura .barra i:nth-child(3){background:#61C554}
.moldura .barra span{margin-left:8px;font-size:12px;font-weight:600;color:rgba(255,255,255,.55)}
/* ⚠️ ALTURA FIXA PELA PROPORCAO, e nao pela imagem. Duas razoes, e as duas
   sao visiveis: (1) os prints tem alturas diferentes, entao trocar de aba fazia
   a pagina inteira pular; (2) eles carregam tarde (`loading=lazy`), e sem
   proporcao reservada a moldura nascia com 56px de barra e crescia depois,
   empurrando tudo. O recorte e pelo ALTO E PELA ESQUERDA, que e onde fica o que
   interessa numa tela de sistema: o menu, o titulo e as primeiras linhas. */
.moldura img{width:100%;display:block;aspect-ratio:16/9.6;object-fit:cover;object-position:top left}

.palco-tela .cel{
  position:absolute;right:-6px;bottom:0;width:17.5%;min-width:92px;
  background:#2b3439;border-radius:14px;padding:4px;box-shadow:0 18px 40px rgba(0,0,0,.6);
}
.palco-tela .cel .tel{border-radius:11px;overflow:hidden;background:#fff;aspect-ratio:9/17.5}
.palco-tela .cel .tel img{width:100%;height:100%;object-fit:cover;object-position:top}
@media(max-width:640px){.palco-tela .cel{width:22%;right:2px}}

/* A explicação, num painel de vidro. */
.explica{
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.12);
  border-radius:16px;padding:22px;backdrop-filter:blur(3px);
}
.explica-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.explica h3{margin:0 0 12px;font-size:21px;color:#fff;display:flex;align-items:center;gap:10px}
.explica h3 .risco{width:5px;height:20px;border-radius:3px;flex:none}
.conta-func{
  order:2;font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:15px;
  color:rgba(255,255,255,.85);letter-spacing:.02em;
}
.conta-func i{font-style:normal;font-weight:600;color:rgba(255,255,255,.4)}
.explica p{margin:0 0 14px;font-size:15.5px;line-height:1.62;color:rgba(255,255,255,.74)}
.pontos-escuro li{color:rgba(255,255,255,.88)}
.pontos-escuro i{color:var(--ambar)}
.pontos-escuro b{color:#fff}
.aviso-escuro{
  margin-top:16px;background:rgba(224,160,8,.13);border-left:3px solid var(--ambar);
  border-radius:0 10px 10px 0;padding:12px 14px;font-size:14px;line-height:1.6;color:rgba(255,255,255,.86);
}
.aviso-escuro b{color:#fff}
.explica-bt{margin-top:18px}

/* ⚠️ A TROCA TEM QUE SER VISÍVEL: sem a entrada, mudar de aba parecia que a
 * página tinha piscado, e quem trocou por engano não sabia se algo mudou. */
@keyframes pdEntra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.entra{animation:pdEntra .34s ease both}
@media(prefers-reduced-motion:reduce){.entra{animation:none}}


/* ---------------- as duas tarjas: as cores ---------------- */
/*
 * ⚠️ DUAS TARJAS, DOIS PAPÉIS, E POR ISSO DUAS CORES. A âmbar é a PROVA (de
 * onde o sistema veio); a verde derruba a OBJEÇÃO de quem vai trocar de sistema
 * ("vou ter que cadastrar tudo de novo?"). Duas âmbares iguais competiriam
 * entre si, e a segunda pareceria repetição da primeira.
 *
 * ⚠️ A REGRA DO CONTRASTE INVERTE ENTRE ELAS: sobre o âmbar, que é claro, o
 * texto é escuro; sobre o verde, que é escuro, o texto é claro. É a mesma regra
 * de sempre — o que não pode é branco sobre âmbar.
 */
.tarja.ambar{
  background:linear-gradient(135deg,var(--ambar) 0%,var(--ambar-claro) 52%,var(--ambar) 100%);
}
.tarja.verde{
  background:linear-gradient(135deg,#17513F 0%,#1E6B54 52%,#17513F 100%);
  color:#fff;
}
.tarja.verde::before{
  background:repeating-linear-gradient(115deg,
    rgba(255,255,255,.055) 0 12px, rgba(255,255,255,0) 12px 34px);
}
.tarja.verde .tarja-selo{background:#fff;color:#17513F}
.tarja.verde .tarja-frase{color:#fff}
.tarja.verde .tarja-fatos li{
  background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff;
}

/* ---------------- o diferencial em cartões ---------------- */
.diferencial .vidro-titulo{margin-bottom:18px}
.dif-cards{position:relative;display:grid;gap:12px;grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){.dif-cards{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.dif-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.dif-cards{grid-template-columns:1fr}}

/* ⚠️ MESMO VIDRO DO PAINEL DO TÍTULO, de propósito: são a mesma peça, quebrada
   em cinco. Vidro diferente faria parecer dois componentes de origens
   diferentes empilhados sobre a mesma foto. */
.dif-card{
  border-radius:14px;padding:16px 15px;
  background:linear-gradient(rgba(27,34,38,.42), rgba(27,34,38,.42)), rgba(18,23,26,.34);
  backdrop-filter:blur(18px) saturate(130%);
  -webkit-backdrop-filter:blur(18px) saturate(130%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 18px 44px rgba(0,0,0,.34);
}
.dif-card b{
  display:block;margin-bottom:7px;color:#fff;
  font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:15.5px;line-height:1.25;
}
.dif-card span{display:block;font-size:13.5px;line-height:1.55;color:rgba(255,255,255,.8)}
/* O tracinho âmbar em cima do título: o ✓ da lista antiga, virado marca. */
.dif-card::before{
  content:"";display:block;width:26px;height:3px;border-radius:2px;
  background:var(--ambar);margin-bottom:11px;
}

/* ---------------- entrar aparecendo ---------------- */
/*
 * ⚠️ O ATRASO É EM CASCATA (--i), e não todo mundo junto: cinco cartões
 * surgindo ao mesmo tempo são um bloco que pisca; surgindo um atrás do outro, o
 * olho lê um a um, na ordem em que foram escritos.
 */
.aparece{opacity:0;transform:translateY(14px)}
.aparece.visivel{
  opacity:1;transform:none;
  transition:opacity .5s ease, transform .5s cubic-bezier(.2,.7,.3,1);
  transition-delay:calc(var(--i, 0) * 90ms);
}
@media(prefers-reduced-motion:reduce){
  .aparece{opacity:1;transform:none}
  .aparece.visivel{transition:none}
}


/* ---------------- "por dentro" no celular ---------------- */
/*
 * ⚠️ NO CELULAR O TRILHO DEIXA DE ROLAR E VIRA GRADE (Leo, 03/09/2026: "só dá
 * pra clicar nos dois primeiros botões, os outros não ficam visíveis e não dá
 * pra arrastar").
 *
 * A faixa de abas tem 41px de altura e as seis abas somam 904px de conteúdo em
 * 343px de tela. Tecnicamente ela rola; na mão, não: um alvo dessa altura
 * disputa cada gesto com a rolagem vertical da página, e o dedo que erra por
 * três pixels rola a página em vez do trilho. O usuário conclui, com razão, que
 * está travado — e as quatro abas de baixo simplesmente não existem para ele.
 *
 * Grade de duas colunas resolve por outro caminho: sem rolagem não há gesto
 * para acertar, e as seis aparecem de uma vez. Custa três linhas de altura, que
 * é barato perto de esconder dois terços do conteúdo da seção.
 *
 * ⚠️ NO COMPUTADOR NADA MUDA — lá o trilho cabe inteiro e o Leo aprovou.
 */
/* ⚠️ A GRADE DE DUAS COLUNAS DO TRILHO FOI EMBORA em 05/09/2026. Ela resolveu o
   problema da época (as abas rolavam de lado e ninguém alcançava as quatro
   últimas), mas ocupava a largura inteira e empurrava o print para baixo dela.
   O desenho novo está no fim deste arquivo: trilho em coluna à esquerda e o
   celular surgindo pela direita. */


/* ---------------- a chamada do modo de operação ---------------- */
/*
 * ⚠️ O CARTÃO DO MODO É UM <a>, e não uma <div> com um link dentro. Ele inteiro
 * é o alvo: no celular, um cartão de 280px de altura com um "ver este modo" de
 * 14px no rodapé faria o dedo ter de acertar 3% da área que a pessoa está
 * olhando.
 *
 * ⚠️ ELE HERDA `.card`, então tudo que muda no cartão comum (raio, sombra,
 * elevação no hover) chega aqui de graça. O que está abaixo é só o que o
 * cartão comum não tem: o caminho numerado e o rodapé com a cor do modo.
 */
.modo-card{display:flex;flex-direction:column;text-decoration:none;color:inherit}
.modo-card:hover{border-color:var(--c)}
.modo-card h3{margin-bottom:8px}
.modo-card>p{flex:none}

/* O caminho da venda, na ordem em que ele acontece no balcão.
   ⚠️ <ol> DE VERDADE: a ordem É a informação, e quem lê por leitor de tela
   precisa ouvir "1 de 3". */
.modo-caminho{list-style:none;counter-reset:passo;margin:15px 0 0;padding:0;
  display:flex;flex-direction:column;gap:8px}
.modo-caminho li{counter-increment:passo;display:flex;gap:9px;align-items:flex-start;
  font-size:13.5px;line-height:1.45;color:var(--tinta-2);font-weight:600}
.modo-caminho li::before{content:counter(passo);flex:none;width:19px;height:19px;border-radius:6px;
  display:grid;place-items:center;background:var(--c);color:#fff;
  font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:11px;margin-top:1px}

.modo-ver{margin-top:auto;padding-top:16px;font-size:13.5px;font-weight:800;color:var(--c)}

/* O fecho da seção: a frase que tira o medo de escolher errado, e o botão. */
.modo-fecho{margin-top:32px;text-align:center}
.modo-fecho p{max-width:36em;margin:0 auto 18px;font-size:15.5px;line-height:1.6;color:var(--tinta-2)}
.modo-fecho p b{color:var(--tinta)}


/* ---------------- a seção de preços, sobre âmbar ---------------- */
/*
 * ⚠️ ÂMBAR COM TEXTO ESCURO, do título ao rodapé. Branco sobre âmbar dá
 * contraste 2.28 — some na tela do balcão com sol batendo. É a regra que abre
 * este arquivo, e é justamente numa seção âmbar que ela é fácil de esquecer:
 * o reflexo é escrever branco porque o fundo é "colorido".
 *
 * ⚠️ SÓ ESTA SEÇÃO É ÂMBAR na página inteira. Duas seções âmbar não destacam
 * nenhuma das duas.
 */
.precos-ambar{position:relative;overflow:hidden;color:var(--tinta);
  background:linear-gradient(167deg,#F5C233 0%,var(--ambar) 48%,#C68A07 100%)}

/* A malha de planta baixa, no fundo. Discreta de propósito (5,5% de tinta):
   ela dá textura de projeto de obra sem disputar com os cartões, que são o que
   a pessoa veio ler. A máscara faz a malha sumir para baixo, senão ela
   atravessaria a borda da seção e viraria uma linha reta atrás do rodapé. */
.precos-ambar::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(18,23,26,.055) 0 1px,transparent 1px 46px),
    repeating-linear-gradient(90deg,rgba(18,23,26,.055) 0 1px,transparent 1px 46px);
  -webkit-mask-image:radial-gradient(125% 95% at 50% 0%,#000 18%,transparent 76%);
          mask-image:radial-gradient(125% 95% at 50% 0%,#000 18%,transparent 76%)}
/* O clarão de cima, que levanta o título do fundo. */
.precos-ambar::after{content:"";position:absolute;left:50%;top:-300px;width:1000px;height:600px;
  transform:translateX(-50%);border-radius:50%;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,255,255,.5),transparent)}
.precos-ambar>.env{position:relative;z-index:1}

.tit-ambar .rot{display:inline-block;color:var(--tinta);background:rgba(18,23,26,.11);
  padding:5px 14px;border-radius:999px;letter-spacing:.14em}
.tit-ambar h2{color:var(--tinta)}
.tit-ambar p{color:rgba(18,23,26,.74)}

/* ---------------- o seletor mensal/anual ---------------- */
/*
 * ⚠️ AS DUAS METADES TÊM LARGURA IGUAL (grid 1fr 1fr) porque o cursor anda
 * exatamente 50%. Com larguras naturais — "Mensal" é bem mais curto que
 * "Anual 20% OFF" — o cursor pararia fora do botão.
 */
.precos-ambar .chave{margin-bottom:34px}
.precos-ambar .chave .caixa{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;
  gap:0;padding:6px;background:var(--tinta);border-radius:16px;
  box-shadow:0 16px 38px rgba(18,23,26,.30)}
.precos-ambar .chave .caixa::before{content:"";position:absolute;top:6px;bottom:6px;left:6px;
  width:calc(50% - 6px);border-radius:11px;background:var(--ambar-claro);
  transition:transform .3s cubic-bezier(.2,.75,.3,1)}
.precos-ambar .chave .caixa[data-p="anual"]::before{transform:translateX(100%)}
.precos-ambar .chave button{position:relative;z-index:1;padding:11px 24px;border-radius:11px;
  background:none;transition:color .22s}
.precos-ambar .chave button.on{background:none;color:var(--tinta)}
.precos-ambar .chave button:not(.on){color:rgba(255,255,255,.68)}
.precos-ambar .chave button:not(.on):hover{color:#fff}

/* ---------------- os cartões ---------------- */
/*
 * ⚠️ ALTURA IGUAL (`align-items:stretch`), e não cada um do seu tamanho. Sobre
 * fundo branco a diferença de altura passava; sobre âmbar cada cartão é um
 * retângulo branco recortado, e três retângulos de alturas diferentes lado a
 * lado parecem desalinhamento, não conteúdo diferente.
 */
.precos-ambar .planos{gap:20px;align-items:stretch}
.precos-ambar .plano{border-radius:20px;box-shadow:0 22px 54px rgba(18,23,26,.26)}
.precos-ambar .plano:hover{box-shadow:0 34px 70px rgba(18,23,26,.34)}
/* O destaque cresce um pouco e sobe — sobre âmbar o contorno preto de antes
   somia no meio dos outros dois. ⚠️ Só no computador: no celular os cartões
   ficam um debaixo do outro, e um deles 3% maior vira só um desalinhamento. */
@media(min-width:900px){
  .precos-ambar .plano.destaque{transform:scale(1.035);z-index:2;
    box-shadow:0 30px 70px rgba(18,23,26,.38)}
  .precos-ambar .plano.destaque:hover{transform:scale(1.035) translateY(-6px)}
}
.precos-ambar .selo-plano{background:var(--tinta);color:var(--ambar-claro);letter-spacing:.12em}

/* A entrada em cascata. Reaproveita `.aparece`, que já existe nesta folha:
   o que muda aqui é que o cartão também cresce um pouco ao chegar. */
.precos-ambar .plano.aparece{opacity:0;transform:translateY(26px) scale(.97)}
.precos-ambar .plano.aparece.visivel{opacity:1;transform:none;
  transition:opacity .55s ease, transform .55s cubic-bezier(.2,.75,.3,1);
  transition-delay:calc(var(--i,0) * 110ms)}
@media(min-width:900px){
  .precos-ambar .plano.destaque.aparece{transform:translateY(26px) scale(.99)}
  .precos-ambar .plano.destaque.aparece.visivel{transform:scale(1.035)}
}
@media(prefers-reduced-motion:reduce){
  .precos-ambar .plano.aparece{opacity:1;transform:none}
  .precos-ambar .plano.aparece.visivel{transition:none}
  .precos-ambar .chave .caixa::before{transition:none}
}

/* ⚠️ O NÚMERO GRANDE COM `tabular-nums`. Ele é contado quadro a quadro na
   entrada, e em fonte proporcional cada dígito tem largura própria: o preço
   ficava tremendo para os lados enquanto subia. */
.precos-ambar .por b{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}

/* ---------------- o que vem em todos ---------------- */
.precos-inclui{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;
  margin:34px 0 0;font-size:14px;color:rgba(18,23,26,.72)}
.precos-inclui span{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.62);
  border:1px solid rgba(18,23,26,.10);border-radius:999px;padding:7px 15px;
  font-weight:700;color:var(--tinta)}
.precos-inclui span::before{content:"✓";color:#1E6B54;font-weight:800}

/* A linha que ficou no lugar da seção de módulos avulsos (06/09/2026).
   ⚠️ Texto ESCURO sobre o âmbar, como todo o resto desta seção: branco sobre
   âmbar não passa no contraste (IDENTIDADE_VISUAL.md). Os links herdam a cor
   do próprio módulo, e por isso levam sublinhado — cor sozinha não é sinal de
   link para quem não distingue as duas. */
.precos-avulso{max-width:52em;margin:16px auto 0;text-align:center;font-size:14.5px;
  line-height:1.65;color:rgba(18,23,26,.72)}
.precos-avulso b{color:var(--tinta)}
.precos-avulso a{font-weight:700;text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1.5px;text-decoration-color:rgba(18,23,26,.28)}
.precos-avulso a:hover{text-decoration-color:currentColor}


/* ==================== O SITE NO CELULAR ==================== */
/*
 * Leo, 05/09/2026: *"a versão desktop tá ótima mas a mobile não tá. o hero
 * inicial não funciona com os mockups de pc e tablet"*.
 *
 * ⚠️ TUDO AQUI É `max-width`. O computador não passa por nenhuma destas regras
 * — a versão que ele aprovou continua byte a byte a mesma.
 */

/* ---------------- 1. o hero ---------------- */
/*
 * ⚠️ A ARTE DO HERO É UM NOTEBOOK COM UM TABLET E UM CELULAR ATRÁS. Numa tela de
 * 375px ela encolhe até o notebook virar um retângulo cinza de 200px: não dá
 * para ler nenhuma das três telas, e o argumento visual mais forte da página
 * vira um borrão.
 *
 * No telefone entra UM celular, no tamanho em que a tela dentro dele se lê —
 * que é, afinal, o aparelho na mão de quem está vendo.
 *
 * ⚠️ E A MOLDURA É A MESMA DO CARROSSEL, que o Leo já aprovou ("o fora da loja
 * com os 3 celulares tá perfeito pra celular").
 */
.celular-hero{display:none}
@media(max-width:760px){
  /* ⚠️ MENOS TEXTO ANTES DO APARELHO. Leo, 05/09/2026: *"tem muito texto antes
     do celular"*. O título encolhe um degrau, os espaços entre os blocos
     apertam e a frase de abertura do parágrafo some (`.so-pc`) — no total, uns
     130px a menos até o celular aparecer, que é meia tela de telefone. */
  .hero{padding:96px 0 26px}
  .hero .grid{gap:22px}
  .hero h1{font-size:clamp(25px,7.2vw,33px);margin-bottom:12px}
  .hero p.sub{font-size:15.5px;margin-bottom:18px}
  .hero .so-pc{display:none}
  .hero .botoes{gap:9px;margin-bottom:14px}
  .hero .selos{gap:12px;font-size:12.5px}

  .aparelhos .mockup{display:none}

  /* ⚠️ QUASE A LARGURA DA TELA. Inteiro, o aparelho tinha de caber em ALTURA, e
     isso o obrigava a ser estreito — a tela dentro dele ficava ilegível, que é
     o contrário do motivo de ele estar ali. Cortado pela metade, ele pode ser
     grande. */
  .celular-hero{display:block;position:relative;width:min(88vw,352px);margin:2px auto 0}

  /* O brilho âmbar por trás — é o que descola o aparelho do fundo escuro. */
  .celular-hero::before{
    content:"";position:absolute;left:50%;top:46%;width:150%;aspect-ratio:1;
    transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;
    background:radial-gradient(closest-side,rgba(224,160,8,.30),transparent 72%);
  }

  /* ==================== A LOJA TRABALHANDO, ATRÁS DO APARELHO ====================
   *
   * ⚠️ SÃO ONDAS SAINDO DO CELULAR, e não uma animação qualquer: cada uma é uma
   * venda entrando. Junto com os dois selos que se revezam ("Nota emitida",
   * "Entrega agendada"), o hero para de ser uma foto de aparelho e passa a
   * mostrar um sistema EM USO — que é o que a pessoa precisa acreditar nos
   * primeiros três segundos de rolagem vinda do Instagram.
   *
   * ⚠️ LENTAS E QUASE TRANSPARENTES (4,6s, 35% de opacidade). Movimento rápido
   * atrás do texto principal disputa a leitura do título, que é o que precisa
   * ser lido primeiro. Ela existe para ser sentida, não assistida.
   */
  .celular-hero .onda{
    position:absolute;left:50%;top:48%;width:118%;aspect-ratio:1;
    transform:translate(-50%,-50%) scale(.62);
    border-radius:50%;border:1.5px solid rgba(224,160,8,.38);
    pointer-events:none;opacity:0;
    animation:ondaDaLoja 4.6s ease-out infinite;
  }
  .celular-hero .onda:nth-of-type(2){animation-delay:1.55s}
  .celular-hero .onda:nth-of-type(3){animation-delay:3.1s}

  /* ⚠️ OS SELOS SE REVEZAM em vez de ficarem os dois parados. Parados eles são
     legenda; alternando, são coisas ACONTECENDO na loja — uma nota que saiu,
     uma entrega que foi marcada. */
  /* ⚠️ NÃO PONHA `animation:` (o atalho) NUM SELETOR MAIS ESPECÍFICO QUE OS
     DE CADA SELO. O atalho zera o `animation-delay`, e é o atraso que faz os
     três se revezarem em vez de piscarem juntos. Foi o que aconteceu aqui até
     05/09/2026. A animação dos três está definida em `.aparelhos .chip`, mais
     abaixo, e cada selo só acrescenta o próprio atraso. */
  /* ⚠️ A VITRINE É QUEM CORTA. Altura fixa + `overflow:hidden`, e a máscara
     dissolve o último quarto no fundo escuro do hero — cortado a régua, o
     aparelho pareceria página que não terminou de carregar. */
  .celular-hero .vitrine{
    position:relative;overflow:hidden;
    height:min(46vh,360px);
    -webkit-mask-image:linear-gradient(#000 72%,transparent 99%);
            mask-image:linear-gradient(#000 72%,transparent 99%);
  }
  .celular-hero .quadro{position:relative;animation:flutua 6s ease-in-out infinite}

  /* ==================== OS SELOS, POR CIMA DA TELA ====================
   *
   * ⚠️ TRÊS, UM DE CADA VEZ, EM CIMA DO APARELHO. Antes eram dois parados nas
   * pontas da arte. Aparecendo um por vez sobre a tela, eles deixam de ser
   * legenda e viram o que está ACONTECENDO ali dentro — que é o que segura o
   * dedo de quem chegou rolando o Instagram.
   *
   * ⚠️ 3,5s CADA, SEM SOBREPOSIÇÃO. O ciclo é de 10,5s e cada um entra com um
   * terço de atraso: nunca há dois na tela ao mesmo tempo, e nunca há nenhum
   * por muito tempo.
   */
  .aparelhos .chip{
    display:flex;font-size:12.5px;padding:7px 12px;z-index:3;
    box-shadow:0 12px 30px rgba(0,0,0,.42);
    /* ⚠️ PROPRIEDADES SEPARADAS, E NAO O ATALHO `animation:`. O atalho preenche
       TODA a familia, inclusive o `animation-delay`, que ele zera -- e como
       este seletor e mais especifico que `.chip-nota` e companhia, o atraso de
       cada selo virava 0 e os tres piscavam juntos. Escrito assim, o atraso de
       cada um e a unica declaracao que existe para ele. */
    animation-name:seloVaiEVem;
    animation-duration:10.5s;
    animation-timing-function:ease-in-out;
    animation-iteration-count:infinite;
  }
  .chip-nota   {top:15%; right:-6px; bottom:auto; left:auto;  animation-delay:0s}
  .chip-entrega{top:41%; left:-8px;  bottom:auto; right:auto; animation-delay:3.5s}
  .chip-pix    {display:flex;top:64%; right:0;    bottom:auto; left:auto;  animation-delay:7s}

}
@keyframes flutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media(prefers-reduced-motion:reduce){.celular-hero .quadro{animation:none}}

/* ---------------- 2. o plano que se segura ---------------- */
/*
 * Leo, 05/09/2026: *"vi um site uma vez que tinha um botão redondo com o preço
 * do produto e escrito segure o botão, ao segurar ia surgindo um leque ao redor
 * do botão... seria legal isso nos pacotes, o cliente segurar e ao redor ir
 * aparecendo os módulos que fazem parte, e abaixo a descrição curta de cada
 * módulo como check list"*.
 *
 * ⚠️ O QUE ABRE NÃO É SÓ ENFEITE: é a lista do que vem no plano, que no
 * computador está sempre à vista dentro do cartão. Segurar é o caminho
 * agradável; UM TOQUE ABRE IGUAL, na hora, sem leque. Informação de preço não
 * pode ficar atrás de um gesto que a pessoa não descobre ou não consegue fazer.
 *
 * ⚠️ E O PLANO EM DESTAQUE JÁ NASCE ABERTO. É ele que ensina o gesto: a pessoa
 * vê o leque montado num, e entende o que os outros dois botões fazem.
 */
.planos-cel{display:none}
@media(max-width:760px){
  .planos{display:none}
  .planos-cel{display:flex;flex-direction:column;gap:18px}
}

.pcel{
  position:relative;background:#fff;border-radius:22px;padding:20px 16px 18px;
  box-shadow:0 20px 46px rgba(18,23,26,.22);
}
.pcel::before{content:"";position:absolute;inset:0 0 auto;height:5px;
  border-radius:22px 22px 0 0;background:var(--pc)}
.pcel.destaque{box-shadow:0 0 0 2px var(--pc) inset, 0 26px 56px rgba(18,23,26,.30)}

.pcel-selo{display:inline-block;background:var(--pc);color:#fff;font-size:10.5px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;padding:4px 11px;border-radius:999px;margin-bottom:8px}
.pcel h3{font-family:Archivo,system-ui,sans-serif;font-size:24px;font-weight:800;margin:0;color:var(--pc)}
.pcel .quem{margin:4px 0 0;font-size:13.5px;line-height:1.45;color:var(--tinta-2)}

/* ---- o palco: o botão no meio, o leque em volta ---- */
/* ⚠️ FECHADO ELE ENCOLHE. Aberto o palco precisa dos 246px para caber o anel
   de ícones; fechado, esse mesmo espaço vira um vazio de 90px em volta de um
   botão, e o cartão parece que faltou carregar alguma coisa. Encolher também
   faz o abrir CRESCER na tela, que é o que dá a sensação de que algo
   aconteceu. */
.pcel-palco{position:relative;display:grid;place-items:center;
  width:100%;height:190px;margin:6px 0 2px;
  transition:height .42s cubic-bezier(.2,.7,.3,1)}
.pcel[data-aberto="sim"] .pcel-palco{height:258px}
@media(prefers-reduced-motion:reduce){.pcel-palco{transition:none}}

.pcel-botao{
  position:relative;z-index:2;width:150px;height:150px;border-radius:50%;
  border:0;padding:0;cursor:pointer;font:inherit;color:#fff;
  background:radial-gradient(120% 120% at 30% 20%, #1d262b, var(--tinta));
  box-shadow:0 14px 34px rgba(18,23,26,.42);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  /* ⚠️ SEM SELEÇÃO E SEM MENU DE CONTEXTO. Segurar o dedo num elemento faz o
     navegador do celular oferecer "copiar" e selecionar o texto — bem no meio
     do gesto que a gente está pedindo. */
  user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), box-shadow .18s;
}
.pcel-botao:active{transform:scale(.965)}
.pcel[data-aberto="sim"] .pcel-botao{box-shadow:0 10px 26px rgba(18,23,26,.34), 0 0 0 6px color-mix(in srgb, var(--pc) 18%, transparent)}

/* O anel que enche enquanto o dedo está em cima. */
.pcel-anel{position:absolute;inset:-9px;width:calc(100% + 18px);height:calc(100% + 18px);
  transform:rotate(-90deg);pointer-events:none}
.pcel-anel circle{fill:none;stroke-width:3.5;stroke-linecap:round}
.pcel-anel .trilho{stroke:rgba(255,255,255,.14)}
.pcel-anel .carga{stroke:var(--pc);stroke-dasharray:var(--volta);stroke-dashoffset:var(--volta)}

.pcel-de{font-size:12px;color:rgba(255,255,255,.5);text-decoration:line-through;line-height:1}
.pcel-valor{font-family:Archivo,system-ui,sans-serif;font-size:27px;font-weight:800;line-height:1.05;
  font-variant-numeric:tabular-nums}
.pcel-mes{font-size:11.5px;color:rgba(255,255,255,.62);line-height:1}
/* ⚠️ 11.5px E NAO 10.5px. Medido na tela: a linha do PIX era o menor texto da
   pagina inteira, e e ela que diz o desconto -- o numero que faz a pessoa
   escolher a forma de pagamento. Texto que se le espremendo o olho nao vende. */
.pcel-pix{margin-top:3px;font-size:11.5px;font-weight:600;color:#8fd3ab;line-height:1.2;
  max-width:126px;text-align:center}

/* ==================== "SEGURE O BOTÃO" ====================
 *
 * Leo, 05/09/2026: *"o texto segure tá muito pequeno, coloque grande, chamativo
 * com uma seta animada indicando para o botão. não pode passar batido"*.
 *
 * ⚠️ ERA 12px CINZA, EMBAIXO DO BOTÃO. Num site que a pessoa chega pelo
 * Instagram, rolando com o polegar, aquilo era invisível — e sem ele o botão
 * redondo é só um preço bonito que não faz nada. A instrução é a metade que
 * fazia a outra metade funcionar.
 *
 * ⚠️ E A SETA APONTA PARA CIMA, subindo e voltando. Seta parada é um enfeite;
 * seta que se move na direção do alvo é uma instrução que o olho lê sem ler.
 */
.pcel-dica{margin:6px 0 0;text-align:center;line-height:1.15;
  transition:opacity .25s, max-height .35s, margin .35s;max-height:90px;overflow:hidden}
.pcel[data-aberto="sim"] .pcel-dica{opacity:0;max-height:0;margin-top:0}

/* ⚠️ DESENHO, E NÃO O CARACTERE "↑". A seta de teclado sai com a espessura
   que a fonte tiver — no telefone ela virava um risco fininho, que é o oposto
   de "não pode passar batido". Desenhada, a espessura é escolhida (3,4) e sai
   igual em todo aparelho. */
.pcel-seta{display:block;width:26px;margin:0 auto;color:var(--pc);
  animation:setaSobe 1.5s ease-in-out infinite}
.pcel-seta svg{display:block;width:26px;height:15px}
.pcel-dica b{display:block;font-family:Archivo,system-ui,sans-serif;font-size:17px;font-weight:800;
  letter-spacing:.04em;text-transform:uppercase;color:var(--pc);margin-top:1px}
.pcel-dica small{display:block;font-size:12.5px;color:var(--tinta-2);margin-top:2px}

@keyframes setaSobe{
  0%,100%{transform:translateY(3px);opacity:.55}
  50%    {transform:translateY(-4px);opacity:1}
}

/* ⚠️ O HALO PULSA SÓ ENQUANTO ESTÁ FECHADO. Aberto ele viraria um pisca-pisca
   em volta de algo que a pessoa já abriu — chamar atenção para o que já foi
   atendido é o jeito mais rápido de a pessoa querer sair da página. */
.pcel-botao::after{content:"";position:absolute;inset:-9px;border-radius:50%;
  border:2px solid var(--pc);opacity:0;pointer-events:none;
  animation:haloPulsa 2.6s ease-out infinite}
.pcel[data-aberto="sim"] .pcel-botao::after{animation:none;opacity:0}
@keyframes haloPulsa{
  0%  {transform:scale(1);   opacity:.55}
  70% {transform:scale(1.22);opacity:0}
  100%{transform:scale(1.22);opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .pcel-seta,.pcel-botao::after{animation:none}
  .pcel-botao::after{opacity:.35}
}

/* ---- o leque ---- */
/*
 * ⚠️ CADA RAIO É POSICIONADO POR ÂNGULO, e o ícone é DESGIRADO na mesma medida
 * (`rotate(var(--a)) translateY(...) rotate(calc(var(--a) * -1))`). Sem o
 * segundo giro os ícones sairiam deitados conforme a posição no círculo — o de
 * baixo ficaria de cabeça para baixo.
 */
.pcel-leque{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.pcel-raio{
  position:absolute;width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;font-size:19px;
  background:#fff;box-shadow:0 6px 16px rgba(18,23,26,.20);
  border:1.5px solid color-mix(in srgb, var(--rc) 34%, transparent);
  transform:rotate(var(--a)) translateY(-104px) rotate(calc(var(--a) * -1)) scale(.2);
  opacity:0;
  transition:transform .42s cubic-bezier(.2,1.5,.4,1), opacity .3s;
}
.pcel[data-aberto="sim"] .pcel-raio{
  opacity:1;
  transform:rotate(var(--a)) translateY(-104px) rotate(calc(var(--a) * -1)) scale(1);
  transition-delay:calc(var(--i) * 55ms);
}

/* ---- a lista, embaixo ---- */
.pcel-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px;
  overflow:hidden;max-height:0;opacity:0;transition:max-height .5s ease, opacity .35s}
.pcel[data-aberto="sim"] .pcel-lista{max-height:900px;opacity:1;margin-top:4px}
.pcel-lista li{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;line-height:1.45;
  opacity:0;transform:translateY(8px)}
.pcel[data-aberto="sim"] .pcel-lista li{opacity:1;transform:none;
  transition:opacity .35s ease, transform .35s cubic-bezier(.2,.7,.3,1);
  transition-delay:calc(220ms + var(--i) * 45ms)}
.pcel-lista .mk{flex:none;width:19px;height:19px;border-radius:6px;display:grid;place-items:center;
  font-size:11px;font-weight:800;background:color-mix(in srgb, var(--rc) 16%, transparent);color:var(--rc);
  margin-top:1px}
.pcel-lista b{color:var(--tinta)}
.pcel-lista span{color:var(--tinta-2)}
/* O módulo pago se distingue do que vem de série: é o que a pessoa está
   comprando a mais neste degrau. */
.pcel-lista li.pago b::after{content:"módulo";margin-left:6px;font-size:9.5px;font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;color:var(--rc);vertical-align:1px}

.pcel-pe{margin-top:16px;display:flex;flex-direction:column;gap:9px;align-items:stretch}
.pcel-pe .bt{width:100%;font-size:15.5px;padding:13px}
.pcel-usuarios{text-align:center;font-size:12.5px;color:var(--tinta-3);margin:0}

@media(prefers-reduced-motion:reduce){
  .pcel-raio,.pcel-lista,.pcel-lista li{transition:none}
  .pcel-botao{transition:none}
}


/* ---------------- as animações do hero no celular ---------------- */
@keyframes ondaDaLoja{
  0%  {transform:translate(-50%,-50%) scale(.62);opacity:0}
  12% {opacity:.55}
  100%{transform:translate(-50%,-50%) scale(1.28);opacity:0}
}
@keyframes seloVaiEVem{
  0%,3%    {opacity:0;transform:translateY(7px) scale(.92)}
  9%,42%   {opacity:1;transform:none}
  48%,100% {opacity:0;transform:translateY(-7px) scale(.97)}
}
@media(prefers-reduced-motion:reduce){
  .celular-hero .onda{animation:none;opacity:0}
  .aparelhos .chip{animation:none;opacity:1}
}

/* ==================== COMO A LOJA VENDE, NO CELULAR ====================
 *
 * Leo, 05/09/2026: *"a parte como sua loja vende no mobile tá muito extensa, tá
 * quebrando muito a estética, um grande espaço de fundo branco"*. Media 1.529px
 * — quase duas telas, com os três caminhos abertos ao mesmo tempo.
 *
 * ⚠️ NO COMPUTADOR OS TRÊS FICAM ABERTOS DE PROPÓSITO: lado a lado, a pessoa
 * COMPARA os três jeitos de vender e se reconhece num deles. Empilhados no
 * telefone não há comparação nenhuma — só rolagem. Por isso aqui vira acordeão.
 */
.modos-cel{display:none}
@media(max-width:760px){
  #modos .cards{display:none}
  .modos-cel{display:flex;flex-direction:column;gap:10px}
}

.modocel{border:1px solid var(--linha);border-radius:16px;background:#fff;overflow:hidden;
  transition:border-color .25s, box-shadow .25s}
.modocel[data-aberto="sim"]{border-color:var(--c);box-shadow:0 14px 34px rgba(18,23,26,.10)}

.modocel-topo{display:flex;align-items:center;gap:12px;width:100%;padding:14px;
  background:none;border:0;font:inherit;text-align:left;cursor:pointer;color:inherit}
.modocel-ico{flex:none;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:19px}
.modocel-nome{flex:1;font-family:Archivo,system-ui,sans-serif;font-size:15.5px;font-weight:800;
  line-height:1.25}
.modocel-seta{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:var(--superficie-2);color:var(--tinta-2);transition:transform .32s cubic-bezier(.2,.7,.3,1), background .25s, color .25s}
.modocel-seta svg{width:12px;height:12px}
.modocel[data-aberto="sim"] .modocel-seta{transform:rotate(180deg);background:var(--c);color:#fff}

/* ⚠️ A ALTURA ANIMA POR grid-template-rows, e não por max-height chutado.
   `max-height: 500px` num bloco de 220 gasta 280px de transição em nada — a
   abertura fica lenta no começo e seca no fim. Com `0fr → 1fr` o navegador
   anima até a altura REAL do conteúdo, e o mesmo CSS serve para um caminho de
   três passos e para um de seis. */
.modocel-corpo{display:grid;grid-template-rows:0fr;
  transition:grid-template-rows .42s cubic-bezier(.2,.7,.3,1)}
.modocel[data-aberto="sim"] .modocel-corpo{grid-template-rows:1fr}
.modocel-dentro{overflow:hidden;min-height:0}
.modocel-quem{margin:0 14px 12px;font-size:14px;line-height:1.5;color:var(--tinta-2)}

/* ---- o caminho, desenhando-se ---- */
/*
 * ⚠️ É UMA LINHA DO TEMPO, e não uma lista numerada. O caminho da venda tem
 * ORDEM — "primeiro isto, depois aquilo" — e é isso que a linha descendo entre
 * os passos diz sem escrever. Cada passo entra depois do anterior, no ritmo em
 * que a venda acontece no balcão.
 */
.modocel-linha{list-style:none;margin:0;padding:0 14px 4px;position:relative}
.modocel-linha li{position:relative;display:flex;align-items:flex-start;gap:11px;
  padding-bottom:14px;
  opacity:0;transform:translateX(-10px)}
.modocel[data-aberto="sim"] .modocel-linha li{opacity:1;transform:none;
  transition:opacity .38s ease, transform .38s cubic-bezier(.2,.7,.3,1);
  transition-delay:calc(120ms + var(--i) * 110ms)}
.modocel-linha li:last-child{padding-bottom:2px}

/* O fio que liga um passo ao seguinte. Ele CRESCE de cima para baixo. */
.modocel-linha li:not(:last-child)::before{
  content:"";position:absolute;left:12px;top:26px;width:2px;bottom:0;
  background:color-mix(in srgb, var(--c) 30%, transparent);
  transform:scaleY(0);transform-origin:top;
}
.modocel[data-aberto="sim"] .modocel-linha li:not(:last-child)::before{
  transform:scaleY(1);
  transition:transform .34s ease;
  transition-delay:calc(300ms + var(--i) * 110ms);
}
.modocel-linha .n{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  background:var(--c);color:#fff;font-family:Archivo,system-ui,sans-serif;font-weight:800;font-size:12.5px;
  position:relative;z-index:1}
.modocel-linha .t{font-size:14.5px;line-height:1.45;padding-top:4px;color:var(--tinta)}

.modocel-ver{display:block;margin:0 14px 14px;font-size:13.5px;font-weight:800;color:var(--c);
  text-decoration:none}

@media(prefers-reduced-motion:reduce){
  .modocel-corpo,.modocel-seta,.modocel-linha li,.modocel-linha li::before{transition:none}
  .modocel-linha li{opacity:1;transform:none}
}


/* ==================== "POR DENTRO", NO CELULAR ====================
 *
 * Leo, 05/09/2026: *"as barras com os nomes e ícones têm que ficar mais
 * modernas, em vez de ficar em cima vão ficar enfileiradas na lateral esquerda
 * e o mockup vai ser só do celular surgindo à direita... como se surgisse
 * saindo da lateral parcialmente"*.
 *
 * ⚠️ O QUE MUDA É O ARRANJO, NÃO O CONTEÚDO. As mesmas seis abas, o mesmo print
 * de celular, a mesma explicação — montados pelo mesmo JavaScript. No
 * computador continua tudo como está: abas numa faixa em cima, janela de
 * navegador grande e o celular pequeno apoiado no canto.
 *
 * ⚠️ `display:contents` NO PALCO. A explicação e o print são irmãos dentro de
 * `.palco`, e eu precisava de um deles ao lado do trilho e do outro embaixo de
 * tudo. `display:contents` faz o `.palco` sumir da caixa e seus dois filhos
 * participarem da grade da seção — sem mexer no HTML, que é o mesmo dos dois
 * tamanhos.
 */
@media(max-width:760px){
  #funcoes > .env{
    display:grid;
    grid-template-columns:minmax(0,150px) minmax(0,1fr);
    grid-template-areas:
      "titulo  titulo"
      "trilho  tela"
      "detalhe detalhe";
    column-gap:10px;
    /*
     * ⚠️ `stretch`, E NÃO `start`. É o que faz as duas colunas terem a MESMA
     * altura: o aparelho define a altura da linha (ele é proporcional, então
     * a altura vem da largura), e o trilho recebe a mesma. Com `start` cada
     * coluna ficava do tamanho do próprio conteúdo e as duas terminavam em
     * alturas diferentes — o desalinhamento que o Leo apontou.
     */
    align-items:stretch;
  }
  #funcoes .tit{grid-area:titulo}
  #funcoes .trilho-caixa{grid-area:trilho;display:block;margin:0;height:100%}
  #funcoes .palco{display:contents}
  #funcoes #palcoFuncao{grid-area:tela;position:relative}
  #funcoes #detalheFuncao{grid-area:detalhe;margin-top:20px}

  /* ---- o trilho vira coluna, e ela ocupa a altura do aparelho ---- */
  /*
   * ⚠️ `space-between` DISTRIBUI OS SEIS pela altura do aparelho, em vez de
   * empilhá-los no alto e deixar um vazio embaixo. É isso que faz a primeira
   * aba começar na mesma linha do topo do celular e a última terminar na
   * mesma linha da base dele.
   */
  .trilho{
    display:flex;flex-direction:column;justify-content:space-between;gap:8px;
    height:100%;overflow:visible;padding:0;
  }
  .trilho button{
    width:100%;justify-content:flex-start;align-items:center;gap:9px;
    padding:10px 11px;font-size:12.5px;line-height:1.22;text-align:left;
    white-space:normal;border-radius:12px;
  }
  .trilho button .pt{font-size:15px}
  /* As setas eram para rolar a faixa. Em coluna não há o que rolar. */
  .trilho-seta{display:none}

  /* ---- só o celular, inteiro e proporcional ---- */
  /*
   * ⚠️ A JANELA DE NAVEGADOR SOME. Ela é o print do computador: numa coluna de
   * 180px vira um retângulo cinza onde não se lê nada. O que fica é o print do
   * CELULAR — que é, afinal, o aparelho na mão de quem está olhando.
   *
   * ⚠️ INTEIRO E NA PROPORÇÃO DE UM CELULAR (9/19,5), a mesma dos aparelhos do
   * carrossel. Chegou a sair pela lateral, cortado; o Leo pediu inteiro, e
   * inteiro ele também dá a altura da linha — que é o que alinha o trilho ao
   * lado.
   */
  #funcoes .palco-tela{padding:0}
  #funcoes .palco-tela .moldura{display:none}
  #funcoes .palco-tela .cel{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;
    width:100%;min-width:0;
    background:#0d1114;border-radius:26px;padding:6px;
    box-shadow:0 24px 54px rgba(0,0,0,.62), inset 0 0 0 1.5px rgba(255,255,255,.14);
  }
  /*
   * ⚠️ 9/18.6, E NÃO 9/19.5. A moldura é preenchida com `object-fit:cover`:
   * se ela for MAIS ALTA que o print, o navegador escala pela altura e corta as
   * LATERAIS — e é nas laterais que ficam o "Início" e o "Mais" da barra de
   * abas. 18.6 é a proporção dos próprios prints (399x825, o mais estreito dos
   * seis), então nada é cortado.
   *
   * Continua sendo proporção de celular de verdade — 18.6:9 está entre o 18:9 e
   * o 19.5:9 do mercado. E como o trilho ao lado é `stretch`, ele acompanha a
   * altura nova sozinho: o alinhamento que o Leo pediu não depende deste número.
   */
  #funcoes .palco-tela .cel .tel{aspect-ratio:9/18.6;border-radius:21px}
  #funcoes .palco-tela .cel .tel img{object-position:top}

  /* ⚠️ ELE ENTRA PELA DIREITA, e não de baixo para cima como no computador: é o
     movimento que diz "chegou uma tela nova" sem escrever nada. */
  #funcoes .palco-tela.entra{animation:celSaiDaLateral .44s cubic-bezier(.2,.8,.3,1) both}
}

@keyframes celSaiDaLateral{
  from{opacity:0;transform:translateX(38px)}
  to  {opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  #funcoes .palco-tela.entra{animation:none}
}


/* ---------------- o tamanho dos ícones de traço ---------------- */
/*
 * ⚠️ EM \\`em\\`, E NÃO EM PIXEL. O mesmo ícone aparece em oito lugares — no
 * trilho, no cartão do módulo, no leque do plano, no menu, na página do plano —
 * e cada um já tinha o seu \\`font-size\\`. Medindo em \\`em\\`, o desenho nasce
 * proporcional ao texto ao lado dele, em todos, sem uma regra por lugar.
 *
 * ⚠️ E A COR VEM DE \\`currentColor\\` (ver o conjunto em dados.js): o ícone sai na
 * cor do módulo ou da tela onde está, que é o que faz a identidade alcançá-lo.
 * Emoji não aceitava cor nenhuma.
 */
.ic-svg{width:1.2em;height:1.2em;display:block;flex:none}
/* Onde o ícone divide a linha com um texto, ele centraliza junto. */
.selo-mod .ic-svg{display:inline-block;vertical-align:-.2em}

/* Os botões redondos de 98px viveram das 21h05 às 21h50 de 05/09/2026. O Leo
   pediu faixas que se deslizam no lugar deles; o desenho novo está no fim
   deste arquivo. */

/* ⚠️ OS DOIS RÓTULOS DE CADA BOTÃO. `so-cel` é o irmão de `so-pc`, que já
   existia para a frase de abertura do parágrafo: um aparece onde o outro some,
   e nunca os dois ao mesmo tempo. */
.so-cel{display:none}
@media(max-width:760px){
  .hero-inicial .so-pc{display:none}
  .hero-inicial .so-cel{display:inline}
}

/* ==================== "COMO A SUA LOJA VENDE", REFEITA NO CELULAR ====================
 *
 * Leo, 05/09/2026: *"a parte de como sua loja vende precisa ficar mais moderna
 * e sofisticada"*.
 *
 * O que havia: três caixas brancas, com borda cinza, ícone dentro de um
 * quadradinho pastel e uma setinha cinza dentro de uma bolinha cinza — num
 * fundo branco. Nada estava errado; era só igual a todo mundo.
 *
 * ⚠️ UM PAINEL SÓ, E NÃO TRÊS CAIXAS. Três caixas com borda repetem a mesma
 * moldura três vezes e picotam a leitura. Um painel com três fileiras
 * separadas por fio de cabelo é uma decisão só, e sobra ao olho decidir qual
 * fileira interessa — que é a pergunta da seção.
 *
 * ⚠️ A SEÇÃO INTEIRA MUDA DE COR COM O MODO ABERTO. É o coração do desenho: o
 * brilho atrás do painel assume a cor do modo escolhido e leva 700ms para
 * trocar. Não é enfeite — é a página respondendo à escolha, que é a diferença
 * entre uma página que se lê e uma com que se conversa. A cor vem do
 * `--modo-cor`, que o acordeão escreve (ver pintaSecao, no index.html).
 *
 * ⚠️ O QUADRADINHO PASTEL DO ÍCONE SAIU. Ícone dentro de retângulo colorido é
 * a assinatura de template pronto. Sobra o ícone, na cor do modo, dentro de um
 * anel de um fio — mesma linguagem dos ícones de traço que o Leo pediu.
 *
 * ⚠️ A BOLINHA CINZA DA SETA TAMBÉM. Sobrou a seta, fina, na cor do modo.
 * Menos caixas dentro de caixas.
 *
 * ⚠️ O COMPUTADOR NÃO É TOCADO. Tudo aqui vive dentro de max-width:760px, e os
 * três cartões lado a lado continuam exatamente como estavam.
 */
@media(max-width:760px){

  /* ---- o fundo que responde ---- */
  #modos{position:relative;overflow:hidden;isolation:isolate}
  #modos::before{
    content:"";position:absolute;z-index:-1;pointer-events:none;
    left:50%;top:34%;width:150%;aspect-ratio:1;transform:translate(-50%,-50%);
    border-radius:50%;
    background:radial-gradient(closest-side,
      color-mix(in srgb, var(--modo-cor, #12171A) 13%, transparent),
      transparent 70%);
    transition:background .7s ease;
  }

  /* ---- o painel único ---- */
  .modos-cel{
    gap:0;background:#fff;border-radius:20px;overflow:hidden;
    border:1px solid color-mix(in srgb, var(--modo-cor, #12171A) 12%, transparent);
    box-shadow:0 22px 60px rgba(18,23,26,.13), 0 2px 6px rgba(18,23,26,.05);
    transition:border-color .7s ease;
  }

  /* ⚠️ FIO DE CABELO ENTRE AS FILEIRAS, e não borda em volta de cada uma. */
  .modocel{border:0;border-radius:0;background:none;box-shadow:none;position:relative}
  .modocel + .modocel{border-top:1px solid var(--linha)}

  /* ⚠️ O TRILHO COLORIDO SÓ NA FILEIRA ABERTA. Ele é a marca de "você está
     aqui" — em todas as três, não marcaria nada. Cresce de cima para baixo, no
     mesmo gesto do caminho que se desenha logo abaixo. */
  .modocel::before{
    content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
    background:var(--c);transform:scaleY(0);transform-origin:top;
    transition:transform .42s cubic-bezier(.2,.7,.3,1);
  }
  .modocel[data-aberto="sim"]::before{transform:scaleY(1)}
  .modocel[data-aberto="sim"]{
    background:linear-gradient(180deg,
      color-mix(in srgb, var(--c) 7%, transparent), transparent 62%);
  }

  .modocel-topo{padding:17px 16px;gap:13px}

  /* ---- o ícone: anel de um fio, sem quadradinho pastel ---- */
  .modocel-ico{
    width:38px;height:38px;border-radius:50%;background:none !important;
    border:1px solid color-mix(in srgb, var(--c) 34%, transparent);
    color:var(--c) !important;transition:border-color .3s, box-shadow .3s;
  }
  .modocel-ico .ic-svg{width:19px;height:19px}
  .modocel[data-aberto="sim"] .modocel-ico{
    border-color:var(--c);
    box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 12%, transparent);
  }

  .modocel-nome{font-size:16.5px;letter-spacing:-.2px;line-height:1.22}
  .modocel[data-aberto="sim"] .modocel-nome{color:var(--c)}

  /* ---- a seta: só a seta ---- */
  .modocel-seta{
    width:20px;height:20px;background:none;border-radius:0;
    color:color-mix(in srgb, var(--tinta-2) 70%, transparent);
  }
  .modocel-seta svg{width:14px;height:14px}
  .modocel[data-aberto="sim"] .modocel-seta{background:none;color:var(--c)}

  /* ---- o corpo ---- */
  .modocel-quem{margin:0 16px 14px 17px;font-size:14.5px;line-height:1.55}
  .modocel-linha{padding:0 16px 4px 17px}
  .modocel-linha .t{font-size:15px}
  .modocel-ver{margin:2px 16px 18px 17px;font-size:13.5px}

  /* ⚠️ O NÚMERO PERDE PESO E GANHA HALO. Bola cheia de 26px repetida três
     vezes pesa mais que o texto do passo, que é o que importa ler. Menor, com
     um halo da própria cor, ela marca a ordem sem gritar. */
  .modocel-linha .n{
    width:23px;height:23px;font-size:11.5px;
    box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 11%, transparent);
  }
  .modocel-linha li:not(:last-child)::before{left:10.5px}
}

/* ==================== AS FAIXAS QUE SE DESLIZAM, NO HERO ====================
 *
 * Leo, 05/09/2026: *"no hero inicial tire os popups, teste gratis e preço
 * agora se tornam dois botões deslizantes que nem o do modulo do motorista
 * devem ser bem chamativos e ficam sobrepostos ao celular do hero"*.
 *
 * A referência é o `DeslizarParaConfirmar` do sistema — a faixa que o
 * motorista arrasta para confirmar a entrega.
 *
 * ⚠️ MAS AQUI O ARRASTAR NÃO É OBRIGATÓRIO, E ESSA É A DIFERENÇA QUE IMPORTA.
 * No painel do motorista o gesto existe para CRIAR ATRITO — ele não pode
 * finalizar uma entrega sem querer. Num anúncio o objetivo é o oposto: quem
 * chegou do Instagram e não perceber que precisa arrastar simplesmente não
 * entra no teste. Então a faixa é um link de verdade: o deslizar é o CONVITE
 * (é ele que brilha e chama o dedo), e o toque simples funciona igual.
 * Combinado com o Leo em 05/09/2026.
 *
 * ⚠️ OS TRÊS SELOS FLUTUANTES SOMEM — NO CELULAR. No computador eles continuam
 * exatamente onde estavam, sobre a arte dos três aparelhos, que é um desenho
 * que o Leo já aprovou. Aqui embaixo eles disputariam o mesmo espaço com duas
 * faixas de 64px de altura, e o hero viraria uma sopa de coisas piscando.
 */
@media(max-width:760px){

  /* os popups saem daqui */
  .aparelhos .chip{display:none}

  /* ---- as faixas, sobre a tela do aparelho ---- */
  .hero-inicial .botoes{
    position:absolute;left:14px;right:14px;bottom:104px;z-index:6;
    display:flex;flex-direction:column;gap:13px;margin:0;
  }

  .hero-inicial .botoes .bt{
    position:relative;overflow:hidden;
    width:100%;height:64px;border-radius:999px;
    /* ⚠️ O RÓTULO É CENTRADO NA FAIXA INTEIRA, e não no espaço que sobra à
       direita do punho. Leo, 05/09/2026: *"aumente e centralize a fonte, ta
       muito pequeno e pouco chamativo"*. Com recuo simétrico, o texto cai no
       meio da faixa — que é onde o olho procura o rótulo de um botão — e o
       punho passa por baixo dele sem empurrá-lo. Recuo de 74px à esquerda,
       como estava, jogaria o "centro" 26px para a direita.
       ⚠️ E O PUNHO NÃO OCUPA ESPAÇO: ele é `position:absolute`, então não há
       colisão a calcular. "Teste grátis" em 20px mede ~140px numa faixa de
       315px: sobra folga dos dois lados. */
    /* ⚠️ O RECUO DA ESQUERDA É O TAMANHO DO PUNHO. Centrado na faixa INTEIRA,
       "TESTE 14 DIAS GRÁTIS" (193px numa faixa de 315px) começava exatamente
       onde o punho termina e o "T" ficava por baixo dele. Centrando no espaço
       QUE SOBRA à direita do punho, os dois rótulos ficam no mesmo lugar em
       relação ao que se lê — que é o que faz as duas faixas parecerem irmãs. */
    padding:0 14px 0 66px;
    display:flex;align-items:center;justify-content:center;
    /* ⚠️ CAIXA ALTA PEDE ESPAÇO ENTRE AS LETRAS, e não o aperto que o texto
       normal pede. Maiúscula não tem ascendente nem descendente: sem um
       respiro positivo, as letras encostam e a palavra vira um bloco. Por isso
       o `letter-spacing` sai de -.3px e vai para +.4px junto com a mudança. */
    text-transform:uppercase;
    font-size:19px;line-height:1.12;letter-spacing:.4px;text-align:center;
    /* ⚠️ SEM SELEÇÃO DE TEXTO E SEM ROLAGEM DO NAVEGADOR durante o arrasto.
       Sem `touch-action:none`, o dedo que anda para o lado leva a PÁGINA
       junto e a faixa nunca chega ao fim. */
    touch-action:none;user-select:none;-webkit-user-select:none;
    box-shadow:0 16px 38px rgba(0,0,0,.5), 0 0 0 3px rgba(255,255,255,.10);
  }

  /* o segundo é vazado no computador (hero escuro); aqui ele fica sobre a
     TELA BRANCA do aparelho e precisa de fundo próprio */
  .hero-inicial .botoes .bt-2{background:#12171A;color:#fff;border-color:#12171A}

  /* ---- o punho ---- */
  .hero-inicial .botoes .punho{
    position:absolute;left:5px;top:5px;width:54px;height:54px;border-radius:50%;
    background:#fff;z-index:3;display:grid;place-items:center;
    box-shadow:0 3px 10px rgba(0,0,0,.28);
    transform:translateX(var(--x,0px));
    transition:transform .3s cubic-bezier(.2,.8,.3,1);
  }
  /* enquanto o dedo manda, o punho não tem vontade própria */
  .hero-inicial .botoes .bt.arrastando .punho{transition:none}

  .hero-inicial .botoes .punho svg{width:24px;height:24px}
  .hero-inicial .botoes .bt-1 .punho{color:#8a6206}
  .hero-inicial .botoes .bt-2 .punho{color:#12171A}

  /* ⚠️ AS SETAS PULSAM PARA DIZER "ME ARRASTE" SEM ESCREVER ISSO. Um botão
     que se arrasta e não avisa é um botão que não é usado; escrever "arraste"
     em letra pequena ao lado seria a solução de quem desistiu do desenho. */
  .hero-inicial .botoes .punho svg{animation:setaChama 1.9s ease-in-out infinite}

  /* ---- o brilho que atravessa a faixa ---- */
  /* É o segundo aviso de que a faixa é deslizável, e o que a torna "bem
     chamativa" sem piscar cor nenhuma. */
  .hero-inicial .botoes .bt::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.34) 50%,transparent 80%);
    transform:translateX(-100%);
    animation:brilhoDaFaixa 3.4s ease-in-out infinite;
  }
  .hero-inicial .botoes .bt-1::after{
    background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
  }

  /* o rótulo fica na frente do brilho */
  .hero-inicial .botoes .bt > span{position:relative;z-index:2}

  /* ⚠️ CHEGOU AO FIM: a faixa se apaga e o punho fica verde por um instante,
     para o toque ter resposta antes de a página trocar. */
  .hero-inicial .botoes .bt.chegou .punho{background:#16a34a;color:#fff}
}

@keyframes setaChama{
  0%,100%{transform:translateX(0);opacity:.75}
  50%    {transform:translateX(3px);opacity:1}
}
@keyframes brilhoDaFaixa{
  0%   {transform:translateX(-100%)}
  55%  {transform:translateX(100%)}
  100% {transform:translateX(100%)}
}

/* ⚠️ QUEM PEDIU MENOS MOVIMENTO NÃO RECEBE NENHUM. A faixa continua sendo um
   link que se toca; só o convite fica parado. */
@media(prefers-reduced-motion:reduce){
  .hero-inicial .botoes .punho svg,
  .hero-inicial .botoes .bt::after{animation:none}
  .hero-inicial .botoes .punho{transition:none}
  .hero-inicial .botoes .bt::after{opacity:0}
}

/* no computador o punho não existe */
.botoes .punho{display:none}
