/* Gravity Forms styling for the quote form. Gravity Forms' own CSS is switched off (inc/gravity-form.php),
   so this file is the form's whole look. It mirrors the .field/.btn styles used by the static pages. */

.quote__card .gform_wrapper,
.quote__card .gform_wrapper form { margin: 0; }
.quote__card .gform_heading { display: none; }

.gform_wrapper .gform_fields { display: grid; gap: var(--sp-3); list-style: none; margin: 0; padding: 0; }
.gform_wrapper .gfield { margin: 0; padding: 0; min-width: 0; }
.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label { display: block; margin: 0 0 .4rem; font-weight: 600; font-size: var(--fs-body); color: var(--ink); }
/* Every field is required, so the "(Required)" tag is kept for screen readers only */
.gform_wrapper .gfield_required { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gform_wrapper .ginput_container { margin: 0; }

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea {
  width: 100%; padding: .9rem 1rem; border: 1px solid #aebac4; border-radius: var(--r-s);
  background: var(--white); color: var(--ink); font: inherit; line-height: 1.4; transition: border-color .2s, box-shadow .2s;
}
.gform_wrapper textarea { height: 8.5rem; min-height: 8rem; resize: vertical; }
.gform_wrapper input:focus,
.gform_wrapper textarea:focus { outline: none; border-color: var(--blue); box-shadow: 0 0 0 3px rgb(26 127 193 / .25); }

/* Validation */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error textarea { border-color: #d64545; }
.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message { margin: .4rem 0 0; color: #b42318; font-weight: 600; font-size: var(--fs-body); }
.gform_wrapper .gform_validation_errors { margin: 0 0 var(--sp-3); padding: 1rem 1.25rem; border: 1px solid #d64545; border-radius: var(--r-s); background: #fdf1f1; color: #8a1c13; }
.gform_wrapper .gform_validation_errors h2 { margin: 0; font-family: var(--f-body); font-size: var(--fs-body); font-weight: 700; letter-spacing: 0; line-height: 1.4; color: inherit; }
.gform_wrapper .gform_validation_errors h2::after { display: none; }
.gform_wrapper .gform_validation_errors ol { margin: .5rem 0 0; padding-left: 1.25rem; list-style: decimal; }
.gform_wrapper .gform_validation_errors a { color: inherit; }

/* Submit: same button as the rest of the site, full width inside the card */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer { margin: var(--sp-3) 0 0; padding: 0; }
.gform_wrapper .gform_footer .btn,
.gform_wrapper .gform_footer input[type="submit"] { width: 100%; cursor: pointer; }
.gform_wrapper .gform_ajax_spinner { margin-left: .75rem; vertical-align: middle; }

/* Honeypot must stay invisible */
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield--type-honeypot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* Confirmation message */
.quote__card .gform_confirmation_message,
.quote__card .gform_confirmation_wrapper { padding: var(--sp-4); border-radius: var(--r-m); background: var(--paper); color: var(--ink); }
.quote__card .gform_confirmation_message h3::after { display: none; }

/* Plain fallback shown when Gravity Forms is not installed */
.kmj-form-fallback { color: var(--ink); }
.kmj-form-fallback h3 { color: var(--ink); }
