/* forms.css — formulaire de contact public + formulaires admin (labels explicites, cf. composants-communs.md §6) */

.form-grid {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}

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

.form-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-xs);
}

.form-field--full {
  grid-column: 1 / -1;
}

.form-field label {
  font-size: var(--font-size-small);
  font-weight: var(--font-weight-semibold);
  color: var(--color-black);
}

.form-field .required {
  color: var(--color-error);
}

.form-field input,
.form-field textarea,
.form-field select {
  padding: var(--space-md);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-white);
  color: var(--color-charcoal);
  min-height: 48px;
  transition: border-color var(--transition-fast) var(--easing-standard),
              box-shadow var(--transition-fast) var(--easing-standard);
}

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

/* Focus "ecrin" : bordure doree + halo diffus, plus doux qu'un outline sec (reste bien
   visible pour l'accessibilite). */
.form-field input:focus-visible,
.form-field textarea:focus-visible,
.form-field select:focus-visible {
  outline: 2px solid transparent; /* conserve un outline pour Windows High Contrast */
  border-color: var(--color-gold);
  box-shadow: 0 0 0 4px rgba(176, 141, 87, 0.18);
}

.form-field--error input,
.form-field--error textarea,
.form-field--error select {
  border-color: var(--color-error);
}

.form-field__error {
  font-size: var(--font-size-small);
  color: var(--color-error);
}

.form-alert {
  padding: var(--space-md) var(--space-lg);
  border-radius: var(--radius-sm);
  font-size: var(--font-size-small);
  margin-bottom: var(--space-lg);
}

.form-alert--success {
  background: rgba(75, 127, 82, 0.12);
  color: var(--color-success);
  border: 1px solid var(--color-success);
}

.form-alert--error {
  background: rgba(163, 64, 47, 0.1);
  color: var(--color-error);
  border: 1px solid var(--color-error);
}

.form-actions {
  margin-top: var(--space-sm);
}
