/* ==========================================================================
   Ninja Forms — map the plugin's own markup onto the theme's form styling.

   Ninja Forms renders .nf-field-element / .nf-element instead of the theme's
   .form-control and .btn classes, so none of the theme styling reached it and
   the form fell back to raw browser defaults. The rules below mirror
   .form-control and .btn-primary from styles.css.
   ========================================================================== */

/* ── Layout & spacing ─────────────────────────────────── */
.nf-form-cont .nf-form-fields-required {
  font-size: .85rem;
  color: var(--text-muted);
  margin-bottom: 1.25rem;
}
.nf-form-cont .nf-field-container { margin-bottom: 1.25rem; }
.nf-form-cont .nf-before-field,
.nf-form-cont .nf-after-field { margin: 0; }
.nf-form-cont .nf-form-title { display: none; }

/* ── Labels ───────────────────────────────────────────── */
.nf-form-cont .nf-field-label label {
  display: block;
  margin-bottom: .45rem;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
}
.nf-form-cont .ninja-forms-req-symbol { color: var(--blue); }

/* ── Inputs ───────────────────────────────────────────── */
.nf-form-cont .nf-field-element input[type=text],
.nf-form-cont .nf-field-element input[type=email],
.nf-form-cont .nf-field-element input[type=tel],
.nf-form-cont .nf-field-element input[type=url],
.nf-form-cont .nf-field-element input[type=number],
.nf-form-cont .nf-field-element input[type=password],
.nf-form-cont .nf-field-element textarea,
.nf-form-cont .nf-field-element select {
  width: 100%;
  padding: .75rem 1rem;
  border: 1.5px solid var(--border);
  border-radius: 10px;
  background: var(--white);
  box-shadow: none;
  font-size: .95rem;
  font-family: inherit;
  color: var(--text);
  transition: var(--transition);
}

.nf-form-cont .nf-field-element input[type=text]:focus,
.nf-form-cont .nf-field-element input[type=email]:focus,
.nf-form-cont .nf-field-element input[type=tel]:focus,
.nf-form-cont .nf-field-element input[type=url]:focus,
.nf-form-cont .nf-field-element input[type=number]:focus,
.nf-form-cont .nf-field-element input[type=password]:focus,
.nf-form-cont .nf-field-element textarea:focus,
.nf-form-cont .nf-field-element select:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(29,78,216,0.1);
}

.nf-form-cont .nf-field-element textarea {
  resize: vertical;
  min-height: 150px;
}
.nf-form-cont .nf-field-element select {
  appearance: none;
  cursor: pointer;
}
.nf-form-cont .nf-field-element ::placeholder { color: var(--text-muted); }

/* ── Submit button ────────────────────────────────────── */
.nf-form-cont .submit-wrap { margin-top: 1.75rem; }
.nf-form-cont .nf-field-element input[type=button],
.nf-form-cont .nf-field-element input[type=submit],
.nf-form-cont .nf-field-element button[type=submit] {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  width: auto;
  padding: .85rem 2rem;
  border: none;
  border-radius: 50px;
  background: linear-gradient(135deg, var(--gold), var(--gold-light));
  color: var(--navy);
  box-shadow: 0 4px 15px rgba(245,158,11,0.35);
  font-size: .95rem;
  font-weight: 600;
  font-family: inherit;
  line-height: 1;
  cursor: pointer;
  transition: var(--transition);
}
.nf-form-cont .nf-field-element input[type=button]:hover,
.nf-form-cont .nf-field-element input[type=submit]:hover,
.nf-form-cont .nf-field-element button[type=submit]:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(245,158,11,0.45);
}
.nf-form-cont .nf-field-element input[type=button]:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}

/* ── Validation ───────────────────────────────────────── */
.nf-form-cont .nf-error .nf-field-element input,
.nf-form-cont .nf-error .nf-field-element textarea,
.nf-form-cont .nf-error .nf-field-element select {
  border-color: #dc2626;
}
.nf-form-cont .nf-error .nf-field-element input:focus,
.nf-form-cont .nf-error .nf-field-element textarea:focus {
  box-shadow: 0 0 0 3px rgba(220,38,38,0.12);
}
.nf-form-cont .nf-error-msg,
.nf-form-cont .ninja-forms-field-error {
  margin-top: .35rem;
  font-size: .85rem;
  color: #dc2626;
}
.nf-form-cont .nf-error.field-wrap .nf-field-element:after { display: none; }

/* ── Response / success message ───────────────────────── */
.nf-form-cont .nf-response-msg {
  padding: 1rem 1.25rem;
  border: 1.5px solid rgba(29,78,216,0.2);
  border-radius: var(--radius);
  background: var(--light-blue);
  color: var(--text);
}

/* ── Mobile ───────────────────────────────────────────── */
@media (max-width: 640px) {
  .nf-form-cont .nf-field-element input[type=button],
  .nf-form-cont .nf-field-element input[type=submit] {
    width: 100%;
    justify-content: center;
  }
}
