/* ds-formulario (classe principal ds-form) */
.ds-form {
  max-width: 40rem;
  padding: var(--ds-cartao-padding);
  background: var(--ds-cor-superficie);
  border: var(--ds-borda-largura) solid var(--ds-cor-borda);
  border-radius: var(--ds-raio-cartao);
  box-shadow: var(--ds-sombra-md);
}
.ds-form__titulo { font-size: var(--ds-tamanho-h3); }
.ds-form__campos { display: grid; gap: var(--ds-espaco-4); margin-bottom: var(--ds-espaco-6); }
@media (min-width: 640px) {
  .ds-form__campos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ds-form__campo--inteiro { grid-column: 1 / -1; }
}
.ds-form__campo { display: flex; flex-direction: column; gap: var(--ds-espaco-1); min-width: 0; }
.ds-form label { color: var(--ds-cor-titulo); font-size: var(--ds-tamanho-pequeno); }
.ds-form__opcional { color: var(--ds-cor-texto-suave); }
.ds-form input:not([type="checkbox"]):not([type="radio"]), .ds-form select, .ds-form textarea {
  width: 100%; min-height: 44px;
  padding: var(--ds-espaco-2) var(--ds-espaco-3);
  border: var(--ds-borda-largura) solid var(--ds-cor-texto-suave);
  border-radius: var(--ds-raio-sm);
  background: var(--ds-cor-fundo); color: var(--ds-cor-texto);
  font-family: var(--ds-fonte-texto); font-size: var(--ds-tamanho-texto);
}
.ds-form textarea { resize: vertical; }
.ds-form input:focus-visible, .ds-form select:focus-visible, .ds-form textarea:focus-visible { outline-offset: 0; border-color: var(--ds-cor-foco); }
.ds-form [aria-invalid="true"] { border-color: var(--ds-cor-titulo); border-width: var(--ds-borda-largura-forte); }
.ds-form__erro { margin: 0; font-size: var(--ds-tamanho-pequeno); color: var(--ds-cor-titulo); }
.ds-form__erro::before { content: "! "; }
.ds-form__ajuda { margin: 0; font-size: var(--ds-tamanho-legenda); color: var(--ds-cor-texto-suave); }
.ds-form__marcar { flex-direction: row; align-items: flex-start; gap: var(--ds-espaco-2); }
.ds-form__marcar input { width: 1.25rem; height: 1.25rem; margin-top: 0.15em; flex: none; accent-color: var(--ds-cor-destaque); }
.ds-form__marcar label { font-size: var(--ds-tamanho-pequeno); color: var(--ds-cor-texto); }
.ds-form__armadilha { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ds-form__aviso {
  margin: var(--ds-espaco-4) 0 0; padding: var(--ds-espaco-3) var(--ds-espaco-4);
  border-left: var(--ds-borda-largura-forte) solid var(--ds-cor-acento);
  background: var(--ds-cor-fundo); font-size: var(--ds-tamanho-pequeno);
}
/* Captura em linha: e-mail + botão lado a lado no computador */
.ds-form--linha { max-width: none; padding: 0; background: transparent; border: 0; box-shadow: none; }
@media (min-width: 640px) {
  .ds-form--linha { display: flex; align-items: flex-end; gap: var(--ds-espaco-3); flex-wrap: wrap; }
  .ds-form--linha .ds-form__campos { flex: 1; margin: 0; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); }
  .ds-form--linha .ds-botao { width: auto; }
}
