/* ---------- Form fields (both forms) ---------- */
.kb-form .wpcf7 { color: var(--kb-ink); font-family: var(--kb-font-body); }
.kb-form .wpcf7 form > p, .kb-form .wpcf7 fieldset > p { margin: 0 0 14px; }
.kb-form .wpcf7 label { display: block; font-size: 15px; font-weight: 600; color: var(--kb-ink); margin: 0 0 14px; }
.kb-form .kb-opt { font-weight: 400; color: var(--kb-body); }
.kb-form .wpcf7 input[type=text], .kb-form .wpcf7 input[type=email], .kb-form .wpcf7 input[type=tel],
.kb-form .wpcf7 select, .kb-form .wpcf7 textarea {
  display: block; width: 100%; box-sizing: border-box; margin-top: 6px; min-height: 48px; padding: 11px 13px;
  border: 1.5px solid #B9AF9A; border-radius: 10px; background: #fff; color: var(--kb-ink);
  font-family: var(--kb-font-body); font-size: 16px; line-height: 1.4;
}
.kb-form .wpcf7 input.kb-short { max-width: 190px; }
.kb-form .wpcf7 input:focus, .kb-form .wpcf7 select:focus, .kb-form .wpcf7 textarea:focus { border-color: var(--kb-gold-ink); box-shadow: 0 0 0 3px rgba(229, 178, 60, .3); }
.kb-form .wpcf7 input[type=file] { display: block; width: 100%; margin-top: 6px; padding: 10px; border: 1.5px dashed #B9AF9A; border-radius: 10px; background: #FFFDF8; font-size: 15px; }
.kb-form .wpcf7 input[type=submit], .kb-form .kb-next {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 26px;
  border: 0; border-radius: 10px; background: var(--kb-gold); color: var(--kb-navy);
  font-family: var(--kb-font-body); font-size: 15.5px; font-weight: 700; cursor: pointer; transition: background .16s, transform .16s;
}
.kb-form .wpcf7 input[type=submit]:hover, .kb-form .kb-next:hover { background: var(--kb-gold-hover); transform: translateY(-1px); }
.kb-form .kb-back { background: none; border: 0; min-height: 48px; padding: 0 6px; color: var(--kb-body); font: inherit; font-weight: 600; cursor: pointer; }
.kb-form .kb-form-help { margin: 16px 0 0; font-size: 15px; color: var(--kb-body); }
.kb-form .wpcf7-acceptance .wpcf7-list-item { margin: 0; }
.kb-form .wpcf7-acceptance label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; font-size: 15px; color: var(--kb-body); }
.kb-form .wpcf7-acceptance input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; }
.kb-form .wpcf7-not-valid-tip, .kb-form .kb-step-error { display: block; margin-top: 6px; color: #A1260D; font-size: 14.5px; font-weight: 600; }
.kb-form .wpcf7 .wpcf7-response-output { margin: 18px 0 0; padding: 12px 14px; border: 1.5px solid #B9AF9A; border-radius: 10px; font-size: 15px; color: var(--kb-ink); }
.kb-form .wpcf7 form.sent .wpcf7-response-output { border-color: #2E7D4F; }
.kb-form .wpcf7 form.invalid .wpcf7-response-output, .kb-form .wpcf7 form.failed .wpcf7-response-output { border-color: #A1260D; }

/* ---------- Valuation form: card, groups, choices ---------- */
.kb-steps-form { background: #fff; border: 1px solid var(--kb-line); border-radius: 18px; padding: 28px; box-shadow: 0 18px 44px rgba(26, 31, 40, .08); }
.kb-fs { border: 0; margin: 0 0 30px; padding: 0; min-width: 0; }
.kb-fs:last-of-type { margin-bottom: 0; }
.kb-fs legend { font-family: var(--kb-font-head); font-weight: 700; font-size: 21px; color: var(--kb-ink); padding: 0; margin: 0 0 6px; outline: none; }
.kb-fs__hint { font-size: 15.5px; color: var(--kb-body); }
.kb-choice { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.kb-choice .wpcf7-list-item { margin: 0; }
.kb-form .wpcf7 .kb-choice label {
  display: flex; align-items: center; gap: 10px; min-height: 56px; margin: 0; padding: 10px 14px;
  border: 1.5px solid var(--kb-line); border-radius: 14px; background: #fff; cursor: pointer;
  font-family: var(--kb-font-head); font-weight: 600; font-size: 16px; color: var(--kb-ink);
}
.kb-form .wpcf7 .kb-choice label:hover, .kb-form .wpcf7 .kb-choice label:has(input:checked) { border-color: var(--kb-gold-ink); background: #FFFAF0; }
/* The radio's own ring is switched off by older styles, so the whole card shows keyboard focus. */
#page .kb-form .wpcf7 .kb-choice label:has(input:focus-visible) { outline: 2px solid var(--kb-ink); outline-offset: 3px; }
.kb-choice input { width: 18px; height: 18px; margin: 0; accent-color: var(--kb-gold-ink); }
.kb-form-done h3 { font-family: var(--kb-font-head); font-weight: 700; font-size: 22px; color: var(--kb-ink); margin: 0 0 8px; }
.kb-form-done p { font-size: 16px; color: var(--kb-body); margin: 0; }
.kb-form-done { outline: none; }

/* ---------- Stepped mode (added by the script) ---------- */
.kb-progress { display: flex; gap: 8px; margin: 0 0 8px; }
.kb-progress i { flex: 1; height: 5px; border-radius: 5px; background: #E9E2D3; transition: background .3s; }
.kb-progress i.is-on { background: var(--kb-gold); }
.kb-progress__label { font-family: var(--kb-font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--kb-gold-ink); margin: 0 0 18px; }
.is-stepped .kb-fs { display: none; margin-bottom: 0; }
.is-stepped .kb-fs.is-current { display: block; }
.is-stepped.is-done .kb-fs, .is-stepped.is-done .kb-progress, .is-stepped.is-done .kb-progress__label { display: none; }
.kb-step-nav { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 22px; }
/* On the last step the script moves Send into the row with Back, and the help line below it. */
.kb-step-nav .wpcf7-spinner { margin: 0 8px; flex: 0 0 auto; }
.kb-step-nav input[type=submit] { margin-left: auto; }
.kb-fs p:empty { display: none; }
.kb-form [hidden] { display: none !important; }

@media (max-width: 600px) {
  .kb-steps-form { padding: 20px 16px; }
  .kb-choice { grid-template-columns: 1fr; }
  .kb-form .wpcf7 .kb-step-nav input[type=submit] { padding: 0 14px; font-size: 15px; white-space: normal; }
  .kb-step-nav .wpcf7-spinner { margin: 0 2px; }
}

/* The old Additional CSS insets and narrows every form; inside the new column it must not. */
#content .kb-form .wpcf7 { max-width: none; margin: 0; padding: 0; }

/* The spam-check widget is a fixed 300px: on the narrowest phones it borrows from the card's padding. */
@media (max-width: 380px) {
  .kb-steps-form .cf-turnstile { margin-left: -10px; margin-right: -10px; }
}

/* Last-step row: Back on the left edge of the text, the sending spinner in the middle, Send on the right. */
.kb-form .wpcf7 .kb-step-nav .kb-back { order: 1; padding-left: 0; background: none; box-shadow: none; color: var(--kb-body); }
.kb-form .wpcf7 .kb-step-nav .kb-back:hover, .kb-form .wpcf7 .kb-step-nav .kb-back:focus { background: none; color: var(--kb-ink); text-decoration: underline; }
.kb-step-nav .wpcf7-spinner { order: 2; }
.kb-form .wpcf7 .kb-step-nav input[type=submit], .kb-step-nav .kb-next { order: 3; margin-left: 0; }
.kb-form .kb-form-help { margin-top: 18px; }


/* The honeypot is for robots only: never shown, never reachable by keyboard. */
.kb-form .wpcf7 [class*="honeypot"], .kb-form .wpcf7 .hp-message { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }


/* Field edges at 3:1 against white; small text no smaller than 13px; labels 16px on phones. */
.kb-form .wpcf7 input[type=text], .kb-form .wpcf7 input[type=email], .kb-form .wpcf7 input[type=tel],
.kb-form .wpcf7 select, .kb-form .wpcf7 textarea, .kb-form .wpcf7 input[type=file] { border-color: #8C836F; }
.kb-progress__label { font-size: 13px; letter-spacing: .1em; }
@media (max-width: 600px) { .kb-form .wpcf7 label { font-size: 16px; } }
