/*
 * Memphis Theme - Gravity Forms Base Stylesheet
 *
 * Fluent-inspired field styling for GF 2.5+ gravity-theme markup.
 * Selectors include .gravity-theme so we beat GF theme.css and Hello
 * Elementor's reset.css (which styles bare input/[type=submit] globally).
 *
 * Tokens from:
 *   dev/form-job-application.dc.html (fill, borders, radius, neutral accent)
 *   dev/utility-login.dc.html (150ms interaction timing, focus treatment)
 *
 * Per-site overrides: re-declare --gf-num-* on .gform_wrapper.
 * Enqueued by memphis_enqueue_gravity_forms_styles() in functions.php.
 */

/* Shared root for legacy + gravity-theme wrappers */
.gform_wrapper,
.gform_wrapper.gravity-theme,
.gform_wrapper.gform-theme {
  --gf-num-font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text",
                        "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell,
                        "Helvetica Neue", sans-serif;
  --gf-num-text: #2b3138;
  --gf-num-muted: #6a6a6a;
  --gf-num-label: #141414;
  --gf-num-placeholder: #6e6e73;

  /* Soft cool-gray fill — slight warmth, portable across brands.
     Override per site via --gf-num-input-bg on .gform_wrapper. */
  --gf-num-input-bg: #f1f1f0;
  --gf-num-input-bg-hover: #e8e8e7;
  --gf-num-input-bg-focus: #ffffff;

  --gf-num-input-border: #d9d9d8;
  --gf-num-input-border-hover: #c8c8c7;
  --gf-num-input-border-focus: #2b3138;

  --gf-num-input-radius: 6px;
  --gf-num-input-min-height: 48px;
  --gf-num-input-pad-x: 14px;
  --gf-num-input-pad-y: 12px;

  --gf-num-focus-ring: rgba(43, 49, 56, 0.15);
  --gf-num-focus-ring-width: 3px;
  --gf-num-transition: background-color 150ms ease,
                       border-color 150ms ease,
                       box-shadow 150ms ease,
                       color 150ms ease;

  --gf-num-check-size: 22px;
  --gf-num-check-color: #2b3138;
  --gf-num-check-bg: #f1f1f0;
  --gf-num-check-bg-hover: #e8e8e7;
  --gf-num-check-border: #d9d9d8;

  --gf-num-button-bg: #2b3138;
  --gf-num-button-bg-hover: #4a5058;
  --gf-num-button-text: #ffffff;
  --gf-num-button-radius: 5px;
  --gf-num-prev-bg: #f1f1f0;
  --gf-num-prev-text: #2b3138;

  --gf-num-space-xs: 4px;
  --gf-num-space-sm: 8px;
  --gf-num-space-md: 12px;
  --gf-num-space-lg: 20px;
  --gf-num-field-gap: 18px;
  --gf-num-footer-margin-top: 30px;

  font-family: var(--gf-num-font-family);
  color: var(--gf-num-text);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

.gform_wrapper,
.gform_wrapper.gravity-theme,
.gform_wrapper.gform-theme,
.gform_wrapper *,
.gform_wrapper.gravity-theme *,
.gform_wrapper.gform-theme * {
  font-family: inherit;
  box-sizing: border-box;
}

/* Hide GF chrome we replace with page titles.
   Fully collapse so no empty bordered box flashes above the steps. */
.gform_wrapper .gform_heading,
.gform_wrapper.gravity-theme .gform_heading,
.gform_wrapper .gform_required_legend,
.gform_wrapper.gravity-theme .gform_required_legend,
.gform_wrapper .gform_heading *,
.gform_wrapper.gravity-theme .gform_heading * {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  overflow: hidden !important;
  line-height: 0 !important;
  font-size: 0 !important;
}

/*
 * GF scroll target (#gf_{id}.gform_anchor). After submit the URL hash focuses
 * this empty div; sitewide :focus-visible rules then draw a full-width outline
 * that looks like a stray bordered container. Keep it as a scroll target but
 * remove any visible box.
 */
.gform_anchor,
div.gform_anchor,
.gform_wrapper .gform_anchor,
.gform_confirmation_wrapper + .gform_anchor,
.gform_anchor:focus,
.gform_anchor:focus-visible,
div.gform_anchor:focus,
div.gform_anchor:focus-visible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: -1px !important;
  padding: 0 !important;
  border: 0 !important;
  outline: none !important;
  outline-offset: 0 !important;
  box-shadow: none !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* Labels — beat .gform_wrapper.gravity-theme .gfield_label */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper .gfield_label,
.gform_wrapper.gravity-theme .gfield > legend.gfield_label,
.gform_wrapper .gfield > legend.gfield_label {
  display: block !important;
  margin: 0 0 var(--gf-num-space-sm) !important;
  padding: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  color: var(--gf-num-label) !important;
  line-height: 1.4 !important;
}

.gform_wrapper.gravity-theme .gfield_required,
.gform_wrapper .gfield_required {
  color: #b42318 !important;
  font-weight: 600 !important;
}

.gform_wrapper.gravity-theme .gfield_description,
.gform_wrapper .gfield_description {
  color: var(--gf-num-muted) !important;
  font-size: 0.875rem !important;
  margin-top: var(--gf-num-space-xs) !important;
}

.gform_wrapper.gravity-theme .gform_fields,
.gform_wrapper .gform_fields {
  row-gap: var(--gf-num-field-gap);
}

/* ------------- TEXT CONTROLS ------------- */
/* Specificity must beat Hello reset `input[type=text]` and GF
   `.gform_wrapper.gravity-theme input[type=text]` (padding/font only). */

.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="password"],
.gform_wrapper.gravity-theme input[type="search"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="date"],
.gform_wrapper.gravity-theme input[type="month"],
.gform_wrapper.gravity-theme input[type="time"],
.gform_wrapper.gravity-theme input[type="datetime"],
.gform_wrapper.gravity-theme input[type="datetime-local"],
.gform_wrapper.gravity-theme input[type="week"],
.gform_wrapper.gravity-theme input[type="color"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea,
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="password"],
.gform_wrapper input[type="search"],
.gform_wrapper input[type="number"],
.gform_wrapper input[type="date"],
.gform_wrapper input[type="month"],
.gform_wrapper input[type="time"],
.gform_wrapper input[type="datetime"],
.gform_wrapper input[type="datetime-local"],
.gform_wrapper input[type="week"],
.gform_wrapper input[type="color"],
.gform_wrapper select,
.gform_wrapper textarea {
  appearance: none !important;
  -webkit-appearance: none !important;
  background-color: var(--gf-num-input-bg) !important;
  background-image: none !important;
  border: 1px solid var(--gf-num-input-border) !important;
  border-radius: var(--gf-num-input-radius) !important;
  box-shadow: none !important;
  color: var(--gf-num-text) !important;
  font-size: 16px !important;
  line-height: 1.45 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: var(--gf-num-input-min-height) !important;
  padding: var(--gf-num-input-pad-y) var(--gf-num-input-pad-x) !important;
  margin: 0 !important;
  transition: var(--gf-num-transition) !important;
  outline: none !important;
}

.gform_wrapper.gravity-theme textarea,
.gform_wrapper textarea {
  min-height: 120px !important;
  resize: vertical !important;
}

.gform_wrapper.gravity-theme select,
.gform_wrapper select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%236a6a6a' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M4.5 6.5 8 10l3.5-3.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 16px !important;
  padding-right: 40px !important;
  cursor: pointer !important;
}

.gform_wrapper.gravity-theme input[type="text"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="email"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="url"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="tel"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="password"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="search"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="number"]:hover:not(:focus),
.gform_wrapper.gravity-theme input[type="date"]:hover:not(:focus),
.gform_wrapper.gravity-theme select:hover:not(:focus),
.gform_wrapper.gravity-theme textarea:hover:not(:focus),
.gform_wrapper input[type="text"]:hover:not(:focus),
.gform_wrapper input[type="email"]:hover:not(:focus),
.gform_wrapper input[type="url"]:hover:not(:focus),
.gform_wrapper input[type="tel"]:hover:not(:focus),
.gform_wrapper input[type="password"]:hover:not(:focus),
.gform_wrapper input[type="search"]:hover:not(:focus),
.gform_wrapper input[type="number"]:hover:not(:focus),
.gform_wrapper input[type="date"]:hover:not(:focus),
.gform_wrapper select:hover:not(:focus),
.gform_wrapper textarea:hover:not(:focus) {
  background-color: var(--gf-num-input-bg-hover) !important;
  border-color: var(--gf-num-input-border-hover) !important;
}

.gform_wrapper.gravity-theme input[type="text"]:focus,
.gform_wrapper.gravity-theme input[type="email"]:focus,
.gform_wrapper.gravity-theme input[type="url"]:focus,
.gform_wrapper.gravity-theme input[type="tel"]:focus,
.gform_wrapper.gravity-theme input[type="password"]:focus,
.gform_wrapper.gravity-theme input[type="search"]:focus,
.gform_wrapper.gravity-theme input[type="number"]:focus,
.gform_wrapper.gravity-theme input[type="date"]:focus,
.gform_wrapper.gravity-theme input[type="month"]:focus,
.gform_wrapper.gravity-theme input[type="time"]:focus,
.gform_wrapper.gravity-theme select:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper input[type="url"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="password"]:focus,
.gform_wrapper input[type="search"]:focus,
.gform_wrapper input[type="number"]:focus,
.gform_wrapper input[type="date"]:focus,
.gform_wrapper input[type="month"]:focus,
.gform_wrapper input[type="time"]:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
  background-color: var(--gf-num-input-bg-focus) !important;
  border-color: var(--gf-num-input-border-focus) !important;
  box-shadow: 0 0 0 var(--gf-num-focus-ring-width) var(--gf-num-focus-ring) !important;
  outline: none !important;
}

.gform_wrapper.gravity-theme input::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder,
.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder,
.gform_wrapper.gravity-theme input[type="number"]::placeholder,
.gform_wrapper input[type="number"]::placeholder {
  color: var(--gf-num-placeholder) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--gf-num-placeholder) !important;
}

.gform_wrapper.gravity-theme input::-webkit-input-placeholder,
.gform_wrapper input::-webkit-input-placeholder {
  color: var(--gf-num-placeholder) !important;
  opacity: 1 !important;
  -webkit-text-fill-color: var(--gf-num-placeholder) !important;
}

.gform_wrapper.gravity-theme input::-moz-placeholder,
.gform_wrapper input::-moz-placeholder {
  color: var(--gf-num-placeholder) !important;
  opacity: 1 !important;
}

/* Time: HH : MM + AM/PM — force flex (override GF gform-grid-*) so gaps are even */
.gform_wrapper.gravity-theme .gfield--type-time .ginput_complex,
.gform_wrapper .gfield--type-time .ginput_complex,
.gform_wrapper.gravity-theme .gfield--type-time .gform-grid-row,
.gform_wrapper .gfield--type-time .gform-grid-row,
.gform_wrapper.gravity-theme .gfield--type-time .ginput_container.ginput_complex,
.gform_wrapper .gfield--type-time .ginput_container.ginput_complex {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  column-gap: 6px !important;
  row-gap: 0 !important;
  gap: 6px !important;
  margin: 0 !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  padding-inline: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  --gf-form-gap-x: 0px;
  --gf-form-gap-y: 0px;
}

.gform_wrapper.gravity-theme .gfield--type-time .gform-grid-col,
.gform_wrapper .gfield--type-time .gform-grid-col,
.gform_wrapper.gravity-theme .gfield--type-time .ginput_container_time,
.gform_wrapper .gfield--type-time .ginput_container_time,
.gform_wrapper.gravity-theme .gfield_time_hour,
.gform_wrapper.gravity-theme .gfield_time_minute,
.gform_wrapper.gravity-theme .gfield_time_ampm,
.gform_wrapper .gfield_time_hour,
.gform_wrapper .gfield_time_minute,
.gform_wrapper .gfield_time_ampm,
.gform_wrapper.gravity-theme .gfield--type-time .hour_minute_colon,
.gform_wrapper .gfield--type-time .hour_minute_colon {
  display: block !important;
  flex: 0 0 auto !important;
  float: none !important;
  grid-column: auto !important;
  grid-row: auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  padding-inline: 0 !important;
  border: 0 !important;
  position: static !important;
}

.gform_wrapper.gravity-theme .gfield_time_hour input,
.gform_wrapper.gravity-theme .gfield_time_minute input,
.gform_wrapper .gfield_time_hour input,
.gform_wrapper .gfield_time_minute input {
  display: block !important;
  width: 4.75rem !important;
  min-width: 4.75rem !important;
  max-width: 4.75rem !important;
  margin: 0 !important;
  text-align: center !important;
  color: var(--gf-num-text) !important;
  -webkit-text-fill-color: var(--gf-num-text) !important;
  font-variant-numeric: tabular-nums !important;
}

.gform_wrapper.gravity-theme .gfield_time_minute input,
.gform_wrapper .gfield_time_minute input {
  letter-spacing: 0.02em !important;
}

.gform_wrapper .num-gf-time-stepper {
  position: relative !important;
  display: inline-block !important;
  width: 4.75rem !important;
  vertical-align: top !important;
}

.gform_wrapper .num-gf-time-stepper input {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  text-align: center !important;
  transition: padding-right 150ms ease !important;
}

.gform_wrapper .num-gf-time-stepper:hover input,
.gform_wrapper .num-gf-time-stepper:focus-within input {
  padding-right: 22px !important;
}

.gform_wrapper .num-gf-time-stepper__controls {
  position: absolute !important;
  top: 1px !important;
  right: 1px !important;
  bottom: 1px !important;
  width: 18px !important;
  display: flex !important;
  flex-direction: column !important;
  border-left: 1px solid var(--gf-num-input-border) !important;
  border-radius: 0 calc(var(--gf-num-input-radius) - 1px) calc(var(--gf-num-input-radius) - 1px) 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
  transition: opacity 150ms ease !important;
}

.gform_wrapper .num-gf-time-stepper:hover .num-gf-time-stepper__controls,
.gform_wrapper .num-gf-time-stepper:focus-within .num-gf-time-stepper__controls {
  opacity: 1 !important;
  pointer-events: auto !important;
}

.gform_wrapper .num-gf-time-stepper__btn {
  flex: 1 1 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--gf-num-input-bg-hover) !important;
  color: var(--gf-num-text) !important;
  cursor: pointer !important;
  line-height: 1 !important;
  box-shadow: none !important;
}

.gform_wrapper .num-gf-time-stepper__btn:hover {
  background: var(--gf-num-input-border) !important;
}

.gform_wrapper .num-gf-time-stepper__btn:focus-visible {
  outline: 2px solid var(--gf-num-input-border-focus) !important;
  outline-offset: -2px !important;
  z-index: 1 !important;
}

.gform_wrapper .num-gf-time-stepper__btn--up::before,
.gform_wrapper .num-gf-time-stepper__btn--down::before {
  content: "" !important;
  display: block !important;
  width: 0 !important;
  height: 0 !important;
  border-left: 4px solid transparent !important;
  border-right: 4px solid transparent !important;
}

.gform_wrapper .num-gf-time-stepper__btn--up::before {
  border-bottom: 5px solid var(--gf-num-text) !important;
}

.gform_wrapper .num-gf-time-stepper__btn--down::before {
  border-top: 5px solid var(--gf-num-text) !important;
}

.gform_wrapper.gravity-theme .gfield_time_ampm select,
.gform_wrapper .gfield_time_ampm select {
  display: block !important;
  width: 5.75rem !important;
  min-width: 5.75rem !important;
  max-width: 5.75rem !important;
  margin: 0 !important;
  padding-left: 12px !important;
  padding-right: 30px !important;
  text-align: left !important;
  color: var(--gf-num-text) !important;
}

.gform_wrapper.gravity-theme .gfield_time_hour input::placeholder,
.gform_wrapper.gravity-theme .gfield_time_minute input::placeholder,
.gform_wrapper .gfield_time_hour input::placeholder,
.gform_wrapper .gfield_time_minute input::placeholder {
  color: var(--gf-num-placeholder) !important;
  -webkit-text-fill-color: var(--gf-num-placeholder) !important;
  opacity: 1 !important;
  font-weight: 500 !important;
}

/* Colon — tight between hour and minute; AM/PM keeps extra offset below */
.gform_wrapper.gravity-theme .hour_minute_colon,
.gform_wrapper .hour_minute_colon,
.gform_wrapper.gravity-theme .gfield--type-time .hour_minute_colon,
.gform_wrapper .gfield--type-time .hour_minute_colon,
.gform_wrapper.gravity-theme .gfield--type-time .hour_minute_colon.below,
.gform_wrapper .gfield--type-time .hour_minute_colon.below {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 2px !important;
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  color: var(--gf-num-text) !important;
  line-height: var(--gf-num-input-min-height) !important;
  align-self: center !important;
  text-align: center !important;
}

.gform_wrapper.gravity-theme .gfield--type-time .gfield_time_ampm,
.gform_wrapper .gfield--type-time .gfield_time_ampm {
  margin-left: 6px !important;
}

/* ------------- NAME / ADDRESS / LIST (complex fields) ------------- */

/* Name: Prefix (sm) | First | Last | Suffix (sm) on one row; stack on small screens */
.gform_wrapper.gravity-theme .ginput_container_name,
.gform_wrapper .ginput_container_name,
.gform_wrapper.gravity-theme .ginput_complex.ginput_container_name,
.gform_wrapper .ginput_complex.ginput_container_name {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: flex-start !important;
  gap: var(--gf-num-space-md) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.gform_wrapper.gravity-theme .ginput_container_name > span,
.gform_wrapper .ginput_container_name > span,
.gform_wrapper.gravity-theme .name_first,
.gform_wrapper.gravity-theme .name_last,
.gform_wrapper.gravity-theme .name_middle,
.gform_wrapper.gravity-theme .name_prefix,
.gform_wrapper.gravity-theme .name_suffix,
.gform_wrapper .name_first,
.gform_wrapper .name_last,
.gform_wrapper .name_middle,
.gform_wrapper .name_prefix,
.gform_wrapper .name_suffix {
  display: block !important;
  float: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: none !important;
  box-sizing: border-box !important;
}

/* First / Last share the row equally */
.gform_wrapper.gravity-theme .ginput_container_name .name_first,
.gform_wrapper.gravity-theme .ginput_container_name .name_last,
.gform_wrapper .ginput_container_name .name_first,
.gform_wrapper .ginput_container_name .name_last {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
}

/* Middle (if used) also flexes with first/last */
.gform_wrapper.gravity-theme .ginput_container_name .name_middle,
.gform_wrapper .ginput_container_name .name_middle {
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
}

/* Prefix / Suffix stay compact when present */
.gform_wrapper.gravity-theme .ginput_container_name .name_prefix,
.gform_wrapper.gravity-theme .ginput_container_name .name_suffix,
.gform_wrapper .ginput_container_name .name_prefix,
.gform_wrapper .ginput_container_name .name_suffix {
  flex: 0 0 5.5rem !important;
  width: 5.5rem !important;
  max-width: 5.5rem !important;
}

.gform_wrapper.gravity-theme .ginput_container_name input,
.gform_wrapper.gravity-theme .ginput_container_name select,
.gform_wrapper .ginput_container_name input,
.gform_wrapper .ginput_container_name select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

@media (max-width: 767px) {
  .gform_wrapper.gravity-theme .ginput_container_name,
  .gform_wrapper .ginput_container_name {
    flex-direction: column !important;
  }

  .gform_wrapper.gravity-theme .ginput_container_name .name_first,
  .gform_wrapper.gravity-theme .ginput_container_name .name_last,
  .gform_wrapper.gravity-theme .ginput_container_name .name_middle,
  .gform_wrapper.gravity-theme .ginput_container_name .name_prefix,
  .gform_wrapper.gravity-theme .ginput_container_name .name_suffix,
  .gform_wrapper .ginput_container_name .name_first,
  .gform_wrapper .ginput_container_name .name_last,
  .gform_wrapper .ginput_container_name .name_middle,
  .gform_wrapper .ginput_container_name .name_prefix,
  .gform_wrapper .ginput_container_name .name_suffix {
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Address: street full width; City + State (and Zip + Country) share a row.
   Reset GF theme grid gutters so full-width rows don't shift left of halves. */
.gform_wrapper.gravity-theme .gfield--type-address,
.gform_wrapper .gfield--type-address,
.gform_wrapper.gravity-theme fieldset.gfield--type-address,
.gform_wrapper fieldset.gfield--type-address {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.gform_wrapper.gravity-theme .gfield--type-address > legend.gfield_label,
.gform_wrapper .gfield--type-address > legend.gfield_label {
  margin-left: 0 !important;
  padding-left: 0 !important;
  width: 100% !important;
  float: none !important;
}

.gform_wrapper.gravity-theme .ginput_container_address,
.gform_wrapper .ginput_container_address,
.gform_wrapper.gravity-theme .ginput_complex.ginput_container_address,
.gform_wrapper .ginput_complex.ginput_container_address,
.gform_wrapper.gravity-theme .ginput_container_address.gform-grid-row,
.gform_wrapper .ginput_container_address.gform-grid-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  column-gap: var(--gf-num-space-md) !important;
  row-gap: var(--gf-num-space-md) !important;
  gap: var(--gf-num-space-md) !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  padding-inline: 0 !important;
  box-sizing: border-box !important;
  --gf-form-gap-x: 0px;
  --gf-form-gap-y: 0px;
}

.gform_wrapper.gravity-theme .ginput_container_address > span,
.gform_wrapper .ginput_container_address > span,
.gform_wrapper.gravity-theme .ginput_container_address .gform-grid-col,
.gform_wrapper .ginput_container_address .gform-grid-col,
.gform_wrapper.gravity-theme .ginput_container_address .ginput_full,
.gform_wrapper.gravity-theme .ginput_container_address .ginput_left,
.gform_wrapper.gravity-theme .ginput_container_address .ginput_right,
.gform_wrapper .ginput_container_address .ginput_full,
.gform_wrapper .ginput_container_address .ginput_left,
.gform_wrapper .ginput_container_address .ginput_right {
  display: block !important;
  float: none !important;
  position: static !important;
  left: auto !important;
  right: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  clear: none !important;
  box-sizing: border-box !important;
}

.gform_wrapper.gravity-theme .ginput_container_address .ginput_full,
.gform_wrapper .ginput_container_address .ginput_full,
.gform_wrapper.gravity-theme .ginput_container_address .address_line_1,
.gform_wrapper.gravity-theme .ginput_container_address .address_line_2,
.gform_wrapper .ginput_container_address .address_line_1,
.gform_wrapper .ginput_container_address .address_line_2 {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
}

.gform_wrapper.gravity-theme .ginput_container_address .ginput_left,
.gform_wrapper.gravity-theme .ginput_container_address .ginput_right,
.gform_wrapper.gravity-theme .ginput_container_address .address_city,
.gform_wrapper.gravity-theme .ginput_container_address .address_state,
.gform_wrapper.gravity-theme .ginput_container_address .address_zip,
.gform_wrapper.gravity-theme .ginput_container_address .address_country,
.gform_wrapper .ginput_container_address .ginput_left,
.gform_wrapper .ginput_container_address .ginput_right,
.gform_wrapper .ginput_container_address .address_city,
.gform_wrapper .ginput_container_address .address_state,
.gform_wrapper .ginput_container_address .address_zip,
.gform_wrapper .ginput_container_address .address_country {
  grid-column: auto !important;
  width: auto !important;
  max-width: none !important;
}

.gform_wrapper.gravity-theme .ginput_container_address input,
.gform_wrapper.gravity-theme .ginput_container_address select,
.gform_wrapper .ginput_container_address input,
.gform_wrapper .ginput_container_address select {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.gform_wrapper.gravity-theme .ginput_container_address .gf_clear,
.gform_wrapper.gravity-theme .ginput_container_address .gf_clear_complex,
.gform_wrapper .ginput_container_address .gf_clear,
.gform_wrapper .ginput_container_address .gf_clear_complex {
  display: none !important;
}

.gform_wrapper.gravity-theme .ginput_complex label,
.gform_wrapper.gravity-theme .ginput_container_name label,
.gform_wrapper.gravity-theme .ginput_container_address label,
.gform_wrapper .ginput_complex label,
.gform_wrapper .ginput_container_name label,
.gform_wrapper .ginput_container_address label {
  display: block !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--gf-num-muted) !important;
  margin: var(--gf-num-space-xs) 0 0 !important;
  padding: 0 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.gform_wrapper.gravity-theme .gfield_list_container,
.gform_wrapper .gfield_list_container,
.gform_wrapper.gravity-theme .gfield_list,
.gform_wrapper .gfield_list {
  width: 100% !important;
  border-collapse: separate !important;
  border-spacing: 0 var(--gf-num-space-sm) !important;
}

.gform_wrapper.gravity-theme .gfield_list th,
.gform_wrapper .gfield_list th {
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  color: var(--gf-num-muted) !important;
  text-align: left !important;
  padding: 0 var(--gf-num-space-xs) var(--gf-num-space-xs) !important;
}

.gform_wrapper.gravity-theme .gfield_list td,
.gform_wrapper .gfield_list td {
  padding: 0 var(--gf-num-space-xs) !important;
  vertical-align: middle !important;
}

.gform_wrapper.gravity-theme .gfield_list_icons,
.gform_wrapper .gfield_list_icons,
.gform_wrapper.gravity-theme .gfield_list_group,
.gform_wrapper .gfield_list_group {
  gap: var(--gf-num-space-sm) !important;
}

.gform_wrapper.gravity-theme .gfield_list_icons button,
.gform_wrapper.gravity-theme .gfield_list_icons img,
.gform_wrapper .gfield_list_icons button,
.gform_wrapper .gfield_list_icons img,
.gform_wrapper.gravity-theme .add_list_item,
.gform_wrapper.gravity-theme .delete_list_item,
.gform_wrapper .add_list_item,
.gform_wrapper .delete_list_item {
  cursor: pointer !important;
  opacity: 0.7 !important;
}

.gform_wrapper.gravity-theme .gfield_list_icons button:hover,
.gform_wrapper .gfield_list_icons button:hover,
.gform_wrapper.gravity-theme .add_list_item:hover,
.gform_wrapper.gravity-theme .delete_list_item:hover,
.gform_wrapper .add_list_item:hover,
.gform_wrapper .delete_list_item:hover {
  opacity: 1 !important;
}

/* ------------- CHECKBOXES ------------- */

.gform_wrapper.gravity-theme input[type="checkbox"],
.gform_wrapper input[type="checkbox"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  display: inline-block !important;
  width: var(--gf-num-check-size) !important;
  min-width: var(--gf-num-check-size) !important;
  height: var(--gf-num-check-size) !important;
  min-height: var(--gf-num-check-size) !important;
  margin: 0 10px 0 0 !important;
  padding: 0 !important;
  background-color: var(--gf-num-check-bg) !important;
  background-image: none !important;
  border: 1px solid var(--gf-num-check-border) !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  cursor: pointer !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
  position: relative !important;
  top: 0 !important;
  transition: var(--gf-num-transition) !important;
}

.gform_wrapper.gravity-theme input[type="checkbox"]:hover,
.gform_wrapper input[type="checkbox"]:hover {
  background-color: var(--gf-num-check-bg-hover) !important;
  border-color: var(--gf-num-input-border-hover) !important;
}

.gform_wrapper.gravity-theme input[type="checkbox"]:checked,
.gform_wrapper input[type="checkbox"]:checked {
  background-color: var(--gf-num-check-color) !important;
  border-color: var(--gf-num-check-color) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.5 6.5 11.5 12.5 4.5'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 14px 14px !important;
}

.gform_wrapper.gravity-theme input[type="checkbox"]:focus,
.gform_wrapper input[type="checkbox"]:focus {
  outline: none !important;
  box-shadow: 0 0 0 var(--gf-num-focus-ring-width) var(--gf-num-focus-ring) !important;
}

/* Choice rows: center control with label (no negative margins) */
.gform_wrapper.gravity-theme .gchoice,
.gform_wrapper .gchoice {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  margin: 0 0 var(--gf-num-space-sm) 0 !important;
  padding: 0 !important;
  gap: 0 !important;
}

/* Space between primary field label and option list (radio + checkbox) */
.gform_wrapper.gravity-theme .ginput_container_radio,
.gform_wrapper.gravity-theme .ginput_container_checkbox,
.gform_wrapper .ginput_container_radio,
.gform_wrapper .ginput_container_checkbox {
  margin-top: 8px !important;
  padding-top: 0 !important;
}

.gform_wrapper.gravity-theme .gfield--type-radio > legend.gfield_label,
.gform_wrapper.gravity-theme .gfield--type-checkbox > legend.gfield_label,
.gform_wrapper.gravity-theme .gfield--type-choice > legend.gfield_label,
.gform_wrapper.gravity-theme legend.gfield_label_before_complex,
.gform_wrapper .gfield--type-radio > legend.gfield_label,
.gform_wrapper .gfield--type-checkbox > legend.gfield_label,
.gform_wrapper .gfield--type-choice > legend.gfield_label,
.gform_wrapper legend.gfield_label_before_complex {
  margin: 0 0 8px 0 !important;
  padding: 0 !important;
}

.gform_wrapper.gravity-theme .gfield_checkbox label,
.gform_wrapper.gravity-theme .gfield_radio label,
.gform_wrapper .gfield_checkbox label,
.gform_wrapper .gfield_radio label,
.gform_wrapper.gravity-theme .gchoice label,
.gform_wrapper .gchoice label {
  display: inline-block !important;
  font-size: 1.0625rem !important;
  line-height: 1.35 !important;
  font-weight: 400 !important;
  color: var(--gf-num-text) !important;
  cursor: pointer !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}

/* ------------- RADIOS (style the input directly — same order as checkboxes) ------------- */

.gform_wrapper.gravity-theme input[type="radio"],
.gform_wrapper input[type="radio"] {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: static !important;
  display: inline-block !important;
  width: var(--gf-num-check-size) !important;
  min-width: var(--gf-num-check-size) !important;
  height: var(--gf-num-check-size) !important;
  min-height: var(--gf-num-check-size) !important;
  margin: 0 10px 0 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  background-color: var(--gf-num-check-bg) !important;
  background-image: none !important;
  border: 1px solid var(--gf-num-check-border) !important;
  border-radius: 50% !important;
  box-shadow: none !important;
  cursor: pointer !important;
  vertical-align: middle !important;
  flex-shrink: 0 !important;
  position: relative !important;
  top: 0 !important;
  transition: var(--gf-num-transition) !important;
}

.gform_wrapper.gravity-theme input[type="radio"]:hover,
.gform_wrapper input[type="radio"]:hover {
  background-color: var(--gf-num-check-bg-hover) !important;
  border-color: var(--gf-num-input-border-hover) !important;
}

/* Unchecked = open circle; checked = open circle + solid center dot (not a filled disc) */
.gform_wrapper.gravity-theme input[type="radio"]:checked,
.gform_wrapper input[type="radio"]:checked {
  background-color: var(--gf-num-input-bg-focus) !important;
  border-color: var(--gf-num-check-color) !important;
  background-image: radial-gradient(
    circle,
    var(--gf-num-check-color) 0%,
    var(--gf-num-check-color) 35%,
    var(--gf-num-input-bg-focus) 38%
  ) !important;
}

.gform_wrapper.gravity-theme input[type="radio"]:focus,
.gform_wrapper input[type="radio"]:focus {
  outline: none !important;
  box-shadow: 0 0 0 var(--gf-num-focus-ring-width) var(--gf-num-focus-ring) !important;
}

/* Kill any leftover label-pseudo radio chrome */
.gform_wrapper.gravity-theme input[type="radio"] + label::before,
.gform_wrapper.gravity-theme input[type="radio"] + label::after,
.gform_wrapper input[type="radio"] + label::before,
.gform_wrapper input[type="radio"] + label::after {
  content: none !important;
  display: none !important;
}

.gform_wrapper.gravity-theme input[type="radio"] + label,
.gform_wrapper input[type="radio"] + label {
  position: static !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  line-height: 1.35 !important;
}

/* ------------- SUBMIT — beat Hello pink [type=submit] reset ------------- */

.gform_wrapper.gravity-theme .gform_footer,
.gform_wrapper.gravity-theme .gform_page_footer,
.gform_wrapper.gravity-theme .gform-footer,
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer,
.gform_wrapper .gform-footer {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  margin-top: var(--gf-num-footer-margin-top, 30px) !important;
  margin-bottom: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* GF appends hidden inputs + <br /> after footer buttons — collapse that bloat */
.gform_wrapper .gform_page_footer br,
.gform_wrapper .gform_footer br,
.gform_wrapper .gform-page-footer br {
  display: none !important;
}

.gform_wrapper .gform_page_footer .gform_hidden,
.gform_wrapper .gform_footer .gform_hidden,
.gform_wrapper .gform-page-footer .gform_hidden {
  display: none !important;
}

/* Shared size for Submit, Next, Previous, and Save & Continue.
   Inputs are replaced elements — height/line-height must match exactly. */
.gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_footer input[type="button"],
.gform_wrapper.gravity-theme .gform_footer button,
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"],
.gform_wrapper.gravity-theme .gform_page_footer input[type="button"],
.gform_wrapper.gravity-theme .gform_page_footer button,
.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme input.gform_button,
.gform_wrapper.gravity-theme input.gform_button.button,
.gform_wrapper.gravity-theme input.gform_previous_button,
.gform_wrapper.gravity-theme input.gform_previous_button.button,
.gform_wrapper.gravity-theme input.gform_next_button,
.gform_wrapper.gravity-theme input.gform_next_button.button,
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme .gform_previous_button.button,
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme .gform_next_button.button,
.gform_wrapper.gravity-theme .gform_save_link,
.gform_wrapper.gravity-theme .gform_save_link.button,
.gform_wrapper.gravity-theme button.gform_save_link,
.gform_wrapper.gravity-theme a.gform_save_link,
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer input[type="button"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="button"],
.gform_wrapper .gform_page_footer button,
.gform_wrapper .gform_button,
.gform_wrapper input.gform_button,
.gform_wrapper input.gform_button.button,
.gform_wrapper input.gform_previous_button,
.gform_wrapper input.gform_previous_button.button,
.gform_wrapper input.gform_next_button,
.gform_wrapper input.gform_next_button.button,
.gform_wrapper .gform_previous_button,
.gform_wrapper .gform_previous_button.button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_next_button.button,
.gform_wrapper .gform_save_link,
.gform_wrapper .gform_save_link.button,
.gform_wrapper button.gform_save_link,
.gform_wrapper a.gform_save_link {
  appearance: none !important;
  -webkit-appearance: none !important;
  display: inline-block !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 140px !important;
  height: 48px !important;
  min-height: 48px !important;
  max-height: 48px !important;
  margin: 0 10px 10px 0 !important;
  padding: 0 22px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -0.01em !important;
  line-height: 48px !important;
  cursor: pointer !important;
  border: 0 !important;
  border-radius: var(--gf-num-button-radius) !important;
  background-color: var(--gf-num-button-bg) !important;
  background-image: none !important;
  color: var(--gf-num-button-text) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  text-align: center !important;
  transition: var(--gf-num-transition) !important;
}

/* Buttons (not inputs) need flex for icon+label; keep same box size */
.gform_wrapper.gravity-theme button.gform_save_link,
.gform_wrapper.gravity-theme .gform_save_link.button,
.gform_wrapper button.gform_save_link,
.gform_wrapper .gform_save_link.button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* Footer flex gap handles spacing — no per-button margins */
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_page_footer input[type="button"],
.gform_wrapper .gform_page_footer button,
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer input[type="button"],
.gform_wrapper .gform_footer button,
.gform_wrapper .gform-page-footer input[type="submit"],
.gform_wrapper .gform-page-footer input[type="button"],
.gform_wrapper .gform-page-footer button {
  margin: 0 !important;
}

.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_footer button:hover,
.gform_wrapper.gravity-theme .gform_page_footer input[type="submit"]:hover,
.gform_wrapper.gravity-theme .gform_page_footer button:hover,
.gform_wrapper.gravity-theme .gform_button:hover,
.gform_wrapper.gravity-theme input.gform_button.button:hover,
.gform_wrapper.gravity-theme input[type="submit"]:hover,
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer button:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer button:hover,
.gform_wrapper .gform_button:hover,
.gform_wrapper input.gform_button.button:hover,
.gform_wrapper input[type="submit"]:hover {
  background-color: var(--gf-num-button-bg-hover) !important;
  background-image: none !important;
  border-color: var(--gf-num-button-bg-hover) !important;
  color: var(--gf-num-button-text) !important;
}

.gform_wrapper.gravity-theme .gform_footer input[type="submit"]:focus,
.gform_wrapper.gravity-theme .gform_button:focus,
.gform_wrapper .gform_footer input[type="submit"]:focus,
.gform_wrapper .gform_button:focus {
  outline: none !important;
  box-shadow: 0 0 0 var(--gf-num-focus-ring-width) var(--gf-num-focus-ring) !important;
}

/* Secondary actions: Previous + Save & Continue (same size, lighter fill) */
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme .gform_previous_button.button,
.gform_wrapper.gravity-theme .gform_save_link,
.gform_wrapper.gravity-theme .gform_save_link.button,
.gform_wrapper.gravity-theme a.gform_save_link,
.gform_wrapper.gravity-theme button.gform_save_link,
.gform_wrapper .gform_previous_button,
.gform_wrapper .gform_previous_button.button,
.gform_wrapper .gform_save_link,
.gform_wrapper .gform_save_link.button,
.gform_wrapper a.gform_save_link,
.gform_wrapper button.gform_save_link {
  background-color: var(--gf-num-prev-bg) !important;
  color: var(--gf-num-prev-text) !important;
  gap: 8px !important;
}

.gform_wrapper.gravity-theme .gform_save_link svg,
.gform_wrapper .gform_save_link svg {
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
  display: block !important;
}

/* Keep Save & Continue away from primary nav — right-aligned in footer */
.gform_wrapper.gravity-theme .gform_footer .gform_save_link,
.gform_wrapper.gravity-theme .gform_page_footer .gform_save_link,
.gform_wrapper.gravity-theme .gform_footer a.gform_save_link,
.gform_wrapper.gravity-theme .gform_page_footer a.gform_save_link,
.gform_wrapper.gravity-theme .gform_footer button.gform_save_link,
.gform_wrapper.gravity-theme .gform_page_footer button.gform_save_link,
.gform_wrapper .gform_footer .gform_save_link,
.gform_wrapper .gform_page_footer .gform_save_link,
.gform_wrapper .gform_footer a.gform_save_link,
.gform_wrapper .gform_page_footer a.gform_save_link,
.gform_wrapper .gform_footer button.gform_save_link,
.gform_wrapper .gform_page_footer button.gform_save_link {
  margin-left: auto !important;
  margin-right: 0 !important;
}

.gform_wrapper.gravity-theme .gform_previous_button:hover,
.gform_wrapper.gravity-theme .gform_previous_button.button:hover,
.gform_wrapper.gravity-theme .gform_save_link:hover,
.gform_wrapper.gravity-theme .gform_save_link.button:hover,
.gform_wrapper.gravity-theme a.gform_save_link:hover,
.gform_wrapper .gform_previous_button:hover,
.gform_wrapper .gform_previous_button.button:hover,
.gform_wrapper .gform_save_link:hover,
.gform_wrapper .gform_save_link.button:hover,
.gform_wrapper a.gform_save_link:hover {
  background-color: var(--gf-num-input-bg-hover) !important;
  color: var(--gf-num-prev-text) !important;
}

/* Primary actions: Next + Submit */
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme .gform_next_button.button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_next_button.button {
  background-color: var(--gf-num-button-bg) !important;
  color: var(--gf-num-button-text) !important;
}

.gform_wrapper.gravity-theme .gform_next_button:hover,
.gform_wrapper.gravity-theme .gform_next_button.button:hover,
.gform_wrapper .gform_next_button:hover,
.gform_wrapper .gform_next_button.button:hover {
  background-color: var(--gf-num-button-bg-hover) !important;
  color: var(--gf-num-button-text) !important;
}

/* ------------- SECTIONS (divider headings) ------------- */

.gform_wrapper.gravity-theme .gform_page,
.gform_wrapper .gform_page,
.gform_wrapper.gravity-theme .gform_page_fields,
.gform_wrapper .gform_page_fields,
.gform_wrapper.gravity-theme .gform_body,
.gform_wrapper .gform_body {
  border: 0 !important;
  box-shadow: none !important;
}

.gform_wrapper.gravity-theme .gsection,
.gform_wrapper .gsection,
.gform_wrapper.gravity-theme .gfield--type-section,
.gform_wrapper .gfield--type-section {
  margin: var(--gf-num-space-md) 0 var(--gf-num-space-md) !important;
  padding: 0 0 var(--gf-num-space-md) !important;
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--gf-num-input-border) !important;
  box-shadow: none !important;
}

.gform_wrapper.gravity-theme .gsection_title,
.gform_wrapper .gsection_title,
.gform_wrapper.gravity-theme .gfield--type-section .gsection_title,
.gform_wrapper .gfield--type-section .gsection_title {
  font-size: 1.125rem !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  color: var(--gf-num-text) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
}

.gform_wrapper.gravity-theme .gsection_description,
.gform_wrapper .gsection_description,
.gform_wrapper.gravity-theme .gfield--type-section .gsection_description,
.gform_wrapper .gfield--type-section .gsection_description {
  font-size: 0.875rem !important;
  line-height: 1.45 !important;
  color: var(--gf-num-muted) !important;
  margin: var(--gf-num-space-xs) 0 0 !important;
}

/* ------------- MULTI-STEP (named steps, not progress bar) ------------- */

.gform_wrapper.gravity-theme .gf_progressbar_wrapper,
.gform_wrapper .gf_progressbar_wrapper {
  display: none !important;
}

/* Steps: bar ~92% of form; first/last circles sit on the bar ends;
   labels are centered under each circle via translateX. */
.gform_wrapper.gravity-theme form,
.gform_wrapper form {
  width: 100% !important;
  max-width: 100% !important;
}

.gform_wrapper.gravity-theme .gf_page_steps,
.gform_wrapper .gf_page_steps {
  --gf-num-step-size: 32px;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 0 !important;
  width: 92% !important;
  max-width: 92% !important;
  margin: 0 auto 2.75rem auto !important;
  padding: 0 !important;
  border: 0 !important;
  border-bottom: 0 !important;
  list-style: none !important;
  box-sizing: border-box !important;
  position: relative !important;
  overflow: visible !important;
}

.gform_wrapper.gravity-theme .gf_page_steps::after,
.gform_wrapper .gf_page_steps::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

/* Connector from center of first circle to center of last circle */
.gform_wrapper.gravity-theme .gf_page_steps::before,
.gform_wrapper .gf_page_steps::before {
  content: "" !important;
  position: absolute !important;
  top: calc(var(--gf-num-step-size) / 2 - 1px) !important;
  left: calc(var(--gf-num-step-size) / 2) !important;
  right: calc(var(--gf-num-step-size) / 2) !important;
  height: 2px !important;
  background: var(--gf-num-input-border) !important;
  border: 0 !important;
  z-index: 0 !important;
}

.gform_wrapper.gravity-theme .gf_step,
.gform_wrapper .gf_step {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 0 !important;
  width: auto !important;
  max-width: none !important;
  position: relative !important;
  min-width: 0 !important;
  min-height: calc(var(--gf-num-step-size) + 1.5rem) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  font-size: 0.8125rem !important;
  color: var(--gf-num-muted) !important;
  text-align: center !important;
  align-items: center !important;
  box-sizing: border-box !important;
  z-index: 1 !important;
  overflow: visible !important;
}

/*
 * Position steps by DOM order, not .gf_step_first / .gf_step_last. GF pagination
 * JS reassigns those classes from page count, which breaks when named steps in
 * Form Settings > Progress Bar do not match the number of form pages.
 */
.gform_wrapper.gravity-theme .gf_page_steps .gf_step:only-child,
.gform_wrapper .gf_page_steps .gf_step:only-child {
  align-items: center !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:first-child:not(:only-child),
.gform_wrapper .gf_page_steps .gf_step:first-child:not(:only-child) {
  align-items: flex-start !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:last-child:not(:only-child),
.gform_wrapper .gf_page_steps .gf_step:last-child:not(:only-child) {
  align-items: flex-end !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:not(:first-child):not(:last-child),
.gform_wrapper .gf_page_steps .gf_step:not(:first-child):not(:last-child) {
  align-items: center !important;
}

/* GF pagination JS can add .gf_step_last to a middle step when step count > page count */
.gform_wrapper.gravity-theme .gf_page_steps .gf_step.gf_step_last:not(:last-child),
.gform_wrapper .gf_page_steps .gf_step.gf_step_last:not(:last-child) {
  align-items: center !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step.gf_step_last:not(:last-child) .gf_step_label,
.gform_wrapper .gf_page_steps .gf_step.gf_step_last:not(:last-child) .gf_step_label {
  transform: none !important;
}

/* Per-step connectors off — parent line handles the bar */
.gform_wrapper.gravity-theme .gf_step::after,
.gform_wrapper .gf_step::after,
.gform_wrapper.gravity-theme .gf_step::before,
.gform_wrapper .gf_step::before {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

.gform_wrapper.gravity-theme .gf_step_number,
.gform_wrapper .gf_step_number {
  display: grid !important;
  place-items: center !important;
  width: var(--gf-num-step-size, 32px) !important;
  height: var(--gf-num-step-size, 32px) !important;
  margin: 0 !important;
  border-radius: 50% !important;
  border: 2px solid var(--gf-num-input-border) !important;
  background-color: var(--gf-num-input-bg-focus) !important;
  background-image: none !important;
  color: var(--gf-num-muted) !important;
  font-family: var(--gf-num-font-family) !important;
  font-size: 0.8125rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  text-align: center !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Circle placement follows each step column's align-items (start / center / end) */
.gform_wrapper.gravity-theme .gf_step .gf_step_number,
.gform_wrapper .gf_step .gf_step_number {
  margin: 0 !important;
  flex-shrink: 0 !important;
}

/* Neutralize GF icon-font / pseudo checkmarks on all steps */
.gform_wrapper.gravity-theme .gf_step_number::before,
.gform_wrapper.gravity-theme .gf_step_number::after,
.gform_wrapper .gf_step_number::before,
.gform_wrapper .gf_step_number::after {
  content: "" !important;
  display: none !important;
  font-family: none !important;
  background: none !important;
  background-image: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  position: static !important;
  inset: auto !important;
  opacity: 0 !important;
  visibility: hidden !important;
}

/* Labels stack under circles; nudge first/last so text centers under the dot */
.gform_wrapper.gravity-theme .gf_step_label,
.gform_wrapper .gf_step_label {
  display: block !important;
  position: static !important;
  margin: 8px 0 0 !important;
  padding: 0 !important;
  font-size: 0.8125rem !important;
  font-weight: 500 !important;
  line-height: 1.3 !important;
  color: inherit !important;
  text-align: center !important;
  white-space: nowrap !important;
  width: max-content !important;
  max-width: none !important;
  transform: none !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:first-child .gf_step_label,
.gform_wrapper .gf_page_steps .gf_step:first-child .gf_step_label {
  transform: translateX(calc(var(--gf-num-step-size, 32px) / 2 - 50%)) !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:last-child:not(:only-child) .gf_step_label,
.gform_wrapper .gf_page_steps .gf_step:last-child:not(:only-child) .gf_step_label {
  transform: translateX(calc(50% - var(--gf-num-step-size, 32px) / 2)) !important;
}

.gform_wrapper.gravity-theme .gf_page_steps .gf_step:only-child .gf_step_label,
.gform_wrapper .gf_page_steps .gf_step:only-child .gf_step_label {
  transform: none !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_active,
.gform_wrapper .gf_step.gf_step_active {
  color: var(--gf-num-text) !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_active .gf_step_number,
.gform_wrapper .gf_step.gf_step_active .gf_step_number {
  border-color: var(--gf-num-button-bg) !important;
  background-color: var(--gf-num-button-bg) !important;
  background-image: none !important;
  color: #fff !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_completed,
.gform_wrapper .gf_step.gf_step_completed {
  color: var(--gf-num-text) !important;
}

/* Completed: hide digit; draw our own centered check (overrides GF icon font) */
.gform_wrapper.gravity-theme .gf_step.gf_step_completed .gf_step_number,
.gform_wrapper .gf_step.gf_step_completed .gf_step_number {
  border-color: var(--gf-num-button-bg) !important;
  background-color: var(--gf-num-button-bg) !important;
  background-image: none !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_completed .gf_step_number::before,
.gform_wrapper .gf_step.gf_step_completed .gf_step_number::before {
  content: "" !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 14px !important;
  height: 14px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  transform: translate(-50%, -50%) !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.2 6.6 11.3 12.5 4.7' stroke='%23ffffff' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 14px 14px !important;
  font-size: 0 !important;
  line-height: 0 !important;
  font-family: none !important;
  speak: never !important;
  z-index: 2 !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_completed .gf_step_number::after,
.gform_wrapper .gf_step.gf_step_completed .gf_step_number::after {
  content: none !important;
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
}

.gform_wrapper.gravity-theme .gf_step.gf_step_pending,
.gform_wrapper .gf_step.gf_step_pending {
  color: var(--gf-num-muted) !important;
}

/* ------------- VALIDATION ------------- */

.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error select,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
  border-color: rgba(180, 35, 24, 0.45) !important;
  background-color: #fffafa !important;
}

.gform_wrapper.gravity-theme .validation_message,
.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message {
  color: #b42318 !important;
  font-size: 0.875rem !important;
}

/* ------------- NOTES / ALERTS ------------- */

.gform_wrapper .note,
.gform_wrapper .note-green,
.gform_wrapper .note-blue,
.gform_wrapper .note-yellow,
.gform_wrapper .note-red,
.gform_wrapper .alert,
.gform_wrapper .alert-red {
  border-left: 3px solid;
  padding: 10px 12px;
  border-radius: var(--gf-num-input-radius);
  font-size: 0.9em;
}

.gform_wrapper .note          { border-color: #1d1d1f; background: var(--gf-num-input-bg); }
.gform_wrapper .note-green    { border-color: #228a1f; background: rgba(34, 138, 31, 0.08); }
.gform_wrapper .note-blue     { border-color: #5c5c62; background: rgba(0, 0, 0, 0.04); }
.gform_wrapper .note-yellow   { border-color: #c98500; background: #fdf6e8; }
.gform_wrapper .note-red,
.gform_wrapper .alert         { border-color: #c98500; background: #fdf6e8; }

.gform_wrapper .alert-red {
  border: 1px solid #fdd3d3;
  background: #fff6f6;
  padding: 10px 12px;
}

.gform_wrapper .alert-red b { color: #b00000; }

/* ------------- ELEMENTOR / WPAUTOP HARDENING ------------- */
/*
 * wpautop (the_content priority 10) runs after Elementor injects builder HTML
 * (priority 9) and can leave stray <p> tags inside forms. PHP strips them in
 * memphis_gf_strip_wpautop_paragraphs(); these rules contain any remainder.
 */

.gform_wrapper p,
.gform_wrapper.gravity-theme p,
.gform_wrapper.gform-theme p {
  margin: 0 !important;
  display: contents !important;
}

.gform_wrapper .ginput_container_address br,
.gform_wrapper .ginput_container_name br,
.gform_wrapper .ginput_container_date br,
.gform_wrapper .gfield--type-time br,
.gform_wrapper .gfield_time_ampm br {
  display: none !important;
}

.gform_wrapper .ginput_container_address label,
.gform_wrapper .ginput_container_name label,
.gform_wrapper .ginput_complex label {
  text-align: left !important;
}

/* Datepicker — keep trigger icon inside the right edge of the field */
.gform_wrapper .ginput_container_date {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
}

.gform_wrapper .ginput_container_date input.datepicker,
.gform_wrapper .ginput_container_date input.gform-datepicker {
  width: 100% !important;
  max-width: 100% !important;
  padding-right: 44px !important;
}

.gform_wrapper .ginput_container_date img.ui-datepicker-trigger {
  position: absolute !important;
  top: 50% !important;
  right: 12px !important;
  left: auto !important;
  transform: translateY(-50%) !important;
  display: block !important;
  width: 20px !important;
  height: 20px !important;
  max-width: 20px !important;
  max-height: 20px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  cursor: pointer !important;
  object-fit: contain !important;
  z-index: 2 !important;
}

.gform_wrapper .gfield--type-time .gfield_time_ampm,
.gform_wrapper .gfield--type-time .gfield_time_hour,
.gform_wrapper .gfield--type-time .gfield_time_minute {
  align-self: center !important;
}

.gform_wrapper .gfield_time_ampm select {
  min-height: var(--gf-num-input-min-height) !important;
  height: var(--gf-num-input-min-height) !important;
}

.elementor-widget-text-editor .gform_wrapper,
.elementor-element .gform_wrapper {
  width: 100% !important;
  max-width: 100% !important;
}

/* ------------- DATEPICKER ------------- */
/*
 * GF renders #ui-datepicker-div outside .gform_wrapper. Memphis JS copies
 * --gf-num-* tokens from the active form wrapper when the calendar opens.
 * Override --gf-num-button-bg on .gform_wrapper per site; picker follows.
 */

.gravity-theme.ui-datepicker,
.gravity-theme.ui-datepicker.gform-theme-datepicker {
  font-family: var(--gf-num-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif) !important;
  border-color: var(--gf-num-input-border, #d9d9d8) !important;
  border-radius: var(--gf-num-input-radius, 6px) !important;
  color: var(--gf-num-text, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-header select {
  color: var(--gf-num-text, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-next,
.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-prev {
  color: var(--gf-num-button-bg, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-next:focus,
.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-next:hover,
.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:focus,
.gravity-theme.ui-datepicker .ui-datepicker-header .ui-datepicker-prev:hover {
  color: var(--gf-num-button-bg-hover, #4a5058) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar th span {
  color: var(--gf-num-text, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-default {
  color: var(--gf-num-text, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-default:focus,
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-default:hover {
  border-color: var(--gf-num-button-bg, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-default:active {
  background: var(--gf-num-input-bg-hover, #e8e8e7) !important;
  border-color: var(--gf-num-button-bg, #2b3138) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-datepicker-current-day .ui-state-default,
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-active {
  background: var(--gf-num-button-bg, #2b3138) !important;
  border-color: var(--gf-num-button-bg, #2b3138) !important;
  color: var(--gf-num-button-text, #ffffff) !important;
}

.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-datepicker-current-day .ui-state-default:focus,
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-datepicker-current-day .ui-state-default:hover,
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-active:focus,
.gravity-theme.ui-datepicker .ui-datepicker-calendar .ui-state-active:hover {
  background: var(--gf-num-button-bg-hover, #4a5058) !important;
  border-color: var(--gf-num-button-bg-hover, #4a5058) !important;
  color: var(--gf-num-button-text, #ffffff) !important;
}
