/* Campos reais dos formulários: mesmo desenho dos campos de exemplo do protótipo. */
.field input.input, .field select.input, .field textarea.input {
  display: block; width: 100%; font: inherit; font-size: .95rem; color: var(--navy); background: var(--paper-2);
  border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; appearance: none; -webkit-appearance: none;
}
.field textarea.input { min-height: 110px; resize: vertical; }
.field select.input {
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23212A3E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
}
.field select.input:invalid { color: var(--gray-soft); }
.field .input::placeholder { color: var(--gray-soft); opacity: 1; }
.field .input:focus-visible { outline: 3px solid var(--orange); outline-offset: 1px; border-color: var(--orange); background: #fff; }
.field .input[aria-invalid="true"] { border-color: #B3261E; }
.eq-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.eq-form-error { color: #B3261E; font-size: .88rem; font-weight: 600; margin: 0 0 12px; min-height: 0; }
.eq-form-error:empty { display: none; }
.eq-form-note { font-size: .78rem; color: var(--gray-soft); margin: 14px 0 0; line-height: 1.5; }
.eq-form-note a { color: var(--navy); text-decoration: underline; text-underline-offset: 2px; }
form .btn[disabled] { opacity: .7; cursor: progress; transform: none; }
/* O selo do reCAPTCHA fica escondido; o aviso exigido pelo Google está no texto abaixo do formulário. */
.grecaptcha-badge { visibility: hidden; }

/* Botão de envio: carregando e enviado (verde, com contraste de 5,4:1 para o texto branco). */
.btn .eq-spin { width: 1em; height: 1em; margin-right: .6em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: eq-spin .8s linear infinite; }
.btn .eq-check { width: 1.15em; height: 1.15em; margin-right: .55em; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.btn.eq-sent, .btn.eq-sent:hover { background: #1E7B45; color: #fff; transform: none; cursor: default; }
.eq-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
@keyframes eq-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .btn .eq-spin { animation-duration: 2.4s; } }
