/* Shared form validation + success banner (contact.html, careers.html) */
.req{color:var(--red-bright);font-weight:700;letter-spacing:0}
.form__req{font-size:12px;color:var(--muted);letter-spacing:.04em}
.field__hint{font-size:12px;color:#737B81;letter-spacing:.02em}
.field__err{display:none;align-items:center;gap:7px;font-size:12.5px;color:var(--red-bright);line-height:1.4}
.field__err::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--red-bright)}
.field.is-invalid .field__err{display:flex}
.field.is-invalid input,.field.is-invalid select,.field.is-invalid textarea{border-color:var(--red);background-color:rgba(227,27,35,.05)}
.field.is-valid input[type="file"]{border-color:#3C6E4E}

.form-alert{
  display:flex;align-items:flex-start;gap:14px;margin-bottom:clamp(20px,2.4vw,30px);
  padding:18px 20px;border:1px solid rgba(64,178,110,.45);border-left-width:3px;
  background:rgba(64,178,110,.08);border-radius:2px;color:var(--text);font-size:14px;line-height:1.6;
}
.form-alert[hidden]{display:none}
.form-alert svg{flex:none;stroke:#4FC482;margin-top:1px}
.form-alert b{display:block;font-weight:600;font-size:15px}
.form-alert span{color:var(--muted)}
.form-alert:focus{outline:none}

/* light-section variant: re-scope dark-theme tokens */
.bg-light .form,.bg-light .form-alert{--text:#14181B;--muted:#5A6167;--border:#D2D2CD;--card:#F7F7F5;--card-light:#fff;--surface:#EDEDEA}
.bg-light .field input::placeholder,.bg-light .field textarea::placeholder{color:#8A9196}
