/* Sistema visual da Linqi.
   As medidas, cores e tempos vêm da apresentação comercial aprovada, que é a
   especificação. O que foi acrescentado aqui é o que um site precisa e uma
   apresentação operada ao vivo não tem: navegação fixa, formulário, foco
   visível e respeito a prefers-reduced-motion. */

@font-face{font-family:'Azo Sans';src:url(fonts/azo-sans-300.woff2) format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Azo Sans';src:url(fonts/azo-sans-400.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Azo Sans';src:url(fonts/azo-sans-500.woff2) format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Azo Sans';src:url(fonts/azo-sans-700.woff2) format('woff2');font-weight:700;font-style:normal;font-display:swap}

:root{
  --ink:#032530; --deep:#034159; --teal:#02735E; --green:#0CF25D; --lime:#DBF227;
  --tint:#F1F7F5; --tint2:#E6F0EC; --muted:#4C6B66; --white:#fff;
  --claro:#B9D4CD;      /* texto corrido em fundo escuro */
  --claro2:#8FB3AB;     /* secundário em fundo escuro */
  --maxw:1080px;
  --topo:68px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topo) + 20px)}
body{font-family:'Azo Sans',-apple-system,Segoe UI,Arial,sans-serif;color:var(--ink);background:var(--white);
     -webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden}
img{max-width:100%}
a{color:inherit}

/* ── acessibilidade ───────────────────────────────────────────────────── */
.pular{position:absolute;left:-9999px;top:0;z-index:200;background:var(--ink);color:var(--white);
       padding:14px 22px;border-radius:0 0 12px 0;font-size:14px;font-weight:700;text-decoration:none}
.pular:focus{left:0}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:3px}
.dark :focus-visible,#topo.solido :focus-visible{outline-color:var(--teal)}
.dark :focus-visible{outline-color:var(--green)}

/* ── barra de progresso ───────────────────────────────────────────────── */
#bar{position:fixed;top:0;left:0;height:3px;width:0;z-index:99;
     background:linear-gradient(90deg,var(--lime),var(--green));transition:width .1s linear}

/* ── navegação fixa ───────────────────────────────────────────────────── */
/* A apresentação não tem navegação porque uma pessoa conduz a leitura. */
#topo{position:fixed;top:0;left:0;right:0;z-index:98;height:var(--topo);display:flex;align-items:center;
      transition:height .28s cubic-bezier(.2,.7,.3,1),background .28s ease,box-shadow .28s ease}
#topo .wrap{display:flex;align-items:center;gap:clamp(16px,3vw,40px);width:100%}
#topo.solido{height:58px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);
             box-shadow:0 1px 0 rgba(3,37,48,.09)}
/* min-height nos alvos de toque: 44px é o mínimo do briefing, e um logo de
   27px de altura ou um link de texto ficariam abaixo disso. */
#topo .marca{display:inline-flex;align-items:center;flex:0 0 auto;min-height:44px}
#topo .marca img{width:104px;height:27px;display:block}
#topo nav{margin-left:auto}
.menu{display:flex;gap:clamp(14px,2.2vw,30px);list-style:none}
.menu a{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
        text-decoration:none;opacity:.62;transition:opacity .2s ease,color .2s ease;
        display:inline-flex;align-items:center;min-height:44px}
.menu a:hover{opacity:1;color:var(--teal)}
#topo .btn-topo{flex:0 0 auto;font-size:13.5px;font-weight:700;padding:12px 24px;border-radius:100px;
                background:var(--green);color:var(--ink);text-decoration:none;transition:transform .18s ease}
#topo .btn-topo:hover{transform:translateY(-2px)}
@media(max-width:820px){
  .menu{display:none}
  #topo .btn-topo{margin-left:auto}
}

/* ── estrutura de seção ───────────────────────────────────────────────── */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px}
section{padding:clamp(72px,10vw,140px) 0;position:relative}
section.dark{background:var(--ink);color:var(--white)}
section.tint{background:var(--tint)}
section.tight{padding-top:clamp(48px,6vw,80px)}

.kick{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--teal);margin-bottom:22px}
.dark .kick{color:var(--green)}
h1{font-size:clamp(38px,6.2vw,74px);font-weight:700;line-height:1.03;letter-spacing:-.022em}
h2{font-size:clamp(28px,4.3vw,50px);font-weight:700;line-height:1.08;letter-spacing:-.018em;max-width:19ch}
h2.wide{max-width:26ch}
h3{font-size:clamp(19px,2.1vw,25px);font-weight:700;line-height:1.2;letter-spacing:-.01em}
p.lead{font-size:clamp(17px,1.75vw,21px);line-height:1.62;color:var(--muted);max-width:62ch;margin-top:26px}
.dark p.lead{color:var(--claro)}
p.body{font-size:16.5px;line-height:1.66;color:var(--muted);max-width:60ch;margin-top:16px}
.dark p.body{color:var(--claro)}
strong{font-weight:700;color:var(--ink)}
.dark strong{color:var(--white)}
em.hl{font-style:normal;font-weight:700;color:var(--teal)}
.dark em.hl{color:var(--green)}

/* ── hero ─────────────────────────────────────────────────────────────── */
#hero{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;
      padding-top:calc(var(--topo) + 40px);
      background:radial-gradient(1100px 620px at 88% 12%,var(--tint) 0%,#fff 62%)}
#hero .wrap{width:100%;align-self:stretch}
#hero h1{max-width:17ch}
#hero .sub{font-size:clamp(17px,1.9vw,22px);color:var(--muted);max-width:52ch;margin-top:32px;line-height:1.55}

/* Indicador de rolagem: retirado da apresentação porque o vendedor conduz,
   reintroduzido aqui porque o visitante está sozinho. */
.cue{margin-top:clamp(38px,6vw,74px);display:inline-flex;align-items:center;gap:13px;text-decoration:none;
     min-height:44px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.cue .ln{width:52px;height:2px;background:var(--teal);animation:sl 1.9s ease-in-out infinite}
@keyframes sl{0%,100%{transform:translateX(0);opacity:.35}50%{transform:translateX(11px);opacity:1}}

/* ── revelação ao rolar ───────────────────────────────────────────────── */
/* Depende da classe .js no <html>: sem JavaScript, ou se o script não carregar,
   tudo entra visível em vez de a página ficar em branco. */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .75s cubic-bezier(.2,.7,.3,1),transform .75s cubic-bezier(.2,.7,.3,1)}
.js .rv.in{opacity:1;transform:none}

/* ── grades ───────────────────────────────────────────────────────────── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,60px);align-items:center}
.g2.top{align-items:stretch}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.mt{margin-top:clamp(40px,5vw,64px)}
.mt-s{margin-top:28px}

/* ── componentes ──────────────────────────────────────────────────────── */
.stat .n{font-size:clamp(34px,4.6vw,52px);font-weight:700;color:var(--teal);letter-spacing:-.02em;line-height:1}
.dark .stat .n{color:var(--green)}
.stat .l{font-size:14px;color:var(--muted);margin-top:12px;line-height:1.42}
.dark .stat .l{color:var(--claro2)}

.card{background:var(--tint);border-radius:16px;padding:30px 28px}
.dark .card{background:#06303C}
.card.plain{background:#fff}
.card h3{margin-bottom:12px}
.card p{font-size:15px;line-height:1.6;color:var(--muted)}
.dark .card p{color:var(--claro)}

.step{display:grid;grid-template-columns:74px 1fr;gap:26px;align-items:start;padding:34px 0;border-top:1px solid rgba(3,37,48,.1)}
.dark .step{border-top-color:rgba(255,255,255,.14)}
.step:last-child{border-bottom:1px solid rgba(3,37,48,.1)}
.dark .step:last-child{border-bottom-color:rgba(255,255,255,.14)}
.step .num{font-size:44px;font-weight:700;color:var(--green);line-height:.9;letter-spacing:-.03em}
.step .nm{font-size:clamp(21px,2.5vw,29px);font-weight:700;letter-spacing:-.015em}
.step .ds{font-size:16px;color:var(--muted);margin-top:11px;max-width:56ch;line-height:1.6}
.dark .step .ds{color:var(--claro)}

.pills{display:flex;flex-wrap:wrap;gap:11px;margin-top:34px}
.pill{font-size:13.5px;font-weight:500;padding:10px 18px;border-radius:100px;background:var(--tint2);color:var(--teal);
      text-decoration:none;display:inline-block}
.dark .pill{background:#06303C;color:var(--green)}
.dark .card .pill{background:#0A3E4D;color:var(--green)}
a.pill{transition:transform .18s ease}
a.pill:hover{transform:translateY(-2px)}

.branch{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;
        padding:22px 0;border-top:1px solid rgba(3,37,48,.09)}
.branch:last-child{border-bottom:1px solid rgba(3,37,48,.09)}
.branch .if{font-size:16px;color:var(--muted);line-height:1.45}
.branch .ar{color:var(--green);font-size:22px;font-weight:700}
.branch .then{font-size:17px;font-weight:700;color:var(--ink)}
.branch .then a{text-decoration:none;border-bottom:1px solid rgba(2,115,94,.3)}
.branch .then a:hover{color:var(--teal)}

.cmp{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:16px;overflow:hidden;margin-top:44px}
.cmp>div{padding:clamp(26px,3.4vw,40px)}
.cmp .a{background:var(--tint2)}
.cmp .b{background:var(--ink);color:#fff}
/* h3, não h4: depois do h2 da seção, h4 seria salto de nível. */
.cmp h3{font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px;color:var(--muted)}
.cmp .b h3{color:var(--green)}
.cmp li{list-style:none;font-size:15.5px;line-height:1.5;padding:13px 0;border-top:1px solid rgba(3,37,48,.1)}
.cmp .b li{border-top-color:rgba(255,255,255,.15);color:#DCEDE8}
.cmp li:first-child{border-top:0}

img.ill,picture.ill img{width:100%;height:auto;display:block}
picture.ill{display:block}
picture.ill.solo{max-width:700px}
picture.ill.solo.shrink{max-width:560px}

.quote{font-size:clamp(22px,3.2vw,38px);font-weight:700;line-height:1.22;letter-spacing:-.015em;max-width:22ch}

.cta-btn{display:inline-block;margin-top:38px;background:var(--green);color:var(--ink);
  font-size:16px;font-weight:700;padding:19px 40px;border-radius:100px;text-decoration:none;
  transition:transform .18s ease}
.cta-btn:hover{transform:translateY(-2px)}
/* O sublinhado vem de text-decoration, não de border-bottom: com min-height de
   44px a borda cairia longe do texto. */
.cta-alt{display:inline-flex;align-items:center;min-height:44px;margin-top:38px;margin-left:22px;
         font-size:15.5px;font-weight:700;color:var(--teal);
         text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;
         text-decoration-color:rgba(2,115,94,.32)}
.dark .cta-alt{color:var(--green);text-decoration-color:rgba(12,242,93,.34)}
.cta-alt:hover{text-decoration-color:currentColor}

/* Chamada intermediária: o ponto de maior convicção da leitura fica depois das
   duas fases da parceria, não só no rodapé. */
.chamada{margin-top:clamp(44px,6vw,72px);padding-top:clamp(36px,5vw,52px);border-top:1px solid rgba(255,255,255,.14)}
.chamada .cta-btn{margin-top:0}

/* ── formulário ───────────────────────────────────────────────────────── */
.form-card{background:#fff;color:var(--ink);border-radius:16px;padding:clamp(26px,3.4vw,40px);
           margin-top:40px;max-width:640px}
.form-card .campo{margin-bottom:20px}
.form-card label{display:block;font-size:14.5px;font-weight:500;margin-bottom:8px}
.form-card input[type=text],.form-card input[type=tel],.form-card input[type=email]{
  width:100%;padding:14px 16px;font-family:inherit;font-size:16px;color:var(--ink);
  background:#fff;border:1px solid rgba(3,37,48,.24);border-radius:10px;transition:border-color .2s ease}
.form-card input:focus{border-color:var(--teal);outline:2px solid rgba(2,115,94,.25);outline-offset:1px}
.form-card input[aria-invalid=true]{border-color:#B3261E}
.form-card .erro{display:none;font-size:13.5px;color:#B3261E;margin-top:7px}
.form-card .campo.invalido .erro{display:block}
.consent{display:flex;align-items:flex-start;gap:12px;font-size:14.5px;line-height:1.5;margin-bottom:22px}
.consent input[type=checkbox]{width:24px;height:24px;min-width:24px;margin-top:1px;accent-color:var(--teal);cursor:pointer}
.consent a{color:var(--teal);font-weight:500}
/* O rótulo inteiro é clicável, então o alvo de toque é a linha toda e não a
   caixa de 24px. */
.consent{cursor:pointer;padding:6px 0}
.armadilha{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-card .enviar{background:var(--green);color:var(--ink);font-family:inherit;font-size:16px;font-weight:700;
  padding:18px 38px;border:0;border-radius:100px;cursor:pointer;min-height:44px;
  transition:transform .18s ease,opacity .18s ease}
.form-card .enviar:hover:not(:disabled){transform:translateY(-2px)}
.form-card .enviar:disabled{opacity:.6;cursor:progress}
.form-card .recado{display:none;margin-top:20px;padding:16px 18px;border-radius:12px;font-size:15px;line-height:1.5}
.form-card .recado.ok{display:block;background:var(--tint2);color:var(--ink)}
.form-card .recado.ruim{display:block;background:#FDECEA;color:#8C1D18}
.form-card .aviso{font-size:13px;color:var(--muted);margin-top:18px;line-height:1.5}
/* Antes da primeira interação o widget não existe, então não reserva buraco no
   card. O espaço aparece junto com o iframe — e um deslocamento até 500ms
   depois de uma interação do usuário não conta para o CLS. */
#captcha:not(:empty){min-height:78px;margin-bottom:22px}

/* ── páginas internas ─────────────────────────────────────────────────── */
.hero-int{padding-top:calc(var(--topo) + clamp(56px,8vw,104px));
          background:radial-gradient(900px 520px at 86% 6%,var(--tint) 0%,#fff 60%)}
.hero-int h1{font-size:clamp(34px,5vw,58px);max-width:20ch}
.hero-int p.lead{margin-top:24px}
.voltar{display:inline-flex;align-items:center;min-height:44px;margin-top:clamp(30px,4vw,48px);
        font-size:14.5px;font-weight:700;color:var(--teal);
        text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px;
        text-decoration-color:rgba(2,115,94,.32)}
.dark .voltar{color:var(--green);text-decoration-color:rgba(12,242,93,.34)}
.voltar:hover{text-decoration-color:currentColor}

/* Marca de rascunho: página gerada mas sem texto aprovado pelo CEO. Sai do ar
   junto com o noindex quando o conteúdo for revisado. */
.rascunho{background:var(--lime);color:var(--ink);padding:14px 0;font-size:14px;font-weight:700;
          margin-top:var(--topo)}
.rascunho .wrap{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.rascunho span{font-weight:400}
.rascunho + .hero-int{padding-top:clamp(40px,6vw,72px)}

/* ── ciclo do Linqi Ações ─────────────────────────────────────────────── */
/* O método como volta, não como evento. Cinco estações, marcador percorrendo
   o anel, e a legenda de cada estação acendendo quando ele passa.
   Verde não entra: este bloco vive em fundo claro, onde só --teal é legível. */
.ciclo{margin-top:clamp(44px,6vw,72px);display:grid;grid-template-columns:minmax(0,380px) 1fr;
       column-gap:clamp(24px,4vw,52px);row-gap:24px;align-items:center}
.ciclo-arte{width:100%;height:auto;display:block}
.ciclo-anel{fill:none;stroke:rgba(3,37,48,.14);stroke-width:2}
.ciclo-arco{fill:none;stroke:var(--teal);stroke-width:2;opacity:.5}
.ciclo-arcos marker path,.ciclo-arte marker path{fill:var(--teal);opacity:.75}
.ciclo-no circle{fill:var(--white);stroke:rgba(3,37,48,.16);stroke-width:2}
.ciclo-no text{font-family:inherit;font-size:15px;font-weight:700;fill:var(--muted);
               text-anchor:middle;dominant-baseline:central}
/* O destaque é aditivo: um halo por cima. A estação em repouso nunca perde contraste. */
.ciclo-no .halo{fill:none;stroke:var(--teal);stroke-width:3;opacity:0}
.ciclo-marcador circle{fill:var(--teal);stroke:none}

.ciclo-passos{list-style:none}
.ciclo-passos li{position:relative;padding:13px 0 13px 44px;font-size:15.5px;line-height:1.5;
                 color:var(--muted);border-top:1px solid rgba(3,37,48,.1)}
.ciclo-passos li:first-child{border-top:0}
.ciclo-passos li b{display:block;font-size:16px;color:var(--ink);margin-bottom:3px}
.ciclo-passos li::before{content:attr(data-n);position:absolute;left:0;top:15px;
                         font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--teal)}
.ciclo figcaption{grid-column:1/-1;font-size:17px;font-weight:700;line-height:1.5;color:var(--ink);max-width:54ch}
.ciclo-pausa{display:none}

/* A animação depende de JavaScript: sem ele o diagrama fica parado e legível,
   e não existe movimento em laço sem um controle para pausar. */
.js .ciclo-marcador{animation:ciclo-gira 12s linear infinite;transform-origin:210px 210px;transform-box:view-box}
.js .ciclo-no .halo{animation:ciclo-acende 12s linear infinite;animation-delay:calc(var(--i) * 2.4s)}
.js .ciclo-passos li b{animation:ciclo-destaca 12s linear infinite;animation-delay:calc(var(--i) * 2.4s)}
.js .ciclo-pausa{display:inline-flex;align-items:center;min-height:44px;grid-column:1/-1;justify-self:start;
                 background:none;border:0;padding:0;font:inherit;font-size:13.5px;font-weight:700;
                 color:var(--teal);cursor:pointer;text-decoration:underline;text-decoration-thickness:2px;
                 text-underline-offset:5px;text-decoration-color:rgba(2,115,94,.32)}
.js .ciclo-pausa:hover{text-decoration-color:currentColor}
.ciclo.pausado .ciclo-marcador,.ciclo.pausado .halo,.ciclo.pausado li b{animation-play-state:paused}

@keyframes ciclo-gira{to{transform:rotate(360deg)}}
@keyframes ciclo-acende{0%,18%{opacity:1}22%,100%{opacity:0}}
@keyframes ciclo-destaca{0%,18%{color:var(--teal)}22%,100%{color:var(--ink)}}

@media(max-width:860px){
  .ciclo{grid-template-columns:1fr}
  .ciclo-arte{max-width:340px;margin:0 auto}
}

/* ── páginas de texto corrido ─────────────────────────────────────────── */
.texto{max-width:70ch}
.texto h2{font-size:clamp(19px,2.1vw,24px);max-width:none;margin-top:44px}
.texto p{font-size:16.5px;line-height:1.7;color:var(--muted);margin-top:14px}
.texto ul{margin-top:14px;padding-left:20px}
.texto li{font-size:16.5px;line-height:1.7;color:var(--muted);margin-top:9px}
.texto a{color:var(--teal);font-weight:500}
.texto strong{font-weight:700}

/* ── rodapé ───────────────────────────────────────────────────────────── */
footer{padding:clamp(52px,7vw,76px) 0 40px;background:var(--ink);color:var(--claro)}
footer .grade{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(28px,4vw,56px)}
footer img{width:104px;height:27px;display:block}
footer .tag{font-size:14.5px;line-height:1.6;color:var(--claro2);margin-top:18px;max-width:30ch}
footer h2{font-size:11px;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--green);
          margin-bottom:16px;max-width:none}
footer ul{list-style:none;display:flex;flex-direction:column}
footer a{font-size:15px;color:var(--claro);text-decoration:none;
         display:inline-flex;align-items:center;min-height:44px}
footer a:hover{color:var(--green)}
footer .fim{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
            margin-top:clamp(40px,5vw,60px);padding-top:24px;border-top:1px solid rgba(255,255,255,.13)}
footer .fim p{font-size:13px;color:var(--claro2)}

/* ── responsivo ───────────────────────────────────────────────────────── */
@media(max-width:860px){
  .g2,.g3,.g4,.cmp,footer .grade{grid-template-columns:1fr}
  .g4{gap:26px}
  .branch{grid-template-columns:1fr;gap:8px}
  .branch .ar{transform:rotate(90deg);width:22px}
  .step{grid-template-columns:52px 1fr;gap:16px}
  .step .num{font-size:32px}
  .wrap{padding:0 22px}
  h2{max-width:none}
  .cta-alt{display:block;margin-left:0;margin-top:22px;width:fit-content}
}

/* ── movimento reduzido ───────────────────────────────────────────────── */
/* A apresentação não trata isto porque é operada ao vivo; o site precisa. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .cue .ln{animation:none;opacity:1}
  .js .ciclo-marcador,.js .ciclo-no .halo,.js .ciclo-passos li b{animation:none}
  .js .ciclo-no .halo{opacity:0}
  .js .ciclo-passos li b{color:var(--ink)}
  .js .ciclo-pausa{display:none}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
                       transition-duration:.01ms!important}
}
