/*
  Tema Bussola — a camada de IDENTIDADE. F-DV4 (ADR-11).

  Terceira e ultima folha da pilha:

      base.css              primitivas da plataforma
      celulas/base-1.css    grade, ritmo, responsivo
      mm-bussola.css        isto aqui: `:root` e o que ele pinta

  A PROVA DESTRUTIVA (ADR-11) mede a fronteira: apagado este arquivo, a
  pagina fica FEIA e continua de pe. Nenhuma regra aqui pode decidir grade,
  largura, direcao de eixo ou posicao — se decidir, a estrutura vazou para o
  tema e o conserto de uma quebra de grade volta a ser trinta arquivos.

  E por isso que aqui nao ha `display`, `grid-template`, `flex-direction`,
  `gap`, `max-width` nem `position` sobre as classes da celula. O
  `ProvaDestrutivaTest` recusa cada uma delas pelo nome.
*/

:root {
  /* Derivado, e por isso NAO e token: nao e decisao de ninguem.
     O que alguem escolhe e emitido (ver ThemeRaiz); o que se calcula fica aqui. */

  /* Escala de espaco `justa`, de config/espaco.php. */

  /* Filete derivado da tinta: nao se declara como token porque nao e decisao
     de ninguem — trocar a cor do texto leva junto todo filete do tema. */
  --filete: color-mix(in srgb, var(--tinta) 14%, transparent);
  --p-display: var(--fonte);
  --p-texto: var(--fonte);
  --p-peso-titulo: 700;
}

body { background: var(--p-fundo); color: var(--p-tinta); font-family: var(--p-texto-p-fonte, var(--p-display)); font-weight: var(--p-texto-p-peso, 400); }

h1, h2, h3 { font-family: var(--p-display); font-weight: var(--p-peso-titulo); }
h3 { font-weight: var(--p-texto-h3-peso, 600); }

/* O texto de apoio. Sem imagem de fundo em lugar nenhum na hierarquia Direta,
   ele sempre vive sobre superficie solida — e por isso pode ser o verde. */
.apoio {
  font-size: calc(.74rem * var(--escala-texto, 1));
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--mm-text-eyebrow-color, var(--p-destaque-texto));
  margin: 0;
}

.conduz { color: var(--mm-text-subtitle-color, var(--p-tinta-fraca)); }

.item p { color: var(--p-tinta-fraca); }

/* Cabecalho: filete embaixo e fundo do papel, para o conteudo passar por baixo
   sem sumir. Nao ha sombra — a hierarquia Direta nao tem profundidade. */
.topo {
  background: var(--p-menu-fundo, var(--p-fundo));
  border-bottom: 1px solid var(--filete);
}
.marca { font-weight: 700; }
.menu a { color: var(--p-menu-texto, var(--p-tinta-fraca)); }
.menu a:hover, .menu a:focus-visible { color: var(--p-menu-texto-selecao, var(--p-destaque-texto)); }

/* O unico botao do tema. Verde cheio com letra clara: o verde e escuro o
   bastante para carregar texto claro, e e o inverso do que um dourado pede. */
.acao {
  background: var(--mm-cta-primary-default-background, var(--p-destaque));
  color: var(--mm-cta-primary-default-text, var(--p-fundo));
  border: 1px solid var(--mm-cta-primary-default-border, var(--p-destaque));
  border-radius: 3px;
  padding: 13px 22px;
  font-size: calc(.94rem * var(--escala-texto, 1));
  font-weight: 600;
  text-align: center;
}
.acao:hover, .acao:focus-visible { background: var(--mm-cta-primary-hover-background, var(--p-escuro)); border-color: var(--mm-cta-primary-hover-border, var(--p-escuro)); color: var(--mm-cta-primary-hover-text, var(--mm-cta-primary-default-text, var(--p-fundo))); }

/* Os numeros. Peso alto e tamanho grande, sem cor de destaque: na hierarquia
   Direta nada compete com o hero pela atencao. */
/* SDD-builder-refino-7 F-R7-1 (ADR-1): a composicao nao emite <b>; `.valor`/`.rotulo` alcancam o mesmo pedaco na secao convertida (o `:not(.valor)` impede a regra do rotulo de pegar o valor, que tambem e' um span). */
.numero b, .numero .valor {
  font-size: calc(2.1rem * var(--escala-texto, 1));
  font-weight: 700;
  letter-spacing: -.03em;
  line-height: 1;
}
.numero span:not(.valor), .numero .rotulo { color: var(--p-tinta-fraca); }

.passo .marcador { font-weight: 700; color: var(--p-destaque-texto); }

/* Superficie alternativa: e o unico contraste de fundo que a hierarquia 1 usa,
   e so no processo — uma alternancia, nao um ritmo. */
#processo { background: var(--p-fundo-alt); }

.campo label { font-weight: 600; color: var(--p-tinta); }
.campo input, .campo textarea { background: var(--p-fundo); border: 1px solid var(--filete); }
.campo input:focus, .campo textarea:focus { outline: none; border-color: var(--p-destaque); }

.rodape { background: var(--p-escuro); color: var(--p-fundo); }
.rodape a { color: var(--p-fundo); }

:focus-visible { outline: 2px solid var(--p-destaque); }

/* F-R3-6 (4.1) - os estados do item de menu.

   O FUNDO por item nao existia: o topo pintava um fundo so, e o item nao tinha
   nenhum. Nasce transparente, entao nada muda ate alguem escolher uma cor.

   O ATIVO tambem nao existia, e nao era esquecimento: estes menus sao ancoras
   para secoes da MESMA pagina. Quem marca `aria-current` agora e o
   comportamento `item-ativo` de comportamentos.js - por caminho quando o link
   aponta para outra pagina, e por secao a vista quando e ancora. */
.menu a { background: var(--p-menu-fundo-selecao, transparent); transition: background .2s ease, color .2s ease; }
.menu a:hover, .menu a:focus-visible { background: var(--p-menu-fundo-selecao, transparent); }
.menu a[aria-current] { background: var(--p-menu-fundo-ativo, transparent); color: var(--p-menu-texto-ativo, var(--p-tinta-fraca)); }

/* F-R3-6 (4.2) - os seis niveis, ligados aos papeis de texto.

   A RESERVA de cada um e' o que a folha desenhava: sem escolha no painel, a
   variavel nao e' emitida e vale a expressao de sempre - inclusive o `clamp()`
   dos titulos, que e' o que faz o H1 encolher no celular.

   h4, h5 e h6 nao eram desenhados por tema nenhum. Eles nao sao inercia: o
   builder cria no de composicao com `tag: h4`, e sem regra o campo existiria
   sem nada para pintar. */
h1 { font-family: var(--p-texto-h1-fonte, var(--p-display)); font-weight: var(--p-texto-h1-peso, var(--p-peso-titulo)); }
h2 { font-family: var(--p-texto-h2-fonte, var(--p-display)); font-weight: var(--p-texto-h2-peso, var(--p-peso-titulo)); }
h3 { font-family: var(--p-texto-h3-fonte, var(--p-display)); font-weight: var(--p-texto-h3-peso, 600); }
h4 { font-family: var(--p-texto-h4-fonte, var(--p-texto)); font-weight: var(--p-texto-h4-peso, 600); font-size: var(--p-texto-h4-tamanho, calc(1.15rem * var(--escala-texto, 1))); }
h5 { font-family: var(--p-texto-h5-fonte, var(--p-texto)); font-weight: var(--p-texto-h5-peso, 600); font-size: var(--p-texto-h5-tamanho, calc(1rem * var(--escala-texto, 1))); }
h6 { font-family: var(--p-texto-h6-fonte, var(--p-texto)); font-weight: var(--p-texto-h6-peso, 600); font-size: var(--p-texto-h6-tamanho, calc(.88rem * var(--escala-texto, 1))); }
/* SDD-builder-refino-10 F-R10-14 — o nivel PARaGRAFO.
   Toda leitura de papel leva RESERVA: entre publicar e o site:push-theme a
   variavel nao existe, e uma leitura sem reserva deixaria o texto sem fonte
   e sem tamanho nessa janela. A reserva e' o que a folha ja' fazia. */
p { font-family: var(--p-texto-p-fonte, var(--p-texto)); font-weight: var(--p-texto-p-peso, 400); font-size: var(--p-texto-p-tamanho, calc(1rem * var(--escala-texto, 1))); }

/* F-R3-6 (4.3) - os dois botoes, nos tres estados.

   Vem DEPOIS das regras do tema de proposito: mesma especificidade, e quem
   vence e' a ultima. Sem isso, `.contato .btn-solid` da ygg-home continuaria
   mandando na cor escolhida no painel - o defeito de campo que obedece em
   metade da pagina.

   A reserva de cada um e' `inherit`/`currentColor` quando existe, e a
   expressao de hoje quando nao: sem escolha no painel a variavel nao e'
   emitida e o botao fica exatamente como estava. */
.acao { background: var(--p-botao-principal-fundo, var(--p-destaque)); color: var(--p-botao-principal-texto, var(--p-fundo)); border-color: var(--p-botao-principal-borda, var(--p-destaque)); border-width: var(--p-botao-principal-espessura, 1px); border-style: solid; }
.acao:hover, .acao:focus-visible { background: var(--p-botao-principal-selecao-fundo, var(--p-escuro)); color: var(--p-botao-principal-selecao-texto, var(--p-fundo)); border-color: var(--p-botao-principal-selecao-borda, var(--p-escuro)); border-width: var(--p-botao-principal-selecao-espessura, 1px); }
.acao:active, .acao[aria-current] { background: var(--p-botao-principal-ativo-fundo, var(--p-escuro)); color: var(--p-botao-principal-ativo-texto, var(--p-fundo)); border-color: var(--p-botao-principal-ativo-borda, var(--p-escuro)); border-width: var(--p-botao-principal-ativo-espessura, 1px); }

.acao--vazada { background: var(--p-botao-secundario-fundo, transparent); color: var(--p-botao-secundario-texto, var(--p-destaque-texto)); border-color: var(--p-botao-secundario-borda, var(--filete)); border-width: var(--p-botao-secundario-espessura, 1px); border-style: solid; }
.acao--vazada:hover, .acao--vazada:focus-visible { background: var(--p-botao-secundario-selecao-fundo, transparent); color: var(--p-botao-secundario-selecao-texto, var(--p-tinta)); border-color: var(--p-botao-secundario-selecao-borda, var(--p-tinta)); border-width: var(--p-botao-secundario-selecao-espessura, 1px); }
.acao--vazada:active, .acao--vazada[aria-current] { background: var(--p-botao-secundario-ativo-fundo, transparent); color: var(--p-botao-secundario-ativo-texto, var(--p-tinta)); border-color: var(--p-botao-secundario-ativo-borda, var(--p-tinta)); border-width: var(--p-botao-secundario-ativo-espessura, 1px); }
