.contact-form [hidden] { display: none !important; }
.contact-stage { scroll-margin-top: 100px; }
.contact-stage:focus { outline: none; }
.contact-stage h3 { font-size: clamp(22px, 3vw, 32px); margin-bottom: 24px; }
.contact-consent { display: flex; align-items: flex-start; gap: 12px; margin-top: 24px; line-height: 1.9; font-size: 14px; }
.contact-consent input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 4px; accent-color: var(--primary); }
.contact-form .required { color: var(--text-3); font-size: 12px; font-weight: 400; }
.contact-summary { display: grid; grid-template-columns: 1fr; margin: 24px 0; border-top: 1px solid var(--line); }
.contact-summary dt { padding-top: 16px; color: var(--text-3); font-size: 13px; }
.contact-summary dd { margin: 0; padding: 8px 0 16px; border-bottom: 1px solid var(--line); white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.9; }
.contact-form button:disabled { opacity: .5; cursor: wait; }
.contact-form button:focus-visible, .contact-form a:focus-visible { outline: 2px solid var(--primary); outline-offset: 5px; }
.contact-form .form-note, .contact-fallback { font-size: 13px; line-height: 1.9; margin-top: 24px; color: var(--text-3); }
.contact-status { line-height: 1.9; overflow-wrap: anywhere; }
.contact-status:not(:empty) { margin-top: 24px; padding: 16px; border-left: 3px solid var(--primary); background: var(--bg-alt); }
.contact-fallback a { text-decoration: underline; text-underline-offset: 4px; }
.contact-reference { font-family: var(--font-mono); font-size: 12px; overflow-wrap: anywhere; }
[data-contact-done] p { line-height: 2; margin-top: 16px; }
@media (min-width: 768px) {
  .contact-summary { grid-template-columns: 160px minmax(0, 1fr); }
  .contact-summary dt, .contact-summary dd { padding: 20px 0; border-bottom: 1px solid var(--line); }
}
