input,
textarea,
select {
  width: 100%;
  padding: 0.875rem 1rem;
  border: 1px solid var(--form-border);
  border-radius: var(--radius);
  background: var(--form-bg);
  color: var(--form-text);
}

textarea {
  min-height: 10rem;
  resize: vertical;
}

input:focus,
textarea:focus,
select:focus {
  outline: 2px solid var(--form-focus);
  outline-offset: 0;
  border-color: var(--form-focus-border);
}

label {
  display: inline-block;
  margin-bottom: 0.5rem;
  font-family: var(--sans);
  font-weight: 600;
}

form .btn-layout {
  margin-top: 0.75rem;
}

/* ---------------------------------------------------------------------------
 * Gravity Forms — orbital theme baseline
 * Modern Gravity Forms ships its own orbital/foundation CSS that overrides
 * theme styling unless you neutralize it here. Override the GF CSS variables
 * (preferred) and add a small set of high-specificity resets. Theme pages
 * still apply their own button/colors via more specific selectors.
 * ------------------------------------------------------------------------- */
.gform_wrapper {
  --gf-color-primary: var(--brand);
  --gf-color-primary-rgb: var(--brand-rgb);
  --gf-color-primary-darker: var(--brand-dark);
  --gf-color-primary-contrast: var(--white);
  --gf-color-primary-contrast-darker: var(--white);
  --gf-color-secondary: var(--ink);
  --gf-color-secondary-darker: var(--black);
  --gf-color-secondary-contrast: var(--white);
  --gf-ctrl-border-color-focus: var(--brand);
  /* Gravity Forms' own error red. Not a design decision this theme makes, so it
     is named in the authority (--form-error) rather than typed here — a bare hex
     in a stylesheet is a colour a rebrand has to find by grep. */
  --gf-ctrl-border-color-error: var(--form-error);
}

/* Inline-form helper — apply on the wrapping element to render
 * "single input + submit button" forms (notify-me, newsletter, etc.) on one row. */
.gf-inline .gform_wrapper form {
  display: flex;
  flex-wrap: nowrap;
  align-items: stretch;
  gap: 0;
  background: var(--form-bg);
  border-radius: var(--radius);
  overflow: hidden;
  padding: 4px;
}
.gf-inline .gform_wrapper .gform_body,
.gf-inline .gform_wrapper .gform-body,
.gf-inline .gform_wrapper .gform_fields { flex: 1; margin: 0; padding: 0; }
.gf-inline .gform_wrapper .gfield { margin: 0 !important; padding: 0 !important; }
.gf-inline .gform_wrapper .gfield_label { display: none !important; }
.gf-inline .gform_wrapper input[type="email"],
.gf-inline .gform_wrapper input[type="text"] {
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}
.gf-inline .gform_wrapper .gform_footer {
  margin: 0 !important;
  padding: 0 !important;
  display: flex;
  align-items: stretch;
}
.gf-inline .gform_wrapper .gform_button.button {
  margin: 0 !important;
  width: auto !important;
}

/* GF sub-labels (First/Last under the Name field) can inherit a serif from
 * generic heading/label rules; keep them in the form's sans like every other
 * label. */
.gform-field-label--type-sub,
.ginput_complex label {
  font-family: var(--sans) !important;
}
