.contact-form { display:grid; gap:22px; }
.contact-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 24px; }
.contact-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.contact-field label,.contact-therapy legend { font-weight:600; font-size:14px; }
.contact-field .field { width:100%; box-sizing:border-box; font:inherit; min-height:46px; }
.contact-field textarea { resize:vertical; }
.contact-therapy { border:0; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:14px 24px; }
.contact-therapy legend { margin-bottom:12px; }
.contact-therapy label,.contact-consent { display:flex; gap:9px; align-items:flex-start; line-height:1.6; }
.contact-therapy input,.contact-consent input { width:18px; height:18px; flex-shrink:0; margin-top:4px; accent-color:#00514b; }
.contact-consent a { text-decoration:underline; }
.contact-honeypot { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.contact-status { padding:16px 20px; margin-bottom:24px; border-left:4px solid #00514b; background:#e4f5ef; }
.contact-status.is-error { background:#fff0ee; border-color:#b71320; }
.contact-status h3 { margin:0 0 6px; font-size:18px; }
.contact-status p { margin:0; line-height:1.6; }
.field-error { color:#ac1320; font-size:13px; }
.field[aria-invalid="true"] { border-color:#ac1320; }
.contact-form button { justify-self:start; min-width:176px; gap:10px; }
.contact-form button:disabled { cursor:wait; opacity:.75; }
.contact-spinner { display:none; width:16px; height:16px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:contact-spin .7s linear infinite; }
.contact-form[aria-busy="true"] .contact-spinner { display:inline-block; }
.contact-progress { font-size:14px; }
@keyframes contact-spin { to { transform:rotate(360deg); } }
@media (max-width:600px) { .contact-fields { grid-template-columns:minmax(0,1fr); } }
@media (prefers-reduced-motion:reduce) { .contact-spinner { animation:none; } }
