.form-group { margin-bottom: 1.25rem; }

.form-label { display: block; font-size: var(--type-sm); font-weight: 600; color: var(--color-ink); margin-bottom: 0.4rem; }
.form-label .req { color: var(--color-primary); }

.form-input,
.form-textarea,
.form-select {
  width: 100%;
  padding: 0.8rem 1rem;
  font-family: var(--font-body);
  font-size: var(--type-body);
  color: var(--color-ink);
  background-color: var(--color-surface);
  border: 1.5px solid var(--color-border);
  border-radius: var(--r-md);
  transition: border-color var(--tr-fast), box-shadow var(--tr-fast);
  appearance: none;
  -webkit-appearance: none;
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(27,94,42,0.12);
}

.form-input.is-error,
.form-textarea.is-error {
  border-color: var(--color-error);
  box-shadow: 0 0 0 3px rgba(185,28,28,0.1);
}

.form-textarea { resize: vertical; min-height: 140px; }

.form-err { font-size: 0.8rem; color: var(--color-error); margin-top: 0.3rem; display: none; }
.form-err.is-visible { display: block; }

.form-honeypot { display: none !important; visibility: hidden !important; }

.form-row { display: grid; grid-template-columns: 1fr; gap: 0 1rem; }

@media (min-width: 640px) {
  .form-row { grid-template-columns: repeat(2, 1fr); }
}

.form-status { padding: 0.875rem 1rem; border-radius: var(--r-md); font-size: var(--type-sm); margin-top: 1rem; display: none; }
.form-status.is-success { display: block; background-color: var(--color-accent-lt); color: var(--color-primary-dk); border: 1px solid rgba(27,94,42,0.2); }
.form-status.is-error { display: block; background-color: #fef2f2; color: var(--color-error); border: 1px solid rgba(185,28,28,0.2); }
