/* =========================================================
   BMC Gravity Forms styles

   Client-agnostic. Written against semantic tokens, so this drops onto any
   site where --brand, --ink-heading, --ink-body, --white and --text-* exist.

   SPECIFICITY NOTE
   Gravity Forms ships .gform_wrapper.gravity-theme rules at (0,3,1) and its
   stylesheet loads after ours. Matching that specificity loses on source
   order, so every rule here includes .gravity-theme to reach (0,3,1)+ and
   win outright. Removing it looks harmless and silently breaks the styling.
   ========================================================= */

.gform_wrapper.gravity-theme form { margin: 0; }

.gform_wrapper.gravity-theme .gform_required_legend {
  font-size: var(--text-s);
  color: var(--ink-body);
  margin-bottom: var(--space-s);
}

.gform_wrapper.gravity-theme .gfield { margin-bottom: var(--space-s); }

/* ---------------------------------------------------------
   Labels
   --------------------------------------------------------- */

.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label {
  display: inline-block;
  margin-bottom: .4em;
  font-family: inherit;
  font-size: var(--text-s);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1.4;
  color: var(--ink-heading);
}

.gform_wrapper.gravity-theme .gfield_required { color: var(--brand); }

.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper.gravity-theme .ginput_complex label {
  font-size: var(--text-2xs);
  color: var(--ink-body);
}

/* ---------------------------------------------------------
   Fields
   --------------------------------------------------------- */

.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="password"],
.gform_wrapper.gravity-theme input[type="date"],
.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gravity-theme select {
  width: 100%;
  font-family: inherit;
  font-size: var(--text-s);
  line-height: 1.5;
  color: var(--ink-heading);
  background-color: var(--white);
  border: 1px solid #bbbbbb;
  border-radius: 3px;
  padding: .7em .9em;
  transition: border-color .2s ease, box-shadow .2s ease;
}

.gform_wrapper.gravity-theme textarea { min-height: 8em; }

.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gravity-theme select:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent);
  outline: none;
}

.gform_wrapper.gravity-theme ::placeholder { color: #9a9a9a; opacity: 1; }

/* Checkboxes and radios keep the brand accent */
.gform_wrapper.gravity-theme input[type="checkbox"],
.gform_wrapper.gravity-theme input[type="radio"] {
  accent-color: var(--brand);
  width: auto;
}

/* ---------------------------------------------------------
   Submit. Mirrors button style 2: brand fill, inverting on hover.
   Kept in sync with the .btn--brand global class in Bricks.
   --------------------------------------------------------- */

.gform_wrapper.gravity-theme .gform_footer { margin-top: var(--space-m); padding: 0; }

.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme input[type="submit"],
.gform_wrapper.gravity-theme button[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  font-family: inherit;
  font-size: var(--text-s);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: var(--space-s) var(--space-l);
  border: 2px solid var(--brand);
  border-radius: 3px;
  background-color: var(--brand);
  color: var(--white);
  cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.gform_wrapper.gravity-theme .gform_button:hover,
.gform_wrapper.gravity-theme .gform_button:focus-visible,
.gform_wrapper.gravity-theme input[type="submit"]:hover,
.gform_wrapper.gravity-theme input[type="submit"]:focus-visible,
.gform_wrapper.gravity-theme button[type="submit"]:hover,
.gform_wrapper.gravity-theme button[type="submit"]:focus-visible {
  background-color: var(--white);
  color: var(--brand);
  border-color: var(--brand);
}

/* ---------------------------------------------------------
   Validation and confirmation
   --------------------------------------------------------- */

.gform_wrapper.gravity-theme .gform_validation_errors {
  border-color: var(--brand);
  background: color-mix(in srgb, var(--brand) 6%, transparent);
  box-shadow: none;
}

.gform_wrapper.gravity-theme .gform_validation_errors > h2 {
  font-size: var(--text-s);
  color: var(--brand);
}

.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper.gravity-theme .gfield_error select { border-color: var(--brand); }

.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message {
  font-size: var(--text-2xs);
  color: var(--brand);
  background: none;
  border: 0;
  padding: .3em 0 0;
}

.gform_confirmation_message {
  font-size: var(--text-m);
  color: var(--ink-heading);
  padding: var(--space-m);
  background: var(--surface-alt);
  border-left: 4px solid var(--brand);
}
