/* PR-VIBECURB-07 · Gate 6.1 — contraste textual medido em fundos reais. */

:root {
  --vb-text-teal-on-light: #09635d;
  --vb-text-muted-on-light: #4f5a55;
  --vb-text-teal-on-luma: #baf3e8;
  --vb-text-on-luma-card: #edf9f6;
  --vb-luma-contrast-background: #146f68;
}

/*
 * O token muted original não atinge 4,5:1 em todos os papéis e beges usados.
 * A redefinição é local e afeta apenas capítulos claros ou superfícies claras.
 */
:is(
  .vb-hero,
  #como-funciona,
  #mecanismo,
  #gestao,
  #professores,
  #fundamento,
  #governanca,
  #implementacao,
  #contato
) {
  --vb-muted: var(--vb-text-muted-on-light);
}

#planos .vb-access__appendix {
  --vb-muted: var(--vb-text-muted-on-light);
}

/* Teal usado como texto sobre fundos claros; bordas, linhas e fundos não mudam. */
:is(
  .vb-hero,
  #como-funciona,
  #mecanismo,
  #professores
) .vb-kicker,
.vb-hero .vb-evidence-sheet__metric strong,
#como-funciona .vb-record__sources > span,
#como-funciona .vb-record__finding > span,
#como-funciona .vb-record__occurrence header span,
#como-funciona .vb-record__finding a:hover,
#como-funciona .vb-record__finding a:focus-visible,
#mecanismo .vb-cartography__legend > span,
#mecanismo .vb-cartography__station-index span,
#mecanismo .vb-cartography__station-type,
#mecanismo .vb-cartography__finding > span,
#mecanismo .vb-cartography__finding a:hover,
#mecanismo .vb-cartography__finding a:focus-visible,
#gestao .vb-evidence-room__scale span,
#gestao .vb-evidence-room__note span,
#gestao .vb-evidence-room__metrics strong,
#professores .vb-notebook__header span,
#professores .vb-notebook__entries span,
#professores .vb-notebook__intro aside span,
#professores .vb-notebook__closing span,
#professores .vb-notebook__entries li::before,
#professores .vb-notebook__entries small,
#professores .vb-notebook__attachment dd {
  color: var(--vb-text-teal-on-light);
}

/*
 * A seção mantém texto claro e identidade teal. O fundo intermediário aproxima
 * a composição original sem baixar o contraste dos textos normais.
 */
#luma {
  background-color: var(--vb-luma-contrast-background);
}

#luma .vb-kicker {
  color: var(--vb-text-teal-on-luma);
}

/*
 * O núcleo central fica apenas um tom mais profundo que a seção: 8% em repouso
 * e 12% após o motion. Retrato, halo, citação e geometria permanecem intactos.
 */
#luma .vb-interpretive-layer__core {
  background-color: rgba(6, 35, 33, .08);
}

html.vb-js.vb-motion-ready #luma.is-interpretive-core-entered .vb-interpretive-layer__core {
  background-color: rgba(6, 35, 33, .12);
}

/*
 * Os quadros recuperam o preenchimento visual aprovado anteriormente. As cores
 * internas sobem de luminosidade para preservar 4,5:1 no estado mais claro.
 */
#luma .vb-interpretive-layer__inputs article,
#luma .vb-interpretive-layer__outputs article {
  color: #fbf8ef;
  background-color: rgba(255, 255, 255, .05);
}

#luma .vb-interpretive-layer__inputs small,
#luma .vb-interpretive-layer__outputs small,
#luma .vb-interpretive-layer__inputs p,
#luma .vb-interpretive-layer__outputs p,
#luma .vb-interpretive-layer__principles span,
#luma .vb-interpretive-layer__principles p {
  color: var(--vb-text-on-luma-card);
}

html.vb-js.vb-motion-ready #luma .vb-interpretive-layer__inputs article.is-interpretive-card-entered,
html.vb-js.vb-motion-ready #luma .vb-interpretive-layer__outputs article.is-interpretive-card-entered {
  background-color: rgba(255, 255, 255, .085);
}

html.vb-js.vb-motion-ready #luma .vb-interpretive-layer__principles > div.is-interpretive-principle-entered {
  background-color: rgba(255, 255, 255, .045);
}
