/* ============================================================
   FORMS (Gravity Forms)

   The Gravity Forms "Orbital" theme is switched off in
   functions.php (.gform-theme__disable-framework), so this file
   styles fields from scratch. Colours come from the --form-*
   variables in main.css.
   ============================================================ */

.gform_wrapper {
  max-width: var(--content-max-width);
  margin-inline: auto;
}

.gform_wrapper .gform_fields {
  row-gap: var(--space-xl);
}

.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label {
  display: block;
  margin-bottom: var(--space-2xs);
  color: var(--form-label);
  font-family: var(--ff-ui);
  font-size: 1.125rem;
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0.04em;
  line-height: 1.15;
  text-transform: uppercase;
}



.gform_wrapper input:not([type="submit"], [type="button"], [type="checkbox"], [type="radio"], [type="file"]),
.gform_wrapper textarea,
.gform_wrapper select {
  width: 100%;
  padding: var(--space-xs);
  border: 1px solid var(--form-field-border); /* every field is a box, like the message field */
  border-radius: 0;
  background: var(--form-field-bg);
  color: var(--color-text);
  transition: border-color var(--transition-fast);
}

.gform_wrapper textarea {
  min-height: 10rem;
}

.gform_wrapper :is(input, textarea, select):focus {
  outline: none;
  border-color: var(--form-field-border-focus);
}

.gform_wrapper .gfield_description {
  margin-top: var(--space-2xs);
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
}

.gform_wrapper .gform_footer {
  margin-top: var(--space-2xl);
}

.gform_wrapper .gform_button,
.gform_wrapper input[type="submit"] {
  padding: var(--space-xs) var(--space-xl);
  border: 1px solid var(--color-text);
  background: var(--color-text);
  color: var(--color-bg);
  font-family: var(--ff-ui);
  font-size: var(--fs-sm);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--transition-fast), color var(--transition-fast);
}

.gform_wrapper .gform_button:hover,
.gform_wrapper input[type="submit"]:hover {
  background: transparent;
  color: var(--color-text);
}

/* Validation */

.gform_wrapper .gfield_error :is(input, textarea, select) {
  border-color: var(--form-error);
}

.gform_wrapper .validation_message,
.gform_wrapper .gform_validation_errors {
  margin-top: var(--space-2xs);
  color: var(--form-error);
  font-size: var(--fs-sm);
}

.gform_confirmation_message {
  max-width: var(--content-max-width);
  margin-inline: auto;
  font-size: var(--fs-md);
}

.gform_wrapper ::placeholder {
  color: var(--color-text-muted);
  opacity: 0.6;
}

/* Error summary at the top of the form — quiet, on-brand.
   It sits outside the <form> (so outside gform-theme__disable-framework),
   hence the doubled class to outrank Gravity Forms' own theme. */
.gform_wrapper.gform_wrapper .gform_validation_errors {
  margin: 0 0 var(--space-xl);
  padding: var(--space-sm) var(--space-lg);
  border: 0;
  border-left: 2px solid var(--form-error);
  border-radius: 0;
  background: color-mix(in oklch, var(--form-error) 5%, transparent);
  box-shadow: none;
  outline: none;
}

.gform_wrapper.gform_wrapper .gform_validation_errors:focus {
  outline: none;
}

.gform_wrapper.gform_wrapper .gform_validation_errors .gform_submission_error {
  display: flex;
  gap: var(--space-2xs);
  margin: 0;
  color: var(--form-error);
  font-family: var(--ff-ui);
  font-size: var(--fs-xs);
  font-weight: 400;
  letter-spacing: 0.04em;
}

.gform_wrapper.gform_wrapper .gform_validation_errors .gform-icon {
  display: none;
}

.gform_wrapper.gform_wrapper .gform_validation_errors ol {
  margin: var(--space-2xs) 0 0;
  padding-left: var(--space-lg);
  font-size: var(--fs-sm);
}

.gform_wrapper.gform_wrapper .gform_validation_errors a {
  color: var(--form-error);
}
