/* Kerr Ventures native lead form — shared styles.
   Per-site theming is done ONLY through the CSS variables below,
   set in the site's own stylesheet or config <style> block.
   Defaults are neutral so an unthemed embed still looks clean.
   Revision 2026-10-25 (WEB-1014 visual-fidelity remedy): the default
   font is a system sans stack, never a serif — --kv-font:inherit let
   an unthemed embed fall to the browser default serif (Times New
   Roman) on the 1014 staged page. Per-site themes set the site font.
   Spacing tightened the same day (field/label/input/textarea/
   disclosure/turnstile/button) — see the height adjudication in the
   1014 decisions record; contract-required elements were not removed. */
.kv-form{
  --kv-accent:#1f5fa8;          /* buttons, focus rings */
  --kv-accent-text:#ffffff;
  --kv-text:#222222;
  --kv-muted:#5a5a5a;
  --kv-border:#b9b9b9;
  --kv-bg:#ffffff;
  --kv-error:#b3261e;
  --kv-success-bg:#e7f4e7;
  --kv-success-text:#145214;
  --kv-radius:8px;
  --kv-font:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --kv-submit-width:auto;
  --kv-submit-min-width:220px;
  font-family:var(--kv-font);
  color:var(--kv-text);
  background:var(--kv-bg);
  max-width:640px;
}
.kv-form *{box-sizing:border-box}
.kv-form .kv-field{margin:0 0 12px}
.kv-form label{display:block;font-weight:600;margin:0 0 4px;font-size:1em}
.kv-form .kv-optional{font-weight:400;color:var(--kv-muted);font-size:.85em}
.kv-form input,.kv-form select,.kv-form textarea{
  width:100%;min-height:44px;padding:10px 12px;font:inherit;color:inherit;
  background:#fff;border:1.5px solid var(--kv-border);border-radius:var(--kv-radius);
}
.kv-form textarea{min-height:96px;resize:vertical}
.kv-form input:focus,.kv-form select:focus,.kv-form textarea:focus{
  outline:3px solid var(--kv-accent);outline-offset:1px;border-color:var(--kv-accent);
}
.kv-form [aria-invalid="true"]{border-color:var(--kv-error)}
.kv-form .kv-error-text{color:var(--kv-error);font-size:.9rem;margin:6px 0 0}
.kv-form .kv-disclosure{color:var(--kv-muted);font-size:.85rem;line-height:1.45;margin:8px 0}
.kv-form .kv-turnstile{margin:4px 0 12px;min-height:65px}
.kv-form button[type="submit"]{
  min-height:48px;width:100%;padding:12px 20px;font:inherit;font-weight:700;
  color:var(--kv-accent-text);background:var(--kv-accent);border:0;border-radius:var(--kv-radius);
  cursor:pointer;
}
.kv-form button[type="submit"]:hover{filter:brightness(1.08)}
.kv-form button[type="submit"]:disabled{opacity:.55;cursor:wait}
.kv-form .kv-status{border-radius:var(--kv-radius);padding:12px 14px;margin:0 0 12px;display:none}
.kv-form .kv-status.kv-status--success{display:block;background:var(--kv-success-bg);color:var(--kv-success-text)}
.kv-form .kv-status.kv-status--error{display:block;background:#fbeae8;color:var(--kv-error)}
@media (min-width:560px){
  .kv-form .kv-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .kv-form button[type="submit"]{width:var(--kv-submit-width);min-width:var(--kv-submit-min-width)}
}
/* File input: style the native "Choose Files" button to the site theme
   (CSS only — no markup or JS change). The input text ("No file chosen")
   inherits the form font. */
.kv-form input[type="file"]{padding:10px 12px;min-height:48px}
.kv-form input[type="file"]::file-selector-button,
.kv-form input[type="file"]::-webkit-file-upload-button{
  font:inherit;font-weight:600;color:var(--kv-accent-text);
  background:var(--kv-accent);border:0;border-radius:var(--kv-radius);
  padding:8px 16px;margin-right:12px;cursor:pointer;
}
.kv-form .kv-upload-progress{display:none;margin:0 0 12px;color:var(--kv-muted);font-size:.92rem}
.kv-form .kv-file-hint{color:var(--kv-muted);font-size:.85rem;margin:4px 0 0}
