/* The contact form: /contact/ and its failure page only. Failed = gold (rule 6). */
.contact { display: grid; gap: var(--space-6); align-items: start; margin-bottom: var(--space-6); }
@media (min-width: 960px) { .contact { grid-template-columns: 7fr 4fr; gap: var(--space-8); } }
.contact-aside, .form { display: grid; gap: var(--space-6); }
.field, .field-row { display: grid; gap: var(--space-2); align-content: start; min-width: 0; margin: 0; padding: 0; border: 0; }
.field-row { gap: var(--space-6); }
@media (min-width: 600px) { .field-row { grid-template-columns: 1fr 1fr; } }
.field-label { font-weight: 600; color: var(--ink); padding: 0; }
.field-opt { font-weight: 400; color: var(--stone-600); }
.field-hint { margin: 0; font-size: var(--step-small); }
.field-input { width: 100%; min-height: 48px; padding: var(--space-3) var(--space-4); font: inherit; color: var(--ink); background: var(--bg-surface); border: 1px solid var(--stone-500); border-radius: 10px; }
textarea.field-input { resize: vertical; min-height: 9em; }
.choices { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-6); }
.choice { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; }
.choice input { width: 20px; height: 20px; margin: 0; accent-color: var(--leaf-700); }
.form-send { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); }
.form-send p, .form-note, .form-status { margin: 0; }
.form-status { padding: var(--space-3) var(--space-4); border-radius: 10px; background: var(--leaf-50); }
.form-status:empty { display: none; }
.form-status.is-error { background: var(--marigold-50); border: 1px solid var(--marigold-500); }
.form-fail h2 { margin: 36px 0 var(--space-3); }
