/* ============================================================
   Genius Technology — folha de estilo compartilhada
   Uma só para todas as páginas. Antes o CSS vivia dentro do
   index.html; com o site em várias páginas, inline significaria
   seis cópias divergindo entre si.
   ============================================================ */


/* ─────────────────────────────────────────────
   RESET
   Remove margens e paddings padrão do navegador
   ───────────────────────────────────────────── */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}


/* ─────────────────────────────────────────────
   VARIÁVEIS GLOBAIS
   Altere aqui para mudar cores e velocidades
   em todo o site de uma vez
   ───────────────────────────────────────────── */
:root {
  /* Fundos — do mais escuro ao mais claro */
  --bg:    #020B18;
  --bg2:   #031023;
  --bg3:   #051731;
  --bg4:   #0C274D;

  /* Azul aço — cor de destaque da marca Genius */
  --blue:      #DA6F10;
  --blue2:     #BE5F0A;
  --blue-glow: rgba(218, 111, 16, 0.10);
  --blue-line: rgba(218, 111, 16, 0.22);

  /* Textos */
  --white:  #F2F1EC;  /* texto principal */
  --white2: #C9C7BA;  /* texto secundário */
  --muted:  #A4A08E;  /* texto de apoio */

  /* Bordas */
  --border:   rgba(242, 241, 236, 0.075);
  --border-h: rgba(218, 111, 16, 0.30);

  /* Utilitários */
  --r:  10px; /* raio de borda padrão */
  --r2: 16px; /* raio de borda maior (cards grandes) */
  --t:  0.3s cubic-bezier(0.4, 0, 0.2, 1); /* transição padrão */
}


/* ─────────────────────────────────────────────
   BASE
   Estilos globais do documento
   ───────────────────────────────────────────── */
html {
  scroll-behavior: smooth; /* rolagem suave ao clicar em âncoras */
  /* A barra do topo é fixa: sem esta folga, uma âncora para com o cabeçalho
     da seção escondido atrás dela. Vale para links vindos de outra página
     (/#procura) e para os do próprio menu. */
  scroll-padding-top: 110px;
}

body {
  font-family: 'Inter', system-ui, sans-serif;
  background: var(--bg); /* cor base sólida — fica atrás do canvas */
  color: var(--white);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  line-height: 1.65;
}

a  { color: inherit; text-decoration: none; }
ul { list-style: none; }


/* ─────────────────────────────────────────────
   ACESSIBILIDADE
   Link invisível para pular direto ao conteúdo
   (aparece apenas ao navegar com teclado)
   ───────────────────────────────────────────── */
.skip-link {
  position: absolute;
  top: -100%;
  left: 16px;
  background: var(--blue);
  color: #fff;
  padding: 8px 16px;
  border-radius: 6px;
  z-index: 9999;
  font-size: 0.85rem;
  font-weight: 600;
}
.skip-link:focus { top: 16px; }

/* Destaque de foco visível para navegação por teclado */
*:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
  border-radius: 4px;
}
*:focus:not(:focus-visible) { outline: none; }


/* ─────────────────────────────────────────────
   CANVAS DE FUNDO — Rede de pontos interativa
   O canvas fica fixo atrás de tudo.
   O JS anima os pontos e reage ao mouse.
   Nav, main e footer ficam acima com z-index:1
   ───────────────────────────────────────────── */
#canvas-rede {
  position: fixed;
  inset: 0;
  pointer-events: none; /* não interfere nos cliques */
  z-index: 0;
}

nav, main, footer {
  position: relative;
  z-index: 1; /* garante que o conteúdo fique acima do canvas */
}


/* ─────────────────────────────────────────────
   NAVEGAÇÃO — Menu fixo no topo
   ───────────────────────────────────────────── */
nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1000;
  /* A borda existe desde sempre, transparente. Se ela só nascesse no
     .scrolled, a transição animaria a largura de 0 para 1px partindo da cor
     padrão — que é `currentColor`, o creme do texto — e piscava uma linha
     clara embaixo do cabeçalho a cada rolagem. */
  border-bottom: 1px solid transparent;
  /* Propriedades nomeadas em vez de `all`: `all` também animava o
     backdrop-filter, que borra a tela inteira enquanto interpola. */
  transition: background var(--t), border-color var(--t);
}

/* Fundo fosco aparece ao rolar a página */
/* O fundo vai na <nav>, que é fixa de ponta a ponta — antes ele estava no
   .nav-inner, que tem max-width de 1200px, e a faixa escura parava no meio
   do caminho nas duas laterais. A cor vem do fundo da página; estava cravada
   como rgba(8,8,16), o quase-preto da paleta antiga. */
nav.scrolled {
  background: rgba(2, 11, 24, 0.9);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom-color: var(--border);
}

.nav-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: var(--t);
}

/* Logo */
.logo {
  display: flex;
  align-items: center;
  gap: 11px;
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.45rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--white);
}
.logo-mark        { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; }
.logo-mark svg    { width: 32px; height: 32px; }

/* Links do menu */
.nav-links        { display: flex; align-items: center; gap: 34px; }
.nav-links a      { font-size: 0.78rem; font-weight: 500; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); transition: color var(--t); }
.nav-links a:hover{ color: var(--white); }

/* Botão de destaque no menu */
.btn-nav       { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; padding: 10px 22px; border-radius: var(--r); border: 1px solid var(--blue-line); color: var(--blue); transition: background var(--t), color var(--t); }
.btn-nav:hover { background: var(--blue); color: #fff; }

/* Ícone hambúrguer — visível apenas no mobile */
.hamburger      { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; }
.hamburger span { display: block; width: 22px; height: 1px; background: var(--white); transition: var(--t); }

/* Menu mobile — ocupa a tela inteira */
.mob-menu       { display: none; position: fixed; inset: 0; z-index: 999; background: var(--bg); padding: 110px 40px 48px; flex-direction: column; gap: 30px; }
.mob-menu.open  { display: flex; }
.mob-menu a     { font-family: 'Cormorant Garamond', serif; font-size: 2rem; font-weight: 600; color: var(--white); letter-spacing: 0.04em; }


/* ─────────────────────────────────────────────
   HERO — Primeira tela do site
   Grid de duas colunas: texto à esquerda, card à direita
   ───────────────────────────────────────────── */
#hero {
  min-height: 100svh;
  display: flex;
  align-items: center;
  position: relative;
  background: transparent; /* sem fundo — canvas aparece atrás */
  padding-top: 90px;
}

.hero-wrap {
  /* `width: 100%` é o que mantém o hero alinhado com a logo do topo: sem
     ele, o wrap encolhe até o conteúdo e o `margin: 0 auto` o centraliza,
     jogando o título uns 130px pra dentro. */
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px;
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 720px);
  align-items: center;
}

/* Label pequena acima do título */
.hero-eyebrow {
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.hero-eyebrow::before {
  content: '';
  width: 28px;
  height: 1px;
  background: var(--muted);
}

/* Título principal */
h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 6.5vw, 5.5rem); /* responsivo: menor em mobile, maior em desktop */
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1.02;
  margin-bottom: 26px;
}
.h1-italico { font-style: italic; color: var(--white2); }

/* Descrição abaixo do título */
.hero-desc    { font-size: 0.95rem; color: var(--muted); max-width: 420px; line-height: 1.9; margin-bottom: 42px; }
.hero-desc em { font-style: normal; color: var(--white2); } /* destaque inline */

/* Botões de ação */
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; }

.btn-primario       { display: inline-flex; align-items: center; gap: 9px; background: var(--white); color: var(--bg); padding: 14px 28px; border-radius: var(--r); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.05em; text-transform: uppercase; border: none; cursor: pointer; transition: background var(--t), transform var(--t), box-shadow var(--t); }
.btn-primario:hover { background: var(--blue); color: #fff; transform: translateY(-2px); box-shadow: 0 8px 36px var(--blue-glow); }

.btn-secundario       { display: inline-flex; align-items: center; gap: 9px; background: transparent; color: var(--muted); padding: 14px 28px; border-radius: var(--r); font-size: 0.8rem; letter-spacing: 0.05em; text-transform: uppercase; border: 1px solid var(--border); transition: border-color var(--t), color var(--t); cursor: pointer; }
.btn-secundario:hover { border-color: var(--border-h); color: var(--white); }

/* Estatísticas abaixo dos botões */
.hero-stats       { display: flex; gap: 48px; margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--border); }
.hero-stat strong { display: block; font-family: 'Inter', sans-serif; font-size: 2rem; font-weight: 700; line-height: 1; letter-spacing: -0.03em; }
.hero-stat span   { font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-top: 5px; display: block; }
.hero-sla         { font-size: 0.82rem; color: var(--muted); margin-top: 20px; max-width: 48ch; }

/* ─────────────────────────────────────────────
   MARQUEE — Faixa de serviços rolando
   Duplicamos o conteúdo no HTML para criar
   o efeito de loop contínuo sem saltar
   ───────────────────────────────────────────── */
.marquee-wrap  { padding: 26px 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); overflow: hidden; position: relative; }
.marquee-track { display: flex; gap: 52px; width: max-content; animation: marquee-animar 28s linear infinite; }
.marquee-track:hover { animation-play-state: paused; } /* pausa ao passar o mouse */

@keyframes marquee-animar {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); } /* move metade → o conteúdo duplicado cria o loop */
}

.marquee-item       { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); white-space: nowrap; display: flex; align-items: center; gap: 14px; transition: color var(--t); cursor: default; }
.marquee-item:hover { color: var(--white); }
.marquee-ponto      { width: 3px; height: 3px; border-radius: 50%; background: var(--blue); opacity: 0.5; }

/* Degradê nas bordas para suavizar a entrada/saída dos itens */
.marquee-fade       { position: absolute; top: 0; bottom: 0; width: 80px; pointer-events: none; z-index: 1; }
.marquee-fade.esq   { left: 0;  background: linear-gradient(to right, var(--bg), transparent); }
.marquee-fade.dir   { right: 0; background: linear-gradient(to left,  var(--bg), transparent); }


/* ─────────────────────────────────────────────
   SEÇÕES — Estrutura comum a todas as seções
   ───────────────────────────────────────────── */
.secao   { padding: 120px 0; position: relative; z-index: 1; }
.cont    { max-width: 1200px; margin: 0 auto; padding: 0 40px; } /* container centralizado */

/* Cabeçalho padrão de seção */
.sec-label              { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--blue); margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }
.sec-label::before      { content: ''; width: 20px; height: 1px; background: var(--blue); opacity: 0.6; }
.sec-titulo             { font-family: 'Cormorant Garamond', serif; font-size: clamp(2rem, 4vw, 3.5rem); font-weight: 600; letter-spacing: -0.01em; line-height: 1.08; margin-bottom: 18px; }
.sec-subtitulo          { font-size: 0.88rem; color: var(--muted); max-width: 480px; line-height: 1.9; }
.sec-cabecalho          { margin-bottom: 60px; }


/* ─────────────────────────────────────────────
   SERVIÇOS — Grid de 4 cards clicáveis
   Ao clicar, abre um overlay com mais detalhes
   ───────────────────────────────────────────── */
/* Seções com fundo semi-transparente para deixar o canvas aparecer */
#servicos  { background: rgba(3, 16, 35, 0.72); }
#filosofia { background: rgba(2, 11, 24, 0.64); }
#showcase  { background: rgba(3, 16, 35, 0.72); }
#midia     { background: rgba(2, 11, 24, 0.64); }
#contato   { background: rgba(3, 16, 35, 0.72); }

/* Índice de serviços — linhas, não cartões: lê como sumário, e cada
   linha cabe inteira numa olhada. */
.srv-grid { border-top: 1px solid var(--border); }

/* A classe segue .srv-card porque é nela que o script liga o clique,
   o teclado e o overlay de detalhe. */
.srv-card {
  display: grid;
  grid-template-columns: 42px minmax(200px, 1fr) minmax(0, 1.5fr) auto;
  align-items: baseline;
  gap: 24px;
  padding: 26px 14px 26px 4px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  position: relative;
  transition: background var(--t), padding-left var(--t);
}
.srv-card::after { content: ''; position: absolute; left: 0; top: 0; bottom: -1px; width: 2px; background: var(--blue); opacity: 0; transition: opacity var(--t); }
.srv-card:hover, .srv-card:focus-visible { background: rgba(5, 23, 49, 0.7); padding-left: 16px; outline: none; }
.srv-card:hover::after, .srv-card:focus-visible::after { opacity: 1; }

/* Número do serviço (I, II, III...) em Cormorant itálico */
.srv-numero              { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 600; font-style: italic; color: var(--blue); opacity: 0.5; transition: opacity var(--t); }
.srv-card:hover .srv-numero { opacity: 1; }

.srv-card h3    { font-size: 0.86rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--white); }
.srv-card p     { font-size: 0.82rem; color: var(--muted); line-height: 1.75; }

/* Link "Ver detalhes →" */
.srv-mais              { display: inline-flex; align-items: center; gap: 6px; font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; transition: color var(--t), gap var(--t); }
.srv-card:hover .srv-mais { color: var(--blue); gap: 10px; }

/* Estreito: o índice vira pilha, sem colunas. */
@media (max-width: 860px) {
  .srv-card { grid-template-columns: 34px 1fr; gap: 8px 18px; }
  .srv-card p, .srv-mais { grid-column: 2; }
  .srv-mais { margin-top: 6px; }
}


/* ─────────────────────────────────────────────
   PÁGINAS DE SERVIÇO
   Cada serviço tem página própria desde 2026-08-29.
   Antes isto era um overlay que abria por cima da home —
   o que impedia link direto, busca e compartilhamento.
   ───────────────────────────────────────────── */

/* Topo da página de serviço: compacto, não ocupa a tela toda como o hero */
.pag-topo        { padding: 170px 0 70px; position: relative; z-index: 1; }
.pag-topo h1     { font-size: clamp(2.4rem, 5vw, 4rem); margin-bottom: 22px; }
.pag-desc        { font-size: 1rem; color: var(--white2); max-width: 60ch; line-height: 1.9; }
.pag-voltar      { display: inline-flex; align-items: center; gap: 8px; font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 26px; transition: color var(--t), gap var(--t); }
.pag-voltar:hover{ color: var(--blue); gap: 12px; }

/* O que a Genius entrega naquele serviço */
.entrega         { display: grid; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--r2); overflow: hidden; }
.entrega-item    { background: var(--bg3); padding: 26px 28px; }
.entrega-label   { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.entrega-valor   { font-size: 0.88rem; color: var(--white2); line-height: 1.85; }

/* Tecnologias e padrões */
.tags            { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.tag             { font-size: 0.68rem; letter-spacing: 0.06em; color: var(--muted); border: 1px solid var(--border); border-radius: 100px; padding: 7px 15px; }

/* Chamada no fim de cada página de serviço */
.fecho           { border-top: 1px solid var(--border); margin-top: 70px; padding-top: 50px; }
.fecho h2        { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.7rem, 3vw, 2.6rem); font-weight: 600; line-height: 1.12; margin-bottom: 16px; }
.fecho p         { font-size: 0.9rem; color: var(--muted); max-width: 52ch; line-height: 1.9; margin-bottom: 28px; }

/* ─────────────────────────────────────────────
   "O QUE VOCÊ PROCURA?" — a bifurcação da home
   Quatro portas do mesmo tamanho, de propósito: enquanto os
   serviços dividiam uma lista, um sempre parecia principal
   e o último, apêndice.
   ───────────────────────────────────────────── */
.portas          { border-top: 1px solid var(--border); }
.porta           { display: grid; grid-template-columns: 42px minmax(230px, 1fr) minmax(0, 1.35fr) auto;
                   align-items: baseline; gap: 26px; padding: 30px 14px 30px 4px;
                   border-bottom: 1px solid var(--border); position: relative;
                   transition: background var(--t), padding-left var(--t); }
.porta::after    { content: ''; position: absolute; left: 0; top: 0; bottom: -1px; width: 2px; background: var(--blue); opacity: 0; transition: opacity var(--t); }
.porta:hover, .porta:focus-visible { background: var(--bg2); padding-left: 16px; outline: none; }
.porta:hover::after, .porta:focus-visible::after { opacity: 1; }
.porta-num       { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; font-weight: 600; font-style: italic; color: var(--blue); opacity: 0.5; transition: opacity var(--t); }
.porta:hover .porta-num { opacity: 1; }
.porta-nome      { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--white); display: block; margin-bottom: 7px; }
.porta-quero     { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.15rem; color: var(--white2); line-height: 1.35; display: block; }
.porta-desc      { font-size: 0.83rem; color: var(--muted); line-height: 1.8; }
.porta-ir        { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; transition: color var(--t), gap var(--t); }
.porta:hover .porta-ir { color: var(--blue); gap: 11px; }

@media (max-width: 860px) {
  /* Estreito: a lista vira pilha, sem colunas */
  .porta { grid-template-columns: 34px 1fr; gap: 8px 18px; }
  .porta-desc, .porta-ir { grid-column: 2; }
  .porta-ir { margin-top: 6px; }
  .pag-topo { padding: 130px 0 50px; }
}

/* ─────────────────────────────────────────────
   FILOSOFIA — Citação + 4 princípios numerados
   Grid de duas colunas
   ───────────────────────────────────────────── */
/* (fundos das seções definidos no bloco acima) */

.filosofia-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: center; }

/* Coluna da esquerda */
.filosofia-citacao { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.5rem, 2.8vw, 2.2rem); font-weight: 400; font-style: italic; line-height: 1.4; color: var(--white2); border-left: 1px solid var(--blue); padding-left: 28px; margin-bottom: 28px; opacity: 0.75; }
.filosofia-attr    { font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--muted); }
.filosofia-corpo   { font-size: 0.85rem; color: var(--muted); line-height: 1.9; margin-top: 24px; }

/* Coluna da direita — lista de princípios */
.principios           { display: flex; flex-direction: column; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--r2); overflow: hidden; }
.principio            { background: rgba(12, 12, 22, 0.7); padding: 26px; display: flex; gap: 18px; align-items: flex-start; transition: background var(--t); cursor: default; }
.principio:hover      { background: rgba(16, 16, 24, 0.85); }
.principio-num        { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 600; font-style: italic; color: var(--blue); opacity: 0.35; line-height: 1; flex-shrink: 0; margin-top: 2px; transition: opacity var(--t); }
.principio:hover .principio-num { opacity: 0.75; }
.principio h4         { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 5px; color: var(--white); }
.principio p          { font-size: 0.78rem; color: var(--muted); line-height: 1.8; }


/* ─────────────────────────────────────────────
   COMO TRABALHAMOS — Abas + terminal animado
   Grid de duas colunas:
   - Esquerda: abas com listas de características
   - Direita:  terminal com frases em loop
   ───────────────────────────────────────────── */
/* (fundo definido no bloco de seções acima) */
.showcase-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }

/* Abas de navegação */
.abas           { display: flex; background: var(--bg3); border-radius: var(--r); padding: 3px; width: fit-content; margin-bottom: 26px; border: 1px solid var(--border); }
.aba            { padding: 8px 18px; border-radius: 8px; font-size: 0.7rem; font-weight: 600; letter-spacing: 0.07em; text-transform: uppercase; background: none; border: none; color: var(--muted); cursor: pointer; transition: background var(--t), color var(--t); }
.aba.ativa      { background: var(--bg4); color: var(--white); box-shadow: inset 0 0 0 1px var(--border); }

/* Painéis de conteúdo das abas */
.aba-painel       { display: none; }
.aba-painel.ativo { display: block; animation: surgir 0.28s ease; }

@keyframes surgir {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Lista de características dentro de cada aba */
.feat-lista  { display: flex; flex-direction: column; gap: 10px; }
.feat-item   { display: flex; gap: 14px; align-items: flex-start; padding: 15px; border-radius: var(--r); border: 1px solid transparent; transition: border-color var(--t), background var(--t); cursor: default; }
.feat-item:hover      { border-color: var(--border); background: var(--bg3); }
.feat-icone           { font-size: 0.9rem; flex-shrink: 0; margin-top: 2px; opacity: 0.55; transition: opacity var(--t); }
.feat-item:hover .feat-icone { opacity: 1; }
.feat-item h4 { font-size: 0.8rem; font-weight: 600; letter-spacing: 0.03em; margin-bottom: 3px; color: var(--white); }
.feat-item p  { font-size: 0.76rem; color: var(--muted); line-height: 1.75; }

/* Terminal (lado direito do showcase) */
.terminal       { background: var(--bg); border: 1px solid var(--border); border-radius: var(--r2); padding: 22px; overflow: hidden; }
.terminal-barra { display: flex; gap: 7px; margin-bottom: 18px; }
.terminal-dot   { width: 10px; height: 10px; border-radius: 50%; }
.terminal-dot.v { background: #ff5f57; }
.terminal-dot.a { background: #febc2e; }
.terminal-dot.z { background: #28c840; }
/* Linhas de texto do terminal */
.t-linha        { font-family: 'Courier New', monospace; font-size: 0.72rem; line-height: 1.9; margin-bottom: 1px; }
.t-comentario   { color: #333348; } /* cinza escuro — texto estático */
.t-chave        { color: #6b9bd2; } /* azul claro — labels */
.t-valor        { color: #5a9e6f; } /* verde — valores positivos */
.t-destaque     { color: var(--blue); } /* azul da marca — títulos de bloco */


/* ─────────────────────────────────────────────
   MÍDIA — Instagram, WhatsApp e E-mail
   ───────────────────────────────────────────── */
/* (fundo definido no bloco de seções acima) */
.midia-grid  { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--r2); overflow: hidden; }

.midia-card        { background: rgba(12, 12, 22, 0.7); padding: 32px 28px; display: flex; align-items: flex-start; gap: 18px; text-decoration: none; transition: background var(--t); position: relative; overflow: hidden; }
.midia-card::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--blue), transparent); opacity: 0; transition: opacity var(--t); }
.midia-card:hover         { background: rgba(16, 16, 24, 0.88); }
.midia-card:hover::after  { opacity: 1; }

.midia-icone              { width: 44px; height: 44px; border-radius: var(--r); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--muted); transition: border-color var(--t), color var(--t); }
.midia-card:hover .midia-icone { border-color: var(--blue-line); color: var(--blue); }
.midia-icone svg  { width: 20px; height: 20px; }

.midia-info       { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.midia-plataforma { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }
.midia-handle     { font-size: 0.88rem; font-weight: 600; color: var(--white); }
.midia-desc       { font-size: 0.76rem; color: var(--muted); line-height: 1.6; margin-top: 4px; }

.midia-seta             { font-size: 0.9rem; color: var(--muted); align-self: center; flex-shrink: 0; transition: color var(--t), transform var(--t); }
.midia-card:hover .midia-seta { color: var(--blue); transform: translateX(4px); }


/* ─────────────────────────────────────────────
   CONTATO — Formulário + informações de contato
   Grid de duas colunas
   ───────────────────────────────────────────── */
/* (fundo definido no bloco de seções acima) */
.contato-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 96px; align-items: start; }

/* Informações de contato (lado esquerdo) */
.contato-linha             { display: flex; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--border); }
.contato-linha.sem-borda   { border: none; }
.contato-label             { font-size: 0.65rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); margin-bottom: 2px; }
.contato-valor             { font-size: 0.84rem; font-weight: 500; color: var(--white); }

/* Formulário (lado direito) */
.formulario      { display: flex; flex-direction: column; gap: 13px; }
.campo           { display: flex; flex-direction: column; gap: 6px; }
.campo label     { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); }

.campo input,
.campo select,
.campo textarea  {
  background: rgba(16, 16, 24, 0.75);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 12px 15px;
  color: var(--white);
  font-family: 'Inter', sans-serif;
  font-size: 0.84rem;
  outline: none;
  width: 100%;
  transition: border-color var(--t), box-shadow var(--t);
  -webkit-appearance: none;
}
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
  border-color: var(--blue-line);
  box-shadow: 0 0 0 3px var(--blue-glow);
}

.campo textarea { resize: vertical; min-height: 108px; }
.campo select option { background: var(--bg3); }

/* Grid de dois campos lado a lado */
.campo-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }

/* Campo invisível — armadilha anti-spam (bots preenchem, humanos não) */
.honeypot { display: none !important; visibility: hidden; position: absolute; }

/* Checkbox de consentimento LGPD */
.consentimento       { display: flex; gap: 10px; align-items: flex-start; font-size: 0.72rem; color: var(--muted); }
.consentimento input { width: auto; margin-top: 2px; accent-color: var(--blue); }

/* Mensagem de retorno após envio */
#form-status      { padding: 11px 15px; border-radius: var(--r); font-size: 0.8rem; display: none; }
#form-status.ok   { background: rgba(74, 222, 128, 0.06); border: 1px solid rgba(74, 222, 128, 0.2); color: #4ade80; display: block; }
#form-status.erro { background: rgba(248, 113, 113, 0.06); border: 1px solid rgba(248, 113, 113, 0.2); color: #f87171; display: block; }

/* Botão de envio */
.btn-enviar         { width: 100%; padding: 14px; border-radius: var(--r); background: var(--blue); color: var(--bg); font-weight: 800; font-size: 0.76rem; letter-spacing: 0.1em; text-transform: uppercase; border: none; cursor: pointer; transition: background var(--t), transform var(--t); }
.btn-enviar:hover   { background: var(--blue2); transform: translateY(-1px); }
.btn-enviar:disabled{ opacity: 0.4; cursor: not-allowed; transform: none; }


/* ─────────────────────────────────────────────
   RODAPÉ
   ───────────────────────────────────────────── */
footer { padding: 64px 0 32px; border-top: 1px solid var(--border); }

.rodape-grid  { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 48px; margin-bottom: 48px; }
.rodape-desc  { font-size: 0.78rem; color: var(--muted); margin-top: 14px; max-width: 240px; line-height: 1.8; }
.rodape-regiao{ font-size: 0.72rem; color: var(--muted); margin-top: 10px; }

.rodape-col      { }
.rodape-col h5   { font-size: 0.65rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); margin-bottom: 16px; }
.rodape-col a    { display: block; font-size: 0.8rem; color: var(--muted); margin-bottom: 10px; transition: color var(--t); }
.rodape-col a:hover { color: var(--white); }

.rodape-base    { border-top: 1px solid var(--border); padding-top: 26px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 14px; }
.rodape-copy    { font-size: 0.7rem; color: var(--muted); }

/* Selo de conexão segura */
.selo-seguro     { display: flex; align-items: center; gap: 7px; font-size: 0.65rem; letter-spacing: 0.07em; text-transform: uppercase; color: var(--muted); border: 1px solid var(--border); padding: 5px 13px; border-radius: 100px; }
.selo-ponto      { width: 5px; height: 5px; border-radius: 50%; background: #4ade80; }

.rodape-links    { display: flex; gap: 18px; }
.rodape-links a  { font-size: 0.7rem; color: var(--muted); transition: color var(--t); }
.rodape-links a:hover { color: var(--white); }


/* ─────────────────────────────────────────────
   ANIMAÇÃO DE REVEAL
   Cards surgem ao entrar na tela e somem ao sair.
   O JS usa IntersectionObserver para adicionar
   e remover a classe .visivel conforme o scroll.
   ───────────────────────────────────────────── */
.rev         { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s ease; }
.rev.visivel { opacity: 1; transform: none; }

/* Atrasos escalonados para animar filhos em sequência */
.rev.d1 { transition-delay: 0.1s; }
.rev.d2 { transition-delay: 0.2s; }
.rev.d3 { transition-delay: 0.28s; }
.rev.d4 { transition-delay: 0.36s; }


/* ─────────────────────────────────────────────
   RESPONSIVIDADE
   Ajustes para telas menores (tablet e mobile)
   ───────────────────────────────────────────── */

/* Tablet — até 960px */
@media (max-width: 960px) {
  /* Converte grids de 2 colunas para 1 coluna */
  .filosofia-grid,
  .showcase-grid,
  .contato-grid,
  .rodape-grid { grid-template-columns: 1fr; }

  /* Mídia: 1 coluna no mobile */
  .midia-grid { grid-template-columns: 1fr; }

  /* Esconde menu desktop, mostra hambúrguer */
  nav .nav-links { display: none; }
  .hamburger     { display: flex; }

  /* Rodapé em 2 colunas */
  .rodape-grid { grid-template-columns: 1fr 1fr; }

  /* Overlay de serviço com menos padding */
  .srv-painel { padding: 32px 28px; }
}

/* Mobile — até 600px */
@media (max-width: 600px) {
  .secao        { padding: 80px 0; }
  .cont         { padding: 0 24px; }
  .nav-inner    { padding: 18px 24px; }
  .hero-wrap    { padding: 0 24px; }
  .campo-duplo  { grid-template-columns: 1fr; } /* campos empilhados */
  .rodape-grid  { grid-template-columns: 1fr; }
  .rodape-base  { flex-direction: column; align-items: flex-start; }
}

/* Respeita preferência de sistema por menos movimento */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .rev { opacity: 1; transform: none; }
  #canvas-rede { display: none; }
}


/* ─────────────────────────────────────────────
   POLÍTICA DE PRIVACIDADE
   A página tinha casca própria; agora usa o cabeçalho,
   o rodapé e esta folha como todas as outras.
   ───────────────────────────────────────────── */
.pag-privacidade-data { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); margin: 14px 0 0; }
.resumo         { margin-top: 32px; padding: 22px 24px; background: var(--bg3); border: 1px solid var(--border); border-left: 2px solid var(--blue); border-radius: var(--r); color: var(--white); max-width: 78ch; }
.pag-topo h2    { font-size: 1.05rem; font-weight: 600; color: var(--white); margin: 52px 0 14px; letter-spacing: -0.01em; font-family: 'Inter', sans-serif; }
.pag-topo p     { margin-bottom: 16px; max-width: 74ch; color: var(--white2); }
.pag-topo ul    { margin: 0 0 16px 20px; max-width: 74ch; color: var(--white2); }
.pag-topo li    { margin-bottom: 9px; }
.pag-topo strong{ color: var(--white); font-weight: 600; }
.identificacao       { list-style: none; margin-left: 0; }
.identificacao li    { display: flex; gap: 12px; flex-wrap: wrap; }
.identificacao .rotulo { color: var(--muted); min-width: 132px; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.08em; }
.pag-topo footer     { border-top: 1px solid var(--border); margin-top: 72px; padding-top: 28px; font-size: 0.8rem; color: var(--muted); }
