/*
 * Form validation state styling.
 * Applied dynamically by assets/js/form-validation.js to inputs and the
 * inline message element it inserts as a sibling.
 */

/* Red border on invalid inputs. */
input.input-error,
select.input-error,
textarea.input-error {
  border-color: #D06F30 !important;
  box-shadow: 0 0 0 1px rgba(208, 111, 48, 0.2);
}

/* Inline message element below the input. */
.bqb-validation-msg {
  margin-top: 6px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  line-height: 1.45;
}

.input-message {
  color: #5A6670;
}

.input-error.bqb-validation-msg,
.bqb-validation-msg.input-error {
  color: #D06F30;
}

.input-warning {
  color: #D06F30;
}

/* Email typo suggestion ("Did you mean ...?") was removed — .input-suggestion
   and .bqb-suggestion-accept rules deleted with it. */

/* ============================================================
   Consent gate — required checkbox attached to each form's existing
   SMS disclosure fine print (checkbox left, disclosure text right).
   Brand tokens fall back to exact hex (about.html uses --steel-teal).
   ============================================================ */
.consent-gate{display:flex;align-items:flex-start;gap:.5rem;margin:0 0 1rem;font-size:.85rem;line-height:1.45;color:var(--navy, #1B2A35);}
.consent-gate input.consent-checkbox{margin-top:.2rem;width:1rem;height:1rem;accent-color:var(--teal, #2E6B6A);flex:0 0 auto;cursor:pointer;}
.consent-text{font-size:.85rem;line-height:1.45;color:var(--navy, #1B2A35);}
.consent-text .sms-disclosure{margin:0;}
.consent-gate a{color:var(--teal, #2E6B6A);text-decoration:underline;}
.consent-gate a:hover{opacity:.85;}
button[disabled],.btn[disabled],[type="submit"][disabled]{opacity:.5;cursor:not-allowed;}
