/* ============================================================
   FORM SKIN — Gravity Forms + Fluent Forms restyled to the
   design system. Scoped under .jh-form. Token-driven.
   ============================================================ */

.jh-form { --_fs: 15px; }

/* Gravity Forms list scaffolding — no bullets, consistent spacing */
.jh-form .gform_fields,
.jh-form .gfield_checkbox,
.jh-form .gfield_radio { list-style: none; margin: 0; padding: 0; }
.jh-form .gform_fields > .gfield { margin-bottom: 22px; }
.jh-form .gfield_checkbox li,
.jh-form .gfield_radio li { display: flex; align-items: center; margin-bottom: 8px; }

/* Inputs / textarea / select (both plugins) */
.jh-form input[type="text"],
.jh-form input[type="email"],
.jh-form input[type="url"],
.jh-form input[type="tel"],
.jh-form input[type="number"],
.jh-form input[type="password"],
.jh-form textarea,
.jh-form select,
.jh-form .gform_wrapper .gfield input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="file"]),
.jh-form .gform_wrapper .gfield textarea,
.jh-form .gform_wrapper .gfield select,
.jh-form .fluentform .ff-el-form-control {
  width: 100%;
  font-family: var(--font-sans) !important;
  font-size: var(--_fs) !important;
  color: var(--text-primary) !important;
  background: var(--white) !important;
  border: 1px solid var(--border-strong) !important;
  border-radius: var(--radius-sm) !important;
  padding: 11px 14px !important;
  line-height: 1.4;
  outline: none;
  box-shadow: none !important;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}
.jh-form textarea, .jh-form .fluentform textarea.ff-el-form-control { min-height: 140px; resize: vertical; line-height: var(--lh-body); }
.jh-form input:focus, .jh-form textarea:focus, .jh-form select:focus,
.jh-form .fluentform .ff-el-form-control:focus,
.jh-form .gform_wrapper .gfield input:focus {
  border-color: var(--border-ink) !important;
  box-shadow: var(--shadow-ring) !important;
}
.jh-form ::placeholder { color: var(--text-muted); opacity: 1; }

/* Labels — eyebrow treatment */
.jh-form .gfield_label,
.jh-form .fluentform .ff-el-input--label label {
  font-family: var(--font-sans);
  font-size: var(--fs-eyebrow);
  font-weight: var(--fw-bold);
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--text-secondary);
}

/* Submit — solid black button (both plugins) */
.jh-form .gform_wrapper .gform_footer input[type="submit"],
.jh-form .gform_wrapper .gform_footer button,
.jh-form .fluentform .ff-btn-submit,
.jh-form button[type="submit"],
.jh-form input[type="submit"] {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--action) !important;
  background-image: none !important;
  color: var(--action-contrast) !important;
  border: 1px solid var(--action) !important;
  border-radius: var(--radius-sm) !important;
  font-family: var(--font-sans) !important;
  font-weight: var(--fw-bold) !important;
  font-size: 12px !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  padding: 15px 24px !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: background var(--dur) var(--ease);
}
.jh-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.jh-form .fluentform .ff-btn-submit:hover {
  background: var(--action-hover) !important;
  border-color: var(--action-hover) !important;
}

/* Checkboxes / radios — native, small, inline (never the text-input box) */
.jh-form input[type="checkbox"],
.jh-form input[type="radio"],
.jh-form .gform_wrapper .gfield input[type="checkbox"],
.jh-form .gform_wrapper .gfield input[type="radio"],
.jh-form .fluentform input[type="checkbox"],
.jh-form .fluentform input[type="radio"] {
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  margin: 0 8px 0 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  vertical-align: middle;
  accent-color: var(--ink);
  -webkit-appearance: auto !important;
  appearance: auto !important;
}
.jh-form .gform_wrapper .gfield_checkbox label,
.jh-form .gform_wrapper .gfield_radio label { display: inline; font-weight: var(--fw-regular); text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--text-primary); }

/* Validation (desaturated) */
.jh-form .gform_wrapper .validation_message,
.jh-form .fluentform .error, .jh-form .fluentform .text-danger { color: var(--danger) !important; font-size: var(--fs-caption); }
.jh-form .gform_wrapper .gfield_error input,
.jh-form .fluentform .ff-el-is-error .ff-el-form-control { border-color: var(--danger) !important; }

/* Confirmation / success */
.jh-form .gform_confirmation_message,
.jh-form .fluentform .ff-message-success {
  background: var(--surface-muted); border: 1px solid var(--border);
  border-left: 3px solid var(--success); border-radius: var(--radius-sm);
  padding: var(--space-4) var(--space-5); font-size: var(--fs-small);
}
