/**
 * Page Contact – Mise en page et formulaire
 */

.contact-layout {
  display: grid;
  gap: 24px;
  margin-top: 24px;
}
@media (min-width: 900px) {
  .contact-layout {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr);
    align-items: flex-start;
  }
}

.contact-card {
  padding: 24px;
  text-align: left;
  background: linear-gradient(135deg, var(--beige-200), var(--white));
  border: 2px solid var(--orange);
}
.contact-card h3 { margin: 0 0 12px; color: var(--black); }
.contact-card h4 { margin: 18px 0 6px; font-size: 1rem; }
.contact-infos ul { margin: 4px 0 0 18px; padding: 0; font-size: 0.9rem; }
.contact-infos li { margin: 2px 0; }

.contact-email {
  color: var(--orange-600);
  text-decoration: none;
  font-weight: 600;
  font-size: 1.1rem;
}
.contact-email:hover { text-decoration: underline; }

.contact-phone {
  color: var(--orange-600);
  text-decoration: none;
  font-weight: 600;
  font-size: 1.1rem;
}
.contact-phone:hover { text-decoration: underline; }

.contact-note { margin: 8px 0 0; color: #666; font-size: 0.9rem; }

.contact-form-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.contact-form { width: 100%; max-width: 520px; }

.message-field textarea {
  max-width: 480px;
  margin: 0 auto;
  display: block;
}
.contact-submit {
  display: block;
  margin: 12px auto 0 auto;
  max-width: 220px;
  width: 100%;
  text-align: center;
}

.form-hint { font-size: 0.85rem; color: #666; margin: 0 0 4px; }
.required { color: #b00020; }
.field-hint { font-size: 0.85rem; color: #666; margin-top: 4px; }
.field-error {
  display: block;
  font-size: 0.85rem;
  color: #b00020;
  margin-top: 4px;
}
input.field-invalid,
textarea.field-invalid {
  border-color: #b00020;
  outline-color: #b00020;
}
.privacy-note { font-size: 0.8rem; color: #666; margin-top: 10px; }

.alert {
  width: 100%;
  max-width: 520px;
  border-radius: 10px;
  padding: 16px 20px;
  font-size: 0.95rem;
  line-height: 1.5;
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.alert-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-weight: bold;
  font-size: 0.9rem;
}
.alert-success {
  background: rgba(10, 127, 63, 0.1);
  border: 1px solid rgba(10, 127, 63, 0.4);
  color: #0a7f3f;
}
.alert-success .alert-icon {
  background: rgba(10, 127, 63, 0.2);
}
.alert-error {
  background: rgba(176, 0, 32, 0.08);
  border: 1px solid rgba(176, 0, 32, 0.4);
  color: #b00020;
}
.alert-error .alert-icon {
  background: rgba(176, 0, 32, 0.15);
}
.alert-error ul { margin: 6px 0 0 18px; padding: 0; }
