/* W18: confiança, diretrizes e contato. Identidade Signal Cobalt vigente. */
.diretrizes__percursos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem clamp(2rem, 5vw, 5rem); }
.protecao, .diretrizes__percursos article { min-width: 0; border-top: 2px solid var(--cor-filete); padding-top: 1.25rem; }
.protecao h3, .diretrizes h3 { margin: .75rem 0 1rem; font-size: clamp(1.35rem, 1.12rem + .7vw, 1.9rem); line-height: 1.24; text-align: start; text-wrap: balance; }
.protecao p, .diretrizes p { max-width: 66ch; line-height: 1.7; }
.protecao-detalhe { margin-top: 2.5rem; border-top: 1px solid var(--cor-filete); border-bottom: 1px solid var(--cor-filete); padding: 1rem 0; }
.protecao-detalhe summary { min-height: 44px; align-content: center; cursor: pointer; font-weight: 600; }
.protecao-detalhe .prosa { padding: .75rem 0; }
.protecao-proximo { margin-top: 2.5rem; }
.diretrizes__resultado { margin-top: 2.5rem; padding-top: 1.5rem; border-top: 2px solid var(--cor-marca); }
.diretrizes__resultado p { max-width: 74ch; }
.fontes-indice { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 1.75rem; }
.fontes-indice a { min-height: 44px; align-content: center; padding-block: .5rem; font-weight: 600; color: var(--cor-acento-claro); text-underline-offset: .2em; }
.fonte { padding: 1.5rem 0 2rem; border-top: 2px solid var(--cor-filete); }
.fonte:first-child { padding-top: 0; border-top: 0; }
.fonte h3 { font-size: clamp(1.35rem, 1.1rem + .6vw, 1.8rem); line-height: 1.3; text-wrap: balance; }
.fonte__origem, .fonte__limite { color: var(--cor-tinta-suave); }
.fonte__limite { padding-left: 1rem; border-left: 2px solid var(--cor-filete-forte); }
.fonte .link-seta { min-height: 44px; padding-block: .5rem; }
.fonte a { color: var(--cor-marca); }
.fontes-contexto { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; }
.fontes-contexto dt { font-size: 1.25rem; font-weight: 600; padding-top: 1rem; border-top: 2px solid var(--cor-filete); }
.fontes-contexto dd { margin: .75rem 0 0; line-height: 1.65; }
.fontes-conclusao { max-width: 70ch; margin-top: 2rem; }
/* .contato-form e .contato__*: sem uso em site/, mas services/contact/prepared/contato.html carrega
   este CSS ao vivo (higiene do turno 16, REV1-01): as regras ficam. */
.contato__grade { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.contato__contexto { min-width: 0; }
.contato__contexto h2 { font-size: clamp(1.75rem, 1.2rem + 1.5vw, 2.6rem); }
.contato__contexto a { overflow-wrap: anywhere; }
.contato__orientacao { border-left: 3px solid var(--cor-marca); padding-left: 1rem; }
.contato__disponibilidade { padding-top: 1rem; border-top: 1px solid var(--cor-filete); color: var(--cor-tinta-suave); }
.contato-form { min-width: 0; padding: clamp(1.25rem, 3vw, 2.5rem); background: #fff; border: 1px solid var(--cor-filete); border-top: 4px solid var(--cor-marca); border-radius: 4px; }
.contato-form h3 { font-size: 1.4rem; line-height: 1.3; margin: 0 0 .75rem; }
.contato-form__intro { color: var(--cor-tinta-suave); margin-bottom: 1.75rem; }
.contato-form__campos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.campo--largo { grid-column: 1 / -1; }
.campo label { display: block; margin-bottom: .5rem; font-weight: 600; }
.campo label span { font-weight: 400; color: var(--cor-tinta-suave); }
.campo input, .campo textarea { width: 100%; min-height: 48px; padding: .75rem; border: 1px solid var(--cor-filete-forte); border-radius: 3px; background: #fff; color: var(--cor-tinta); font: inherit; font-size: 1rem; line-height: 1.5; }
.campo textarea { min-height: 12rem; resize: vertical; }
.campo input:focus-visible, .campo textarea:focus-visible { outline: 3px solid var(--cor-marca); outline-offset: 3px; }
.campo [aria-invalid="true"] { border-color: var(--cor-erro); }
.campo input:read-only, .campo textarea:read-only { background: var(--cor-papel); }
.site-clean .contato-form p, .site-clean .contato-form__status { font-size: 1rem; line-height: 1.6; }
.site-clean .campo__ajuda { margin: .5rem 0 0; color: var(--cor-tinta-suave); font-size: .875rem; text-align: start; }
.campo__erro { margin: .5rem 0 0; color: var(--cor-erro); font-weight: 600; }
.campo__erro:empty { display: none; }
.contato-form__privacidade { margin: 1.5rem 0; }
.contato-form__status:not(:empty) { margin-top: 1.5rem; padding: 1rem; border-left: 3px solid currentColor; overflow-wrap: anywhere; }
.contato-form__status[data-state="error"] { color: #9b1f2b; background: var(--cor-erro-lavado); }
.contato-form__status[data-state="success"] { color: #0a623a; background: var(--cor-sucesso-lavado); }
.contato-form button:disabled { cursor: default; opacity: .75; }
.campo-armadilha { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
/* A composição/reserva responsiva destas quatro páginas está em editorial-layout.css. */
.site-clean .m24 .contato-email { display: inline-block; min-height: 44px; align-content: center; font-weight: 600; }
.site-clean .m24 .contato-estado { margin-top: 1.75rem; padding-top: 1.25rem; border-top: 1px solid var(--cor-filete); }
@media (min-width: 721px) and (max-width: 1200px) {
  .diretrizes__percursos { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1000px) { .contato__grade { grid-template-columns: minmax(0, 1fr); } .contato__contexto { max-width: 65ch; } }
@media (max-width: 720px) {
  .diretrizes__percursos { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .protecao, .diretrizes__percursos article { padding-top: 1rem; }
  .site-clean .protecao p, .site-clean .diretrizes p { font-size: 1rem; line-height: 1.75; }
  .contato-form__campos { grid-template-columns: minmax(0, 1fr); }
  .contato-form__acoes .botao { width: 100%; min-height: 48px; }
  .contato-form { padding: 1.125rem; }
  .site-clean .contato p { font-size: 1rem; line-height: 1.75; }
  .fontes-contexto { grid-template-columns: minmax(0, 1fr); }
  .site-clean .fontes-conclusao { font-size: 1rem; line-height: 1.75; }
}

/* Ajuste focal M24/A8: separar a CTA do lead no hero. */
.site-clean .m24 .m24-hero .acoes { margin-top: var(--esp-5); }
