.form-area { margin-top: 2rem; }
.form-area [hidden] { display: none !important; }
.site-form { display: grid; gap: 1.5rem; }
.form-grid { display: grid; gap: 1.5rem; }
.form-field { display: flex; flex-direction: column; min-width: 0; gap: .5rem; }
.form-field label { font-weight: 600; }
.form-field input, .form-field textarea { width: 100%; min-height: 3rem; padding: .65rem .75rem; border: 1px solid var(--line); border-radius: .375rem; background: #fff; color: var(--ink); font: inherit; }
.form-field textarea { resize: vertical; line-height: 1.5; }
.form-field input:focus-visible, .form-field textarea:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.form-field [aria-invalid="true"] { border-color: #a33d16; }
.form-field-error { color: #a33d16; font-size: .9375rem; }
.form-feedback { margin: 0; padding: 1rem; border-left: .25rem solid #a33d16; background: var(--sg-hint); }
.form-privacy { margin: 0; }
.form-success { padding: 1.5rem; border: 1px solid var(--line); border-radius: .375rem; background: var(--sg-theme); }
.form-success p { margin-top: 0; }
.form-success .button { margin-top: .5rem; }
.site-form .button-row { margin-top: 0; }
.site-form .button-primary:disabled, .site-form .button-primary:disabled:hover { color: var(--ink); background: var(--line); opacity: 1; cursor: not-allowed; }
.form-submit-busy { display: inline-flex; align-items: center; gap: .625rem; }
.form-spinner { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; border: .15rem solid currentColor; border-right-color: transparent; border-radius: 50%; animation: form-spinner .75s linear infinite; }
.form-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@keyframes form-spinner { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .form-spinner { animation: none; } }
@media (min-width: 40rem) { .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
