/* V3.1 contact states. The inherited visual layout stays unchanged. */
.contact-field-error {display:block;color:#ffedcc;font-size:.85rem;margin-top:6px;line-height:1.5}
.contact-field-error[hidden],.contact-mode[hidden] {display:none}
.vs-contact-form-control[aria-invalid='true'] {border:2px solid #b62d40}
.contact-status {font-size:.9rem;line-height:1.7;margin:20px 0 0;overflow-wrap:anywhere}
.contact-status:empty {display:none}
.contact-status[data-state='error'] {color:#ffedcc}
.contact-status[data-state='success'] {color:#fff}
.contact-mode {font-size:.85rem;border-left:3px solid #f9b233;padding-left:12px;margin-bottom:24px}
.contact-honeypot {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
#contact-submit:disabled {cursor:wait;opacity:.7}
.vs-contact-form[aria-busy='true'] .vs-contact-spinner {display:inline-block;visibility:visible;width:18px;height:18px;border:3px solid #ffffff66;border-top-color:#fff;border-radius:50%;margin:0 12px;vertical-align:middle;animation:contact-spin .8s linear infinite}
@keyframes contact-spin {to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.vs-contact-form[aria-busy='true'] .vs-contact-spinner {animation:none}}
