/* Kontaktformular im bestehenden Erscheinungsbild der Buchhomepage. */
.contact-main { max-width: 850px; }
.contact-main .legal-hero { max-width: 690px; margin-bottom: 24px; }
.contact-form { background: var(--surface); padding: clamp(18px, 4vw, 32px); border: 1px solid var(--line); border-radius: 20px; }
.contact-fields { display: grid; gap: 20px; }
.contact-field { min-width: 0; margin-bottom: 20px; }
.contact-fields .contact-field { margin-bottom: 0; }
.contact-fields { margin-bottom: 20px; }
.contact-field label { display: block; font-weight: 750; font-size: 1rem; line-height: 1.5; margin-bottom: 8px; }
.contact-field label span { font-size: .875rem; font-weight: 400; color: var(--muted); }
.contact-field input, .contact-field textarea { width: 100%; min-width: 0; border: 1px solid #817889; border-radius: 10px; padding: 12px 14px; color: var(--text); background: white; font: inherit; font-size: 1rem; line-height: 1.5; }
.contact-field input { min-height: 50px; }
.contact-field textarea { display: block; resize: vertical; min-height: 160px; }
.contact-field input:focus-visible, .contact-field textarea:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.contact-field [aria-invalid="true"] { border: 2px solid #a22235; }
.contact-field .field-hint { margin: 7px 0 0; font-size: .875rem; }
.contact-field .field-error { margin: 7px 0 0; color: #8e1d30; font-size: .875rem; font-weight: 650; }
.contact-form .button { border: 0; font-family: inherit; cursor: pointer; width: 100%; }
.contact-form .button:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 4px; }
.contact-privacy { font-size: .875rem; margin-bottom: 20px; }
.contact-privacy a, .contact-alternative a, .contact-status a { color: var(--accent-dark); text-decoration: underline; text-underline-offset: 3px; }
.contact-alternative { margin: 24px 0 0; font-size: .9375rem; }
.contact-status { border: 1px solid; border-radius: 16px; padding: 20px; margin-bottom: 22px; }
.contact-status:focus-visible { outline: 3px solid var(--accent-dark); outline-offset: 4px; }
.contact-status h2 { font-size: 1.25rem; line-height: 1.4; letter-spacing: -.01em; margin-bottom: 8px; }
.contact-status p, .contact-status ul { margin-bottom: 0; }
.contact-status li + li { margin-top: 8px; }
.contact-success { background: #eff5ef; border-color: #829782; }
.contact-success p { color: #344627; }
.contact-error { background: #fff3f4; border-color: #c77784; }
.contact-error h2, .contact-error p { color: #8e1d30; }
.contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (min-width: 44rem) {
  .contact-fields { grid-template-columns: 1fr 1fr; }
  .contact-form .button { width: auto; min-width: 240px; }
}
