/* Real-time phone/email validation states (field-validate.js). Mirrors .quiz-error. */
.fv-msg { display: none; font-size: 12px; line-height: 1.4; color: #dc2626; margin: -4px 0 8px; text-align: left; font-family: inherit; }
.fv-msg.is-on { display: block; }
.fv-msg.is-ok { color: #16a34a; }
.fv-msg.is-suggest { color: #475569; }
.fv-suggest { font: inherit; font-weight: 600; color: var(--midnight, #454da1); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; }
.fv-suggest:hover { color: var(--turquoise, #21bfcf); }

input.is-invalid { border-color: #ff8a8a !important; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important; }
input.is-valid {
  border-color: #6fd3a5 !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316a34a' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 16px 16px;
  padding-right: 36px !important;
}

/* Dark popups (logo brief flow) */
.lgv1-brief-flow .fv-msg { color: #fca5a5; }
.lgv1-brief-flow .fv-msg.is-ok { color: #86efac; }
.lgv1-brief-flow .fv-msg.is-suggest { color: #cbd5e1; }
.lgv1-brief-flow .fv-suggest { color: #fff; }
.lgv1-brief-flow input.is-valid { background-color: transparent; }

/* SMS consent under every phone field (field-validate.js addConsent). Injected into many different
   forms, so its layout/typography is pinned against page-level label/input rules. Spans full width in grid/flex forms. */
.sa-sms-consent { display: flex !important; flex-direction: row !important; align-items: flex-start !important; gap: 8px !important; grid-column: 1 / -1; flex: 1 1 100%; width: 100%; box-sizing: border-box; margin: 4px 0 10px !important; padding: 0 !important; font-size: 12px !important; font-weight: 400 !important; line-height: 1.5 !important; letter-spacing: normal !important; text-transform: none !important; text-align: left !important; color: inherit; cursor: pointer; }
.sa-sms-consent span { display: block; margin: 0; padding: 0; text-indent: 0; opacity: 0.85; }
.sa-sms-consent input[type="checkbox"] { flex: none !important; width: 16px !important; height: 16px !important; min-height: 0 !important; margin: 2px 0 0 !important; padding: 0 !important; accent-color: var(--midnight, #454da1); cursor: pointer; }
.sa-sms-consent a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
