/* ============================================================================
   Gravity Forms on the Contact page, dressed as the React site's `.cf` form.
   ---------------------------------------------------------------------------
   The form renders with Gravity Forms' plain "gravity-theme" (see
   inc/gravity-forms.php), inside `.cf.cf--gf`, and these rules map its markup
   onto contact.css: the white card, the two-column grid, sunken controls, the
   chevron select, red errors and the blue pill submit.
   ========================================================================= */

.cf--gf .gform_wrapper { margin: 0; }
.cf--gf .gform_wrapper .gform_heading { display: none; }

.cf--gf .gform_wrapper .gform_fields {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: clamp(1rem, 0.8rem + 0.8vw, 1.4rem) !important;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media (min-width: 760px) {
  .cf--gf .gform_wrapper .gform_fields { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .cf--gf .gform_wrapper .gfield { grid-column: auto !important; }
  .cf--gf .gform_wrapper .gfield.cf__field--wide,
  .cf--gf .gform_wrapper .gfield--width-full.cf__field--wide { grid-column: 1 / -1 !important; }
}
.cf--gf .gform_wrapper .gfield { min-width: 0; margin: 0; padding: 0; }
.cf--gf .gform_wrapper .gfield.gform_hidden,
.cf--gf .gform_wrapper .gfield--type-honeypot,
.cf--gf .gform_wrapper .gform_validation_container { display: none !important; }

.cf--gf .gform_wrapper .gfield_label {
  display: block;
  margin: 0 0 0.45rem;
  padding: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 650;
  line-height: 1.45;
  color: var(--ink-900);
}
.cf--gf .gform_wrapper .gfield_required {
  margin-left: 0.15rem;
  color: var(--blue-600);
  font-size: inherit;
}
.cf--gf .gform_wrapper .gfield_required .gfield_required_text { display: none; }

.cf--gf .gform_wrapper .ginput_container { margin: 0; }

.cf--gf .gform_wrapper input[type="text"],
.cf--gf .gform_wrapper input[type="email"],
.cf--gf .gform_wrapper input[type="date"],
.cf--gf .gform_wrapper input.datepicker,
.cf--gf .gform_wrapper select,
.cf--gf .gform_wrapper textarea {
  width: 100% !important;
  min-height: 3rem;
  margin: 0;
  padding: 0.7rem 0.9rem;
  border: 0;
  border-radius: var(--r-md);
  background: var(--bg-sunken);
  box-shadow: inset 0 0 0 1px var(--border-strong);
  font-family: inherit;
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--ink-900);
  transition: box-shadow var(--d-fast) var(--ease-out-soft),
              background-color var(--d-fast) var(--ease-out-soft);
}
.cf--gf .gform_wrapper textarea { min-height: 7.5rem; height: auto; resize: vertical; }
.cf--gf .gform_wrapper input:hover,
.cf--gf .gform_wrapper select:hover,
.cf--gf .gform_wrapper textarea:hover { box-shadow: inset 0 0 0 1px var(--blue-300); }
.cf--gf .gform_wrapper input:focus-visible,
.cf--gf .gform_wrapper select:focus-visible,
.cf--gf .gform_wrapper textarea:focus-visible {
  outline: none;
  background: var(--white);
  box-shadow: inset 0 0 0 2px var(--blue-500);
}

.cf--gf .gform_wrapper .ginput_container_select { position: relative; }
.cf--gf .gform_wrapper select {
  appearance: none;
  -webkit-appearance: none;
  padding-right: 2.6rem;
  cursor: pointer;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='14' height='14' fill='none'%3E%3Cpath d='m4 6 4 4 4-4' stroke='%23475569' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.95rem center;
  background-size: 14px 14px;
}

/* Errors */
.cf--gf .gform_wrapper .gfield_error input,
.cf--gf .gform_wrapper .gfield_error select,
.cf--gf .gform_wrapper .gfield_error textarea { box-shadow: inset 0 0 0 2px var(--danger, #C0392B); }
.cf--gf .gform_wrapper .gfield_validation_message,
.cf--gf .gform_wrapper .validation_message {
  margin: 0.4rem 0 0;
  padding: 0;
  border: 0;
  background: none;
  font-size: var(--fs-xs);
  line-height: 1.45;
  color: var(--danger, #C0392B);
}
.cf--gf .gform_wrapper .gform_validation_errors {
  margin: 0 0 1.25rem;
  padding: 0.9rem 1.1rem;
  border: 0;
  border-radius: var(--r-md);
  background: color-mix(in srgb, var(--danger, #C0392B) 8%, var(--white));
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--danger, #C0392B) 35%, transparent);
}
.cf--gf .gform_wrapper .gform_validation_errors h2 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--danger, #C0392B);
}

/* Footer and submit */
.cf--gf .gform_wrapper .gform_footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.9rem 1.25rem;
  margin: clamp(1.5rem, 1.2rem + 1vw, 2rem) 0 0;
  padding: 0;
}
.cf--gf .gform_wrapper .gform_footer .cf__submit,
.cf--gf .gform_wrapper .gform_footer input[type="submit"] {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  width: auto;
  min-height: 3rem;
  margin: 0;
  padding: 0.75rem 1.6rem;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--blue-500);
  color: #fff;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: gap var(--d-base) var(--ease-out-expo),
              background-color var(--d-fast) var(--ease-out-soft),
              box-shadow var(--d-fast) var(--ease-out-soft);
}
.cf--gf .gform_wrapper .gform_footer .cf__submit:hover { gap: 0.85rem; background: var(--blue-600); box-shadow: var(--e-brand); }
.cf--gf .gform_wrapper .gform_ajax_spinner { margin-left: 0.5rem; }

/* Confirmation */
.cf--gf .gform_confirmation_message {
  font-size: var(--fs-lead);
  line-height: 1.6;
  color: var(--blue-600);
}

.cf__admin-note {
  margin: 0 0 1rem;
  padding: 0.7rem 1rem;
  border-radius: var(--r-md);
  background: var(--yellow-100, #FDFDE0);
  box-shadow: inset 0 0 0 1px var(--yellow-400, #E8E84A);
  font-size: var(--fs-xs);
  color: var(--ink-900);
}
