/* ===========================================================================
   Gravity Forms — themed to match All-Pro Services (GF 2.4 legacy markup).
   GF's formsmain/readyclass/browsers CSS is dequeued (see inc/enqueue.php);
   only its reset remains, so these styles fully control appearance.
   =========================================================================== */

.gform_wrapper { max-width: none; margin: 0; }
.gform_wrapper .gform_title { font-family: var(--display); color: var(--navy-800); font-size: 1.4rem; margin: 0 0 .4em; }
.gform_wrapper .gform_description { color: var(--muted); display: block; margin-bottom: 1.2em; }

/* Field list — grid (supports half-width ready classes) */
.gform_wrapper ul.gform_fields {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
.gform_wrapper li.gfield { margin: 0; grid-column: 1 / -1; padding: 0; }
.gform_wrapper li.gfield.gf_left_half  { grid-column: 1 / 2; }
.gform_wrapper li.gfield.gf_right_half { grid-column: 2 / 3; }

/* Labels */
.gform_wrapper .gfield_label {
  display: block; font-weight: 700; font-size: .86rem;
  color: var(--navy-700); margin: 0 0 .45rem;
}
.gform_wrapper .gfield_required { color: var(--coral); margin-left: .15em; }

/* Inputs */
.gform_wrapper .ginput_container { margin-top: 0; }
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="number"],
.gform_wrapper select,
.gform_wrapper textarea {
  width: 100%; box-sizing: border-box; font: inherit;
  padding: .8em .9em; color: var(--ink); background: var(--paper);
  border: 1.5px solid var(--line); border-radius: 10px;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
  line-height: 1.4;
}
.gform_wrapper textarea { min-height: 130px; resize: vertical; }
.gform_wrapper select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316224a' stroke-width='2.2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right .85em center; background-size: 1em;
  padding-right: 2.4em;
}
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
  outline: none; border-color: var(--coral);
  box-shadow: 0 0 0 4px var(--coral-100); background: #fff;
}
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder { color: #9aa2b4; }

/* Sub-labels (name/address fields) and descriptions */
.gform_wrapper .ginput_complex label,
.gform_wrapper .gfield_description { font-size: .78rem; color: var(--muted); font-weight: 600; margin-top: .35rem; display: block; }
.gform_wrapper .ginput_complex .ginput_left,
.gform_wrapper .ginput_complex .ginput_right { box-sizing: border-box; }

/* Name field — first/last side by side, 50/50 */
.gform_wrapper .ginput_container_name {
  display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
.gform_wrapper .ginput_container_name > span { margin: 0; min-width: 0; }

/* Footer / submit */
.gform_wrapper .gform_footer { margin: 1.4rem 0 0; padding: 0; }
.gform_wrapper .gform_footer .btn--primary,
.gform_wrapper .gform-button { width: 100%; justify-content: center; }
.gform_wrapper .gform_ajax_spinner { margin-left: .8em; vertical-align: middle; }

/* Required-field validation */
.gform_wrapper li.gfield_error input,
.gform_wrapper li.gfield_error select,
.gform_wrapper li.gfield_error textarea { border-color: var(--coral); background: #fff7f7; }
.gform_wrapper .gfield_error .gfield_label { color: var(--coral-600); }
.gform_wrapper .validation_message { color: var(--coral-600); font-size: .82rem; font-weight: 600; margin-top: .4rem; }
.gform_wrapper .gform_validation_errors,
.gform_wrapper #gform_validation_error {
  background: #fff3f3; border: 1px solid var(--coral); color: var(--coral-600);
  border-radius: 10px; padding: .9em 1.1em; margin-bottom: 1.2em; font-weight: 600;
}

/* Confirmation message */
.gform_confirmation_message {
  background: var(--ice); border-radius: var(--radius);
  padding: 1.4em 1.6em; color: var(--navy-800); font-weight: 600;
}

/* Honeypot / hidden */
.gform_wrapper .gform_validation_container,
.gform_wrapper .gfield_visibility_hidden { display: none !important; }

@media (max-width: 560px) {
  .gform_wrapper ul.gform_fields { grid-template-columns: 1fr; }
  .gform_wrapper .ginput_container_name { grid-template-columns: 1fr; }
  .gform_wrapper li.gfield.gf_left_half,
  .gform_wrapper li.gfield.gf_right_half { grid-column: 1 / -1; }
}
