/* Busqueli: hotsite institucional (pt-BR). Fonte: Satoshi (Indian Type Foundry, licença FFL, auto-hospedada, arquivos sem alteração).
   Medidas de desktop tiradas da referência aprovada (20-hotsite-aprovado.png): 1 px da referência = 2,16 px em 1440. */
@font-face {
  font-family: "Satoshi";
  src: url("/fonts/Satoshi-Variable.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Satoshi";
  src: url("/fonts/Satoshi-Italic.woff2") format("woff2");
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

:root {
  --egeu: #123B5D;
  --med: #2F78B7;
  --med-texto: #1F6CB0;
  --turq: #39B9B3;
  --sal: #FFFDF8;
  --areia: #F3EBDD;
  --fundo: #FCF8F2;
  --terra: #C96C52;
  --texto: #1B3550;
  --texto-2: #3A5068;
  --s1: #1878CC;
  --s2: #2DBFB0;
  --margem: 22px;
  --cont: 1310px;
  --fonte: "Satoshi", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --t-ui: 200ms;
  --t-entra: 600ms;
  --curva: cubic-bezier(.2, .7, .2, 1);
  --topo-h: 128px;
  /* escala tipográfica (desktop em 1440) */
  --f-h1: clamp(40px, 4.65vw, 68px);
  --f-h2: clamp(32px, 4.1vw, 60px);
  --f-corpo: clamp(17px, 1.67vw, 24px);
  --f-ui: 19px;
}
@media (min-width: 768px) { :root { --margem: 40px; } }
@media (min-width: 1440px) { :root { --margem: 64px; } }

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 88px; }
body {
  margin: 0;
  font-family: var(--fonte);
  font-size: 18px;
  font-weight: 460;
  line-height: 1.6;
  color: var(--texto);
  background: var(--fundo);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: clip;
}
img, svg, picture { display: block; max-width: 100%; }
h1, h2, h3, p, ul, figure { margin: 0; }
ul { padding: 0; list-style: none; }
a { color: inherit; }
button, input, textarea { font: inherit; color: inherit; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.sr { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.cont { width: min(var(--cont), 100% - 2 * var(--margem)); margin-inline: auto; }
.l { display: block; }
.destaque { color: var(--med-texto); }

:focus-visible { outline: 3px solid var(--med); outline-offset: 3px; border-radius: 6px; }
.pular {
  position: absolute; left: 16px; top: -100px; z-index: 100;
  padding: 12px 18px; border-radius: 10px; background: var(--egeu); color: #fff; font-weight: 600; text-decoration: none;
}
.pular:focus { top: 12px; }

/* ---------- elementos comuns ---------- */
.rotulo {
  display: flex; align-items: center; gap: 22px;
  font-size: clamp(13px, 1.15vw, 17px); line-height: 1.2; font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: var(--egeu);
}
.rotulo::before { content: ""; width: 54px; height: 2px; border-radius: 2px; background: var(--terra); flex: none; }
.rotulo--claro { color: #fff; }

.titulo-secao { font-size: var(--f-h2); line-height: 1.08; font-weight: 780; letter-spacing: -.015em; color: var(--egeu); }
.titulo-secao--claro { color: #fff; }

.bt {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 34px; border-radius: 999px;
  font-size: var(--f-ui); font-weight: 700; line-height: 1.1; text-decoration: none; white-space: nowrap;
  border: 1.5px solid transparent; cursor: pointer;
  transition: background-color var(--t-ui) ease, color var(--t-ui) ease, border-color var(--t-ui) ease, box-shadow var(--t-ui) ease, transform var(--t-ui) ease;
}
.bt--escuro { background: var(--egeu); color: #fff; box-shadow: 0 8px 20px -10px rgba(18, 59, 93, .6); }
.bt--escuro:hover { background: #0B2C48; }
.bt--contorno { background: rgba(255, 255, 255, .75); color: var(--egeu); border-color: rgba(18, 59, 93, .42); }
.bt--contorno:hover { border-color: var(--egeu); background: #fff; }
.bt--contorno-claro { background: rgba(255, 255, 255, .04); color: #fff; border-color: rgba(255, 255, 255, .9); }
.bt--contorno-claro:hover { background: rgba(255, 255, 255, .14); border-color: #fff; }
.bt--bloco { display: flex; width: 100%; }
.bt:active { transform: translateY(1px); }

.link-sub {
  display: inline-flex; align-items: center; min-height: 48px;
  font-size: var(--f-ui); font-weight: 700; color: var(--med-texto);
  text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 8px;
  transition: color var(--t-ui) ease;
}
.link-sub:hover { color: var(--egeu); }

/* ---------- marca ---------- */
.marca { display: inline-flex; align-items: center; min-height: 44px; gap: 13px; text-decoration: none; flex: none; white-space: nowrap; }
.marca__simbolo { width: 66px; height: auto; aspect-ratio: 150 / 124; flex: none; }
.marca__nome { font-size: 47px; line-height: 1; font-weight: 740; letter-spacing: -.022em; color: var(--egeu); transform: translateY(-3px); }
.marca--clara { --s1: #fff; --s2: #fff; }
.marca--clara .marca__nome { color: #fff; }
.marca__simbolo, .marca__nome { transition: width 250ms ease, font-size 250ms ease; }

/* ---------- topo ---------- */
.topo { position: fixed; inset: 0 0 auto; z-index: 50; transition: background-color 250ms ease, box-shadow 250ms ease; }
.topo__barra { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--topo-h); padding-top: 6px; transition: height 250ms ease, padding 250ms ease; }
.menu { display: flex; align-items: center; flex: 1; justify-content: flex-end; }
.menu__lista { display: flex; gap: clamp(28px, 3.6vw, 52px); margin-right: auto; margin-left: clamp(32px, 5.4vw, 90px); }
.menu__lista a {
  display: inline-flex; align-items: center; min-height: 48px; position: relative;
  font-size: 22px; font-weight: 700; color: var(--egeu); text-decoration: none; transition: color 250ms ease;
}
.menu__lista a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 2px; border-radius: 2px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform var(--t-ui) ease; }
.menu__lista a:hover::after { transform: scaleX(1); }
/* sobre o hero, os links ficam numa cápsula translúcida: o fundo atrás deles vai do creme ao azul profundo */
@media (min-width: 1024px) {
  .topo:not(.rolou) .menu__cta.sobre-claro { color: var(--egeu); border-color: rgba(18, 59, 93, .55); background: rgba(255, 255, 255, .35); }
  .menu__lista { padding: 4px 30px; border-radius: 999px; background: rgba(255, 253, 248, .62); border: 1px solid rgba(255, 255, 255, .7); box-shadow: 0 10px 30px -18px rgba(18, 59, 93, .45); -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2); transition: background-color 250ms ease, box-shadow 250ms ease, border-color 250ms ease; }
  .topo.rolou .menu__lista { background: transparent; border-color: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
.menu__cta { min-height: 60px; min-width: 240px; padding: 0 34px; font-size: 20px; }
.menu-bt { display: none; }
.topo.rolou { background: rgba(252, 248, 242, .94); box-shadow: 0 1px 0 rgba(18, 59, 93, .08), 0 10px 30px -18px rgba(18, 59, 93, .35); -webkit-backdrop-filter: saturate(1.4) blur(14px); backdrop-filter: saturate(1.4) blur(14px); }
.topo.rolou .topo__barra { height: 76px; padding-top: 0; }
.topo.rolou .menu__cta { color: var(--egeu); border-color: rgba(18, 59, 93, .5); background: transparent; min-height: 48px; min-width: 0; }
.topo.rolou .menu__cta:hover { background: var(--egeu); color: #fff; }
.topo.rolou .marca__simbolo { width: 46px; }
.topo.rolou .marca__nome { font-size: 33px; }

/* ---------- hero ---------- */
.hero { position: relative; isolation: isolate; height: clamp(720px, 57.8vw, 1110px); display: flex; align-items: center; overflow: hidden; }
.hero__fundo, .hero__fundo img { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; }
.hero__fundo img { object-fit: cover; object-position: 50% 50%; }
.hero__no { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }
.hero__conteudo { padding-top: 96px; padding-bottom: 72px; }
.hero .rotulo { margin-bottom: 40px; }
.hero__titulo { font-size: var(--f-h1); line-height: 1.08; font-weight: 780; letter-spacing: -.018em; color: var(--egeu); }
.hero__texto { margin-top: 20px; max-width: 23em; font-size: var(--f-corpo); line-height: 1.62; color: var(--texto); }
.hero__acoes { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 44px; margin-top: 44px; }
.hero__acoes .bt { min-height: 54px; min-width: 290px; }

/* ---------- solução ---------- */
.solucao { position: relative; padding: 70px 0 84px; }
.solucao__grade { display: grid; grid-template-columns: minmax(0, 46fr) minmax(0, 54fr); grid-template-areas: "rot txt" "ilu txt"; column-gap: 40px; align-items: center; }
.solucao__rotulo { grid-area: rot; align-self: start; }
.solucao__ilustra { grid-area: ilu; margin-left: calc(-1 * min(var(--margem), 40px)); }
.fluxo { width: 100%; max-width: 640px; height: auto; overflow: visible; }
.solucao__texto { grid-area: txt; padding-top: 30px; }
.solucao__p { margin-top: 26px; font-size: var(--f-corpo); line-height: 1.6; max-width: 27em; color: var(--texto); }
.atributos { display: flex; flex-wrap: wrap; align-items: center; margin-top: 50px; }
.atributos li { display: inline-flex; align-items: center; gap: 14px; font-size: clamp(17px, 1.6vw, 23px); font-weight: 700; color: var(--egeu); padding: 6px 38px; border-left: 2px solid rgba(201, 108, 82, .4); line-height: 1.2; }
.atributos li:first-child { padding-left: 0; border-left: 0; }
.atributos li:last-child { padding-right: 0; }
.atributos svg { width: 34px; height: 34px; fill: none; stroke: var(--terra); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; flex: none; }
.atributos svg .cheio { fill: var(--terra); stroke: none; }

/* ---------- plataforma ---------- */
.plataforma { position: relative; isolation: isolate; color: #fff; padding: 128px 0 116px; }
.plataforma__fundo, .plataforma__fundo img { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -1; }
.plataforma__fundo img { object-fit: cover; object-position: 50% 50%; }
.plataforma__grade { display: grid; grid-template-columns: minmax(0, 37fr) minmax(0, 63fr); gap: 40px; align-items: center; }
.plataforma .rotulo { margin-bottom: 40px; }
.plataforma__p { margin-top: 24px; font-size: var(--f-corpo); line-height: 1.6; color: rgba(255, 255, 255, .92); max-width: 20em; }
.plataforma .bt { margin-top: 44px; min-height: 56px; min-width: 330px; }

.demo { position: relative; }
.demo__legenda { margin-top: 20px; text-align: right; font-size: 19px; font-style: italic; color: rgba(255, 255, 255, .88); }
.app {
  display: grid; grid-template-columns: 28% 1fr; overflow: hidden;
  border-radius: 24px; background: rgba(248, 250, 252, .95);
  border: 1px solid rgba(255, 255, 255, .75);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .9) inset, 0 44px 80px -30px rgba(0, 20, 45, .7), 0 0 0 9px rgba(255, 255, 255, .08);
  color: var(--egeu); font-size: 16px; line-height: 1.3;
}
.app svg { fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.app__lado { background: rgba(236, 241, 246, .85); border-right: 1px solid rgba(18, 59, 93, .08); padding: 30px 16px; }
.app__marca { display: flex; align-items: center; gap: 9px; padding: 0 12px 30px; font-size: 26px; font-weight: 700; letter-spacing: -.02em; color: var(--egeu); }
.app__marca svg { width: 36px; height: auto; aspect-ratio: 150 / 124; stroke: none; fill: none; flex: none; }
.app__nav { display: grid; gap: 8px; }
.app__nav li { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 10px; font-size: 15.5px; font-weight: 500; color: #35506B; }
.app__nav li svg { width: 20px; height: 20px; flex: none; }
.app__nav li.ativo { background: #DCEAF6; color: var(--egeu); font-weight: 700; }
.app__principal { padding: 24px 32px 34px; min-width: 0; }
.app__barra { display: flex; align-items: center; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid rgba(18, 59, 93, .08); }
.app__voltar { width: 24px; height: 24px; color: #7D90A3; }
.app__secao { font-size: 19px; font-weight: 700; margin-right: auto; }
.app__icone { width: 24px; height: 24px; color: #45607A; }
.app__avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; background: #DCE6EF; color: #45607A; }
.app__avatar svg { width: 24px; height: 24px; }
.app__cab { display: flex; align-items: center; gap: 22px; padding: 26px 0 22px; }
.app__doc { display: grid; place-items: center; width: 60px; height: 60px; border-radius: 16px; background: #E2EEF8; color: var(--med); flex: none; }
.app__doc svg { width: 28px; height: 28px; }
.app__titulo { font-size: 25px; font-weight: 700; letter-spacing: -.01em; }
.app__itens { display: grid; gap: 16px; }
.app__item {
  display: grid; grid-template-columns: 30px 1fr; column-gap: 14px; row-gap: 11px; align-items: center;
  padding: 20px 24px; border-radius: 14px; background: rgba(255, 255, 255, .9); border: 1px solid rgba(18, 59, 93, .1);
  transition: border-color 400ms ease, background-color 400ms ease, box-shadow 400ms ease;
}
.app__item svg { width: 24px; height: 24px; color: var(--terra); }
.app__item-t { font-size: 17px; font-weight: 700; }
.app__item i { grid-column: 2; display: block; height: 8px; border-radius: 6px; background: #D5DEE7; }
.app__item i.curta { width: 62%; margin-top: -3px; }
.app__item.realce { border-color: rgba(57, 185, 179, .8); background: #F0FAF9; box-shadow: 0 10px 24px -14px rgba(18, 90, 120, .55); }

/* ---------- planos ---------- */
.planos { position: relative; padding: 40px 0 56px; }
.planos__titulo { text-align: center; margin-top: 10px; font-size: clamp(30px, 4vw, 58px); }
.seletor { position: relative; display: grid; grid-template-columns: 1fr 1fr; width: 404px; max-width: 100%; margin: 30px auto 0; padding: 4px; border: 1px solid rgba(18, 59, 93, .16); border-radius: 999px; background: rgba(255, 255, 255, .75); min-inline-size: 0; }
.seletor input { position: absolute; opacity: 0; pointer-events: none; }
.seletor label { position: relative; z-index: 1; display: grid; place-items: center; min-height: 48px; border-radius: 999px; font-size: 19px; font-weight: 600; color: var(--egeu); cursor: pointer; transition: color var(--t-ui) ease; user-select: none; }
.seletor input:checked + label { color: #fff; }
.seletor input:focus-visible + label { outline: 3px solid var(--med); outline-offset: 2px; }
.seletor__ind { position: absolute; z-index: 0; top: 4px; bottom: 4px; left: 4px; width: calc(50% - 4px); border-radius: 999px; background: var(--egeu); transform: translateX(100%); transition: transform 280ms var(--curva); }
.planos[data-periodo="mensal"] .seletor__ind { transform: translateX(0); }

.planos__grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 46px; }
.plano {
  position: relative; display: flex; flex-direction: column; padding: 34px 38px 30px; border-radius: 18px; overflow: hidden;
  background: linear-gradient(160deg, rgba(255, 255, 255, .8), rgba(250, 239, 226, .72));
  border: 1px solid rgba(201, 160, 130, .3);
  box-shadow: 0 18px 40px -30px rgba(80, 50, 30, .35);
  transition: transform var(--t-ui) ease, box-shadow var(--t-ui) ease;
}
.plano:hover { transform: translateY(-3px); box-shadow: 0 24px 46px -28px rgba(18, 59, 93, .35); }
.plano--destaque { border-color: #2A7F92; box-shadow: inset 0 0 0 1px #2A7F92, 0 18px 40px -30px rgba(80, 50, 30, .35); background: linear-gradient(165deg, #CDEFEC 0%, #E6F6F5 40%, #F3FBFA 100%); }
.plano--destaque::before { content: ""; position: absolute; right: -50px; top: 26px; width: 300px; height: 96px; border-radius: 50%; background: radial-gradient(closest-side, rgba(57, 185, 179, .38), rgba(57, 185, 179, 0)); transform: rotate(-12deg); pointer-events: none; }
.plano > * { position: relative; }
.plano__nome { font-size: clamp(28px, 2.7vw, 40px); line-height: 1.12; font-weight: 760; letter-spacing: -.012em; color: var(--egeu); }
.plano__valor { display: grid; margin-top: 16px; color: var(--egeu); }
.plano__valor .v, .corporativo__valor .v { grid-area: 1 / 1; transition: opacity 250ms ease, transform 250ms ease, visibility 0s; }
.plano__valor .v { display: flex; align-items: baseline; gap: 10px; white-space: nowrap; }
.plano__valor .moeda { font-size: clamp(28px, 2.6vw, 38px); font-weight: 700; }
.plano__valor .num { font-size: clamp(48px, 4.4vw, 66px); line-height: 1.04; font-weight: 700; letter-spacing: -.02em; }
.plano__valor .per { font-size: clamp(19px, 1.6vw, 24px); font-weight: 500; color: var(--texto-2); }
.plano__lista { display: grid; gap: 10px; margin-top: 18px; padding-bottom: 24px; border-bottom: 1px solid rgba(18, 59, 93, .12); font-size: clamp(17px, 1.6vw, 23px); line-height: 1.4; }
.plano__lista li { display: flex; align-items: center; gap: 14px; }
.plano__lista svg { width: 24px; height: 24px; color: var(--terra); flex: none; stroke-width: 2.6; }
.plano__cobranca { display: grid; margin: 16px 0 20px; text-align: center; font-size: 17px; line-height: 1.35; color: var(--texto-2); }
.plano__cobranca .c { grid-area: 1 / 1; align-self: center; transition: opacity 250ms ease; }
.plano .bt { margin-top: auto; }

/* troca anual/mensal sem mudar a altura: as duas versões ocupam a mesma célula da grade */
.planos .v--mensal, .planos .c--mensal { opacity: 0; visibility: hidden; transform: translateY(4px); }
.planos[data-periodo="mensal"] .v--mensal, .planos[data-periodo="mensal"] .c--mensal { opacity: 1; visibility: visible; transform: none; }
.planos[data-periodo="mensal"] .v--anual, .planos[data-periodo="mensal"] .c--anual { opacity: 0; visibility: hidden; transform: translateY(-4px); }

.corporativo {
  position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px;
  margin-top: 30px; min-height: 112px; padding: 22px 38px 22px 10%;
  border-radius: 18px; border: 1px solid rgba(201, 160, 130, .3);
  background: linear-gradient(90deg, rgba(255, 255, 255, .5), rgba(255, 255, 255, .82));
  box-shadow: 0 18px 40px -32px rgba(80, 50, 30, .35);
}
.corporativo::before { content: ""; position: absolute; left: -80px; bottom: -62px; width: 380px; height: 140px; border-radius: 50%; background: radial-gradient(closest-side, rgba(57, 185, 179, .55), rgba(57, 185, 179, 0)); pointer-events: none; }
.corporativo::after { content: ""; position: absolute; left: 90px; bottom: -84px; width: 300px; height: 130px; border-radius: 50%; background: radial-gradient(closest-side, rgba(240, 175, 145, .55), rgba(240, 175, 145, 0)); pointer-events: none; }
.corporativo > * { position: relative; z-index: 1; }
.corporativo__nome { justify-self: end; padding-right: 32px; border-right: 2px solid rgba(201, 108, 82, .5); font-size: clamp(28px, 2.7vw, 40px); font-weight: 760; letter-spacing: -.012em; color: var(--egeu); line-height: 1.2; }
.corporativo__valor { display: grid; font-size: clamp(17px, 1.3vw, 20px); color: var(--texto-2); }
.corporativo__valor small { font-size: .78em; color: var(--texto-2); }
.corporativo .bt { justify-self: end; min-width: 344px; min-height: 56px; }
.planos__nota { margin-top: 22px; text-align: center; font-size: 17px; color: #586B7E; max-width: 46em; margin-inline: auto; text-wrap: balance; }
/* 05/11: subtítulo, faixa "em todos os planos pagos", faixa do Grátis */
.planos__sub { text-wrap: balance; max-width: 40em; margin: 18px auto 0; text-align: center; font-size: clamp(17px, 1.4vw, 21px); line-height: 1.5; color: var(--texto-2); }
.inclui { margin-top: 34px; text-align: center; }
.inclui__titulo { font-size: 15px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--egeu); }
.inclui__lista { display: grid; grid-template-columns: repeat(2, auto); justify-content: center; gap: 10px 56px; margin-top: 14px; font-size: clamp(17px, 1.4vw, 20px); line-height: 1.4; text-align: left; }
.inclui__lista li { display: flex; align-items: center; gap: 12px; }
.inclui__lista svg { width: 22px; height: 22px; color: var(--terra); flex: none; stroke-width: 2.6; }
.corporativo__meio { display: grid; gap: 4px; }
.nw { white-space: nowrap; }
@media (min-width: 768px) { .planos__sub-2 { display: block; } }
/* as duas faixas usam colunas proporcionais (o botão tem a mesma largura): nome, texto e botão alinham entre elas */
@media (min-width: 1200px) { .corporativo { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; padding-left: 6%; } }
@media (min-width: 1200px) and (max-width: 1439.98px) { .corporativo .bt { min-width: 300px; } }
.corporativo__desc { font-size: clamp(18px, 1.5vw, 22px); font-weight: 700; color: var(--egeu); }
.corporativo--gratis { margin-top: 16px; background: rgba(255, 255, 255, .55); box-shadow: none; }
.corporativo--gratis::before, .corporativo--gratis::after { display: none; }

/* ---------- contato ---------- */
.contato { position: relative; isolation: isolate; padding: 104px 0 36px; }
.contato__fundo { position: absolute; inset: 0; z-index: -1; background: url("/img/contato.webp") 100% 0 / cover no-repeat; -webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent); mask-image: linear-gradient(to bottom, #000 80%, transparent); }
.contato__fundo { background-image: image-set(url("/img/contato.avif") type("image/avif"), url("/img/contato.webp") type("image/webp")); }
.contato__grade { display: grid; grid-template-columns: minmax(0, 38fr) minmax(0, 62fr); gap: 52px; align-items: start; }
.contato .rotulo { margin-bottom: 40px; }
.contato__titulo { font-size: clamp(34px, 4.6vw, 67px); line-height: 1.04; }
.contato__p { margin-top: 30px; font-size: var(--f-corpo); color: var(--texto); }
.contato__email { display: inline-flex; align-items: center; gap: 16px; margin-top: 30px; min-height: 48px; font-size: var(--f-corpo); font-weight: 600; color: var(--med-texto); text-decoration: none; }
.contato__email:hover { text-decoration: underline; text-underline-offset: 5px; }
.contato__email svg { width: 30px; height: 30px; fill: none; stroke: var(--terra); stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; }

.form {
  position: relative; display: grid; gap: 22px; margin-top: 14px; padding: 36px 38px 28px; border-radius: 22px;
  background: rgba(255, 255, 255, .74); border: 1px solid rgba(255, 255, 255, .95);
  box-shadow: 0 30px 60px -40px rgba(18, 59, 93, .45), 0 0 0 1px rgba(18, 59, 93, .05);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
}
.form__linha { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 26px; }
.campo { position: relative; }
.campo input, .campo textarea {
  display: block; width: 100%; min-height: 58px; padding: 25px 20px 8px; border-radius: 12px;
  border: 1.5px solid rgba(47, 120, 183, .34); background: rgba(255, 255, 255, .92);
  font-size: 18px; line-height: 1.4; color: var(--texto);
  transition: border-color var(--t-ui) ease, box-shadow var(--t-ui) ease;
}
.campo textarea { min-height: 140px; resize: vertical; padding-top: 32px; }
.campo input:hover, .campo textarea:hover { border-color: rgba(47, 120, 183, .58); }
.campo input:focus, .campo textarea:focus { outline: none; border-color: var(--med); box-shadow: 0 0 0 4px rgba(47, 120, 183, .2); }
.campo label {
  position: absolute; left: 21px; top: 16px; font-size: 18px; line-height: 1.35; color: #44596F; pointer-events: none;
  transform-origin: left top; transition: transform var(--t-ui) ease, color var(--t-ui) ease;
}
.campo input:focus + label, .campo input:not(:placeholder-shown) + label,
.campo textarea:focus + label, .campo textarea:not(:placeholder-shown) + label { transform: translateY(-10px) scale(.78); color: var(--med-texto); font-weight: 600; }
.campo [aria-invalid="true"] { border-color: #C0392B; }
.campo [aria-invalid="true"]:focus { box-shadow: 0 0 0 4px rgba(192, 57, 43, .15); }
.campo__erro { margin-top: 7px; font-size: 15px; line-height: 1.35; color: #B03A2E; font-weight: 500; }
.campo__erro:empty { display: none; }
.form__mel { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form__enviar { min-height: 58px; font-size: 19px; border-radius: 12px; }
.form__enviar[aria-busy="true"] { cursor: progress; opacity: .85; }
.form__enviar[aria-busy="true"]::before { content: ""; width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .4); border-top-color: #fff; animation: gira 800ms linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
.form__status { font-size: 16px; line-height: 1.45; text-align: center; outline: none; }
.form__status:empty { display: none; }
.form__status.ok { padding: 14px 16px; border-radius: 12px; background: #E3F5F3; color: #0E5551; font-weight: 600; }
.form__status.erro { padding: 14px 16px; border-radius: 12px; background: #FBEAE6; color: #8A2D21; font-weight: 500; }
.form__status a { font-weight: 700; }
.form__privacidade { margin-top: -8px; font-size: 16px; line-height: 1.5; color: #4F6378; text-align: center; }
.form__privacidade summary { display: inline; cursor: pointer; list-style: none; border-radius: 6px; }
.form__privacidade summary::-webkit-details-marker { display: none; }
.form__saiba { white-space: nowrap; color: var(--med-texto); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.form__privacidade[open] .form__saiba { text-decoration: none; }
.form__privacidade-texto { display: grid; gap: 8px; margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: rgba(243, 235, 221, .55); border: 1px solid rgba(201, 160, 130, .25); text-align: left; font-size: 15px; color: var(--texto-2); }
.form__privacidade-texto a { color: var(--med-texto); font-weight: 600; }
.form__interesse { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 10px 10px 18px; border-radius: 12px; background: #E6F3F7; border: 1px solid rgba(47, 120, 183, .25); font-size: 16px; color: var(--egeu); }
.form__interesse[hidden] { display: none; }
.form__limpar { display: grid; place-items: center; width: 40px; height: 40px; border: 0; border-radius: 8px; background: transparent; font-size: 24px; line-height: 1; color: var(--egeu); cursor: pointer; }
.form__limpar:hover { background: rgba(18, 59, 93, .08); }

/* ---------- rodapé ---------- */
.rodape { position: relative; isolation: isolate; color: #fff; padding: calc(17.8vw + 16px) 0 38px; }
/* fundo do rodapé em duas peças (onda em cima, fio com o nó embaixo) sobre o azul da própria imagem: vale para qualquer altura */
.rodape__fundo { position: absolute; inset: 0; z-index: -1; background: #013F6B; overflow: hidden; }
.rodape__topo, .rodape__base-img { position: absolute; left: 0; right: 0; }
.rodape__topo img, .rodape__base-img img { display: block; width: 100%; height: auto; }
.rodape__base-img img { height: max(12.4vw, 200px); object-fit: cover; object-position: 50% 38%; }
.rodape__base p { text-shadow: 0 1px 10px rgba(1, 40, 72, .9); }
.rodape__topo { top: 0; -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 22%, #000 80%, transparent); mask-image: linear-gradient(to bottom, transparent 0, #000 22%, #000 80%, transparent); }
.rodape__base-img { bottom: 0; -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 30%); mask-image: linear-gradient(to bottom, transparent 0, #000 30%); }
.rodape__fundo { background: linear-gradient(to bottom, transparent 0, transparent 9vw, #013F6B 13vw); }
.rodape__grade { display: grid; grid-template-columns: 1.43fr 1fr 1.47fr 1.45fr; }
.rodape__col { padding: 4px 0 4px 56px; border-left: 1px solid rgba(255, 255, 255, .3); }
.rodape__col:first-child { padding-left: 0; border-left: 0; }
.rodape__marca .marca__simbolo { width: 66px; }
.rodape__marca .marca__nome { font-size: 46px; }
.rodape__marca p { margin-top: 22px; font-size: 22px; line-height: 1.4; color: rgba(255, 255, 255, .92); }
.rodape__marca .rodape__dominio { margin-top: 20px; font-size: 23px; font-weight: 700; color: #fff; }
.rodape__tit { font-size: 24px; font-weight: 700; margin-bottom: 14px; line-height: 1.3; }
.rodape__col ul { display: grid; gap: 2px; }
.rodape__col ul a { display: inline-flex; align-items: center; min-height: 42px; font-size: 22px; color: rgba(255, 255, 255, .92); text-decoration: none; }
.rodape__col ul a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.rodape__msg { font-size: clamp(26px, 2.9vw, 42px); line-height: 1.08; font-weight: 760; letter-spacing: -.012em; align-self: center; }
.rodape__base { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 56px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .35); font-size: 19px; color: rgba(255, 255, 255, .9); }

/* ---------- entradas e cenas ---------- */
/* hero: entrada só com CSS (não depende do JS, sem piscar) */
.entra { animation: entra var(--t-entra) var(--curva) both; }
.entra:nth-child(2) { animation-delay: 90ms; }
.entra:nth-child(3) { animation-delay: 180ms; }
.entra:nth-child(4) { animation-delay: 270ms; }
@keyframes entra { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.hero__no .ponto, .hero__no .ponto-halo { opacity: 0; }
@media (max-width: 1023.98px) { .hero__no { display: none; } }
.hero__no.anda .ponto, .hero__no.anda .ponto-halo { animation: ponto 2400ms ease-in-out 700ms both; }
@keyframes ponto { 0% { opacity: 0; } 12% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } }

.js .fluxo .fio { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js .fluxo .fita, .js .fluxo .orig, .js .fluxo .fluxo__nucleo, .js .fluxo .destino, .js .fluxo .saida-fita { opacity: 0; }
.js .fluxo .saida { stroke-dasharray: 1; stroke-dashoffset: 1; }
.js [data-cena].ativa .fluxo .orig { opacity: 1; transition: opacity 400ms ease; }
.js [data-cena].ativa .fluxo .fita { opacity: 1; transition: opacity 700ms ease 150ms; }
.js [data-cena].ativa .fluxo .fio { stroke-dashoffset: 0; transition: stroke-dashoffset 700ms var(--curva) 200ms; }
.js [data-cena].ativa .fluxo .o2 { transition-delay: 300ms; }
.js [data-cena].ativa .fluxo .o3 { transition-delay: 400ms; }
.js [data-cena].ativa .fluxo .fluxo__nucleo { opacity: 1; transition: opacity 500ms ease 700ms; }
.js [data-cena].ativa .fluxo .saida { stroke-dashoffset: 0; transition: stroke-dashoffset 600ms var(--curva) 1100ms; }
.js [data-cena].ativa .fluxo .saida-fita { opacity: .35; transition: opacity 600ms ease 1200ms; }
.js [data-cena].ativa .fluxo .destino { opacity: 1; transition: opacity 400ms ease 1550ms; }

.js .demo .app { opacity: 0; transform: translateY(18px); }
.js .demo.ativa .app { opacity: 1; transform: none; transition: opacity 650ms var(--curva), transform 650ms var(--curva); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 1ms !important; transition-delay: 0s !important; animation-duration: 1ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important; }
  .entra { animation: none !important; }
  .hero__no { display: none; }
  .js .demo .app { opacity: 1 !important; transform: none !important; }
  .js .fluxo .fio, .js .fluxo .saida { stroke-dashoffset: 0 !important; }
  .js .fluxo .fita, .js .fluxo .orig, .js .fluxo .fluxo__nucleo, .js .fluxo .destino { opacity: 1 !important; }
  .js .fluxo .saida-fita { opacity: .35 !important; }
  .form__enviar[aria-busy="true"]::before { animation: none; }
}

/* hero entre 1024 e 1279: o bloco de texto sobe um pouco para não encostar na fita de baixo */
@media (min-width: 1024px) and (max-width: 1279.98px) { .hero__conteudo { padding-bottom: 130px; } }
.hero .link-sub { text-shadow: 0 0 14px rgba(255, 253, 248, .9); }

/* ---------- 1024 a 1439 ---------- */
@media (max-width: 1439.98px) {
  :root { --topo-h: 112px; }
  .marca__simbolo { width: 56px; }
  .marca__nome { font-size: 40px; }
  .menu__lista a { font-size: 18px; }
  .menu__cta { min-height: 54px; min-width: 0; font-size: 18px; }
  .rodape__col { padding-left: 40px; }
}
@media (max-width: 1199.98px) {
  :root { --f-ui: 17px; }
  .menu__lista { margin-left: 40px; gap: 32px; }
  .menu__lista a { font-size: 17px; }
  .menu__cta { padding: 0 26px; font-size: 17px; }
  .marca__simbolo { width: 50px; }
  .marca__nome { font-size: 36px; }
  .hero__acoes .bt, .plataforma .bt { min-width: 0; }
  .planos__grade { gap: 18px; }
  .plano { padding: 30px 26px 26px; }
  .corporativo { grid-template-columns: 190px minmax(0, 1fr) auto; padding-left: 36px; }
  .corporativo__nome { justify-self: stretch; }
  .corporativo .bt { min-width: 230px; }
  .rodape__col { padding-left: 28px; }
  .atributos li { padding: 6px 22px; }
  .app__lado { padding: 26px 12px; }
  .app__marca { padding: 0 8px 24px; font-size: 22px; }
  .app__marca svg { width: 30px; }
  .app__nav li { padding: 10px; gap: 10px; font-size: 14px; }
  .rodape__marca .marca__simbolo { width: 54px; }
  .rodape__marca .marca__nome { font-size: 38px; }
  .app__principal { padding: 22px 24px 28px; }
}

/* ---------- tablet e celular: menu recolhido ---------- */
@media (max-width: 1023.98px) {
  :root { --topo-h: 80px; }
  .topo__barra { padding-top: 0; }
  .marca__simbolo { width: 46px; }
  .marca__nome { font-size: 33px; }
  .menu-bt {
    display: grid; place-items: center; width: 48px; height: 48px; margin-right: -4px; border: 1px solid rgba(18, 59, 93, .12); border-radius: 12px;
    background: rgba(255, 255, 255, .7); color: var(--egeu); cursor: pointer;
  }
  .menu-bt__linhas, .menu-bt__linhas::before, .menu-bt__linhas::after { display: block; width: 22px; height: 2px; border-radius: 2px; background: currentColor; transition: transform var(--t-ui) ease, background-color var(--t-ui) ease; }
  .menu-bt__linhas { position: relative; }
  .menu-bt__linhas::before, .menu-bt__linhas::after { content: ""; position: absolute; left: 0; }
  .menu-bt__linhas::before { top: -7px; }
  .menu-bt__linhas::after { top: 7px; }
  .menu-bt[aria-expanded="true"] .menu-bt__linhas { background: transparent; }
  .menu-bt[aria-expanded="true"] .menu-bt__linhas::before { transform: translateY(7px) rotate(45deg); }
  .menu-bt[aria-expanded="true"] .menu-bt__linhas::after { transform: translateY(-7px) rotate(-45deg); }
  .menu {
    position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; gap: 8px;
    padding: 8px var(--margem) 28px; background: #FCF8F2; box-shadow: 0 24px 40px -24px rgba(18, 59, 93, .45);
    border-top: 1px solid rgba(18, 59, 93, .08);
    visibility: hidden; opacity: 0; transform: translateY(-8px); transition: opacity var(--t-ui) ease, transform var(--t-ui) ease, visibility 0s linear var(--t-ui);
  }
  .menu.aberto { visibility: visible; opacity: 1; transform: none; transition: opacity var(--t-ui) ease, transform var(--t-ui) ease; }
  .menu__lista { flex-direction: column; gap: 0; margin: 0; }
  .menu__lista a { display: flex; min-height: 56px; font-size: 19px; border-bottom: 1px solid rgba(18, 59, 93, .08); }
  .menu__lista a::after { display: none; }
  .menu__cta, .topo.rolou .menu__cta { margin-top: 16px; min-height: 54px; background: var(--egeu); color: #fff; border-color: var(--egeu); }
  .topo.menu-aberto { background: #FCF8F2; }
  .topo.rolou .topo__barra { height: 66px; }
  .topo.rolou .marca__simbolo { width: 40px; }
  .topo.rolou .marca__nome { font-size: 29px; }

  .hero { height: auto; min-height: 140vw; align-items: flex-start; }
  .hero__fundo img { object-position: 50% 0; }
  .hero__fundo { -webkit-mask-image: linear-gradient(to bottom, #000 84%, transparent); mask-image: linear-gradient(to bottom, #000 84%, transparent); }
  .hero__conteudo { padding-top: calc(var(--topo-h) + 64px); padding-bottom: 0; }
  .rodape__base-img { bottom: 70px; -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 30%, #000 70%, transparent); mask-image: linear-gradient(to bottom, transparent 0, #000 30%, #000 70%, transparent); }
  .rodape__base { margin-top: 150px; }
  .hero__texto { max-width: 30em; }

  .solucao { padding: 48px 0 88px; }
  .solucao__grade { grid-template-columns: 1fr; grid-template-areas: "rot" "txt" "ilu"; row-gap: 26px; }
  .solucao__texto { padding-top: 0; }
  .solucao__ilustra { margin: 20px auto 0; width: 100%; max-width: 600px; }

  .plataforma { padding: 120px 0 120px; }
  .plataforma__grade { grid-template-columns: 1fr; gap: 56px; }
  .plataforma__p { max-width: 30em; }

  .planos__grade { grid-template-columns: 1fr; max-width: 560px; margin-inline: auto; }
  .corporativo { grid-template-columns: 1fr; justify-items: start; gap: 14px; max-width: 560px; margin-inline: auto; padding: 28px; }
  .corporativo__nome { border-right: 0; padding-right: 0; }
  .corporativo .bt { justify-self: stretch; }
  .inclui { max-width: 560px; margin-inline: auto; text-align: left; }
  .inclui__lista { grid-template-columns: 1fr; justify-content: start; gap: 10px; }

  .contato { padding: 104px 0 36px; }
  .contato__grade { grid-template-columns: 1fr; gap: 40px; }
  .form { margin-top: 0; }

  .rodape__grade { grid-template-columns: 1fr 1fr; row-gap: 44px; }
  .rodape__col:nth-child(odd) { padding-left: 0; border-left: 0; }
  .rodape__msg { align-self: start; }
}

/* ---------- celular ---------- */
@media (max-width: 767.98px) {
  :root { --topo-h: 72px; --f-h2: clamp(28px, 2.4vw + 19px, 34px); --f-corpo: 17px; }
  body { font-size: 17px; }
  .marca { gap: 10px; }
  .marca__simbolo { width: 40px; }
  .marca__nome { font-size: 29px; }
  .rotulo { gap: 12px; font-size: 14px; letter-spacing: .12em; }
  .rotulo::before { width: 26px; }
  .hero .rotulo { letter-spacing: .08em; gap: 10px; align-items: flex-start; line-height: 1.35; }
  .hero .rotulo::before { width: 20px; margin-top: .62em; }
  .hero { min-height: 0; }
  .hero__fundo { -webkit-mask-image: none; mask-image: none; }
  .hero__fundo img { object-position: 50% 100%; }
  .hero__conteudo { padding-top: calc(var(--topo-h) + 36px); padding-bottom: min(108vw, 520px); }
  .hero .rotulo { margin-bottom: 22px; }
  .hero__titulo { font-size: clamp(34px, 5.4vw + 15px, 42px); line-height: 1.1; }
  .hero__texto { margin-top: 18px; }
  .hero__acoes { margin-top: 30px; gap: 12px 28px; }
  .hero__acoes .bt { min-width: 0; }

  .solucao { padding: 24px 0 72px; }
  .solucao__p { margin-top: 18px; }
  .solucao__ilustra { margin: 6px -6px 0; width: auto; }
  .atributos { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; margin-top: 30px; }
  .atributos li { flex-direction: column; align-items: flex-start; gap: 8px; padding: 2px 18px; font-size: 16px; }
  .atributos svg { width: 28px; height: 28px; }

  .plataforma { padding: 92px 0 104px; }
  .plataforma .rotulo { margin-bottom: 24px; }
  .plataforma__p { margin-top: 18px; }
  .plataforma .bt { width: 100%; margin-top: 30px; }
  .plataforma__grade { gap: 40px; }
  .app { grid-template-columns: 1fr; border-radius: 18px; font-size: 15px; }
  .app__lado { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px 12px 16px; border-right: 0; border-bottom: 1px solid rgba(18, 59, 93, .08); }
  .app__marca { padding: 0; font-size: 21px; gap: 7px; }
  .app__marca svg { width: 28px; }
  .app__nav { display: flex; gap: 2px; }
  .app__nav li { padding: 9px; font-size: 0; gap: 0; }
  .app__nav li:nth-child(n + 4) { display: none; }
  .app__principal { padding: 16px 16px 20px; }
  .app__barra { padding-bottom: 14px; gap: 12px; }
  .app__secao { font-size: 16.5px; }
  .app__cab { padding: 18px 0 16px; gap: 14px; }
  .app__doc { width: 46px; height: 46px; border-radius: 12px; }
  .app__titulo { font-size: 19px; }
  .app__itens { gap: 12px; }
  .app__item { padding: 15px 16px; grid-template-columns: 26px 1fr; }
  .app__item-t { font-size: 16px; }
  .demo__legenda { font-size: 15px; }

  .planos { padding: 32px 0 80px; }
  .planos__titulo { text-align: left; font-size: var(--f-h2); }
  .seletor { margin: 26px 0 0; width: 100%; max-width: 380px; }
  .planos__grade { margin-top: 28px; gap: 16px; }
  .plano { padding: 28px 24px 24px; }
  .plano__lista { font-size: 17px; }
  .corporativo { padding: 26px 24px; }
  .planos__nota { text-align: left; font-size: 15px; }
  .planos__sub { text-align: left; margin-inline: 0; }
  .inclui { text-align: left; }
  .inclui__lista { grid-template-columns: 1fr; justify-content: start; gap: 10px; font-size: 17px; }
  .planos__nota { margin-inline: 0; }

  .contato { padding: 96px 0 24px; }
  .contato__fundo { background-size: 170% auto; background-position: 100% 0; }
  .contato .rotulo { margin-bottom: 24px; }
  .contato__titulo { font-size: clamp(34px, 3vw + 23px, 40px); }
  .contato__p { margin-top: 20px; }
  .contato__email { margin-top: 16px; }
  .form { padding: 24px 18px 22px; gap: 18px; border-radius: 18px; }
  .form__linha { grid-template-columns: 1fr; gap: 18px; }

  .rodape { padding-top: calc(40vw + 8px); }
  .rodape__fundo { background: linear-gradient(to bottom, transparent 0, transparent 20vw, #013F6B 30vw); }
  .rodape__grade { grid-template-columns: 1fr 1fr; row-gap: 36px; }
  .rodape__marca, .rodape__msg { grid-column: 1 / -1; }
  .rodape__col { padding-left: 0; border-left: 0; }
  .rodape__col:nth-child(3) { padding-left: 24px; border-left: 1px solid rgba(255, 255, 255, .3); }
  .rodape__marca .marca__simbolo { width: 48px; }
  .rodape__marca .marca__nome { font-size: 34px; }
  .rodape__marca p { font-size: 17px; margin-top: 16px; }
  .rodape__tit { font-size: 19px; }
  .rodape__col ul a { font-size: 17px; min-height: 44px; }
  .rodape__msg { font-size: 30px; }
  .rodape__base { margin-top: 44px; flex-direction: column; gap: 6px; font-size: 15px; }
  .rodape { padding-bottom: 30px; }
  .rodape__base-img img { height: auto; }
  .rodape__base { margin-top: 150px; }
  .rodape__base-img { bottom: 84px; }
}
@media (max-width: 374.98px) {
  .hero__acoes .bt { width: 100%; }
  .atributos li { padding: 2px 13px; font-size: 15px; }
  .rodape__col:nth-child(3) { padding-left: 18px; }
  .marca__nome { font-size: 27px; }
  .marca__simbolo { width: 37px; }
  .plano__cobranca { font-size: 15.5px; }
}

/* ---------- 404 ---------- */
.erro404 { min-height: 100vh; display: grid; align-content: center; justify-items: start; gap: 22px; }

/* ---------- rodapé: links legais ---------- */
.rodape__legal { display: flex; gap: 28px; }
.rodape__legal a { display: inline-flex; align-items: center; min-height: 44px; margin-block: -12px; color: rgba(255, 255, 255, .9); text-decoration: none; }
.rodape__legal a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.rodape__base { align-items: center; }
@media (max-width: 767.98px) { .rodape__base { align-items: flex-start; } .rodape__legal { order: 3; margin-block: 0; } .rodape__legal a { margin-block: 0; } }

/* ---------- páginas legais ---------- */
.pagina-legal { background: var(--fundo); }
.legal-topo { border-bottom: 1px solid rgba(18, 59, 93, .08); background: rgba(252, 248, 242, .96); }
.legal-topo__barra { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 96px; }
.pagina-legal .marca__simbolo { width: 54px; }
.pagina-legal .marca__nome { font-size: 38px; }
.link-volta { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 1.5px solid rgba(18, 59, 93, .35); color: var(--egeu); font-size: 17px; font-weight: 700; text-decoration: none; transition: background-color var(--t-ui) ease, color var(--t-ui) ease; }
.link-volta:hover { background: var(--egeu); color: #fff; }
.link-volta svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.legal { padding: 72px 0 120px; }
.legal__texto { max-width: 70ch; margin-inline: auto; font-size: 18px; line-height: 1.75; color: var(--texto); overflow-wrap: break-word; }
.legal__titulo { font-size: clamp(36px, 3vw + 18px, 56px); line-height: 1.08; font-weight: 780; letter-spacing: -.015em; color: var(--egeu); }
.legal__versao { margin-top: 14px; font-size: 15.5px; color: #586B7E; }
.legal__texto h2 { margin-top: 52px; font-size: clamp(22px, .8vw + 17px, 28px); line-height: 1.25; font-weight: 760; color: var(--egeu); scroll-margin-top: 24px; }
.legal__texto p { margin-top: 16px; }
.legal__texto ul { margin-top: 14px; padding-left: 1.3em; list-style: disc; }
.legal__texto li { margin-top: 8px; }
.legal__texto li::marker { color: var(--terra); }
.legal__texto a { color: var(--med-texto); font-weight: 600; text-underline-offset: 3px; }
.legal__texto strong { color: var(--egeu); font-weight: 700; }
.legal__indice { margin-top: 32px; padding: 22px 26px; border-radius: 16px; background: rgba(255, 255, 255, .7); border: 1px solid rgba(201, 160, 130, .28); font-size: 16.5px; }
.legal__indice p { margin: 0 0 8px; }
.legal__indice ol { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 28px; }
.legal__indice li { margin: 0; break-inside: avoid; }
.legal__indice a { display: inline-block; padding: 4px 0; font-weight: 500; text-decoration: none; }
.legal__indice a:hover { text-decoration: underline; }
.legal__tabela { margin-top: 18px; overflow-x: auto; border-radius: 12px; border: 1px solid rgba(18, 59, 93, .12); background: rgba(255, 255, 255, .7); }
.legal__tabela table { width: 100%; border-collapse: collapse; font-size: 16px; line-height: 1.5; }
.legal__tabela th, .legal__tabela td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(18, 59, 93, .1); }
.legal__tabela th { color: var(--egeu); font-weight: 700; background: rgba(243, 235, 221, .6); }
.legal__tabela tr:last-child td { border-bottom: 0; }
@media (max-width: 767.98px) {
  .legal-topo__barra { min-height: 76px; }
  .pagina-legal .marca__simbolo { width: 40px; }
  .pagina-legal .marca__nome { font-size: 29px; }
  .link-volta { padding: 0 16px; font-size: 15.5px; }
  .legal { padding: 44px 0 96px; }
  .legal__texto { font-size: 17px; line-height: 1.7; }
  .legal__texto h2 { margin-top: 40px; }
  .legal__indice { padding: 18px 18px; }
  .legal__indice ol { columns: 1; }
  .legal__indice a { padding: 8px 0; margin: -4px 0; } /* alvo de toque de 44 px sem mudar o espaçamento visível */
  .legal__tabela table { font-size: 15px; }
  .legal__tabela th, .legal__tabela td { padding: 10px 12px; }
}
@media (max-width: 374.98px) { .link-volta { padding: 0 12px; } }
