/* Home nova da Fluxxo (2026-10). Só da home: o site.css antigo serve outras 13 páginas.
   Tokens do design system Fluxxo; estrutura e movimento inspirados no StayCloud:
   entrada lenta e funcional, menu de vidro que compacta, ilustração feita de interface real. */

:root {
  --bg-deep: #070519;
  --bg-base: #100830;
  --surface: #140B37;
  --surface-active: #241454;
  --border: #1F1546;
  --text: #FFFFFF;
  --muted: #9C95B8;
  --violet: #8418F4;
  --lilac: #CF71F7;
  --deep: #2A086C;
  --success: #3DD68C;
  --edge: rgba(132, 24, 244, .65);
  --sans: "Montserrat", system-ui, -apple-system, sans-serif;
  --tech: "Sora", system-ui, -apple-system, sans-serif;
  --ease: cubic-bezier(.22, .61, .36, 1);
  --gutter: clamp(16px, 5vw, 64px);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 96px; }
body {
  margin: 0;
  background: var(--bg-deep);
  color: var(--text);
  font-family: var(--sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
svg { fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wrap { max-width: 1248px; margin: 0 auto; padding-inline: var(--gutter); }

/* ---------- Fundo (design system: base + luz parada + grade de vidro) ---------- */
.fundo {
  position: absolute; inset: 0; z-index: -1; pointer-events: none; overflow: hidden;
  -webkit-mask-image: linear-gradient(180deg, #000 78%, transparent);
          mask-image: linear-gradient(180deg, #000 78%, transparent);
}
/* na abertura a luz fica no canto superior esquerdo, atrás do menu, sem pegar o título */
.hero .fundo .luz { background: radial-gradient(90% 105% at -10% -24%, #E3A2FB 0%, #CF71F7 8%, #8418F4 22%, rgba(90, 16, 200, .42) 42%, rgba(42, 8, 108, .16) 62%, rgba(7, 5, 25, 0) 82%); }
@media (max-width: 520px) { .hero .fundo .luz { background: radial-gradient(140% 62% at -20% -14%, #CF71F7 0%, #8418F4 20%, rgba(90, 16, 200, .4) 42%, rgba(42, 8, 108, .14) 62%, rgba(7, 5, 25, 0) 82%); } }
.fundo .luz {
  position: absolute; inset: 0;
  background: radial-gradient(70% 85% at 92% 112%, #FBE8FF 0%, #E3A2FB 8%, #CF71F7 16%, #8418F4 34%, rgba(90, 16, 200, .5) 52%, rgba(42, 8, 108, .18) 66%, rgba(7, 5, 25, 0) 80%);
  opacity: .85;
}
.fundo .vidro {
  position: absolute; right: 0; bottom: 0;
  width: min(46vw, 620px); height: 100%;
  display: grid; grid-template-columns: repeat(auto-fill, 46px); grid-auto-rows: 46px; gap: 6px;
  justify-content: end; align-content: end; padding: 0 6px 6px 0;
  -webkit-mask-image: radial-gradient(95% 80% at 100% 100%, #000 22%, rgba(0, 0, 0, .45) 48%, transparent 70%);
          mask-image: radial-gradient(95% 80% at 100% 100%, #000 22%, rgba(0, 0, 0, .45) 48%, transparent 70%);
}
.fundo .vidro i {
  border-radius: 9px;
  background: linear-gradient(160deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .025) 55%);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10), inset 0 1px 0 rgba(255, 255, 255, .14);
}
@media (max-width: 520px) { .fundo .vidro { width: 100%; } }

/* ---------- Botões (design system: Sora 600 14px, raio 12px) ---------- */
.btn {
  position: relative; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font: 600 14px/1 var(--tech); color: #fff; white-space: nowrap;
  padding: 15px 20px; border-radius: 12px; border: 1px solid transparent; cursor: pointer;
  transition: transform .25s var(--ease), filter .2s, border-color .2s, background-color .3s, box-shadow .3s;
}
.btn svg { width: 16px; height: 16px; transition: transform .25s var(--ease); }
.btn:hover { transform: translateY(-2px); }
.btn:hover svg { transform: translateX(3px); }
.btn:focus-visible { outline: 2px solid var(--lilac); outline-offset: 3px; }
.btn-p { background: var(--violet); box-shadow: 0 1px 2px rgba(132, 24, 244, .4), 0 8px 24px rgba(132, 24, 244, .30); }
.btn-p:hover { filter: brightness(1.1); }
/* brilho que atravessa no hover */
.btn-p::after {
  content: ""; position: absolute; top: 0; bottom: 0; left: -70%; width: 45%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .38), transparent);
  transform: skewX(-18deg); transition: left .65s var(--ease); pointer-events: none;
}
.btn-p:hover::after { left: 130%; }
/* secundário em vidro: transparente, reflexo fino e borda clara */
.btn-s {
  background: linear-gradient(180deg, rgba(255, 255, 255, .08), rgba(255, 255, 255, .02));
  border-color: rgba(255, 255, 255, .18);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.btn-s:hover { border-color: rgba(255, 255, 255, .34); background: linear-gradient(180deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04)); }

/* ---------- Menu de vidro ---------- */
.nav { position: fixed; top: 14px; left: 0; right: 0; z-index: 50; padding-inline: 16px; pointer-events: none; }
.nav-in {
  pointer-events: auto;
  max-width: 1200px; height: 64px; margin: 0 auto;
  display: flex; align-items: center; gap: 8px;
  padding: 0 10px 0 20px; border-radius: 16px;
  position: relative; isolation: isolate;
  /* vidro leve: quase transparente, reflexo fino no topo e borda clara sutil */
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, 0) 55%),
    rgba(255, 255, 255, .025);
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3);
  transition: max-width .45s var(--ease), height .45s var(--ease), background-color .3s, box-shadow .3s;
}
/* sobre seção branca o menu vira vidro claro */
.nav.claro .nav-in, .nav.compacto.claro .nav-in {
  background: linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(255, 255, 255, .82));
  box-shadow: 0 10px 30px rgba(42, 8, 108, .08);
}
.nav.claro .nav-in::before { background: linear-gradient(135deg, rgba(17, 19, 25, .10), rgba(17, 19, 25, .05)); }
.nav.claro .nav-link { color: #4A4560; }
.nav.claro .nav-link:hover, .nav.claro .nav-link[aria-expanded="true"] { color: #111319; background: rgba(17, 19, 25, .05); }
.nav.claro .nav-burger span { background: #111319; }
.nav-in::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(135deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .06) 45%, rgba(255, 255, 255, .12));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.nav.compacto .nav-in {
  max-width: 1040px; height: 56px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, 0) 55%),
    rgba(10, 7, 28, .6);
  box-shadow: 0 12px 32px rgba(7, 5, 25, .35);
}
.nav-logo { position: relative; flex: none; display: flex; align-items: center; width: 100px; height: 40px; }
.nav-logo img { transition: opacity .3s var(--ease), transform .35s var(--ease); }
.logo-full { height: 27px; width: auto; }
.logo-mark { position: absolute; left: 0; top: 50%; height: 22px; width: auto; opacity: 0; transform: translateY(-50%) scale(.7); }
.nav.compacto .logo-full { opacity: 0; transform: translateX(-6px); }
.nav.compacto .logo-mark { opacity: 1; transform: translateY(-50%) scale(1); }

.nav-links { display: flex; align-items: center; gap: 2px; margin: 0 auto; }
.nav-link {
  display: inline-flex; align-items: center; gap: 6px;
  font: 500 14px/1 var(--sans); color: rgba(255, 255, 255, .78);
  padding: 11px 14px; border-radius: 10px; border: 0; background: none; cursor: pointer;
  transition: color .2s, background-color .2s;
}
.nav-link:hover, .nav-link[aria-expanded="true"] { color: #fff; background: rgba(255, 255, 255, .06); }
.nav-link:focus-visible { outline: 2px solid var(--lilac); outline-offset: 2px; }
.nav-link svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.nav-link[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav-cta { padding: 11px 16px; flex: none; font-size: 13.5px; }
.nav.compacto .nav-cta { background: var(--violet); border-color: transparent; box-shadow: 0 6px 18px rgba(132, 24, 244, .35); }

/* submenu de serviços: painel na largura do menu, que desce se revelando; os itens entram em sequência */
.has-menu { position: static; }
.mega {
  position: absolute; top: calc(100% + 10px); left: 0; right: 0;
  padding: 12px; border-radius: 20px;
  background: linear-gradient(180deg, #170C40, #110834);
  box-shadow: inset 0 0 0 1px var(--border), 0 40px 90px rgba(4, 2, 16, .6), 0 0 0 1px rgba(132, 24, 244, .06);
  opacity: 0; visibility: hidden; transform: translateY(-8px) scale(.985); transform-origin: 50% 0;
  clip-path: inset(0 0 100% 0 round 20px);
  transition: opacity .2s var(--ease) .1s, transform .3s var(--ease), clip-path .3s var(--ease), visibility 0s .3s;
}
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -12px; height: 12px; }
.has-menu.aberto .mega {
  opacity: 1; visibility: visible; transform: none; clip-path: inset(0 0 0 0 round 20px);
  transition: opacity 0s, transform .6s cubic-bezier(.16, 1, .3, 1), clip-path .6s cubic-bezier(.16, 1, .3, 1), visibility 0s;
}
.mega-item, .mega-dest, .mega-pe { opacity: 0; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.has-menu.aberto .mega-item, .has-menu.aberto .mega-dest, .has-menu.aberto .mega-pe {
  opacity: 1; transform: none;
  transition: opacity .5s var(--ease) calc(var(--k, 0) * 45ms + 80ms), transform .6s cubic-bezier(.16, 1, .3, 1) calc(var(--k, 0) * 45ms + 80ms), background-color .2s;
}
.mega-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 10px; }
.mega-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; align-content: start; }
/* submenu do portfólio: mais estreito, só a grade de 4 */
.mega-port .mega-grade { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mega-item { display: flex; gap: 14px; align-items: center; padding: 14px; border-radius: 14px; }
.mega-item:hover, .mega-item:focus-visible { background: rgba(255, 255, 255, .05); outline: none; }
.mega-item:focus-visible { box-shadow: inset 0 0 0 1.5px var(--lilac); }
.mega-ic { flex: none; width: 42px; height: 42px; }
.mega-ic svg { width: 19px; height: 19px; }
.mega-item strong { display: block; font: 500 14.5px/1.3 var(--sans); color: #fff; }
.mega-item strong + span { display: block; margin-top: 3px; font-size: 13px; line-height: 1.45; color: var(--muted); text-wrap: balance; }
/* cartão de destaque: três peças reais em leque */
.mega-dest {
  position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 4px; min-height: 236px; padding: 18px; border-radius: 14px;
  background: radial-gradient(120% 90% at 100% 0%, rgba(132, 24, 244, .45), rgba(132, 24, 244, 0) 60%), rgba(255, 255, 255, .03);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07);
}
.md-pecas { position: absolute; left: 50%; top: 18px; width: 0; height: 0; }
.md-pecas img { position: absolute; top: 0; max-width: none; width: 74px; height: 92px; object-fit: cover; border-radius: 8px; box-shadow: 0 12px 26px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .12); transition: transform .5s cubic-bezier(.16, 1, .3, 1); }
.md-pecas img:nth-child(1) { transform: translateX(-104px) translateY(14px) rotate(-10deg); }
.md-pecas img:nth-child(2) { z-index: 1; transform: translateX(-37px); }
.md-pecas img:nth-child(3) { transform: translateX(30px) translateY(14px) rotate(10deg); }
.mega-dest:hover .md-pecas img:nth-child(1) { transform: translateX(-118px) translateY(10px) rotate(-14deg); }
.mega-dest:hover .md-pecas img:nth-child(2) { transform: translateX(-37px) translateY(-4px); }
.mega-dest:hover .md-pecas img:nth-child(3) { transform: translateX(44px) translateY(10px) rotate(14deg); }
.md-txt small { display: block; font: 600 10.5px var(--tech); letter-spacing: .14em; text-transform: uppercase; color: var(--lilac); }
.md-txt strong { display: block; margin-top: 6px; font: 500 15.5px/1.3 var(--sans); color: #fff; }
.md-txt > span { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.45; color: var(--muted); }
.md-seta { position: absolute; right: 16px; bottom: 18px; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--violet); color: #fff; transition: transform .25s var(--ease); }
.md-seta svg { width: 14px; height: 14px; }
.mega-dest:hover .md-seta { transform: translateX(3px); }
.mega-dest:focus-visible { outline: 2px solid var(--lilac); outline-offset: 2px; }
.md-txt { padding-right: 36px; }
.mega-pe {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin-top: 8px; padding: 14px 14px 6px; border-top: 1px solid var(--border);
  font: 400 13px var(--tech); color: var(--muted);
}
.mega-pe a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: #fff; }
.mega-pe a svg { width: 14px; height: 14px; transition: transform .25s var(--ease); }
.mega-pe a:hover svg { transform: translateX(3px); }

.nav-burger { display: none; width: 44px; height: 44px; margin-left: auto; border: 0; border-radius: 10px; background: none; cursor: pointer; position: relative; }
.nav-burger span { position: absolute; left: 12px; right: 12px; height: 1.5px; background: #fff; border-radius: 2px; transition: transform .3s var(--ease); }
.nav-burger span:first-child { top: 17px; }
.nav-burger span:last-child { top: 25px; }
.nav-burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

/* gaveta do celular: igual ao menu que está no ar — um círculo que nasce do botão e cobre a tela,
   com os links grandes e numerados subindo em sequência */
.gaveta {
  position: fixed; inset: 0; z-index: 40;
  display: flex; flex-direction: column; justify-content: center;
  padding: 96px min(9vw, 34px) calc(28px + env(safe-area-inset-bottom));
  counter-reset: gv;
  background:
    radial-gradient(60% 45% at 88% 6%, rgba(132, 24, 244, .32), transparent 62%),
    radial-gradient(55% 42% at 6% 96%, rgba(207, 113, 247, .16), transparent 66%),
    var(--bg-deep);
  clip-path: circle(0px at var(--gx, calc(100% - 44px)) var(--gy, 44px));
  transition: clip-path .62s cubic-bezier(.76, 0, .24, 1);
}
.gaveta.aberta { clip-path: circle(160% at var(--gx, calc(100% - 44px)) var(--gy, 44px)); }
.gaveta[hidden] { display: none; }
/* com a gaveta aberta o menu de cima some no fundo dela (mesmo sobre seção branca) */
.nav.menu-aberto .nav-in, .nav.menu-aberto.claro .nav-in, .nav.menu-aberto.compacto .nav-in { background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.nav.menu-aberto .nav-in::before { opacity: 0; }
.nav.menu-aberto .nav-burger span { background: #fff; }
.nav.menu-aberto .logo-full { opacity: 1; transform: none; }
.nav.menu-aberto .logo-mark { opacity: 0; }
.gaveta-links { display: flex; flex-direction: column; overflow-y: auto; }
.gaveta-rot { margin: 22px 0 4px; font: 600 11px var(--tech); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); opacity: 0; transition: opacity .4s; }
.gaveta-rot:first-child { margin-top: 0; }
.gaveta-links a {
  counter-increment: gv; display: flex; align-items: baseline; gap: 16px; padding: 7px 0;
  font: 300 clamp(24px, 6.6vw, 32px)/1.25 var(--sans); letter-spacing: -.02em; color: #ECE8F7;
  opacity: 0; transform: translateY(30px);
  transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1), color .2s;
}
.gaveta-links a::before { content: counter(gv, decimal-leading-zero); min-width: 22px; font: 600 11px var(--tech); letter-spacing: .08em; color: var(--lilac); opacity: .9; }
.gaveta-links a:active { color: #fff; }
.gaveta.aberta .gaveta-rot { opacity: 1; transition-delay: .12s; }
.gaveta.aberta .gaveta-links a { opacity: 1; transform: none; transition-delay: calc(var(--n) * 45ms + 140ms); }
.gaveta-pe { padding-top: 28px; opacity: 0; transform: translateY(30px); transition: opacity .55s cubic-bezier(.22, 1, .36, 1), transform .55s cubic-bezier(.22, 1, .36, 1); }
.gaveta.aberta .gaveta-pe { opacity: 1; transform: none; transition-delay: .56s; }
.gaveta-pe .btn { width: 100%; padding: 18px; border-radius: 15px; font-size: 16px; box-shadow: inset 0 0 0 1px rgba(207, 113, 247, .34), 0 16px 44px rgba(132, 24, 244, .4); }

/* ---------- Entrada dos elementos (reentra quando a pessoa volta) ---------- */
.js [data-reveal] {
  opacity: 0; transform: translateY(18px);
  transition: opacity .8s var(--ease) var(--d, 0ms), transform .8s var(--ease) var(--d, 0ms);
}
.js [data-reveal].in { opacity: 1; transform: none; }

/* ---------- 01 · Abertura ---------- */
.hero { position: relative; isolation: isolate; padding: 168px 0 72px; }
.hero-in { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: clamp(32px, 4vw, 56px); align-items: center; }

.rotulo {
  margin: 0 0 22px;
  font: 600 12px/1.5 var(--tech); letter-spacing: .12em; text-transform: uppercase; color: var(--muted);
  text-wrap: balance;
}
.rotulo .nq { white-space: nowrap; }
.pontos { display: inline-flex; gap: 3px; margin-right: 10px; vertical-align: 2px; }
.pontos b { width: 4px; height: 4px; border-radius: 50%; background: var(--lilac); }
.pontos b:nth-child(1) { opacity: .35; }
.pontos b:nth-child(2) { opacity: .65; }

/* título do design system: Montserrat 300 + 500, degradê de cima para baixo */
.titulo {
  margin: 0;
  font-size: clamp(40px, 4.1vw, 58px); line-height: 1.06; letter-spacing: -.025em;
  background: linear-gradient(180deg, #FFFFFF 30%, #C9B6F2);
  -webkit-background-clip: text; background-clip: text; color: transparent;
  padding-bottom: .06em;
}
.titulo .l, .titulo .b { display: block; text-wrap: balance; }
.titulo .l { font-weight: 300; }
.titulo .b { font-weight: 500; }

.apoio { margin: 26px 0 0; max-width: 540px; font-size: 17px; line-height: 1.65; color: var(--muted); text-wrap: pretty; }
.apoio strong { color: #fff; font-weight: 500; }
.acoes { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }

.selo {
  display: inline-flex; align-items: center; gap: 14px; margin-top: 30px;
  padding: 7px 8px 7px 16px; border-radius: 999px;
  background: rgba(255, 255, 255, .03); border: 1px solid var(--border);
}
.selo-rot { font: 600 10.5px/1 var(--tech); letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.selo-ics { display: flex; gap: 6px; }
.selo-ic { width: 38px; height: 38px; transition: transform .25s var(--ease); }
.selo-ic:hover { transform: translateY(-3px); }
.selo-ic svg { width: 17px; height: 17px; }

/* Ícone em vidro (design system, ícone de app "preto vidro"): fundo quase preto,
   luz roxa no canto de baixo à direita, reflexo no topo e borda clara. A luz anda devagar. */
.vidro-ic {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; place-items: center; border-radius: 26%;
  color: #fff; border: 1.5px solid transparent;
  background:
    linear-gradient(#0C0A16, #0C0A16) padding-box,
    linear-gradient(135deg, rgba(255, 255, 255, .45), rgba(207, 113, 247, .25) 40%, rgba(255, 255, 255, .08)) border-box;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
}
.vidro-ic::before {
  content: ""; position: absolute; z-index: -2; left: -10%; top: -10%; width: 150%; height: 150%;
  background: radial-gradient(closest-side, rgba(207, 113, 247, .9), rgba(132, 24, 244, .7) 30%, rgba(90, 16, 200, .28) 62%, rgba(42, 8, 108, 0));
  transform: translate(22%, 26%);
  will-change: transform;
  animation: luz-ic 6s ease-in-out infinite;
  animation-delay: var(--atraso, 0s);
}
.vidro-ic::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .03) 45%, rgba(255, 255, 255, 0) 50%),
    rgba(20, 11, 48, .35);
}
.vidro-ic svg { position: relative; filter: drop-shadow(0 1px 2px rgba(42, 8, 108, .6)); }
@keyframes luz-ic {
  0%, 100% { transform: translate(22%, 26%) scale(1); opacity: .85; }
  50% { transform: translate(8%, 12%) scale(1.15); opacity: 1; }
}
.selo-ic:nth-child(2), .mega-item:nth-child(2) .vidro-ic { --atraso: -1.2s; }
.selo-ic:nth-child(3), .mega-item:nth-child(3) .vidro-ic { --atraso: -2.4s; }
.selo-ic:nth-child(4), .mega-item:nth-child(4) .vidro-ic { --atraso: -3.6s; }
.selo-ic:nth-child(5), .mega-item:nth-child(5) .vidro-ic { --atraso: -4.8s; }

/* ---------- Ilustração: uma tela do Fluxxo Desk, cortada pela borda da janela ---------- */
.hero { overflow-x: clip; }
.hero-vis { position: relative; height: calc(560px * var(--s, 1)); align-self: start; margin-top: 8px; }
.tela {
  position: absolute; left: 0; top: 0; width: 1180px; height: 560px;
  transform-origin: 0 0; transform: scale(var(--s, 1));
  border-radius: 18px; overflow: hidden;
  background: linear-gradient(180deg, #100A2B, #0A061C);
  box-shadow: 0 40px 90px rgba(0, 0, 0, .55), 0 0 0 1px rgba(255, 255, 255, .04);
  font-family: var(--sans);
}
/* contorno que vai da cor ao transparente (design system) */
.tela::before {
  content: ""; position: absolute; inset: 0; z-index: 6; border-radius: inherit; padding: 1px; pointer-events: none;
  background: linear-gradient(155deg, rgba(207, 113, 247, .9), rgba(132, 24, 244, .45) 30%, rgba(132, 24, 244, 0) 65%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.tela-barra { display: flex; align-items: center; gap: 18px; height: 42px; padding: 0 16px; border-bottom: 1px solid var(--border); background: rgba(255, 255, 255, .02); }
.bolas { display: flex; gap: 7px; }
.bolas i { width: 11px; height: 11px; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.url { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 14px; border-radius: 8px; background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .06); font: 400 12px var(--tech); color: var(--muted); }
.url svg { width: 12px; height: 12px; }

.tela-corpo { display: flex; height: calc(100% - 42px); }
.lateral { flex: none; width: 64px; display: flex; flex-direction: column; align-items: center; gap: 8px; padding-top: 16px; border-right: 1px solid var(--border); }
.lateral img { width: 30px; height: 30px; margin-bottom: 10px; }
.lateral span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; color: var(--muted); }
.lateral span svg { width: 18px; height: 18px; }
.lateral span.ativo { color: #fff; background: rgba(36, 20, 84, .7); box-shadow: inset 0 0 0 1px var(--edge); }

.area { flex: 1; min-width: 0; padding: 18px 20px 0; }
.area-topo { display: flex; align-items: center; gap: 22px; margin-bottom: 18px; }
.area-topo > b { font-size: 19px; font-weight: 600; letter-spacing: -.01em; }
.abas { display: flex; gap: 18px; font: 400 13px var(--tech); color: var(--muted); }
.abas .on { color: #fff; box-shadow: 0 9px 0 -7px var(--violet); }
.pessoas { display: flex; margin-left: 300px; }
.pessoas i { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -7px; border-radius: 50%; font: 600 10px/1 var(--tech); font-style: normal; color: #fff; background: linear-gradient(135deg, #5A10C8, #CF71F7); box-shadow: 0 0 0 2px #0C0822; }
.pessoas i:nth-child(2) { background: linear-gradient(135deg, #2A086C, #8418F4); }
.pessoas i:nth-child(3) { background: linear-gradient(135deg, #8418F4, #B254F6); }
.nova { font: 600 12.5px var(--tech); color: #fff; padding: 9px 13px; border-radius: 10px; background: var(--violet); }

/* quadro: colunas de 150px, cartões que andam por coluna (--c) e linha (--r) */
.quadro { position: relative; display: grid; grid-template-columns: repeat(6, 150px); gap: 10px; height: 452px; overflow: hidden; }
.col { border-radius: 12px; background: rgba(255, 255, 255, .022); border: 1px solid rgba(255, 255, 255, .05); padding: 10px 10px 0; }
.col span { display: flex; align-items: center; gap: 7px; font: 600 10px/1 var(--tech); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.d { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.d0 { background: #6B6585; }
.d1 { background: var(--violet); }
.d2 { background: var(--lilac); }
.d3 { background: var(--success); }
.d4 { background: #B254F6; box-shadow: 0 0 0 3px rgba(178, 84, 246, .18); }

.tk {
  position: absolute; left: 8px; top: 36px; width: 134px; height: 84px;
  padding: 10px 11px; border-radius: 10px;
  background: #170D3F; border: 1px solid rgba(255, 255, 255, .07);
  box-shadow: 0 6px 16px rgba(0, 0, 0, .28);
  transform: translate(calc(var(--c, 0) * 160px), calc(var(--r, 0) * 94px));
  transition: transform .85s var(--ease), border-color .4s, background-color .4s, box-shadow .4s;
}
.tk.nasce { animation: nasce .6s var(--ease) both; }
@keyframes nasce { from { opacity: 0; scale: .9; } to { opacity: 1; scale: 1; } }
.tk em { display: block; font: 600 9px/1 var(--tech); font-style: normal; letter-spacing: .1em; text-transform: uppercase; color: var(--lilac); }
.tk b { display: block; margin-top: 7px; font-size: 12.5px; line-height: 1.3; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tk .pe { position: absolute; left: 11px; right: 11px; bottom: 9px; display: flex; align-items: center; justify-content: space-between; font: 400 10px var(--tech); color: var(--muted); }
.tk .pe i { width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg, #2A086C, #8418F4); }
.tk .barra { position: absolute; left: 11px; right: 11px; bottom: 33px; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .07); overflow: hidden; opacity: 0; transition: opacity .3s; }
.tk .barra i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, #5A10C8, #8418F4, #CF71F7); }
.tk.produzindo .barra { opacity: 1; }
.tk.produzindo .barra i { width: 100%; transition: width 2s linear; }
.tk .ok { position: absolute; right: 9px; top: 9px; width: 16px; height: 16px; padding: 2.5px; border-radius: 50%; background: rgba(61, 214, 140, .18); color: var(--success); stroke-width: 3; opacity: 0; transform: scale(.5); transition: opacity .3s, transform .35s var(--ease); }
.tk.ok-on .ok { opacity: 1; transform: none; }
.tk.foco { border-color: rgba(207, 113, 247, .6); background: #22125A; box-shadow: 0 10px 26px rgba(132, 24, 244, .28); z-index: 2; }

/* avisos dentro da tela: sobem de baixo e saem por baixo (cortados pela tela, sem sumir no meio) */
.aviso {
  position: absolute; left: 92px; bottom: 22px; z-index: 4; width: 330px;
  padding: 14px 15px; border-radius: 14px;
  background: linear-gradient(180deg, rgba(40, 22, 92, .96), rgba(30, 16, 72, .96));
  box-shadow: 0 24px 50px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(207, 113, 247, .35);
  transform: translateY(140%);
  transition: transform .7s var(--ease);
}
.aviso.on { transform: none; }
.aviso-topo { display: flex; align-items: center; gap: 10px; }
.av { display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(135deg, #5A10C8, #CF71F7); font: 600 10.5px var(--tech); }
.quem { display: grid; line-height: 1.25; margin-right: auto; min-width: 0; }
.quem b { font-size: 13px; font-weight: 600; }
.quem small { font: 400 11px var(--tech); color: var(--muted); }
.pill { font: 600 9.5px/1 var(--tech); letter-spacing: .12em; text-transform: uppercase; color: var(--lilac); padding: 6px 8px; border-radius: 999px; background: rgba(207, 113, 247, .10); border: 1px solid rgba(207, 113, 247, .25); }
.aviso-txt { margin: 11px 0 0; min-height: 21px; font-size: 14px; line-height: 1.5; }
.caret { display: inline-block; width: 1.5px; height: 1.05em; margin-left: 1px; vertical-align: -2px; background: var(--lilac); animation: pisca 1s steps(1) infinite; }
@keyframes pisca { 50% { opacity: 0; } }
.st { font: 600 9.5px/1 var(--tech); letter-spacing: .1em; text-transform: uppercase; padding: 6px 8px; border-radius: 999px; color: var(--lilac); background: rgba(207, 113, 247, .12); transition: color .3s, background-color .3s; }
.st.aprovado { color: var(--success); background: rgba(61, 214, 140, .14); }
.aviso-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 12px; }
.mini-btn {
  position: relative; display: inline-grid; align-items: center; justify-items: center;
  font: 600 12px/1 var(--tech); color: #fff; padding: 10px 12px; border-radius: 9px;
  background: var(--violet); white-space: nowrap;
  transition: transform .15s var(--ease), background-color .3s, color .3s, filter .2s;
}
.mini-btn > span { grid-area: 1 / 1; display: inline-flex; align-items: center; gap: 5px; transition: opacity .25s, transform .25s var(--ease); }
.mini-btn svg { width: 12px; height: 12px; stroke-width: 2.4; }
.mini-btn .mb-b { opacity: 0; transform: translateY(4px); }
.mini-btn.feito { background: rgba(61, 214, 140, .16); color: var(--success); }
.mini-btn.feito .mb-a { opacity: 0; transform: translateY(-4px); }
.mini-btn.feito .mb-b { opacity: 1; transform: none; }
.mini-btn.clique { transform: scale(.94); filter: brightness(1.15); }
.mini-btn.sec { background: rgba(12, 7, 34, .7); box-shadow: inset 0 0 0 1px var(--border); color: var(--muted); }

/* cursor que aperta Aprovar */
.cursor {
  position: absolute; left: 0; top: 0; z-index: 5; width: 22px; height: 22px; opacity: 0;
  transform: translate(var(--x, 560px), var(--y, 600px));
  transition: transform .75s var(--ease), opacity .3s;
  filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .5));
}
.cursor svg { width: 22px; height: 22px; fill: #fff; stroke: #070519; stroke-width: 1.2; }
.cursor.visivel { opacity: 1; }
.cursor::after { content: ""; position: absolute; left: 2px; top: 1px; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; border: 2px solid var(--lilac); opacity: 0; }
.cursor.clica::after { animation: onda .5s var(--ease); }
@keyframes onda { from { opacity: 1; transform: scale(.4); } to { opacity: 0; transform: scale(2.4); } }

/* ---------- 02 · Clientes: faixa de logos em loop, todos em branco ---------- */
.clientes { position: relative; padding: 8px 0 96px; }
.clientes .wrap { position: relative; padding-top: 48px; }
/* linha fina de divisa, como a "planta" do StayCloud */
.clientes .wrap::before {
  content: ""; position: absolute; top: 0; left: var(--gutter); right: var(--gutter); height: 1px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0), rgba(255, 255, 255, .10) 20%, rgba(255, 255, 255, .10) 80%, rgba(255, 255, 255, 0));
}
.rotulo-centro { text-align: center; margin-bottom: 36px; }
.faixa {
  overflow: hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent);
}
.faixa-trilho { display: flex; width: max-content; animation: faixa 42s linear infinite; will-change: transform; }
.faixa:hover .faixa-trilho { animation-play-state: paused; }
@keyframes faixa { to { transform: translateX(-50%); } }
.faixa-lista { display: flex; align-items: center; gap: clamp(48px, 6vw, 88px); margin: 0; padding: 0 clamp(24px, 3vw, 44px); list-style: none; }
.faixa-lista li { flex: none; display: flex; align-items: center; height: 56px; }
.faixa-lista img {
  height: var(--h, 32px); width: auto; max-width: none;
  filter: brightness(0) invert(1); opacity: .58;
  transition: opacity .3s var(--ease);
}
.faixa-lista li:hover img { opacity: 1; }

/* ---------- 03 · Serviços: seção branca de ponta a ponta, cartões no formato do StayCloud ---------- */
.servicos {
  --ink: #111319; --cinza: #6B6585; --linha: #ECE8F4; --suave: #F7F5FC; --ponto: #DCD6EA;
  position: relative; background: #FFFFFF; color: var(--ink); padding: 112px 0 120px;
}
/* trilhos finos nas laterais, como a planta do StayCloud */
.trilhos { position: relative; }
.trilhos::before, .trilhos::after { content: ""; position: absolute; top: -112px; bottom: -120px; width: 1px; background: var(--linha); }
.trilhos::before { left: 12px; }
.trilhos::after { right: 12px; }
.sec-topo { max-width: 640px; margin-bottom: 56px; }
.rotulo-cor { color: var(--violet); }
.rotulo-cor .pontos b { background: var(--violet); }
.titulo-sec { margin: 0; font-size: clamp(32px, 3.6vw, 48px); line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
.titulo-sec .l, .titulo-sec .b { display: block; }
.titulo-sec .l { font-weight: 400; }
.titulo-sec .b { font-weight: 500; color: var(--violet); }
.apoio-sec { margin: 20px 0 0; font-size: 17px; line-height: 1.65; color: var(--cinza); text-wrap: pretty; }

/* bandeja cinza-lilás com os cartões brancos */
.bandeja {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
  padding: 14px; border-radius: 26px; background: var(--suave); border: 1px solid var(--linha);
}
.sv {
  position: relative; display: flex; flex-direction: column;
  padding: 28px; border-radius: 20px; background: #FFFFFF; border: 1px solid var(--linha);
  transition: transform .45s cubic-bezier(.4, 0, .2, 1), border-color .45s, box-shadow .45s;
}
.sv:hover { transform: translateY(-3px); border-color: #DCC7FB; box-shadow: 0 14px 34px rgba(132, 24, 244, .08); }
.sv { scroll-margin-top: 24px; }
.sv:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; }
.sv-g { grid-column: span 2; }
.sv-f { grid-column: span 3; flex-direction: row; gap: 40px; align-items: stretch; }
.sv-f-txt { flex: 0 0 32%; display: flex; flex-direction: column; }
.sv h3 { display: flex; align-items: center; gap: 12px; margin: 0; font-size: 18px; font-weight: 500; letter-spacing: -.01em; }
.sv-ic { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; border: 1px solid #E2D3FB; background: #FFFFFF; color: var(--violet); }
.sv-ic svg { width: 18px; height: 18px; }
.sv p { margin: 14px 0 0; max-width: 560px; font-size: 15.5px; line-height: 1.7; color: var(--cinza); text-wrap: pretty; }
.sv p strong { color: var(--ink); font-weight: 500; }
.sv-mais { margin-top: auto; padding-top: 22px; display: inline-flex; align-items: center; gap: 6px; font: 600 14px var(--tech); color: var(--violet); }
.sv-mais svg { width: 15px; height: 15px; transition: transform .25s var(--ease); }
.sv:hover .sv-mais svg { transform: translateX(3px); }

/* palco de cada ilustração */
.vis { position: relative; margin-top: 26px; height: 280px; border-radius: 16px; overflow: hidden; }
.sv-p .vis { height: 260px; margin-top: auto; }
.sv-p p { margin-bottom: 26px; }
.sv-f .vis { flex: 1; height: 240px; margin: 0; }
.vis-pontos { background-color: var(--suave); background-image: radial-gradient(var(--ponto) 1px, transparent 1.2px); background-size: 16px 16px; border: 1px solid var(--linha); }
.vis-roxo { background-color: var(--suave); background-image: radial-gradient(var(--ponto) 1px, transparent 1.2px); background-size: 16px 16px; border: 1px solid var(--linha); }
.servicos:not(.rodando) .vis * { animation-play-state: paused !important; }

/* cantoneiras de visor, nos quatro cantos */
.cantos {
  position: absolute; inset: -9px; pointer-events: none; --cc: #CFC9DD;
  background:
    linear-gradient(var(--cc), var(--cc)) 0 0 / 12px 1.5px, linear-gradient(var(--cc), var(--cc)) 0 0 / 1.5px 12px,
    linear-gradient(var(--cc), var(--cc)) 100% 0 / 12px 1.5px, linear-gradient(var(--cc), var(--cc)) 100% 0 / 1.5px 12px,
    linear-gradient(var(--cc), var(--cc)) 0 100% / 12px 1.5px, linear-gradient(var(--cc), var(--cc)) 0 100% / 1.5px 12px,
    linear-gradient(var(--cc), var(--cc)) 100% 100% / 12px 1.5px, linear-gradient(var(--cc), var(--cc)) 100% 100% / 1.5px 12px;
  background-repeat: no-repeat;
}

/* cursor falso */
.cur { position: absolute; left: 0; top: 0; z-index: 4; width: 20px; height: 20px; transform: translate(var(--cx, 200px), var(--cy, 120px)); transition: transform .7s var(--ease); filter: drop-shadow(0 3px 6px rgba(0, 0, 0, .3)); }
.cur svg { width: 20px; height: 20px; fill: var(--ink); stroke: #fff; stroke-width: 1.3; }

/* Social Media: publicação sendo agendada, perfil recebendo o post e o andamento do mês */
.vis-social { height: 300px; }
.pub {
  position: absolute; left: 24px; top: 22px; width: calc(55% - 24px); max-width: 360px; padding: 14px;
  border-radius: 14px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 16px 34px rgba(17, 19, 25, .07);
}
.pub-topo { display: flex; align-items: center; gap: 9px; }
.pub-av { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: #fff; font: 600 9.5px var(--tech); }
.pub-quem { display: grid; line-height: 1.25; margin-right: auto; }
.pub-quem b { font-size: 12.5px; font-weight: 600; }
.pub-quem small { font: 400 10.5px var(--tech); color: var(--cinza); }
.pub-tag { font: 600 9.5px var(--tech); letter-spacing: .08em; text-transform: uppercase; color: var(--cinza); background: #F2F0F7; padding: 5px 7px; border-radius: 6px; }
.pub-img { position: relative; height: 92px; margin-top: 12px; border-radius: 10px; background: #F2F0F7; overflow: hidden; }
.pub-slides { display: flex; height: 100%; transition: transform .6s var(--ease); transform: translateX(calc(var(--sl, 0) * -100%)); }
.pub-slides span { flex: 0 0 100%; display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 0 22px; }
.pub-slides b { height: 12px; width: 62%; border-radius: 4px; background: #CFCADB; }
.pub-slides i { height: 6px; width: 80%; border-radius: 3px; background: #E2DEEC; }
.pub-slides i + i { width: 50%; }
.pub-slides span:nth-child(2) b { width: 48%; } .pub-slides span:nth-child(3) b { width: 70%; } .pub-slides span:nth-child(4) b { width: 54%; }
.pub-pontos { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); display: flex; gap: 4px; }
.pub-pontos i { width: 5px; height: 5px; border-radius: 50%; background: #CFCADB; transition: background-color .3s, width .3s; }
.pub-pontos i.on { width: 12px; border-radius: 3px; background: var(--violet); }
.sv .pub-leg { margin: 12px 0 0; max-width: none; min-height: 38px; font-size: 12.5px; line-height: 1.55; color: var(--ink); }
.pub-leg .caret { background: var(--ink); }
.pub-pe { display: flex; align-items: center; justify-content: space-between; margin-top: 10px; }
.pub-data { display: inline-flex; align-items: center; gap: 6px; font: 400 11px var(--tech); color: var(--cinza); }
.pub-data svg { width: 13px; height: 13px; }

.perfil {
  position: absolute; left: calc(55% + 16px); right: 24px; top: 22px; height: 300px; padding: 14px 10px 0;
  border-radius: 22px 22px 0 0; background: #FFFFFF; border: 1px solid var(--linha); border-bottom: 0; box-shadow: 0 16px 34px rgba(17, 19, 25, .07);
  overflow: hidden;
}
.pf-topo { display: flex; align-items: center; gap: 10px; padding: 0 4px 12px; }
.pf-num { display: grid; line-height: 1.2; text-align: center; flex: 1; }
.pf-num b { font: 600 12px var(--tech); }
.pf-num small { font: 400 9.5px var(--tech); color: var(--cinza); }
.pf-grade { position: relative; height: 300px; }
/* cada quadrado anda pela grade conforme a posição (--i): 3 por linha */
.gt {
  position: absolute; left: 0; top: 0; width: calc((100% - 6px) / 3); aspect-ratio: 1; border-radius: 4px; background: #ECE9F3;
  transform: translate(calc(var(--col, 0) * (100% + 3px)), calc(var(--lin, 0) * (100% + 3px)));
  transition: transform .7s var(--ease);
}
.gt:nth-child(3n+2) { background: #E2DEEC; } .gt:nth-child(4n+1) { background: #F2F0F7; }
.gt.novo { background: #FFFFFF; box-shadow: inset 0 0 0 1.5px var(--violet); animation: entra .6s var(--ease) both; }
.gt.novo::after { content: ""; position: absolute; left: 22%; right: 22%; top: 38%; height: 4px; border-radius: 2px; background: #CFCADB; box-shadow: 0 7px 0 #E2DEEC; }
@keyframes entra { from { scale: .6; opacity: 0; } to { scale: 1; opacity: 1; } }

.mes {
  position: absolute; right: 12px; bottom: 16px; z-index: 2; width: 196px; display: grid; gap: 7px; padding: 12px 14px;
  border-radius: 12px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 18px 38px rgba(17, 19, 25, .12);
}
.mes-rot { font: 600 10px var(--tech); letter-spacing: .12em; text-transform: uppercase; color: var(--cinza); }
.mes b { font-size: 12.5px; font-weight: 500; }
.mes-barra { height: 5px; border-radius: 3px; background: #ECE9F3; overflow: hidden; }
.mes-barra i { display: block; height: 100%; border-radius: inherit; background: var(--violet); transition: width .8s var(--ease); }
.servicos .mini-btn.sec { background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--linha); color: var(--cinza); }
.servicos .mini-btn.feito { background: #E7F7EE; color: #1F9D5B; }

/* Vídeo: linha do tempo com a agulha e as etapas acendendo */
.ed { position: absolute; left: 22px; right: 22px; top: 24px; padding: 10px; border-radius: 12px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 12px 26px rgba(42, 8, 108, .08); }
.ed-tela { position: relative; height: 92px; border-radius: 8px; background: #F2F0F7; border: 1px solid var(--linha); display: grid; place-items: center; }
.ed-play { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #FFFFFF; border: 1px solid var(--linha); }
.ed-play svg { width: 12px; height: 12px; fill: var(--ink); stroke: none; margin-left: 2px; }
.ed-leg { position: absolute; left: 50%; bottom: 8px; transform: translateX(-50%); padding: 3px 8px; border-radius: 5px; font: 600 9.5px var(--tech); color: #fff; background: rgba(17, 19, 25, .78); white-space: nowrap; animation: ed-leg 6s steps(1) infinite; }
@keyframes ed-leg { 0% { opacity: 0; } 30% { opacity: 1; } }
.ed-trilha { display: flex; gap: 3px; height: 14px; margin-top: 7px; }
.ed-trilha i { border-radius: 4px; }
.ed-trilha .c1 { flex: 3; background: #E2DEEC; } .ed-trilha .c2 { flex: 2; background: #D3CEE0; } .ed-trilha .c3 { flex: 4; background: #FFFFFF; border: 1.5px solid var(--violet); } .ed-trilha .c4 { flex: 2; background: #E2DEEC; }
.ed-trilha.au { height: 9px; }
.ed-trilha.au i { flex: 1; background: repeating-linear-gradient(90deg, #CFCADB 0 2px, transparent 2px 4px); }
.ed-agulha { position: absolute; top: 108px; bottom: 6px; left: 10px; width: 2px; border-radius: 2px; background: var(--ink); animation: ed-agulha 6s linear infinite; }
@keyframes ed-agulha { from { transform: translateX(0); } to { transform: translateX(calc(var(--ed-w, 300px) - 22px)); } }
.ed-etapas { position: absolute; left: 22px; right: 22px; bottom: 18px; display: flex; gap: 6px; }
.ed-etapas span { flex: 1; text-align: center; padding: 7px 0; border-radius: 8px; font: 600 10.5px var(--tech); color: var(--cinza); background: #FFFFFF; border: 1px solid var(--linha); animation: etapa 6s steps(1) infinite; }
.ed-etapas span:nth-child(2) { animation-delay: 1.5s; } .ed-etapas span:nth-child(3) { animation-delay: 3s; } .ed-etapas span:nth-child(4) { animation-delay: 4.5s; }
@keyframes etapa { 0% { color: var(--violet); border-color: #DCC7FB; background: #F6EEFF; } 25%, 100% { color: var(--cinza); border-color: var(--linha); background: #FFFFFF; } }

/* Design: a mesma peça se adaptando a cada formato, com a identidade da marca */
.vis-design, .sv-p .vis-design { height: 320px; display: flex; flex-direction: column; align-items: center; }
.fmt-abas { display: flex; gap: 4px; margin-top: 16px; padding: 4px; border-radius: 10px; background: #FFFFFF; border: 1px solid var(--linha); }
.fmt-abas span { padding: 6px 9px; border-radius: 7px; font: 600 10.5px var(--tech); color: var(--cinza); white-space: nowrap; transition: color .3s, background-color .3s; }
.fmt-abas span.on { color: var(--ink); background: #F2F0F7; }
.peca {
  position: relative; margin-top: 18px; display: flex; flex-direction: column; gap: 7px; padding: 10px;
  border-radius: 10px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 16px 32px rgba(17, 19, 25, .08);
  transition: width .7s var(--ease), height .7s var(--ease);
}
.peca.f-feed { width: 112px; height: 140px; }
.peca.f-stories { width: 88px; height: 156px; }
.peca.f-quad { width: 138px; height: 138px; }
.pc-img { flex: 1; min-height: 0; border-radius: 6px; background: #ECE9F3; }
.pc-tit { display: grid; gap: 4px; }
.pc-tit b { height: 6px; border-radius: 3px; background: #CFCADB; }
.pc-tit b + b { width: 62%; background: #E2DEEC; }
.pc-pe { display: flex; align-items: center; justify-content: space-between; }
.pc-logo { width: 12px; height: 12px; border-radius: 4px; background: var(--ink); }
.pc-bt { width: 34px; height: 11px; border-radius: 4px; background: var(--violet); }
.peca .carimbo { position: absolute; left: auto; top: auto; right: -34px; bottom: 18px; }
.peca.aprovada .carimbo { animation: none; transform: rotate(-6deg) scale(1); }
.peca:not(.aprovada) .carimbo { animation: none; transform: rotate(-6deg) scale(0); }
.carimbo { transition: transform .45s var(--ease); }
.marca { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 10px; background: #FFFFFF; border: 1px solid var(--linha); white-space: nowrap; }
.mc-rot { font: 600 9.5px var(--tech); letter-spacing: .1em; text-transform: uppercase; color: var(--cinza); margin-right: 3px; }
.mc-aa { font: 600 12px var(--sans); color: var(--ink); padding: 0 4px; border-right: 1px solid var(--linha); margin-right: 2px; }
.mc-cor { width: 14px; height: 14px; border-radius: 50%; background: var(--c); box-shadow: inset 0 0 0 1px rgba(17, 19, 25, .08); }

.carimbo {
  position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border-radius: 8px;
  font: 600 11px var(--tech); color: #1F9D5B; background: #E7F7EE; border: 1px solid #BDE8CF; transform: rotate(-6deg) scale(0);
}
.carimbo svg { width: 12px; height: 12px; stroke-width: 2.6; }

/* Sites: página se montando, celular rolando e itens confirmados */
.nav-site { position: absolute; left: 26px; top: 26px; width: 54%; height: 230px; border-radius: 10px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 14px 30px rgba(42, 8, 108, .08); }
.ns-barra { display: flex; align-items: center; gap: 12px; height: 30px; padding: 0 12px; border-bottom: 1px solid var(--linha); }
.ns-barra .bolas i { width: 7px; height: 7px; background: #E2DCEF; }
.ns-url { font: 400 10.5px var(--tech); color: var(--cinza); }
.ns-pag { padding: 14px; }
.ns-hero { display: flex; flex-direction: column; gap: 7px; padding: 14px; border-radius: 8px; background: #F4F2F8; animation: monta 6s var(--ease) infinite; }
.ns-hero b { height: 9px; width: 70%; border-radius: 4px; background: #D3CEE0; }
.ns-hero b.m { width: 45%; height: 6px; background: #E2DEEC; }
.ns-hero span { width: 54px; height: 15px; margin-top: 3px; border-radius: 5px; background: var(--violet); }
.ns-cards { display: flex; gap: 8px; margin-top: 10px; }
.ns-cards i { flex: 1; height: 64px; border-radius: 8px; background: #F7F5FC; border: 1px solid var(--linha); animation: monta 6s var(--ease) infinite; }
.ns-cards i:nth-child(1) { animation-delay: .35s; } .ns-cards i:nth-child(2) { animation-delay: .5s; } .ns-cards i:nth-child(3) { animation-delay: .65s; }
@keyframes monta { 0% { opacity: 0; transform: translateY(8px); } 12%, 88% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(8px); } }
.cel-site { position: absolute; left: calc(26px + 54% - 54px); top: 74px; width: 84px; height: 168px; border-radius: 16px; background: #FFFFFF; border: 3px solid var(--ink); overflow: hidden; box-shadow: 0 16px 30px rgba(17, 19, 25, .18); }
.cs-rolo { display: flex; flex-direction: column; gap: 6px; padding: 12px 8px; animation: cs-rola 7s ease-in-out infinite; }
.cs-rolo b { height: 5px; border-radius: 3px; background: #ECE9F3; }
.cs-rolo b.h { height: 8px; width: 80%; background: #D3CEE0; }
.cs-rolo b.m { width: 60%; }
.cs-rolo .bt { width: 36px; height: 11px; border-radius: 4px; background: var(--violet); }
.cs-rolo i { height: 44px; border-radius: 6px; background: #F2F0F7; }
@keyframes cs-rola { 0%, 15% { transform: translateY(0); } 50%, 65% { transform: translateY(-62px); } 100% { transform: translateY(0); } }
.checks { position: absolute; right: 26px; top: 50%; transform: translateY(-50%); width: 34%; margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.checks li { display: flex; align-items: center; gap: 10px; font-size: 13.5px; color: var(--ink); }
.checks li span { display: grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 50%; background: #FFFFFF; border: 1px solid var(--linha); color: #C9C3DA; animation: check 6s steps(1) infinite; }
.checks li:nth-child(2) span { animation-delay: .6s; } .checks li:nth-child(3) span { animation-delay: 1.2s; }
.checks li svg { width: 12px; height: 12px; stroke-width: 2.6; }
@keyframes check { 0% { color: #C9C3DA; background: #FFFFFF; border-color: var(--linha); } 20%, 90% { color: #1F9D5B; background: #E7F7EE; border-color: #BDE8CF; } }

/* Sistemas: fluxo de nós ligados, como um processo rodando */
.vis-fluxo { display: flex; align-items: center; justify-content: center; gap: 0; padding: 0 36px; }
.no { position: relative; flex: none; display: grid; justify-items: center; gap: 4px; width: 128px; padding: 18px 10px 14px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 12px 26px rgba(42, 8, 108, .08); animation: no-acende 6s steps(1) infinite; }
.no.n2 { animation-delay: 2s; } .no.n3 { animation-delay: 4s; }
@keyframes no-acende { 0% { border-color: #CDB3F7; box-shadow: 0 0 0 4px rgba(132, 24, 244, .08), 0 12px 26px rgba(42, 8, 108, .1); } 33.33%, 100% { border-color: var(--linha); box-shadow: 0 12px 26px rgba(42, 8, 108, .08); } }
.no-ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; border: 1px solid #E2D3FB; background: #FFFFFF; color: var(--violet); }
.no-ic svg { width: 18px; height: 18px; }
.no b { margin-top: 6px; font-size: 13.5px; font-weight: 600; }
.no small { font: 400 10.5px var(--tech); color: var(--cinza); }
.liga { flex: 1; height: 2px; min-width: 30px; overflow: visible; }
.liga path { fill: none; stroke: #C9C4D6; stroke-width: 2; stroke-dasharray: 4 5; vector-effect: non-scaling-stroke; animation: corre 1.2s linear infinite; }
@keyframes corre { to { stroke-dashoffset: -18; } }
.exec { position: absolute; right: 16px; top: 14px; display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; background: #FFFFFF; border: 1px solid var(--linha); font: 600 10.5px var(--tech); color: var(--ink); }
.exec i { width: 7px; height: 7px; border-radius: 50%; background: #1F9D5B; box-shadow: 0 0 0 3px rgba(31, 157, 91, .15); }

/* ---------- 04 · Como funciona: abas que giram sozinhas com a linha de progresso ---------- */
.como { position: relative; padding: 128px 0 120px; overflow: hidden; }
/* brilho roxo bem leve atrás das etapas */
.como::before { content: ""; position: absolute; left: 50%; top: 52%; width: 1100px; height: 520px; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(132, 24, 244, .14), rgba(132, 24, 244, 0)); pointer-events: none; }
.como .wrap { position: relative; }
.como-topo { max-width: 760px; margin: 0 auto 56px; text-align: center; }
.titulo-centro { font-size: clamp(32px, 3.8vw, 50px); }
.apoio-centro { margin-left: auto; margin-right: auto; max-width: 600px; }
/* as 4 etapas lado a lado, ligadas por uma linha que uma luz percorre */
.passos { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; padding-top: 40px; }
.trilho { position: absolute; left: 12.5%; right: 12.5%; top: 0; height: 2px; border-radius: 2px; background: rgba(255, 255, 255, .08); }
.trilho-luz { position: absolute; left: 0; top: 0; height: 100%; width: var(--ate, 0%); border-radius: inherit; background: linear-gradient(90deg, rgba(132, 24, 244, .2), var(--violet)); transition: width .9s var(--ease); }
.trilho-luz::after { content: ""; position: absolute; right: -5px; top: 50%; width: 10px; height: 10px; margin-top: -5px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 4px rgba(132, 24, 244, .35), 0 0 18px rgba(207, 113, 247, .9); animation: pulso-luz 1.6s ease-out infinite; }
@keyframes pulso-luz { 0% { box-shadow: 0 0 0 0 rgba(207, 113, 247, .6), 0 0 18px rgba(207, 113, 247, .9); } 100% { box-shadow: 0 0 0 12px rgba(207, 113, 247, 0), 0 0 18px rgba(207, 113, 247, .9); } }
.ps {
  position: relative; isolation: isolate; display: flex; flex-direction: column; padding: 14px 14px 26px; border-radius: 20px;
  background: linear-gradient(180deg, rgba(30, 17, 72, .55), rgba(16, 9, 44, .45));
  box-shadow: inset 0 0 0 1px var(--border);
  transition: transform .6s var(--ease), box-shadow .5s var(--ease);
}
.ps::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; opacity: 0;
  background: linear-gradient(155deg, #F3C4FF, rgba(207, 113, 247, .75) 30%, rgba(132, 24, 244, .12) 70%, rgba(132, 24, 244, 0));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  transition: opacity .5s var(--ease);
}
.ps.ativo { transform: translateY(-6px); }
.ps.ativo::after { opacity: 1; }
/* número grande e apagado ao fundo */
.ps-fundo { position: absolute; right: 14px; bottom: 0; clip-path: inset(0 0 14px 0); z-index: -1; font: 600 104px/1 var(--tech); letter-spacing: -.04em; color: rgba(255, 255, 255, .025); transition: color .5s; pointer-events: none; }
.ps.ativo .ps-fundo { color: rgba(207, 113, 247, .07); }
/* haste que liga o ponto da linha ao cartão */
.ps-pino { position: absolute; left: 50%; top: -28px; width: 1px; height: 28px; background: rgba(255, 255, 255, .1); transition: background .4s; }
.ps.passou .ps-pino, .ps.ativo .ps-pino { background: linear-gradient(180deg, var(--violet), rgba(132, 24, 244, .2)); }
/* ponto da etapa na linha */
.ps::before { content: ""; position: absolute; left: 50%; top: -45px; width: 12px; height: 12px; margin-left: -6px; border-radius: 50%; background: #1A1040; box-shadow: inset 0 0 0 2px rgba(255, 255, 255, .15); transition: background-color .4s, box-shadow .4s; }
.ps.passou::before, .ps.ativo::before { background: var(--violet); box-shadow: 0 0 0 4px rgba(132, 24, 244, .25); }
.ps.ativo { box-shadow: inset 0 0 0 1px rgba(207, 113, 247, .2), 0 24px 60px rgba(132, 24, 244, .22); }
.ps-vis {
  position: relative; height: 214px; display: grid; place-items: center; padding: 18px; border-radius: 14px; overflow: hidden;
  background-color: rgba(7, 5, 25, .6);
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.2px); background-size: 14px 14px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.ps-vis::before { content: ""; position: absolute; right: -30%; bottom: -60%; width: 90%; height: 120%; background: radial-gradient(closest-side, rgba(132, 24, 244, .45), rgba(132, 24, 244, 0)); opacity: 0; transition: opacity .6s var(--ease); pointer-events: none; }
.ps.ativo .ps-vis::before { opacity: 1; }
.ps-num { position: relative; display: inline-grid; margin: 24px 10px 0; width: max-content; font: 600 11px var(--tech); letter-spacing: .14em; color: var(--muted); }
.ps-num b, .ps-num svg { grid-area: 1 / 1; transition: opacity .3s, transform .3s var(--ease); }
.ps-num b { font-weight: 600; }
.ps-num svg { width: 16px; height: 16px; padding: 2px; border-radius: 50%; stroke-width: 3; color: #0B2A1A; background: var(--success); opacity: 0; transform: scale(.5); }
.ps.ativo .ps-num b { color: var(--lilac); }
.ps.passou .ps-num b { opacity: 0; }
.ps.passou .ps-num svg { opacity: 1; transform: none; }
.ps h3 { margin: 10px 10px 0; font-size: 18px; font-weight: 500; letter-spacing: -.01em; line-height: 1.3; }
.ps p { margin: 8px 10px 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.como-cta { display: flex; justify-content: center; margin-top: 48px; }

/* mini interfaces das etapas, neutras; violeta só na ação */
.ui-mini {
  position: relative; width: 100%; padding: 12px; border-radius: 12px; font-size: 12px;
  background: linear-gradient(180deg, rgba(36, 20, 84, .7), rgba(22, 12, 58, .7));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07), 0 16px 34px rgba(0, 0, 0, .35);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.ui-mini .cantos { inset: -8px; --cc: rgba(255, 255, 255, .12); transition: --cc .4s; }
.ps.ativo .ui-mini .cantos { --cc: rgba(207, 113, 247, .8); }
@keyframes cf-surge { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes some { to { opacity: 0; visibility: hidden; } }
@keyframes aparece { to { opacity: 1; } }
@keyframes vira-feito { to { background: rgba(61, 214, 140, .16); color: var(--success); } }
@keyframes some-txt { to { opacity: 0; transform: translateY(-4px); } }
@keyframes entra-txt { to { opacity: 1; transform: none; } }

/* 01 · conversa */
.ch-msg { max-width: 92%; margin-top: 7px; padding: 8px 10px; border-radius: 12px; line-height: 1.45; }
.ch-msg.cli { background: rgba(255, 255, 255, .06); border-bottom-left-radius: 4px; }
.ch-msg.eq { margin-left: auto; background: var(--violet); border-bottom-right-radius: 4px; min-height: 32px; display: grid; }
.ch-anexo { display: flex; align-items: center; gap: 7px; margin-bottom: 6px; padding: 6px 8px; border-radius: 8px; background: rgba(255, 255, 255, .05); }
.ch-anexo svg { width: 13px; height: 13px; color: var(--muted); flex: none; }
.ch-anexo b { font-size: 11px; font-weight: 600; }
.ch-dig, .ch-txt { grid-area: 1 / 1; align-self: center; }
.ch-dig { display: flex; gap: 4px; }
.ch-dig i { width: 5px; height: 5px; border-radius: 50%; background: rgba(255, 255, 255, .8); animation: pula 1.1s ease-in-out infinite; }
.ch-dig i:nth-child(2) { animation-delay: .15s; } .ch-dig i:nth-child(3) { animation-delay: .3s; }
@keyframes pula { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-3px); opacity: 1; } }
/* em repouso a conversa já aparece pronta; ao acender, ela acontece de novo */
.ch-dig { opacity: 0; }
.ps.ativo .ch-msg { animation: cf-surge .5s var(--ease) both; }
.ps.ativo .ch-msg.eq { animation-delay: .8s; }
.ps.ativo .ch-dig { animation: digita 1.9s linear both; }
.ps.ativo .ch-txt { animation: surge-op .3s var(--ease) 1.9s both; }
@keyframes digita { 0%, 99% { opacity: 1; } 100% { opacity: 0; } }
@keyframes surge-op { from { opacity: 0; } to { opacity: 1; } }

/* 02 · proposta */
.pr-topo { display: flex; align-items: center; gap: 8px; padding-bottom: 8px; margin-bottom: 2px; border-bottom: 1px solid var(--border); }
.pr-topo svg { width: 15px; height: 15px; color: var(--muted); }
.pr-topo b { font-size: 12px; font-weight: 600; }
.pr-linha { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(255, 255, 255, .05); }
.pr-linha span { font: 600 9.5px var(--tech); letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.pr-linha b { font-weight: 500; }
.ps.ativo .pr-linha { animation: cf-surge .45s var(--ease) both; }
.ps.ativo .pr-linha:nth-of-type(3) { animation-delay: .3s; } .ps.ativo .pr-linha:nth-of-type(4) { animation-delay: .6s; }
.pr-bt { display: grid; width: 100%; margin-top: 10px; padding: 8px; font-size: 11px; }
.ps.ativo .pr-bt { animation: vira-feito 0s linear 1.8s forwards; }
.ps.ativo .pr-bt .mb-a { animation: some-txt .25s var(--ease) 1.8s forwards; }
.ps.ativo .pr-bt .mb-b { animation: entra-txt .25s var(--ease) 1.8s forwards; }
.ps.passou .pr-bt { background: rgba(61, 214, 140, .16); color: var(--success); }
.ps.passou .pr-bt .mb-a { opacity: 0; }
.ps.passou .pr-bt .mb-b { opacity: 1; transform: none; }

/* 03 · produção */
.pd-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pd-lista li { display: flex; align-items: center; gap: 8px; color: var(--muted); }
.pd-lista svg { width: 16px; height: 16px; padding: 3px; border-radius: 50%; stroke-width: 2.8; color: transparent; border: 1px solid rgba(255, 255, 255, .15); }
@keyframes li-feito { to { color: #fff; } }
@keyframes ck-feito { to { color: #0B2A1A; background: var(--success); border-color: var(--success); } }
.ps.ativo .pd-lista li:not(:last-child) { animation: li-feito 0s linear forwards; }
.ps.ativo .pd-lista li:not(:last-child) svg { animation: ck-feito .3s var(--ease) forwards; }
.ps.ativo .pd-lista li:first-child, .ps.ativo .pd-lista li:first-child svg { animation-delay: .2s; }
.ps.ativo .pd-lista li:nth-child(2), .ps.ativo .pd-lista li:nth-child(2) svg { animation-delay: .7s; }
.ps.ativo .pd-lista li:nth-child(3), .ps.ativo .pd-lista li:nth-child(3) svg { animation-delay: 1.2s; }
.ps.passou .pd-lista li { color: #fff; }
.ps.passou .pd-lista svg { color: #0B2A1A; background: var(--success); border-color: var(--success); }
.pd-barra { height: 4px; margin-top: 12px; border-radius: 3px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.pd-barra i { display: block; height: 100%; width: 0; border-radius: inherit; background: var(--violet); }
.ps.ativo .pd-barra i { animation: pd-barra 1.6s var(--ease) .2s forwards; }
.ps.passou .pd-barra i { width: 100%; }
@keyframes pd-barra { to { width: 75%; } }

/* 04 · entregas */
.en-item { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.en-th { width: 46px; height: 34px; border-radius: 7px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .08); flex: none; }
.en-item span:last-child { display: grid; gap: 2px; }
.en-item b { font-size: 12px; font-weight: 600; }
.en-item small { font-size: 10.5px; color: var(--muted); }
.en-bt { display: grid; width: 100%; padding: 8px; font-size: 11px; }
.ps.ativo .en-bt { animation: vira-feito 0s linear 1.2s forwards; }
.ps.ativo .en-bt .mb-a { animation: some-txt .25s var(--ease) 1.2s forwards; }
.ps.ativo .en-bt .mb-b { animation: entra-txt .25s var(--ease) 1.2s forwards; }
.en-arq { display: flex; align-items: center; gap: 8px; margin-top: 8px; padding: 7px 9px; border-radius: 8px; background: rgba(255, 255, 255, .04); }
.en-arq svg { width: 13px; height: 13px; color: var(--muted); }
.ps.ativo .en-arq { animation: cf-surge .45s var(--ease) 1.8s both; }

/* ---------- 05 · Produção de conteúdo: branco, texto à esquerda e palco à direita ---------- */
.conteudo {
  --ink: #111319; --cinza: #6B6585; --linha: #ECE8F4; --suave: #F7F5FC; --ponto: #DCD6EA;
  position: relative; background: #FFFFFF; color: var(--ink); padding: 120px 0;
}
.conteudo .trilhos::before, .conteudo .trilhos::after { top: -120px; bottom: -120px; }
.ct-grade { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 64px; align-items: center; }
.ct-lista { list-style: none; margin: 32px 0 0; padding: 0; display: grid; gap: 18px; }
.ct-lista li { display: flex; gap: 14px; font-size: 15.5px; line-height: 1.6; color: var(--cinza); }
.ct-lista b { color: var(--ink); font-weight: 500; }
.ct-ic { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; border: 1px solid #E2D3FB; color: var(--violet); background: #FFFFFF; }
.ct-ic svg { width: 17px; height: 17px; }
.ct-cta { margin-top: 36px; }

/* palco: as fontes descem pelo funil até o calendário */
.ct-palco {
  position: relative; padding: 28px; border-radius: 24px;
  background-color: var(--suave); background-image: radial-gradient(var(--ponto) 1px, transparent 1.2px); background-size: 16px 16px;
  border: 1px solid var(--linha);
}
.conteudo:not(.rodando) .ct-palco * { animation-play-state: paused !important; }
.ct-fontes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.ct-f {
  display: flex; flex-direction: column; align-items: center; gap: 7px; padding: 12px 6px; border-radius: 12px;
  background: #FFFFFF; border: 1px solid var(--linha); font: 600 11.5px var(--tech); color: var(--ink);
  box-shadow: 0 8px 20px rgba(17, 19, 25, .05);
  animation: fonte-acende 2.4s steps(1) infinite;
}
.ct-f svg { width: 18px; height: 18px; }
.ct-f:nth-child(2) { animation-delay: .6s; } .ct-f:nth-child(3) { animation-delay: 1.2s; } .ct-f:nth-child(4) { animation-delay: 1.8s; }
@keyframes fonte-acende { 0% { border-color: #CDB3F7; box-shadow: 0 0 0 4px rgba(132, 24, 244, .08), 0 8px 20px rgba(17, 19, 25, .05); } 25%, 100% { border-color: var(--linha); box-shadow: 0 8px 20px rgba(17, 19, 25, .05); } }
.ct-funil { display: block; width: 100%; height: auto; overflow: visible; }
.conteudo .titulo-sec { font-size: clamp(30px, 3.1vw, 42px); }
.ct-funil path { fill: none; stroke: #CFC9DD; stroke-width: 1.5; stroke-dasharray: 4 5; animation: corre 1.2s linear infinite; }
.ct-funil circle { fill: var(--violet); }

.cm { position: relative; padding: 18px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 18px 40px rgba(17, 19, 25, .07); }
.cm .cantos { --cc: #CFC9DD; }
.cm-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.cm-topo > span:first-child { display: grid; line-height: 1.3; }
.cm-topo b { font-size: 15px; font-weight: 600; }
.cm-topo small { font: 400 11px var(--tech); color: var(--cinza); }
.cm-cont { font: 600 10.5px var(--tech); letter-spacing: .06em; color: var(--ink); background: #F2F0F7; padding: 6px 9px; border-radius: 7px; white-space: nowrap; }
.cm-sem, .cm-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.cm-sem span { padding-bottom: 6px; text-align: center; font: 600 10px var(--tech); color: var(--cinza); }
.cm-dia { position: relative; height: 46px; border-radius: 7px; border: 1px solid var(--linha); background: #FCFBFE; }
.cm-dia small { position: absolute; top: 4px; left: 6px; font: 400 9.5px var(--tech); color: var(--cinza); }
.cm-post { position: absolute; left: 6px; right: 6px; bottom: 6px; height: 18px; border-radius: 4px; background: #ECE9F3; }
/* cada post passa por: em criação (cinza) → para aprovar (lilás) → agendado (verde), um depois do outro */
.cm-post::after { content: ""; position: absolute; right: -3px; top: -3px; width: 9px; height: 9px; border-radius: 50%; border: 2px solid #fff; background: #C9C4D6; animation: cm-status 7.2s steps(1) infinite; animation-delay: calc(var(--k) * .6s); }
@keyframes cm-status { 0% { background: #C9C4D6; } 20% { background: var(--lilac); } 45% { background: #1F9D5B; } }
.cm-post { animation: cm-foco 7.2s steps(1) infinite; animation-delay: calc(var(--k) * .6s); }
@keyframes cm-foco { 0% { box-shadow: none; } 20% { box-shadow: inset 0 0 0 1.5px var(--violet); background: #FFFFFF; } 45%, 100% { box-shadow: none; background: #ECE9F3; } }
.cm-leg { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 14px; font: 400 11px var(--tech); color: var(--cinza); }
.cm-leg span { display: inline-flex; align-items: center; gap: 6px; }
.cm-leg i { width: 8px; height: 8px; border-radius: 50%; }
.cm-leg .l1 { background: #C9C4D6; } .cm-leg .l2 { background: var(--lilac); } .cm-leg .l3 { background: #1F9D5B; }

/* ---------- 06 · Sites e sistemas: escuro, os dois caminhos lado a lado chegando no mesmo lugar ---------- */
.digital { position: relative; padding: 128px 0 120px; overflow: hidden; }
.digital::before { content: ""; position: absolute; left: 50%; top: 58%; width: 1200px; height: 620px; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(132, 24, 244, .13), rgba(132, 24, 244, 0)); pointer-events: none; }
.digital .wrap { position: relative; }
.digital:not(.rodando) .dg-vis *, .digital:not(.rodando) .dg-liga * { animation-play-state: paused !important; }
.dg-lados { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto auto; column-gap: 16px; }
.dg-lado {
  position: relative; isolation: isolate; display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; padding: 14px 14px 30px; border-radius: 24px;
  background: linear-gradient(180deg, rgba(30, 17, 72, .55), rgba(16, 9, 44, .45));
  box-shadow: inset 0 0 0 1px var(--border);
}
.dg-lado::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1px; pointer-events: none; opacity: .55;
  background: linear-gradient(160deg, rgba(243, 196, 255, .6), rgba(207, 113, 247, .25) 30%, rgba(132, 24, 244, 0) 60%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
}
.dg-vis {
  position: relative; height: 300px; border-radius: 16px; overflow: hidden;
  background-color: rgba(7, 5, 25, .6);
  background-image: radial-gradient(rgba(255, 255, 255, .07) 1px, transparent 1.2px); background-size: 14px 14px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .04);
}
.dg-vis::before { content: ""; position: absolute; right: -20%; bottom: -55%; width: 80%; height: 110%; background: radial-gradient(closest-side, rgba(132, 24, 244, .32), rgba(132, 24, 244, 0)); pointer-events: none; }
.dg-cab { margin: 26px 12px 0; }
.dg-tag { display: inline-flex; align-items: center; gap: 8px; font: 600 12px/1 var(--tech); letter-spacing: .14em; text-transform: uppercase; color: var(--lilac); }
.dg-tag svg { width: 16px; height: 16px; }
.dg-cab p { margin: 12px 0 0; font-size: 19px; line-height: 1.45; font-weight: 400; color: #fff; text-wrap: pretty; }
.dg-tipos { align-self: start; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin: 26px 12px 0; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .07); }
.dg-ic { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; color: #fff; background: rgba(255, 255, 255, .04); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.dg-ic svg { width: 17px; height: 17px; }
.dg-tipo h3 { margin: 16px 0 0; font-size: 16.5px; font-weight: 500; letter-spacing: -.01em; }
.dg-tipo p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); text-wrap: pretty; }

/* Site: um site institucional claro rolando no navegador e, no celular, o formulário que vira contato */
.sd-jan { position: absolute; left: 26px; right: 96px; top: 26px; bottom: -14px; display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: #FFFFFF; box-shadow: 0 24px 50px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .08); }
.sd-barra { flex: none; display: flex; align-items: center; gap: 5px; height: 28px; padding: 0 12px; background: #F4F2F8; border-bottom: 1px solid #ECE8F4; }
.sd-barra i { width: 7px; height: 7px; border-radius: 50%; background: #DCD6EA; }
.sd-barra span { margin-left: 10px; padding: 4px 12px; border-radius: 6px; background: #FFFFFF; font: 400 9.5px var(--tech); color: #6B6585; }
.sd-tela { position: relative; flex: 1; overflow: hidden; }
.sd-rola { padding: 12px 16px; color: #111319; animation: sd-rola 9s var(--ease) infinite; }
@keyframes sd-rola { 0%, 16% { transform: none; } 30%, 80% { transform: translateY(-112px); } 94%, 100% { transform: none; } }
.sd-nav { display: flex; align-items: center; gap: 12px; font: 400 8.5px var(--tech); color: #6B6585; }
.sd-nav b { display: inline-flex; align-items: center; gap: 5px; margin-right: auto; font: 600 11px var(--sans); color: #111319; }
.sd-nav b i, .sd-cel-logo i { width: 10px; height: 10px; border-radius: 50% 50% 2px 2px; background: #111319; }
.sd-nav em { font: 600 8.5px/1 var(--tech); font-style: normal; color: #fff; background: #111319; padding: 5px 8px; border-radius: 5px; }
.sd-hero { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 14px; align-items: center; margin-top: 16px; }
.sd-hero small { display: block; font: 600 7px var(--tech); letter-spacing: .14em; text-transform: uppercase; color: #8A84A0; }
.sd-hero strong { display: block; margin-top: 6px; font-size: 15px; line-height: 1.15; font-weight: 500; letter-spacing: -.02em; }
.sd-hero p { margin: 6px 0 0; font-size: 8.5px; line-height: 1.5; color: #6B6585; }
.sd-bts { display: flex; gap: 5px; margin-top: 10px; }
.sd-bts em { font: 600 8px/1 var(--tech); font-style: normal; color: #fff; background: var(--violet); padding: 6px 8px; border-radius: 5px; white-space: nowrap; }
.sd-bts em.sec { color: #111319; background: #fff; box-shadow: inset 0 0 0 1px #DCD6EA; }
/* "foto" do projeto: arco de fachada, sol e piso, só em tons neutros */
.sd-foto { position: relative; height: 112px; border-radius: 10px; overflow: hidden; background: linear-gradient(180deg, #EDE9F6, #DCD5EC); }
.sd-foto .sol { position: absolute; right: 18%; top: 16%; width: 22px; height: 22px; border-radius: 50%; background: #FFFFFF; box-shadow: 0 0 0 6px rgba(255, 255, 255, .35); }
.sd-foto .arco { position: absolute; left: 22%; bottom: 0; width: 44%; height: 74%; border-radius: 999px 999px 0 0; background: linear-gradient(180deg, #2A2540, #111319); box-shadow: inset 0 0 0 5px #C9C0DE; }
.sd-foto .chao { position: absolute; left: 0; right: 0; bottom: 0; height: 16%; background: #C9C0DE; }
.sd-nums { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 16px; padding: 10px 0; border-block: 1px solid #ECE8F4; }
.sd-nums span { display: grid; gap: 1px; font: 400 7.5px var(--tech); color: #8A84A0; }
.sd-nums b { font: 500 13px var(--sans); color: #111319; }
.sd-proj { margin-top: 14px; }
.sd-proj small { font: 600 8.5px var(--tech); color: #111319; }
.sd-proj div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin-top: 8px; }
.sd-proj i { position: relative; height: 70px; border-radius: 8px; overflow: hidden; }
.sd-proj i::before { content: ""; position: absolute; left: 30%; bottom: 0; width: 40%; height: 62%; border-radius: 999px 999px 0 0; background: rgba(255, 255, 255, .45); }
.sd-proj .p2::before { left: 14%; width: 72%; height: 46%; border-radius: 4px 4px 0 0; background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .16) 0 10px, transparent 10px 14px); }
.sd-proj .p3::before { left: 18%; width: 24%; height: 70%; border-radius: 3px 3px 0 0; background: #C9C0DE; box-shadow: 30px 14px 0 -2px #DCD5EC; }
.sd-proj .p1 { background: linear-gradient(160deg, #E4DEF0, #BDB3D6); }
.sd-proj .p2 { background: linear-gradient(160deg, #2A2540, #4A4266); }
.sd-proj .p3 { background: linear-gradient(160deg, #F1EEF7, #D6CFE6); }
/* celular na frente: o formulário é preenchido e enviado */
.sd-cel { position: absolute; right: 22px; bottom: -26px; z-index: 1; width: 128px; height: 236px; padding: 5px; border-radius: 22px; background: #111319; box-shadow: 0 0 0 1px rgba(255, 255, 255, .14), 0 26px 50px rgba(0, 0, 0, .55); }
.sd-cel-tela { display: grid; align-content: start; gap: 7px; height: 100%; padding: 14px 10px; border-radius: 17px; background: #FFFFFF; color: #111319; }
.sd-cel-logo { display: inline-flex; align-items: center; gap: 4px; font: 600 9px var(--sans); }
.sd-cel-logo i { width: 8px; height: 8px; }
.sd-cel-tela strong { margin-top: 6px; font-size: 12px; font-weight: 500; letter-spacing: -.01em; }
.sd-campo { position: relative; display: grid; gap: 3px; }
.sd-campo small { font: 400 7.5px var(--tech); color: #8A84A0; }
.sd-campo::after { content: ""; height: 22px; border-radius: 6px; background: #F7F5FC; box-shadow: inset 0 0 0 1px #DCD6EA; }
.sd-campo i { position: absolute; left: 8px; bottom: 9px; height: 4px; width: 0; border-radius: 2px; background: #6B6585; z-index: 1; animation: sd-digita 9s steps(10) infinite; }
.sd-campo:nth-of-type(2) i { animation-name: sd-digita2; }
@keyframes sd-digita { 0%, 26% { width: 0; } 36%, 92% { width: 58%; } 96%, 100% { width: 0; } }
@keyframes sd-digita2 { 0%, 40% { width: 0; } 50%, 92% { width: 72%; } 96%, 100% { width: 0; } }
.sd-env { margin-top: 3px; padding: 7px 0; text-align: center; border-radius: 7px; background: var(--violet); font: 600 9px/1 var(--tech); font-style: normal; color: #fff; animation: sd-aperta 9s infinite; }
@keyframes sd-aperta { 0%, 56% { transform: none; filter: none; } 58% { transform: scale(.92); filter: brightness(1.2); } 61%, 100% { transform: none; filter: none; } }
.sd-aviso {
  position: absolute; right: 78px; top: 40px; z-index: 2; display: flex; align-items: center; gap: 10px; padding: 10px 14px 10px 10px; border-radius: 12px;
  background: linear-gradient(180deg, #241454, #170D3E); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 18px 40px rgba(0, 0, 0, .5);
  opacity: 0; transform: translateX(24px); animation: sd-aviso 9s var(--ease) infinite;
}
@keyframes sd-aviso { 0%, 60% { opacity: 0; transform: translateX(24px); } 64%, 86% { opacity: 1; transform: none; } 90%, 100% { opacity: 0; transform: translateX(24px); } }
.sd-av-ic { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(61, 214, 140, .14); color: var(--success); }
.sd-av-ic svg { width: 15px; height: 15px; }
.sd-aviso b { display: block; font-size: 12px; font-weight: 600; }
.sd-aviso small { display: block; margin-top: 2px; font: 400 10.5px var(--tech); color: var(--muted); }

/* Sistema: o botão cria um cadastro, a linha entra na tabela e o status vira Ativo */
.sy-jan { position: absolute; left: 28px; top: 28px; right: -14px; bottom: -14px; display: grid; grid-template-columns: 46px minmax(0, 1fr); border-radius: 12px; overflow: hidden; background: linear-gradient(180deg, #1C1046, #120A33); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09), 0 24px 50px rgba(0, 0, 0, .45); }
.sy-lat { display: flex; flex-direction: column; align-items: center; gap: 12px; padding-top: 16px; border-right: 1px solid rgba(255, 255, 255, .06); }
.sy-lat i { width: 18px; height: 18px; border-radius: 6px; background: rgba(255, 255, 255, .08); }
.sy-lat i.on { background: rgba(132, 24, 244, .55); box-shadow: 0 0 0 4px rgba(132, 24, 244, .15); }
.sy-main { padding: 16px 32px 16px 18px; min-width: 0; }
.sy-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.sy-topo b { display: block; font-size: 14px; font-weight: 600; }
.sy-cont { display: inline-grid; margin-top: 2px; font: 400 10.5px var(--tech); color: var(--muted); }
.sy-cont span { grid-area: 1 / 1; }
.sy-cont span:last-child { opacity: 0; animation: sy-troca 9s steps(1) infinite; }
.sy-cont span:first-child { animation: sy-troca-b 9s steps(1) infinite; }
@keyframes sy-troca { 0%, 34% { opacity: 0; } 35%, 94% { opacity: 1; } 95%, 100% { opacity: 0; } }
@keyframes sy-troca-b { 0%, 34% { opacity: 1; } 35%, 94% { opacity: 0; } 95%, 100% { opacity: 1; } }
.sy-novo { display: inline-flex; align-items: center; gap: 5px; padding: 8px 11px; border-radius: 8px; background: var(--violet); font: 600 10.5px/1 var(--tech); font-style: normal; color: #fff; white-space: nowrap; animation: sy-aperta 9s infinite; }
.sy-novo svg { width: 11px; height: 11px; stroke-width: 2.4; }
@keyframes sy-aperta { 0%, 18% { transform: none; filter: none; } 20% { transform: scale(.92); filter: brightness(1.2); } 23%, 100% { transform: none; filter: none; } }
.sy-tab { margin-top: 16px; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .07); }
.sy-lin { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr) minmax(0, .9fr); align-items: center; gap: 8px; height: 38px; padding: 0 12px; font-size: 11.5px; border-top: 1px solid rgba(255, 255, 255, .05); }
.sy-lin > span { display: flex; align-items: center; gap: 8px; min-width: 0; white-space: nowrap; overflow: hidden; }
.sy-cab { height: 30px; border-top: 0; background: rgba(255, 255, 255, .03); font: 600 9.5px var(--tech); letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.av { flex: none; width: 18px; height: 18px; border-radius: 50%; background: linear-gradient(135deg, rgba(255, 255, 255, .22), rgba(255, 255, 255, .06)); }
.sy-ac { font: 400 10.5px var(--tech); font-style: normal; color: var(--muted); padding: 3px 8px; border-radius: 6px; background: rgba(255, 255, 255, .05); }
.sy-st { display: inline-grid !important; }
.sy-st i { grid-area: 1 / 1; justify-self: start; font: 600 10px var(--tech); font-style: normal; padding: 3px 8px; border-radius: 6px; }
.sy-st .ok { color: var(--success); background: rgba(61, 214, 140, .12); }
.sy-st .an { color: #E3CCF9; background: rgba(207, 113, 247, .14); }
/* linha nova: abre, fica marcada, aprova e volta a fechar no fim da volta */
.sy-nova { height: 0; overflow: hidden; border-top-width: 0; opacity: 0; animation: sy-entra 9s var(--ease) infinite; }
@keyframes sy-entra {
  0%, 24% { height: 0; opacity: 0; background: rgba(132, 24, 244, 0); border-top-width: 0; }
  32% { height: 38px; opacity: 1; background: rgba(132, 24, 244, .16); border-top-width: 1px; }
  70% { height: 38px; opacity: 1; background: rgba(132, 24, 244, .16); }
  80%, 92% { height: 38px; opacity: 1; background: rgba(132, 24, 244, 0); border-top-width: 1px; }
  100% { height: 0; opacity: 0; border-top-width: 0; }
}
.sy-nova .sy-st .an { animation: sy-an 9s steps(1) infinite; }
.sy-nova .sy-st .ok { opacity: 0; animation: sy-ok 9s steps(1) infinite; }
@keyframes sy-an { 0%, 55% { opacity: 1; } 56%, 100% { opacity: 0; } }
@keyframes sy-ok { 0%, 55% { opacity: 0; } 56%, 100% { opacity: 1; } }

/* ligação: os dois lados descem até "Desenvolvemos os dois" */
.dg-liga { display: block; width: 100%; height: auto; overflow: visible; }
.dg-liga path { fill: none; stroke: rgba(207, 113, 247, .35); stroke-width: 1.5; stroke-dasharray: 4 5; animation: corre 1.2s linear infinite; }
.dg-liga path { transition: stroke .5s; }
.dg-liga[data-carga="3"] path, .dg-liga[data-carga="4"] path { stroke: rgba(207, 113, 247, .6); }
.dg-gota circle { fill: var(--lilac); stroke: none; }
.dg-gota .h { fill: rgba(207, 113, 247, .22); }
.dg-gota { opacity: 0; }
.dg-gota.vai { opacity: 1; }
.dg-fim { max-width: 760px; margin: 0 auto; text-align: center; }

/* núcleo: cresce e brilha a cada ponto que chega (--carga 0..4); no cheio a logo acende e solta a onda */
.dg-nucleo { --carga: 0; position: relative; width: 64px; height: 64px; margin: 0 auto; }
.dg-marca { position: relative; z-index: 1; width: 64px; height: 64px; transform: scale(calc(1 + var(--carga) * .045)); transition: transform .6s var(--ease), box-shadow .6s var(--ease);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35), 0 0 0 calc(var(--carga) * 1px) rgba(207, 113, 247, .35), 0 0 calc(var(--carga) * 12px) rgba(132, 24, 244, calc(var(--carga) * .14)); }
.dg-marca img { position: relative; width: 28px; height: 28px; transition: filter .6s var(--ease);
  filter: brightness(calc(1 + var(--carga) * .14)) drop-shadow(0 0 calc(var(--carga) * 2.5px) rgba(207, 113, 247, .9)); }
.dg-aura { position: absolute; left: 50%; top: 50%; width: 220px; height: 220px; margin: -110px 0 0 -110px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(207, 113, 247, .5), rgba(132, 24, 244, .22) 45%, rgba(132, 24, 244, 0));
  opacity: calc(.12 + var(--carga) * .14); transform: scale(calc(.6 + var(--carga) * .1)); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.dg-onda { position: absolute; inset: 0; border-radius: 26%; pointer-events: none; box-shadow: 0 0 0 1.5px rgba(207, 113, 247, .7); opacity: 0; }
.dg-nucleo.pulso .dg-onda:not(.dg-explode) { animation: dg-onda .9s var(--ease); }
.dg-nucleo.cheio .dg-explode { animation: dg-explode 1.4s var(--ease); }
.dg-nucleo.cheio .dg-marca { transform: scale(1.24); box-shadow: 0 6px 18px rgba(0, 0, 0, .35), 0 0 0 2px rgba(243, 196, 255, .55), 0 0 60px rgba(132, 24, 244, .75); transition-duration: .25s; }
.dg-nucleo.cheio .dg-marca img { filter: brightness(2.1) drop-shadow(0 0 10px rgba(243, 196, 255, 1)) drop-shadow(0 0 22px rgba(207, 113, 247, .9)); transition-duration: .25s; }
.dg-nucleo.cheio .dg-aura { opacity: .95; transform: scale(1.15); transition-duration: .25s; }
@keyframes dg-onda { from { opacity: .9; transform: scale(1); } to { opacity: 0; transform: scale(1.7); } }
@keyframes dg-explode { from { opacity: 1; transform: scale(1); box-shadow: 0 0 0 2px rgba(243, 196, 255, .9), 0 0 30px rgba(207, 113, 247, .6); } to { opacity: 0; transform: scale(3.2); box-shadow: 0 0 0 1px rgba(207, 113, 247, 0), 0 0 30px rgba(207, 113, 247, 0); } }
.dg-fim h3 { margin: 40px 0 0; font-size: clamp(24px, 2.4vw, 30px); font-weight: 500; letter-spacing: -.02em; }
.dg-fim p { margin: 12px auto 0; max-width: 720px; font-size: 16.5px; line-height: 1.65; color: var(--muted); text-wrap: balance; }
.dg-fim .btn { margin-top: 30px; }

/* ---------- 07 · Atendimento: branco, conversa que roda sozinha à esquerda e texto à direita ---------- */
.atend {
  --ink: #111319; --cinza: #6B6585; --linha: #ECE8F4; --suave: #F7F5FC; --ponto: #DCD6EA;
  position: relative; background: #FFFFFF; color: var(--ink); padding: 120px 0; border-top: 1px solid var(--linha);
}
.atend .trilhos::before, .atend .trilhos::after { top: -120px; bottom: -120px; }
.atend .titulo-sec { font-size: clamp(30px, 3.1vw, 42px); }
.at-grade { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 64px; align-items: center; }
.at-palco {
  position: relative; padding: 32px 32px 104px; border-radius: 24px;
  background-color: var(--suave); background-image: radial-gradient(var(--ponto) 1px, transparent 1.2px); background-size: 16px 16px;
  border: 1px solid var(--linha);
}
.at-chat { position: relative; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 18px 40px rgba(17, 19, 25, .07); }
.at-chat .cantos { --cc: #CFC9DD; }
.at-topo { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--linha); }
.at-avs { display: flex; }
.at-avs i { display: grid; place-items: center; width: 28px; height: 28px; margin-left: -8px; border-radius: 50%; border: 2px solid #fff; font: 600 10px var(--tech); font-style: normal; color: #fff; background: #2A2540; }
.at-avs i:first-child { margin-left: 0; background: #111319; }
.at-avs i:last-child { background: #4A4266; }
.at-quem { display: grid; line-height: 1.3; }
.at-quem b { font-size: 14px; font-weight: 600; }
.at-quem small { display: inline-flex; align-items: center; gap: 6px; font: 400 11px var(--tech); color: var(--cinza); }
.at-quem small i { width: 7px; height: 7px; border-radius: 50%; background: #1F9D5B; }
/* a lista cresce de baixo para cima; cada mensagem abre a altura antes de aparecer, sem pulo */
.at-caixa { height: 330px; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 0 16px 16px;
  -webkit-mask: linear-gradient(180deg, transparent, #000 40px); mask: linear-gradient(180deg, transparent, #000 40px); }
.at-lista { display: flex; flex-direction: column; }
.at-m { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.at-m.in { grid-template-rows: 1fr; }
.at-m > div { min-height: 0; overflow: hidden; }
.at-b { width: fit-content; max-width: 82%; margin-top: 10px; padding: 10px 13px; border-radius: 14px; font-size: 13px; line-height: 1.5;
  opacity: 0; transform: translateY(8px); transition: opacity .45s var(--ease) .15s, transform .45s var(--ease) .15s; }
.at-m.in .at-b { opacity: 1; transform: none; }
.at-m.cli .at-b { background: #F2F0F7; color: var(--ink); border-bottom-left-radius: 4px; }
.at-m.eq .at-b { margin-left: auto; background: #111319; color: #fff; border-bottom-right-radius: 4px; }
.at-quem-m { display: block; margin-bottom: 3px; font: 600 10px var(--tech); letter-spacing: .04em; color: var(--cinza); }
.at-m.eq .at-quem-m { color: rgba(255, 255, 255, .55); }
.at-dig { display: flex; gap: 4px; padding: 4px 2px; }
.at-dig i { width: 6px; height: 6px; border-radius: 50%; background: rgba(255, 255, 255, .85); animation: pula 1.1s ease-in-out infinite; }
.at-dig i:nth-child(2) { animation-delay: .15s; } .at-dig i:nth-child(3) { animation-delay: .3s; }
/* anexo de referência do cliente */
.at-anexo { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; padding: 6px; border-radius: 9px; background: #fff; border: 1px solid var(--linha); }
.at-anexo i { width: 34px; height: 26px; border-radius: 5px; background: linear-gradient(135deg, #DCD5EC, #B9AFD3); }
.at-anexo span { font: 600 11px var(--tech); }
/* prévia que a equipe manda: celular com o botão fixo */
.at-previa { display: flex; align-items: center; gap: 12px; }
.at-cel { position: relative; flex: none; width: 46px; height: 82px; border-radius: 9px; background: #fff; box-shadow: inset 0 0 0 2px #3A3456; }
.at-cel::before { content: ""; position: absolute; left: 8px; right: 8px; top: 10px; height: 4px; border-radius: 2px; background: #DCD6EA; box-shadow: 0 8px 0 #ECE8F4, 0 16px 0 #ECE8F4, 0 28px 0 #ECE8F4; }
.at-cel::after { content: ""; position: absolute; right: 6px; bottom: 7px; width: 13px; height: 13px; border-radius: 50%; background: #1F9D5B; }
.at-previa span { display: grid; gap: 2px; }
.at-previa b { font-size: 12.5px; font-weight: 600; }
.at-previa small { font: 400 10.5px var(--tech); color: rgba(255, 255, 255, .6); }
/* registro da revisão */
.at-nota { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 5px 8px; border-radius: 7px; background: rgba(255, 255, 255, .1); font: 600 10.5px var(--tech); }
.at-nota svg { width: 12px; height: 12px; stroke-width: 2.4; color: #7FE3B0; }

/* andamento: cartão por cima do canto do palco, a etapa atual em violeta */
.at-and { position: absolute; left: 48px; right: 48px; bottom: 24px; z-index: 2; display: grid; gap: 12px; padding: 14px 18px 16px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--linha); box-shadow: 0 20px 44px rgba(17, 19, 25, .1); }
.at-and > b { font: 600 10px var(--tech); letter-spacing: .12em; text-transform: uppercase; color: var(--cinza); }
.at-and ol { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.at-and li { position: relative; display: flex; flex-direction: column; gap: 8px; padding-right: 16px; white-space: nowrap; font: 600 10.5px var(--tech); color: #A7A1B8; transition: color .4s; }
.at-and li::before { content: ""; height: 3px; border-radius: 2px; background: var(--linha); transition: background-color .5s var(--ease); }
.at-and li i { position: absolute; right: 0; top: 10px; display: grid; place-items: center; width: 14px; height: 14px; border-radius: 50%; background: #E7F7EE; color: #1F9D5B; opacity: 0; transform: scale(.5); transition: opacity .3s, transform .3s var(--ease); }
.at-and li i svg { width: 9px; height: 9px; stroke-width: 3; }
.at-and li.feito { color: var(--ink); }
.at-and li.feito::before { background: #1F9D5B; }
.at-and li.feito i { opacity: 1; transform: none; }
.at-and li.agora { color: var(--ink); }
.at-and li.agora::before { background: var(--violet); }

/* ---------- 08 · Portfólio: escuro, duas faixas de trabalhos em sentidos opostos e categorias que acendem sozinhas ---------- */
.port { position: relative; padding: 128px 0 120px; overflow: hidden; }
.port::before { content: ""; position: absolute; left: 50%; top: 60%; width: 1300px; height: 560px; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(132, 24, 244, .12), rgba(132, 24, 244, 0)); pointer-events: none; }
.pt-parede { display: grid; gap: 16px; -webkit-mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.pt-faixa { overflow: hidden; }
.pt-trilho { display: flex; width: max-content; will-change: transform; animation: pt-anda 80s linear infinite; }
.pt-faixa.volta .pt-trilho { animation-direction: reverse; animation-duration: 90s; }
.port:not(.rodando) .pt-trilho { animation-play-state: paused; }
@keyframes pt-anda { to { transform: translateX(-50%); } }
.pt-lista { display: flex; gap: 16px; padding-right: 16px; }
.pc { position: relative; flex: none; height: 250px; margin: 0; border-radius: 14px; overflow: hidden; background: var(--surface); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); transition: opacity .6s var(--ease), box-shadow .6s var(--ease); }
.pc.f-alta { width: 200px; }
.pc.f-larga { width: 444px; }
.pc::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); transition: box-shadow .6s var(--ease); }
.pc img { width: 100%; height: 100%; object-fit: cover; }
.pc figcaption { position: absolute; left: 10px; bottom: 10px; padding: 6px 9px; border-radius: 7px; font: 600 10.5px/1 var(--tech); letter-spacing: .04em; color: #fff; background: rgba(7, 5, 25, .72); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.pt-palco { margin-top: 48px; }
.pt-cta { display: flex; justify-content: center; margin-top: 48px; }

/* ---------- 09 · Trabalhos por área: branco, abas laterais à esquerda e o trabalho real à direita ---------- */
.trab {
  --ink: #111319; --cinza: #6B6585; --linha: #ECE8F4; --suave: #F7F5FC; --ponto: #DCD6EA;
  position: relative; background: #FFFFFF; color: var(--ink); padding: 120px 0;
}
.trab .trilhos::before, .trab .trilhos::after { top: -120px; bottom: -120px; }
.tb-topo { max-width: 640px; margin-bottom: 48px; }
.tb-grade { display: grid; grid-template-columns: minmax(0, 330px) minmax(0, 1fr); gap: 32px; align-items: start; }
.tb-abas { display: grid; gap: 6px; }
.tb-aba {
  position: relative; display: flex; align-items: flex-start; gap: 14px; width: 100%; padding: 16px 18px; border: 0; border-radius: 16px;
  font: inherit; text-align: left; color: var(--cinza); background: transparent; cursor: pointer;
  transition: background-color .3s, box-shadow .3s, color .3s;
}
.tb-aba:hover { background: var(--suave); }
.tb-aba:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }
.tb-aba::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 3px; border-radius: 3px; background: var(--violet); transform: scaleY(0); transition: transform .35s var(--ease); }
.tb-aba.on { color: var(--ink); background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--linha), 0 14px 34px rgba(17, 19, 25, .07); }
.tb-aba.on::before { transform: none; }
.tb-ic { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; border: 1px solid #E2D3FB; background: #FFFFFF; color: var(--violet); }
.tb-ic svg { width: 18px; height: 18px; }
.tb-txt { display: grid; gap: 4px; padding-top: 8px; }
.tb-txt b { font-size: 16px; font-weight: 500; color: var(--ink); }
/* a descrição só abre na aba escolhida */
.tb-txt small { display: block; max-height: 0; overflow: hidden; font-size: 13.5px; line-height: 1.55; color: var(--cinza); opacity: 0; transition: max-height .45s var(--ease), opacity .3s; }
.tb-aba.on .tb-txt small { max-height: 90px; opacity: 1; }

.tb-palco {
  position: relative; display: grid; align-items: center; min-height: 600px; padding: 28px; border-radius: 24px; overflow: hidden;
  background-color: var(--suave); background-image: radial-gradient(var(--ponto) 1px, transparent 1.2px); background-size: 16px 16px;
  border: 1px solid var(--linha);
}
.tb-painel[hidden] { display: none; }
.tb-painel > * > * { animation: pt-entra .55s var(--ease) both; animation-delay: calc(var(--i, 0) * 70ms); }
@keyframes pt-entra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
/* social e design: grade 3 × 2 de peças 4:5 */
.tb-pecas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; max-width: 600px; margin: 0 auto; }
.tb-peca { margin: 0; border-radius: 12px; overflow: hidden; aspect-ratio: 4 / 5; background: #ECE9F3; box-shadow: 0 14px 30px rgba(17, 19, 25, .1); }
.tb-peca img { width: 100%; height: 100%; object-fit: cover; }
/* vídeo: três celulares tocando os reels */
.tb-cels { display: flex; justify-content: center; gap: 18px; }
.tb-cel { margin: 0; flex: 0 1 244px; aspect-ratio: 9 / 16; padding: 6px; border-radius: 28px; background: #111319; box-shadow: 0 24px 50px rgba(17, 19, 25, .22); }
.tb-cel video { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 22px; background: #1B1830; }
/* sites: navegadores com a página inteira rolando devagar */
.tb-sites { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tb-nav, .tb-sis { margin: 0; display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: #FFFFFF; box-shadow: 0 0 0 1px var(--linha), 0 20px 44px rgba(17, 19, 25, .1); }
.tb-barra { flex: none; display: flex; align-items: center; gap: 5px; height: 32px; padding: 0 12px; background: #F4F2F8; border-bottom: 1px solid var(--linha); }
.tb-barra i { width: 8px; height: 8px; border-radius: 50%; background: #DCD6EA; }
.tb-barra em { margin-left: 10px; padding: 4px 12px; border-radius: 6px; background: #fff; font: 400 11px var(--tech); font-style: normal; color: var(--cinza); }
.tb-rolo { --h: 508px; display: block; height: var(--h); overflow: hidden; }
.tb-rolo img { width: 100%; height: auto; animation: tb-rola var(--dur, 20s) ease-in-out infinite alternate; }
@keyframes tb-rola { 0%, 8% { transform: none; } 92%, 100% { transform: translateY(calc(-100% + var(--h))); } }
.trab:not(.rodando) .tb-rolo img { animation-play-state: paused; }
/* sistemas: gravação real e a escolha entre os dois */
.tb-sis video { display: block; width: 100%; aspect-ratio: 960 / 476; object-fit: cover; background: #F4F2F8; }
.tb-sis-op { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.tb-sis-b { position: relative; overflow: hidden; display: grid; gap: 4px; padding: 14px 16px 16px; border: 0; border-radius: 12px; font: inherit; text-align: left; color: var(--cinza); background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--linha); cursor: pointer; transition: box-shadow .3s; }
.tb-sis-b b { font-size: 14.5px; font-weight: 600; color: var(--ink); }
.tb-sis-b small { font-size: 12.5px; line-height: 1.5; }
.tb-sis-b i { position: absolute; left: 0; bottom: 0; height: 3px; width: var(--p, 0%); background: var(--violet); }
.tb-sis-b.on { box-shadow: inset 0 0 0 1.5px #CDB3F7; }
.tb-sis-b:focus-visible { outline: 2px solid var(--violet); outline-offset: 2px; }

/* ---------- 10 · Contratação: escuro, três formatos; o recorrente no meio com a borda de luz girando ---------- */
@property --pl-ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
.planos { position: relative; padding: 128px 0 120px; overflow: hidden; }
.planos::before { content: ""; position: absolute; left: 50%; top: 62%; width: 1100px; height: 640px; transform: translate(-50%, -50%); background: radial-gradient(closest-side, rgba(132, 24, 244, .16), rgba(132, 24, 244, 0)); pointer-events: none; }
.planos .wrap { position: relative; }
.pl-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: repeat(7, auto); column-gap: 16px; }
.pl {
  position: relative; isolation: isolate; display: grid; grid-row: span 7; grid-template-rows: subgrid; row-gap: 0; align-content: start; padding: 28px 26px 26px; border-radius: 24px;
  background: linear-gradient(180deg, rgba(30, 17, 72, .55), rgba(16, 9, 44, .45));
  box-shadow: inset 0 0 0 1px var(--border);
}
.pl-dest { background: linear-gradient(180deg, rgba(48, 22, 110, .7), rgba(22, 11, 60, .6)); box-shadow: 0 30px 70px rgba(132, 24, 244, .25); }
.js .pl-dest[data-reveal].in { transform: translateY(-12px); }
/* borda de luz que dá a volta no cartão em destaque */
.pl-dest::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none;
  background: conic-gradient(from var(--pl-ang), rgba(207, 113, 247, .15), #F3C4FF 12%, rgba(207, 113, 247, .9) 18%, rgba(132, 24, 244, .2) 34%, rgba(207, 113, 247, .15) 60%, rgba(207, 113, 247, .15));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0) content-box exclude, linear-gradient(#000 0 0);
  animation: pl-gira 6s linear infinite;
}
@keyframes pl-gira { to { --pl-ang: 360deg; } }
.planos:not(.rodando) .pl-dest::after { animation-play-state: paused; }
.pl-topo { display: flex; align-items: center; gap: 10px; }
.pl-ic { width: 42px; height: 42px; }
.pl-ic svg { width: 19px; height: 19px; }
.pl-tag { padding: 6px 10px; border-radius: 999px; font: 600 10.5px/1 var(--tech); letter-spacing: .12em; text-transform: uppercase; color: var(--lilac); background: rgba(207, 113, 247, .08); box-shadow: inset 0 0 0 1px rgba(207, 113, 247, .25); }
.pl-dest .pl-tag { color: #fff; background: var(--violet); box-shadow: none; }
.pl-mod { margin-left: auto; font: 400 12px var(--tech); color: var(--muted); }
.pl h3 { margin: 26px 0 0; font-size: 24px; font-weight: 500; letter-spacing: -.02em; }
.pl-para { margin: 10px 0 0; font-size: 15px; line-height: 1.5; font-weight: 500; color: #E7DDF7; text-wrap: pretty; }
.pl-desc { margin: 10px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.pl-rot { margin: 24px 0 0; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .07); font: 600 10.5px var(--tech); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.pl-lista { list-style: none; display: grid; gap: 11px; margin: 14px 0 0; padding: 0; }
.pl-lista li { display: flex; align-items: flex-start; gap: 10px; font-size: 14.5px; line-height: 1.45; }
.pl-ok { flex: none; display: grid; place-items: center; width: 20px; height: 20px; margin-top: -1px; border-radius: 50%; color: var(--lilac); background: rgba(207, 113, 247, .1); }
.pl-dest .pl-ok { color: #fff; background: rgba(132, 24, 244, .7); }
.pl-ok svg { width: 11px; height: 11px; stroke-width: 3; }
/* os itens entram em sequência quando o cartão aparece */
.js .pl[data-reveal] .pl-lista li { opacity: 0; transform: translateX(-8px); transition: opacity .5s var(--ease), transform .5s var(--ease); transition-delay: calc(var(--j) * 80ms + 350ms); }
.js .pl[data-reveal].in .pl-lista li { opacity: 1; transform: none; }
.pl-bt { align-self: end; justify-content: center; }
.pl-lista { margin-bottom: 30px; }

/* ---------- 11 · Rodapé: escuro, marca à esquerda e três colunas; luz do design system subindo de baixo ---------- */
.rodape { position: relative; overflow: hidden; padding: 88px 0 32px; border-top: 1px solid var(--border); }
.rodape::before { content: ""; position: absolute; left: 50%; bottom: -320px; width: 1200px; height: 520px; transform: translateX(-50%); background: radial-gradient(closest-side, rgba(132, 24, 244, .22), rgba(132, 24, 244, 0)); pointer-events: none; }
.rodape .wrap { position: relative; }
.rd-grade { display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 48px; }
.rd-marca img { width: 114px; height: auto; }
.rd-marca p { margin: 18px 0 0; max-width: 260px; font-size: 15px; line-height: 1.6; color: var(--muted); text-wrap: balance; }
.rd-contato { display: grid; gap: 12px; margin-top: 28px; }
.rd-contato a, .rd-contato span { display: inline-flex; align-items: center; gap: 10px; width: fit-content; font-size: 14px; color: #D9D3EA; transition: color .2s; }
.rd-contato svg { width: 16px; height: 16px; color: var(--lilac); }
.rd-contato a:hover { color: #fff; }
.rd-col { display: grid; align-content: start; gap: 13px; }
.rd-col b { margin-bottom: 6px; font: 600 11px var(--tech); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.rd-col a { width: fit-content; font-size: 14.5px; color: #D9D3EA; transition: color .2s, transform .2s var(--ease); }
.rd-col a:hover { color: #fff; transform: translateX(3px); }
.rd-rede { display: inline-flex; align-items: center; gap: 10px; }
.rd-rede svg { width: 16px; height: 16px; }
.rd-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 24px; margin-top: 72px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .07); font: 400 12.5px var(--tech); color: var(--muted); }
.rd-legal { display: flex; gap: 20px; }
.rd-legal a { transition: color .2s; }
.rd-legal a:hover { color: #fff; }
.rd-col a:focus-visible, .rd-contato a:focus-visible, .rd-legal a:focus-visible, .rd-marca > a:focus-visible { outline: 2px solid var(--lilac); outline-offset: 3px; border-radius: 4px; }

/* ---------- Responsivo ---------- */
@media (max-width: 1080px) {
  .nav-link { padding: 11px 10px; }
}
@media (max-width: 960px) {
  .dg-lados { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 16px; }
  .dg-lado { grid-row: auto; grid-template-rows: none; }
  .dg-liga { display: none; }
  .dg-fim { margin-top: 48px; }
  .ct-grade { grid-template-columns: 1fr; gap: 48px; }
  .at-grade { grid-template-columns: minmax(0, 1fr); gap: 48px; }
  .pl-grade { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; row-gap: 16px; max-width: 560px; margin: 0 auto; }
  .pl { grid-row: auto; grid-template-rows: none; }
  .pl-dest { order: -1; }
  .js .pl-dest[data-reveal].in { transform: none; }
  .tb-grade { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .rd-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px 24px; }
  .rd-marca { grid-column: 1 / -1; }
  .tb-abas { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--gutter) * -1); padding: 2px var(--gutter) 6px; }
  .tb-abas::-webkit-scrollbar { display: none; }
  .tb-aba { flex: none; width: auto; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 999px; box-shadow: inset 0 0 0 1px var(--linha); }
  .tb-aba::before, .tb-txt small { display: none; }
  .tb-ic { width: 30px; height: 30px; border-radius: 50%; }
  .tb-ic svg { width: 15px; height: 15px; }
  .tb-txt { padding: 0; }
  .tb-txt b { font-size: 14px; white-space: nowrap; }
  .tb-palco { min-height: 0; }
  .passos { grid-template-columns: 1fr 1fr; padding-top: 0; }
  .trilho, .ps::before, .ps-pino { display: none; }
  .bandeja { grid-template-columns: minmax(0, 1fr); }
  .sv { min-width: 0; }
  .sv-g, .sv-f { grid-column: auto; }
  .sv-f { flex-direction: column; gap: 0; }
  .sv-f-txt { flex: none; }
  .sv-f .vis { margin-top: 26px; flex: none; }
  .mes { display: none; }
  .nav-links, .nav-cta { display: none; }
  .nav-burger { display: block; }
  .nav-in { height: 60px; padding: 0 6px 0 16px; }
  .nav.compacto .nav-in { height: 56px; }
  .hero { padding: 100px 0 40px; }
  .hero-in { grid-template-columns: 1fr; gap: 40px; }
  /* no celular a ilustração vem primeiro */
  .hero-vis { order: -1; margin-top: 0; }
  .hero-txt { max-width: 640px; }

}
@media (max-width: 520px) {
  .digital { padding: 80px 0; }
  .dg-vis { height: 260px; }
  .sd-jan { left: 16px; right: 72px; top: 18px; }
  .sd-hero { grid-template-columns: minmax(0, 1fr); }
  .sd-foto { display: none; }
  .sd-cel { right: 14px; width: 112px; height: 214px; }
  .sy-jan { left: 16px; top: 18px; grid-template-columns: 36px minmax(0, 1fr); }
  .sy-main { padding: 14px 28px 14px 12px; }
  .sy-lin { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .sy-lin > span:nth-child(2) { display: none; }
  .sd-aviso { right: 40px; top: 32px; }
  .dg-cab p { font-size: 17px; }
  .dg-tipos { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .dg-fim { text-align: left; }
  .dg-nucleo { margin: 0; }
  .dg-aura { left: 32px; }
  .dg-fim .btn { width: 100%; }
  .nav { top: 10px; padding-inline: 10px; }
  .titulo { font-size: clamp(32px, 8.6vw, 40px); }
  .apoio { font-size: 16px; }
  .acoes { flex-direction: column; }
  .acoes .btn { width: 100%; }
  .selo { max-width: 100%; gap: 10px; padding-left: 12px; }
  .selo-rot { font-size: 9.5px; letter-spacing: .12em; }
  .selo-ic { width: 34px; height: 34px; }
  .servicos { padding: 72px 0 80px; }
  .conteudo { padding: 72px 0; }
  .atend { padding: 72px 0; }
  .port { padding: 80px 0; }
  .trab { padding: 72px 0; }
  .planos { padding: 80px 0; }
  .rodape { padding: 64px 0 28px; }
  .rd-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rd-col:last-child { grid-column: 1 / -1; }
  .rd-base { margin-top: 48px; flex-direction: column; }
  .pl { padding: 22px 18px 20px; }
  .pl h3 { font-size: 21px; margin-top: 20px; }
  .pl-bt { width: 100%; }
  .tb-topo { margin-bottom: 32px; }
  .tb-palco { padding: 14px; border-radius: 20px; }
  .tb-pecas { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .tb-cels { gap: 8px; padding-top: 0; }
  .tb-cel { padding: 4px; border-radius: 18px; }
  .tb-cel video { border-radius: 14px; }
  .tb-sites { grid-template-columns: minmax(0, 1fr); }
  .tb-sites .tb-nav + .tb-nav { display: none; }
  .tb-rolo { --h: 420px; }
  .tb-sis-op { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .pt-palco { margin-top: 36px; }
  .pt-parede { gap: 10px; }

  .pt-lista { gap: 10px; padding-right: 10px; }
  .pc { height: 170px; border-radius: 12px; }
  .pc.f-alta { width: 136px; }
  .pc.f-larga { width: 302px; }
    .pc figcaption { left: 8px; bottom: 8px; font-size: 9.5px; padding: 5px 7px; }
  .pt-cta .btn { width: 100%; }
  .at-palco { padding: 16px 16px 144px; }
  .at-caixa { height: 280px; padding: 0 12px 12px; }
  .at-b { max-width: 88%; font-size: 12.5px; }
  .at-and { left: 16px; right: 16px; bottom: 16px; padding: 12px 12px 14px; }
  .at-and ol { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
  .ct-palco { padding: 16px; }
  .ct-f { font-size: 10.5px; padding: 10px 4px; }
  .cm { padding: 14px; }
  .cm-dia { height: 38px; }
  .cm-post { height: 14px; left: 4px; right: 4px; bottom: 4px; }
  .ct-cta { width: 100%; }
  /* no celular as etapas ficam em coluna, com a linha na vertical */
  .passos { grid-template-columns: 1fr; gap: 12px; padding-left: 26px; }
  .trilho { display: block; left: 5px; right: auto; top: 20px; bottom: 20px; width: 2px; height: auto; }
  .trilho-luz { width: 100%; height: var(--ate, 0%); transition: height .9s var(--ease); }
  .trilho-luz::after { right: auto; left: 50%; top: auto; bottom: -5px; margin: 0 0 0 -5px; }
  .ps::before { display: block; left: -26px; top: 22px; margin-left: 0; }
  .ps-pino { display: none; }
  .ps.ativo { transform: none; }
  .ps-vis { height: auto; min-height: 150px; }
  .como { padding: 80px 0; }
  .como-topo { text-align: left; margin-bottom: 36px; }
  .como-topo .rotulo-centro { text-align: left; }
  .como-cta .btn { width: 100%; }
  .trilhos::before, .trilhos::after { display: none; }
  .sec-topo { margin-bottom: 36px; }
  .bandeja { padding: 8px; gap: 8px; border-radius: 20px; }
  .sv { padding: 22px 18px; }
  .vis { height: 250px; }
  .vis-social { height: 290px; }
  .pub { left: 50%; transform: translateX(-50%); width: calc(100% - 28px); max-width: 340px; top: 16px; }
  .perfil { display: none; }
  .nav-site { width: 62%; left: 14px; }
  .cel-site { left: auto; right: 14px; }
  .checks { display: none; }
  .vis-fluxo { padding: 0 12px; }
  .no { width: 92px; padding: 14px 6px 12px; }
  .no b { font-size: 12px; }
  .liga { min-width: 12px; }
  .exec { display: none; }
  .clientes { padding-bottom: 72px; }
  .clientes .wrap { padding-top: 40px; }
  .faixa-lista img { height: calc(var(--h, 32px) * .8); }
  .selo-ics { gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .caret, .vidro-ic::before { animation: none; }
  .faixa-trilho { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
  .vis *, .vis *::after { animation: none !important; }
  .ps * { animation-duration: 0s !important; animation-delay: 0s !important; }
  .ct-palco * { animation: none !important; }
  .dg-vis *, .dg-liga * { animation: none !important; }
  .at-m, .at-b { transition: none !important; }
  .pt-trilho { animation: none; }
  .pl-dest::after { animation: none; }
  .js .pl[data-reveal] .pl-lista li { opacity: 1; transform: none; transition: none; }
  .tb-rolo img, .tb-painel > * > * { animation: none !important; }
  .dg-gota { display: none; }
  .dg-nucleo { --carga: 2; }
  .dg-nucleo * { transition: none !important; animation: none !important; }
  .ct-funil circle { display: none; }
  .carimbo { transform: rotate(-6deg); }
  .faixa-lista[aria-hidden] { display: none; }
  .faixa-lista { flex-wrap: wrap; justify-content: center; row-gap: 24px; }
  .js [data-reveal] { opacity: 1; transform: none; transition: none; }
  .tk, .cursor, .nav-in, .nav-logo img, .btn, .btn-p::after, .mega, .mega-item, .mega-dest, .mega-pe, .gaveta, .gaveta * { transition: none !important; }
}
