/* ==========================================================================
   WM MATIC — Páginas internas
   Layouts compartilhados por serviços, institucionais, contato, legal e 404.
   Depende de tokens, base e components.
   ========================================================================== */

/* --- Conteúdo + coluna de apoio --- */
.pagina-grade {
  display: grid;
  gap: var(--esp-7);
  padding-block: var(--esp-7) var(--esp-secao);
}
.pagina-grade > * { min-width: 0; }   /* evita estouro do grid por conteúdo largo (tabelas): a tabela rola dentro de .tabela-wrap */
.pagina-conteudo > * + section { margin-top: var(--esp-7); }
.pagina-conteudo h2 { scroll-margin-top: var(--esp-6); }
/* Ritmo vertical dentro das seções (a regra .prosa > * + * só alcança filhos diretos) */
.pagina-conteudo section > * + * { margin-top: var(--esp-4); }
.pagina-conteudo section > h3 { margin-top: var(--esp-5); }
.pagina-conteudo section > h2 + * { margin-top: var(--esp-3); }
.pagina-conteudo .aviso, .pagina-conteudo .faq { margin-top: var(--esp-5); }
@media (min-width: 64em) {
  .pagina-grade { grid-template-columns: minmax(0, 1fr) 20rem; gap: var(--esp-8); align-items: start; }
}

/* Coluna de apoio (CTA lateral) */
.apoio {
  padding: var(--esp-5);
  background: var(--cor-nevoa);
  border: 1px solid var(--cor-linha);
  border-top: 4px solid var(--cor-laranja);
  border-radius: var(--raio-lg);
}
.apoio h2 { font-size: var(--fs-h4); }
.apoio p, .apoio ul { margin-top: var(--esp-3); font-size: var(--fs-sm); }
.apoio ul { padding-left: 1.1em; color: var(--texto); }
.apoio li + li { margin-top: var(--esp-1); }
.apoio .botao { margin-top: var(--esp-4); }
.apoio .botao + .botao { margin-top: var(--esp-2); }
@media (min-width: 64em) {
  .apoio { position: sticky; top: calc(var(--altura-header) + var(--esp-5)); }
}
@media (min-width: 75em) {
  .apoio { top: calc(var(--altura-header-desktop) + var(--esp-5)); }
}

/* --- Listas técnicas --- */
.lista-check { list-style: none; padding-left: 0 !important; }
.lista-check li { position: relative; padding-left: 1.75rem; }
.lista-check li::before {
  content: "";
  position: absolute;
  left: 0.2rem;
  top: 0.5em;
  width: 0.5rem;
  height: 0.85rem;
  border-right: 2px solid var(--cor-laranja-texto);
  border-bottom: 2px solid var(--cor-laranja-texto);
  transform: rotate(45deg);
}

/* --- Tabela comparativa --- */
.tabela-wrap {
  overflow-x: auto;
  margin-top: var(--esp-4);
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio);
  -webkit-overflow-scrolling: touch;
}
.tabela-wrap:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; }
.tabela {
  width: 100%;
  min-width: 34rem;
  border-collapse: collapse;
  font-size: var(--fs-sm);
}
.tabela caption {
  caption-side: top;
  text-align: left;
  padding: var(--esp-3) var(--esp-4);
  font-weight: var(--peso-semi);
  color: var(--texto-forte);
  background: var(--cor-nevoa);
  border-bottom: 1px solid var(--cor-linha);
}
.tabela th, .tabela td { padding: var(--esp-3) var(--esp-4); text-align: left; vertical-align: top; border-bottom: 1px solid var(--cor-linha); }
.tabela thead th { font-family: var(--fonte-titulo); font-weight: var(--peso-semi); color: var(--texto-forte); background: var(--cor-branco); }
.tabela tbody th { font-weight: var(--peso-semi); color: var(--texto-forte); }
.tabela tbody tr:last-child > * { border-bottom: 0; }

/* --- Relacionados --- */
.grade--relacionados { list-style: none; padding: 0; margin-top: var(--esp-5); }
@media (min-width: 64em) { .grade--relacionados { grid-template-columns: repeat(3, 1fr); } }

/* --- Índice de sintomas (/problemas-no-cambio/) --- */
.indice {
  display: flex;
  flex-wrap: wrap;
  gap: var(--esp-2);
  list-style: none;
  padding: 0 !important;
  margin-top: var(--esp-4);
}
.indice li + li { margin-top: 0 !important; }
.indice a {
  display: inline-flex;
  align-items: center;
  gap: var(--esp-2);
  min-height: var(--alvo-toque);
  padding: var(--esp-1) var(--esp-4);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha-forte);
  border-radius: var(--raio-pill);
  color: var(--texto-forte);
  font-family: var(--fonte-titulo);
  font-weight: var(--peso-semi);
  font-size: var(--fs-sm);
  text-decoration: none;
}
.indice a:hover { border-color: var(--cor-laranja-texto); color: var(--cor-laranja-texto); }
.indice .icone { color: var(--cor-laranja-texto); }

.sintoma { padding-top: var(--esp-6); border-top: 1px solid var(--cor-linha); }
.sintoma:first-of-type { border-top: 0; padding-top: 0; }
.sintoma__titulo { display: flex; align-items: center; gap: var(--esp-3); }
.sintoma__titulo .icone { width: 1.75rem; height: 1.75rem; color: var(--cor-laranja-texto); flex-shrink: 0; }
.sintoma h3 { font-size: var(--fs-lg); margin-top: var(--esp-5); }
.sintoma__servico { margin-top: var(--esp-4); }

/* --- Tipos de câmbio (definições) --- */
.definicoes { display: grid; gap: var(--esp-4); margin-top: var(--esp-5); }
.definicoes > div {
  padding: var(--esp-4) var(--esp-5);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio-lg);
}
.definicoes dt { font-family: var(--fonte-titulo); font-weight: var(--peso-negrito); color: var(--texto-forte); }
.definicoes dd { margin: var(--esp-2) 0 0; color: var(--texto-suave); }
@media (min-width: 48em) { .definicoes { grid-template-columns: repeat(2, 1fr); } }

/* --- Canais de contato --- */
.canais { display: grid; gap: var(--esp-4); list-style: none; padding: 0; }
.canal {
  display: flex;
  gap: var(--esp-4);
  align-items: flex-start;
  padding: var(--esp-5);
  background: var(--cor-branco);
  border: 1px solid var(--cor-linha);
  border-radius: var(--raio-lg);
}
.canal > .icone { width: 1.75rem; height: 1.75rem; color: var(--cor-laranja-texto); margin-top: 0.1em; }
.canal h3 { font-size: var(--fs-base); }
.canal p { margin-top: var(--esp-1); }
@media (min-width: 48em) { .canais { grid-template-columns: repeat(2, 1fr); } }

/* --- Página de texto contínuo (legal) --- */
.pagina-texto { padding-block: var(--esp-7) var(--esp-secao); }
.pagina-conteudo .faq + p { margin-top: var(--esp-4); }

/* --- Texto legal --- */
.legal h2 { font-size: var(--fs-h3); }
.legal h3 { font-size: var(--fs-lg); }
.legal .meta-documento { font-size: var(--fs-sm); color: var(--texto-suave); }

/* --- 404 --- */
.pagina-erro { padding-block: var(--esp-8) var(--esp-secao); }
.pagina-erro__codigo {
  font-family: var(--fonte-titulo);
  font-weight: var(--peso-display);
  font-size: clamp(3.5rem, 2.5rem + 5vw, 6rem);
  line-height: 1;
  color: var(--cor-laranja-texto);
}
.pagina-erro h1 { margin-top: var(--esp-3); }
.pagina-erro .lead { margin-top: var(--esp-4); }
.pagina-erro .grade { margin-top: var(--esp-6); list-style: none; padding: 0; }
