/* ==========================================================================
   Forms: Gravity Forms 3.x (Orbital markup) styled to the theme tokens.
   Brand guideline §8.7: 1px Line borders, 2px corners, 48px field height,
   labels Plex Sans 600 above the field, helper text Ink soft 14px, orange 3px
   focus ring, errors as plain sentences in Error red beneath the field.

   Scope. The form is provisioned with cssClass "cgr-form" (inc/provision-form.php),
   which Gravity Forms places on the <form> and on the confirmation wrapper, and as
   "cgr-form_wrapper" on the outer .gform_wrapper. Everything here hangs off those
   plus GF's own class names. Enqueued by functions.php when this file exists.

   Specificity. GF prints its Orbital stylesheets after the theme's when the form is
   rendered from page content, so ties go to GF. Every selector is anchored on
   .gform_wrapper.cgr-form_wrapper[data-form-theme] (GF always sets that attribute),
   which puts each rule one or two steps above the most specific Orbital rule for the
   same element without resorting to !important.

   Colour tokens come from style.css. The one exception is the semantic error
   colour, which brand §5.5 reserves for forms and style.css does not define.
   ========================================================================== */

.gform_wrapper.cgr-form_wrapper[data-form-theme],
.gform_confirmation_wrapper.cgr-form[data-form-theme] {
  --cgr-error: #b42318;

  /* Map GF's theme variables to ours so anything not restyled below still lands on-brand. */
  --gf-color-primary: var(--cgr-navy) !important;
  --gf-color-primary-contrast: var(--cgr-white) !important;
  --gf-color-primary-darker: var(--cgr-navy-deep) !important;
  --gf-color-danger: var(--cgr-error) !important;
  --gf-ctrl-border-color: var(--cgr-line) !important;
  --gf-ctrl-border-color-hover: var(--cgr-line-strong) !important;
  --gf-ctrl-border-color-focus: var(--cgr-line) !important;
  --gf-ctrl-border-color-error: var(--cgr-error) !important;
  --gf-ctrl-bg-color: var(--cgr-surface) !important;
  --gf-ctrl-btn-font-family: var(--cgr-font) !important;

  max-width: 760px;
  margin: 0;
  font-family: var(--cgr-font);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--cgr-ink);
}

/* GF's own title, description and "(Required) indicates required fields" line.
   The page supplies the H1 and intro; the brief tags only the exception ("Company (optional)"). */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_heading { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_required_legend,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_required {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Honeypot container: GF hides it too; belt and braces. */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_container { display: none !important; }

/* --------------------------------------------------------------------------
   Layout: 12-column grid, 24px gutters. Half-width pairs (Name/Company,
   Email/Phone, the two-field conditional rows) stack below 768px.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_fields {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 28px var(--cgr-gutter);
  margin: 0;
  padding: 0;
  list-style: none;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield {
  grid-column: 1 / -1;
  position: relative;
  margin: 0;
  padding: 0;
  min-width: 0;
  background: none;
  border: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield--width-half { grid-column: span 6; }
@media (max-width: 767px) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_fields { gap: 24px 0; }
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield--width-half { grid-column: 1 / -1; }
}

/* Radio fields render as <fieldset>; strip the UA box. */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form fieldset.gfield {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}

/* --------------------------------------------------------------------------
   Labels, helper text, placeholders
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_label,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form legend.gfield_label {
  display: block;
  float: none;
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  font: 600 1rem/1.4 var(--cgr-font);
  color: var(--cgr-ink);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form legend.gfield_label + .ginput_container,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form legend.gfield_label + .gfield_description { clear: both; }

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_description {
  margin: 6px 0 0;
  padding: 0;
  font-size: 14px;
  line-height: 1.5;
  color: var(--cgr-ink-soft);
}

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form ::placeholder { color: var(--cgr-ink-muted); opacity: 1; }

/* --------------------------------------------------------------------------
   Text controls: 48px, 1px Line border, 2px radius, orange 3px focus ring
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input[type="text"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input[type="email"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input[type="tel"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input[type="number"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container textarea {
  display: block;
  width: 100%;
  min-height: 48px;
  margin: 0;
  padding: 11px 14px;
  font: 400 1rem/1.4 var(--cgr-font);
  color: var(--cgr-ink);
  background: var(--cgr-surface);
  border: 1px solid var(--cgr-line);
  border-radius: var(--cgr-radius);
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input:hover,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container textarea:hover { border-color: var(--cgr-line-strong); }

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input:focus,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container textarea:focus,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container input:focus-visible,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container textarea:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 2px;
  border-color: var(--cgr-line);
  box-shadow: none;
}

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .ginput_container textarea {
  min-height: 128px;   /* about four rows; grows with resize */
  line-height: 1.5;
  resize: vertical;
}

/* --------------------------------------------------------------------------
   Radios (default): a plain vertical list. Used as-is by Priority and the
   four-option Stainless "Where it's going" group.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_radio {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  margin: 0;
  padding: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input {
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  margin: 0;
  display: grid;
  place-content: center;
  background: var(--cgr-surface);
  border: 1px solid var(--cgr-line-strong);
  border-radius: 50%;
  cursor: pointer;
  transition: border-color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--cgr-navy);
  transform: scale(0);
  transition: transform .12s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input:hover { border-color: var(--cgr-navy); }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input:checked { border-color: var(--cgr-navy); }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input:checked::before { transform: scale(1); }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gfield-choice-input:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 2px;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gchoice .gform-field-label--type-inline {
  margin: 0;
  padding: 10px 0;
  font: 400 1rem/1.4 var(--cgr-font);
  color: var(--cgr-ink);
  cursor: pointer;
}

/* Short conditional groups (three options) sit in one row on desktop. */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-radios--row .gfield_radio {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 2px 28px;
}
@media (max-width: 767px) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-radios--row .gfield_radio { flex-direction: column; gap: 2px; }
}

/* --------------------------------------------------------------------------
   Inquiry-type selector: four equal outlined buttons, selected state solid
   navy with white text. The native radio stays in the DOM (keyboard, screen
   readers, GF conditional logic) stretched invisibly over its label, which
   is what gets painted.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield_radio {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gchoice {
  position: relative;
  display: block;
  min-height: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gchoice .gfield-choice-input {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  border: 0;
  border-radius: var(--cgr-radius);
  cursor: pointer;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gchoice .gfield-choice-input::before { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gchoice .gform-field-label--type-inline {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  height: 100%;
  padding: 10px 12px;
  text-align: center;
  font: 600 0.9375rem/1.3 var(--cgr-font);
  color: var(--cgr-navy);
  background: var(--cgr-surface);
  border: 1px solid var(--cgr-navy);
  border-radius: var(--cgr-radius);
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield-choice-input:hover + .gform-field-label--type-inline {
  background: var(--cgr-zone);
  color: var(--cgr-navy-deep);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield-choice-input:checked + .gform-field-label--type-inline {
  background: var(--cgr-navy);
  color: var(--cgr-white);
  border-color: var(--cgr-navy);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield-choice-input:focus-visible + .gform-field-label--type-inline {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 3px;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield-choice-input:focus-visible { outline: none; }
@media (max-width: 767px) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--inquiry .gfield_radio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --------------------------------------------------------------------------
   Conditional block copy (HTML fields). GF renders each conditional field on
   its own and animates it in; the lede sits once above the active set.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_html {
  margin: 0;
  padding: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--lede { margin-bottom: -8px; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-form__lede {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--cgr-ink-soft);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--photo-hint { margin-bottom: -16px; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-form__hint {
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--cgr-ink);
}

/* --------------------------------------------------------------------------
   Error state: field outlined in Error red, message as a plain sentence
   beneath the field. GF's summary heading stays (it receives focus and is
   announced) but loses its box and icon.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield.gfield_error {
  background: none;
  border: 0;
  padding: 0;
  margin: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .gfield_label,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error legend.gfield_label { color: var(--cgr-ink); }

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .ginput_container input[type="text"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .ginput_container input[type="email"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .ginput_container input[type="tel"],
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .ginput_container textarea,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error .gchoice .gfield-choice-input { border-color: var(--cgr-error); }

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error.cgr-field--inquiry .gfield_radio,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error.cgr-field--priority .gfield_radio,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_error.cgr-field--files .gform_fileupload_multifile {
  outline: 1px solid var(--cgr-error);
  outline-offset: 6px;
  border-radius: var(--cgr-radius);
}

.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gfield_validation_message,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .validation_message {
  display: block;
  margin: 6px 0 0;
  padding: 0;
  font: 400 14px/1.5 var(--cgr-font);
  color: var(--cgr-error);
  background: none;
  border: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .validation_message--hidden-on-empty:empty { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform-ul-reset { list-style: none; margin: 0; padding: 0; }

.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors {
  margin: 0 0 24px;
  padding: 2px 0 2px 14px;
  background: none;
  border: 0;
  border-left: 3px solid var(--cgr-error);
  border-radius: 0;
  box-shadow: none;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors:focus,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 3px;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors .gform_submission_error {
  display: block;
  margin: 0;
  padding: 0;
  font: 600 1rem/1.5 var(--cgr-font);
  color: var(--cgr-error);
  text-wrap: pretty;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors .gform-icon { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors ol { margin: 8px 0 0; padding-left: 20px; font-size: 14px; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .gform_validation_errors .gform_validation_error_link { color: var(--cgr-error); }

/* --------------------------------------------------------------------------
   File drop: dashed Line-strong panel on the zone grey. On phones the drag
   instruction goes and the browse button takes the row (it opens the camera
   and photo library through the native picker).
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_fileupload_multifile { margin: 0; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_area {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 140px;
  margin: 0;
  padding: 24px 16px;
  text-align: center;
  background: var(--cgr-zone);
  border: 1px dashed var(--cgr-line-strong);
  border-radius: var(--cgr-radius);
  color: var(--cgr-ink);
  transition: border-color .15s ease, background-color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_area::before { display: none; content: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_area.gform_dragover,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_area:hover {
  border-color: var(--cgr-navy);
  background: var(--cgr-zone-alt);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_instructions {
  display: block;
  margin: 0;
  font-size: 15px;
  line-height: 1.5;
  color: var(--cgr-ink);
}

/* Browse button: .btn.btn--md.btn--secondary */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_button_select_files {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  margin: 0;
  padding: 11px 22px;
  font: 600 0.9375rem/1 var(--cgr-font);
  color: var(--cgr-navy);
  background: var(--cgr-surface);
  border: 1px solid var(--cgr-navy);
  border-radius: var(--cgr-radius);
  box-shadow: none;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_button_select_files:hover {
  background: var(--cgr-zone);
  color: var(--cgr-navy-deep);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_button_select_files:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 3px;
}

/* GF's own rules line ("Accepted file types… Max. file size: 25 MB, Max. files: 10.") */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_fileupload_rules {
  display: block;
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--cgr-ink-muted);
}

/* Attached files: name, progress, labelled remove control. */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .ginput_preview_list {
  display: grid;
  gap: 8px;
  margin: 12px 0 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .ginput_preview_list:empty { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .ginput_preview {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  margin: 0;
  padding: 6px 6px 6px 14px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--cgr-ink);
  background: var(--cgr-surface);
  border: 1px solid var(--cgr-line);
  border-radius: var(--cgr-radius);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gfield_fileupload_filename {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gfield_fileupload_progress {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 0 0 auto;
  font: 500 12px/1 var(--cgr-mono);
  color: var(--cgr-ink-muted);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gfield_fileupload_progressbar {
  display: block;
  width: 72px;
  height: 4px;
  background: var(--cgr-line);
  border-radius: 2px;
  overflow: hidden;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gfield_fileupload_progressbar_progress {
  display: block;
  height: 100%;
  background: var(--cgr-navy);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gfield_fileupload_progress_complete .gfield_fileupload_progressbar { display: none; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_delete_file {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  margin: 0;
  padding: 0;
  background: none;
  border: 0;
  border-radius: var(--cgr-radius);
  color: var(--cgr-ink-soft);
  cursor: pointer;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_delete_file:hover { color: var(--cgr-error); background: var(--cgr-zone); }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_delete_file:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 2px;
}

@media (max-width: 767px) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_area {
    min-height: 0;
    padding: 16px;
    background: var(--cgr-surface);
  }
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_drop_instructions { display: none; }
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--files .gform_button_select_files { width: 100%; }
}

/* --------------------------------------------------------------------------
   Turnstile: sits between the file drop and the button. Managed mode handles
   its own accessibility; nothing here wraps or traps it.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--turnstile .ginput_container_turnstile { min-height: 65px; }
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .cgr-field--turnstile .cf-turnstile { display: block; }

/* --------------------------------------------------------------------------
   Submit: matches .btn.btn--lg.btn--primary from style.css. Right-aligned on
   desktop, full width on phones.
   -------------------------------------------------------------------------- */
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  margin: 12px 0 0;
  padding: 0;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  margin: 0;
  padding: 14px 32px;
  font: 600 1.0625rem/1 var(--cgr-font);
  color: var(--cgr-cta-ink);
  background: var(--cgr-cta);
  border: 1px solid var(--cgr-cta);
  border-radius: var(--cgr-radius);
  box-shadow: none;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button:hover {
  background: var(--cgr-cta-hover);
  border-color: var(--cgr-cta-hover);
  color: var(--cgr-cta-ink);
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 3px;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button:disabled,
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button[disabled] {
  opacity: .72;
  cursor: progress;
}
.gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_ajax_spinner {
  width: 20px;
  height: 20px;
  margin: 0;
}
@media (max-width: 767px) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer { justify-content: stretch; flex-direction: column; align-items: stretch; }
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form .gform_footer .gform_button { width: 100%; }
}

/* --------------------------------------------------------------------------
   Confirmation: replaces the form in place (ajax embed). A calm navy-text
   block; green is the brand's reserved success colour and appears only as
   the rule.
   -------------------------------------------------------------------------- */
.gform_confirmation_wrapper.cgr-form[data-form-theme] .gform_confirmation_message {
  margin: 0;
  padding: 24px;
  background: var(--cgr-zone);
  border: 1px solid var(--cgr-line);
  border-left: 3px solid var(--cgr-green);
  border-radius: var(--cgr-radius);
  font: 600 1.125rem/1.45 var(--cgr-font);
  color: var(--cgr-navy);
  text-wrap: pretty;
}
.gform_confirmation_wrapper.cgr-form[data-form-theme] .gform_confirmation_message p { margin: 0; }
.gform_confirmation_wrapper.cgr-form[data-form-theme] .gform_confirmation_message p + p {
  margin-top: 10px;
  font-size: 1rem;
  font-weight: 400;
  color: var(--cgr-ink);
}
.gform_confirmation_wrapper.cgr-form[data-form-theme] .gform_confirmation_message a { color: var(--cgr-navy); }
.gform_confirmation_wrapper.cgr-form[data-form-theme]:focus,
.gform_confirmation_wrapper.cgr-form[data-form-theme]:focus-visible {
  outline: 3px solid var(--cgr-orange);
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form *,
  .gform_wrapper.cgr-form_wrapper[data-form-theme] .cgr-form *::before { transition: none !important; }
}

/* GF's generated file-rules line is not approved copy; the helper text carries it. Keep it for assistive tech only. */
.gform_wrapper.cgr-form_wrapper .gform_fileupload_rules { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
