/* Stark Securities — contact form states
   Additive only. Reuses the site's CSS variables (--cobalt, --slate, --line…)
   so the form looks identical until validation or submission changes state. */

/* Honeypot: visually removed, but still in the DOM for bots to fill. */
.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0;pointer-events:none}

/* Inline field errors */
.field.is-invalid input,
.field.is-invalid textarea{border-color:#C8362B}
.field.is-invalid input:focus,
.field.is-invalid textarea:focus{border-color:#C8362B;box-shadow:0 0 0 4px rgba(200,54,43,.12)}
.field-error{display:none;font-size:13px;line-height:1.4;color:#C8362B;margin-top:-2px}
.field.is-invalid .field-error{display:block}

/* Submit button busy state */
.btn.is-loading{opacity:.7;pointer-events:none}
.btn.is-loading .arr{animation:cf-nudge .9s ease-in-out infinite}
@keyframes cf-nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.btn.is-loading .arr{animation:none}}

/* Status message under the form (success / error) */
.form-status{margin-top:20px;padding:14px 16px;border-radius:10px;font-size:14px;font-weight:500;line-height:1.5;border:1.5px solid transparent}
.form-status.is-success{background:#EEF6F0;border-color:#BFE0C7;color:#1E6B3A}
.form-status.is-error{background:#FBEFEE;border-color:#F0C5C1;color:#A52A20}
.form-status a{color:inherit;font-weight:600}

/* Turnstile: invisible unless Cloudflare needs an interactive challenge */
.cf-turnstile{margin-top:16px}
.cf-turnstile:empty{display:none}
