/* Talvix — página institucional (marca nova: TAL + VI + X = pessoas + visão + tecnologia) */

:root {
  --tv-fundo: #F5F7FC;
  --tv-superficie: #FFFFFF;
  --tv-texto: #10162B;
  --tv-texto-suave: #5B6478;
  --tv-indigo: #0B1E3D;
  --tv-indigo-escuro: #060F20;
  --tv-azul: #0B57F5;
  --tv-ciano: #12C990;
  --tv-linha: #E3E7F3;
  --tv-gradiente: linear-gradient(135deg, #0B57F5 0%, #12C990 100%);
  --tv-raio: 14px;
  --tv-raio-pequeno: 8px;
  --tv-fonte: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
  --tv-fonte-marca: "Nunito", "Manrope", system-ui, sans-serif;
  --tv-sombra: 0 20px 45px -20px rgba(15, 22, 60, 0.28);
}

* { box-sizing: border-box; min-width: 0; }
html { scroll-behavior: smooth; }
html, body { overflow-x: hidden; max-width: 100%; }
body {
  margin: 0; font-family: var(--tv-fonte); color: var(--tv-texto); background: var(--tv-fundo);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--tv-fonte-marca); font-weight: 800; line-height: 1.15; margin: 0 0 0.6rem; color: var(--tv-indigo); }
p { margin: 0 0 1rem; color: var(--tv-texto-suave); line-height: 1.6; }
.tv-faixa { max-width: 1180px; margin: 0 auto; padding: 0 1.5rem; }

/* ---------- marca ---------- */
.tv-marca { display: flex; align-items: center; }
.tv-marca-nome-img { height: 26px; width: auto; display: block; }

/* ---------- botões ---------- */
.tv-btn {
  display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.65rem 1.15rem;
  border-radius: 999px; font-weight: 700; font-size: 0.92rem; border: 1px solid transparent;
  white-space: nowrap; cursor: pointer; transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}
.tv-btn:hover { transform: translateY(-1px); }
.tv-btn-grande { padding: 0.85rem 1.6rem; font-size: 1rem; }
.tv-btn-primario { background: var(--tv-indigo); color: #fff; }
.tv-btn-primario:hover { background: var(--tv-indigo-escuro); }
.tv-btn-acento { background: var(--tv-gradiente); color: #fff; box-shadow: 0 12px 24px -10px rgba(61, 90, 254, 0.55); }
.tv-btn-fantasma { background: rgba(61, 90, 254, 0.08); color: var(--tv-indigo); }
.tv-btn-fantasma:hover { background: rgba(61, 90, 254, 0.16); }
.tv-btn-contorno { border-color: var(--tv-linha); color: var(--tv-indigo); background: #fff; }
.tv-btn-contorno:hover { border-color: var(--tv-azul); }
.tv-btn-contorno-claro { border-color: rgba(255, 255, 255, 0.35); color: #fff; }
.tv-btn-contorno-claro:hover { border-color: #fff; background: rgba(255, 255, 255, 0.08); }

/* ---------- cabeçalho ---------- */
.tv-cabecalho { position: sticky; top: 0; z-index: 40; background: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); border-bottom: 1px solid var(--tv-linha); }
.tv-cabecalho .tv-faixa { display: flex; align-items: center; gap: 1.5rem; padding-top: 0.85rem; padding-bottom: 0.85rem; }
.tv-nav { display: flex; gap: 1.5rem; margin-right: auto; margin-left: 2rem; }
.tv-nav a { font-weight: 600; color: var(--tv-texto-suave); font-size: 0.94rem; }
.tv-nav a:hover { color: var(--tv-indigo); }
.tv-cabecalho-acoes { display: flex; align-items: center; gap: 0.6rem; }
.tv-menu-mobile-botao { display: none; background: none; border: 0; font-size: 1.5rem; color: var(--tv-indigo); padding: 0.2rem 0.4rem; }
.tv-nav-mobile { display: grid; gap: 0.1rem; padding: 0.5rem 1.5rem 1rem; border-top: 1px solid var(--tv-linha); }
.tv-nav-mobile[hidden] { display: none; }
.tv-nav-mobile a { padding: 0.65rem 0.2rem; font-weight: 700; color: var(--tv-indigo); border-bottom: 1px solid var(--tv-linha); }
.tv-nav-mobile-entrar { color: var(--tv-azul) !important; }

/* ---------- hero ---------- */
.tv-hero { position: relative; background: radial-gradient(circle at 15% 0%, #1E2A66 0%, var(--tv-indigo-escuro) 55%); overflow: hidden; }
.tv-hero-fundo { position: absolute; inset: 0; display: flex; justify-content: flex-end; align-items: center; opacity: 0.18; pointer-events: none; }
.tv-hero-simbolo { width: 620px; max-width: 60vw; transform: translateX(18%); filter: saturate(1.3); }
.tv-hero-conteudo { position: relative; padding: 5.5rem 1.5rem 6rem; max-width: 760px; }
.tv-selo {
  display: inline-flex; align-items: center; gap: 0.45rem; color: #BFD0FF; background: rgba(61, 90, 254, 0.18);
  border: 1px solid rgba(124, 140, 255, 0.35); padding: 0.35rem 0.85rem; border-radius: 999px; font-size: 0.82rem; font-weight: 700; margin: 0 0 1.4rem;
}
.tv-hero h1 { color: #fff; font-size: clamp(2.1rem, 4.6vw, 3.2rem); margin-bottom: 1rem; }
.tv-hero-subtitulo { color: #C7D0EC; font-size: 1.1rem; max-width: 620px; }
.tv-hero-acoes { display: flex; flex-wrap: wrap; gap: 0.85rem; margin: 1.8rem 0 1rem; }
.tv-hero-telefone { color: #9FADD9; font-size: 0.9rem; margin: 0; }
.tv-hero-telefone a { color: #fff; font-weight: 700; }

/* ---------- seções gerais ---------- */
.tv-secao { padding: 4.5rem 0; }
.tv-secao-clara { background: var(--tv-superficie); }
.tv-eyebrow { color: var(--tv-azul); font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; font-size: 0.8rem; margin-bottom: 0.6rem; }
.tv-secao h2 { font-size: clamp(1.5rem, 3vw, 2rem); max-width: 640px; }
.tv-secao-intro { max-width: 680px; font-size: 1.02rem; }

/* ---------- fluxo (registrar > organizar > analisar > decidir) ---------- */
.tv-fluxo-passos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; margin-top: 2.25rem; }
.tv-fluxo-passo { background: var(--tv-superficie); border: 1px solid var(--tv-linha); border-radius: var(--tv-raio); padding: 1.5rem 1.3rem; position: relative; }
.tv-fluxo-numero { position: absolute; top: 1.1rem; right: 1.2rem; font-family: var(--tv-fonte-marca); font-weight: 800; font-size: 0.85rem; color: var(--tv-linha); }
.tv-fluxo-passo i { font-size: 1.6rem; color: var(--tv-azul); margin-bottom: 0.75rem; display: block; }
.tv-fluxo-passo h3 { font-size: 1.05rem; margin-bottom: 0.35rem; }
.tv-fluxo-passo p { font-size: 0.9rem; margin: 0; }

/* ---------- planos ---------- */
.tv-planos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.5rem; align-items: stretch; }
.tv-plano { background: var(--tv-superficie); border: 1px solid var(--tv-linha); border-radius: var(--tv-raio); padding: 1.9rem 1.6rem; display: flex; flex-direction: column; box-shadow: var(--tv-sombra); }
.tv-plano-destaque { border: 2px solid var(--tv-azul); position: relative; transform: translateY(-6px); }
.tv-plano-selo { position: absolute; top: -13px; left: 1.6rem; background: var(--tv-gradiente); color: #fff; font-size: 0.72rem; font-weight: 800; padding: 0.25rem 0.7rem; border-radius: 999px; letter-spacing: 0.04em; text-transform: uppercase; }
.tv-plano-icone { width: 46px; height: 46px; border-radius: 12px; background: rgba(61, 90, 254, 0.1); color: var(--tv-azul); display: grid; place-items: center; font-size: 1.35rem; margin-bottom: 1.1rem; }
.tv-plano h3 { font-size: 1.2rem; margin-bottom: 0.4rem; }
.tv-plano-descricao { font-size: 0.92rem; min-height: 3.2rem; }
.tv-plano-itens { list-style: none; margin: 0.5rem 0 1.5rem; padding: 0; display: grid; gap: 0.55rem; flex: 1; }
.tv-plano-itens li { display: flex; gap: 0.55rem; font-size: 0.9rem; color: var(--tv-texto); align-items: flex-start; }
.tv-plano-itens i { color: var(--tv-azul); margin-top: 0.15rem; flex-shrink: 0; }
.tv-plano .tv-btn { justify-content: center; width: 100%; }
.tv-planos-rodape { text-align: center; margin-top: 2rem; font-size: 0.92rem; }
.tv-planos-rodape a { color: var(--tv-azul); font-weight: 700; }

/* ---------- diferenciais ---------- */
.tv-diferenciais { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2.25rem; }
.tv-diferencial { display: flex; gap: 0.9rem; }
.tv-diferencial-icone { width: 42px; height: 42px; border-radius: 11px; background: rgba(34, 211, 238, 0.14); color: #0E8FA8; display: grid; place-items: center; font-size: 1.15rem; flex-shrink: 0; }
.tv-diferencial h3 { font-size: 1rem; margin-bottom: 0.25rem; }
.tv-diferencial p { font-size: 0.88rem; margin: 0; }

/* ---------- CTA final ---------- */
.tv-cta { background: linear-gradient(135deg, var(--tv-indigo) 0%, #14205C 60%, #0A0F26 100%); padding: 4.5rem 0; text-align: center; }
.tv-cta-conteudo { max-width: 640px; }
.tv-cta h2 { color: #fff; }
.tv-cta p { color: #C7D0EC; font-size: 1.05rem; }
.tv-cta-acoes { display: flex; justify-content: center; flex-wrap: wrap; gap: 0.85rem; margin: 1.75rem 0 1.5rem; }
.tv-cta-entrar { color: #BFD0FF; font-weight: 700; display: inline-flex; align-items: center; gap: 0.4rem; }
.tv-cta-entrar:hover { color: #fff; }

/* ---------- rodapé ---------- */
.tv-rodape { background: var(--tv-indigo-escuro); color: #9FADD9; padding: 3rem 0 1.5rem; }
.tv-rodape-grade { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
.tv-rodape h4 { color: #fff; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 0.75rem; }
.tv-rodape p { color: #9FADD9; margin: 0 0 0.5rem; font-size: 0.92rem; }
.tv-rodape a:hover { color: #fff; }
.tv-rodape-slogan { margin-top: 0.6rem; font-size: 0.88rem; }
.tv-rodape-base { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; padding-top: 1.25rem; font-size: 0.8rem; }
.tv-rodape-base p { margin: 0; color: #6E7AA3; }

.tv-esconde-mobile { display: inline; }

@media (max-width: 980px) {
  .tv-planos { grid-template-columns: 1fr; }
  .tv-plano-destaque { transform: none; }
  .tv-diferenciais { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tv-fluxo-passos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .tv-nav { display: none; }
  .tv-menu-mobile-botao { display: block; }
  .tv-cabecalho-acoes { display: none; }
  .tv-hero-conteudo { padding: 3.5rem 1.5rem 4rem; }
  .tv-diferenciais { grid-template-columns: 1fr; }
  .tv-fluxo-passos { grid-template-columns: 1fr; }
  .tv-rodape-grade { grid-template-columns: 1fr; }
  .tv-hero-simbolo { opacity: 0.5; width: 320px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .tv-btn { transition: none; }
}

/* ---------- páginas de conteúdo legal (Termos de Uso / Privacidade) ---------- */
.tv-legal { max-width: 760px; margin: 0 auto; padding: 3rem 1.5rem 5rem; }
.tv-legal-voltar { font-size: 0.88rem; font-weight: 700; color: var(--tv-azul); display: inline-flex; align-items: center; gap: 0.35rem; margin-bottom: 1.5rem; }
.tv-legal h1 { font-size: clamp(1.5rem, 3.4vw, 2rem); margin-bottom: 0.3rem; }
.tv-legal-meta { color: var(--tv-texto-suave); font-size: 0.88rem; margin-bottom: 2rem; }
.tv-legal-indice { background: var(--tv-fundo); border: 1px solid var(--tv-linha); border-radius: var(--tv-raio); padding: 1.1rem 1.4rem 1.3rem; margin-bottom: 2.25rem; }
.tv-legal-indice p { margin: 0 0 0.5rem; font-weight: 700; color: var(--tv-indigo); font-size: 0.88rem; text-transform: uppercase; letter-spacing: 0.04em; }
.tv-legal-indice ol { margin: 0; padding-left: 1.2rem; columns: 2; column-gap: 1.5rem; }
.tv-legal-indice li { font-size: 0.88rem; margin-bottom: 0.3rem; break-inside: avoid; }
.tv-legal-indice a { color: var(--tv-texto); }
.tv-legal-indice a:hover { color: var(--tv-azul); }
.tv-legal h2 { font-size: 1.15rem; margin-top: 2.25rem; margin-bottom: 0.6rem; color: var(--tv-indigo); scroll-margin-top: 5rem; }
.tv-legal h3 { font-size: 1rem; margin-top: 1.3rem; margin-bottom: 0.4rem; color: var(--tv-texto); }
.tv-legal p, .tv-legal li { color: var(--tv-texto); font-size: 0.96rem; line-height: 1.7; }
.tv-legal p { margin: 0 0 1rem; }
.tv-legal ul, .tv-legal ol.tv-legal-lista { padding-left: 1.3rem; margin: 0 0 1rem; }
.tv-legal li { margin-bottom: 0.4rem; }
.tv-legal strong { color: var(--tv-indigo); }
.tv-legal .pendente { background: #FFF3B0; color: #6B4E00; padding: 0.05rem 0.4rem; border-radius: 4px; font-weight: 700; }
.tv-legal-contato { background: var(--tv-fundo); border-left: 3px solid var(--tv-azul); border-radius: 0 var(--tv-raio-pequeno) var(--tv-raio-pequeno) 0; padding: 1rem 1.3rem; margin-top: 1rem; }
