body .ts-contact-form { scroll-margin-top: 120px; }
body .ts-contact-form .ts-contact-field { min-width: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
body .ts-contact-form .ts-contact-label { color: #345143; font-size: 14px; font-weight: 600; }
body .ts-contact-form .ts-contact-field--wide { grid-column: 1 / -1; }
body .ts-contact-form input:not([type="hidden"]),
body .ts-contact-form textarea { width: 100%; margin: 0; font-size: 16px; }
body .ts-contact-form [aria-invalid="true"] { border-color: #a02d28; }
body .ts-contact-form .ts-contact-field-error { color: #8c2925; font-size: 13px; line-height: 1.6; }
body .ts-contact-form > .ts-contact-status { display: block; grid-column: 1 / -1; padding: 14px 18px; margin: 0; border: 1px solid #b7c5b7; border-radius: 12px; color: #234b3c; background: #f1f6ef; font-size: 15px; line-height: 1.6; }
body .ts-contact-form > .ts-contact-status.is-error { color: #8c2925; background: #fff5f3; border-color: #d9aaa5; }
body .ts-contact-form > .ts-contact-status:focus-visible { outline: 2px solid #345143; outline-offset: 4px; }
body .ts-contact-form .ts-contact-honeypot,
body .ts-contact-form [hidden] { display: none !important; }
body .ts-contact-form button:disabled { cursor: wait; opacity: .8; }
body .ts-contact-form button[aria-busy="true"]::after { content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 10px; vertical-align: -2px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: ts-contact-spin .8s linear infinite; }
@keyframes ts-contact-spin { to { transform: rotate(360deg); } }
@media (max-width: 767px) { body .ts-contact-form { grid-template-columns: minmax(0, 1fr); } }
@media (prefers-reduced-motion: reduce) { body .ts-contact-form button[aria-busy="true"]::after { animation: none; } }
