/*
 * GF Enhancements — Form Styles
 * Scale Smart Marketing Pty Ltd
 */

/* Disable scroll anchoring — prevents mobile browsers from fighting
   programmatic scroll-to-top on GF page transitions */
html { overflow-anchor: none; }

/* ── Variables ─────────────────────────────────────────── */
.gform_wrapper {
  --gfe-blue:       #00BCEB;
  --gfe-blue-light: #e5f5fb;
  --gfe-blue-mid:   #55bfe5;
  --gfe-red:        #fb575a;
  --gfe-red-light:  #fff0f0;
  --gfe-green:      #00EB74;
  --gfe-text-dark:  #1a1a1a;
  --gfe-text-mid:   #444;
  --gfe-text-light: #6f6f6f;
  --gfe-border:     rgba(30,60,100,0.28);
  --gfe-shadow:     0 2px 6px rgba(30,60,100,0.12);
  --gfe-radius:     10px;
  --gfe-font:       'Open Sans', sans-serif;
  --gfe-tick:       #2ee89e;
}

/* ── Hide unwanted GF chrome ───────────────────────────── */
.gform_wrapper .gf_step,
.gform_wrapper .gf_step_count,
.gform_wrapper .gf_progressbar_title,
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_text,
.gform_wrapper span.gfield_required,
.gform_wrapper .ginput_counter,
.gform_wrapper .charleft,
.gform_wrapper [class*="gf_step"],
.gf_progressbar_title,
.gform_wrapper .gform_required_legend,
.gform_wrapper .gform-required-legend,
.gform_required_legend,
.gform-required-legend { display: none !important; }

/* ── Progress Bar (Custom — Outside GF's AJAX Zone) ─── */
/* GF's native bar is hidden; our bar lives in .gform_wrapper
   (outside <form>) so it's never destroyed by AJAX transitions. */
.gform_wrapper .gf_progressbar_wrapper {
  display: none !important;
}
.gfe-progress-wrap {
  padding: 8px 20px 0;
  position: relative;
}
@media (max-width: 767px) {
  .gfe-progress-wrap {
    padding: 14px 10px 0;
  }
}
.gfe-progress-track {
  height: 18px;
  background: #e5f5fb;
  border-radius: 50px;
  overflow: hidden;
  position: relative;
  margin: 0 0 4px 0;
  contain: layout paint;
}
.gfe-progress-fill {
  height: 100%;
  border-radius: 50px;
  position: relative;
  background: linear-gradient(90deg, #00b876 0%, #00EB74 50%, #2ee89e 100%);
  transition: width 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  overflow: visible;
  width: 0%;
}
.gfe-progress-fill::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.18) 0%, transparent 55%);
  border-radius: inherit;
  pointer-events: none;
}
.gfe-progress-label {
  font-size: 10.5px;
  font-weight: 400;
  color: #3d3d3d;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  white-space: nowrap;
  line-height: 1;
  pointer-events: none;
  z-index: 10;
}
/* Faded divider below progress area */
.gfe-progress-wrap::after {
  content: '';
  display: block;
  width: calc(100% + 48px);
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #d4d4d4 15%, #d4d4d4 85%, transparent 100%);
  margin: 22px -24px 0;
}
@media (max-width: 767px) {
  .gfe-progress-wrap::after {
    width: calc(100% + 20px);
    margin: 18px -10px 0;
  }
}

/* ── Prevent GF's AJAX fadeOut flash ──────────────────── */
[id^="gform_wrapper_"] {
  opacity: 1 !important;
  display: block !important;
  visibility: visible !important;
}

/* ── Page transitions ──────────────────────────────────── */
/* No default animation — applied via JS with direction */
.gform_wrapper .gform_page {
  /* intentionally blank — direction applied by JS */
}

/* ── Form body ─────────────────────────────────────────── */
.gform_wrapper .gform_page {
  width: 100% !important;
  box-sizing: border-box !important;
  padding: 22px 24px 12px !important;
}
/* Active page layout */
.gform_wrapper .gform_page.gfe-active-page {
  display: flex !important;
  flex-direction: column !important;
}
@media (max-width: 767px) {
  .gform_wrapper .gform_page {
    padding: 18px 10px 16px !important;
  }
}
.gform_wrapper .gform-body,
.gform_wrapper .gform_body {
  padding: 0 !important;
  font-family: var(--gfe-font);
  width: 100% !important;
  box-sizing: border-box !important;
}
.gform_wrapper .gform_fields {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
/* Radio/checkbox fields get slight inset so selected scale(1.015) stays within progress bar */
.gform_wrapper .gfield--type-radio .ginput_container,
.gform_wrapper .gfield--type-checkbox .ginput_container,
.gform_wrapper .gfield--type-consent .ginput_container {
  padding: 0 4px !important;
}
.gform_wrapper .gform_fields .gfield {
  padding: 0 !important;
  margin: 0 0 8px 0 !important;
}
/* Tighter spacing between consecutive input fields */
.gform_wrapper .gform_fields .gfield--type-text,
.gform_wrapper .gform_fields .gfield--type-email,
.gform_wrapper .gform_fields .gfield--type-phone,
.gform_wrapper .gform_fields .gfield--type-tel,
.gform_wrapper .gform_fields .gfield--type-number {
  margin: 0 0 4px 0 !important;
}
/* Zero bottom margin on last visible field. :last-child handles standard case.
   Second rule: field is not hidden AND has no visible siblings after it (only hidden ones remain). */
.gform_wrapper .gform_fields .gfield:last-child {
  margin-bottom: 0 !important;
}
.gform_wrapper .gform_fields .gfield:not(.gform_hidden):not(:has(~ .gfield:not(.gform_hidden))) {
  margin-bottom: 0 !important;
}

/* ── Question / field labels ───────────────────────────── */
.gform_wrapper .gfield_label,
.gform_wrapper legend.gfield_label,
.gform_wrapper .gform-field-label {
  font-size: clamp(18px, 3.5vw, 20px) !important;
  font-weight: 600 !important;
  color: #2a2a2a !important;
  margin-bottom: 22px !important;
  line-height: 1.35 !important;
  text-align: center !important;
  display: block !important;
  width: 100% !important;
}

.gform_wrapper .gfe-name-row .gfield {
  margin: 0 !important;
  min-width: 0 !important;
  width: auto !important;
}
.gform_wrapper .gfe-name-row .gfield .ginput_container,
.gform_wrapper .gfe-name-row .gfield .ginput_container input {
  width: 100% !important;
  box-sizing: border-box !important;
}
@media (max-width: 479px) {
  .gform_wrapper .gfe-name-row {
    grid-template-columns: 1fr !important;
  }
}

/* ── Radio / Checkbox Cards ────────────────────────────── */
/* Container */
.gform_wrapper .gfield_radio,
.gform_wrapper .gfield_checkbox {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Each choice — div.gchoice */
.gform_wrapper .gchoice {
  border: 1px solid var(--gfe-border) !important;
  border-radius: var(--gfe-radius) !important;
  background: #fff !important;
  min-height: 50px !important;
  display: flex !important;
  align-items: center !important;
  padding: 10px 18px 10px 52px !important;
  cursor: pointer !important;
  position: relative !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
  box-shadow: var(--gfe-shadow) !important;
  transition: border-color 0.18s, background-color 0.18s, box-shadow 0.18s, transform 0.18s ease !important;
}
.gform_wrapper .gchoice.gfe-selected {
  border-color: var(--gfe-blue-mid) !important;
  background: var(--gfe-blue-light) !important;
  box-shadow: 0 2px 8px rgba(0,188,235,0.08) !important;
  transform: translateY(-1px) scale(1.015) !important;
}
/* Hover only on non-touch devices */
@media (hover: hover) {
  .gform_wrapper .gchoice:hover {
    border-color: var(--gfe-blue-mid) !important;
    background: var(--gfe-blue-light) !important;
    box-shadow: 0 2px 8px rgba(0,188,235,0.08) !important;
    transform: translateY(-1px) scale(1.015) !important;
  }
}
/* Tap press feedback — micro shrink then grow via gfe-selected */
.gform_wrapper .gchoice:active {
  transform: scale(0.985) !important;
  transition-duration: 0.08s !important;
}

/* Hide native input — tiny and positioned away from tap area */
.gform_wrapper .gchoice input[type="radio"],
.gform_wrapper .gchoice input[type="checkbox"],
.gform_wrapper .gfield-choice-input,
.gform_wrapper .gfield_radio .gchoice input,
.gform_wrapper .gfield_checkbox .gchoice input {
  -webkit-appearance: none !important;
  appearance: none !important;
  opacity: 0 !important;
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  top: 0 !important;
  left: 0 !important;
  pointer-events: none !important;
}

/* Custom ring — ::before */
.gform_wrapper .gchoice::before {
  content: '' !important;
  position: absolute !important;
  left: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 22px !important;
  height: 22px !important;
  border: 1px solid var(--gfe-border) !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s !important;
  z-index: 1 !important;
}
.gform_wrapper .gchoice.gfe-selected::before {
  border-color: var(--gfe-blue) !important;
}
@media (hover: hover) {
  .gform_wrapper .gchoice:hover::before {
    border-color: var(--gfe-blue) !important;
  }
}

/* Custom dot — ::after */
.gform_wrapper .gchoice::after {
  content: '' !important;
  position: absolute !important;
  left: 21px !important;
  top: 50% !important;
  transform: translateY(-50%) scale(0) !important;
  width: 12px !important;
  height: 12px !important;
  background: var(--gfe-blue) !important;
  border-radius: 50% !important;
  opacity: 0 !important;
  transition: transform 0.22s cubic-bezier(0.34,1.56,0.64,1), opacity 0.15s !important;
  z-index: 2 !important;
}
.gform_wrapper .gchoice.gfe-selected::after {
  transform: translateY(-50%) scale(1) !important;
  opacity: 1 !important;
}
/* Checkbox indicator: rounded square instead of circle */
.gform_wrapper .gfield_checkbox .gchoice::before {
  border-radius: 4px !important;
}
.gform_wrapper .gfield_checkbox .gchoice::after {
  border-radius: 3px !important;
  background: linear-gradient(135deg, #00b876, #2ee89e) !important;
}

/* Choice label text */
.gform_wrapper .gchoice label,
.gform_wrapper .gchoice .gform-field-label,
.gform_wrapper .gchoice .gform-field-label--type-inline,
.gform_wrapper .gfield_radio .gchoice label,
.gform_wrapper .gfield_checkbox .gchoice label,
body .gform_wrapper .gchoice label {
  font-size: 18px !important;
  font-weight: 400 !important;
  color: #555 !important;
  line-height: 1.3 !important;
  cursor: pointer !important;
  pointer-events: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}
@media (max-width: 600px) {
  .gform_wrapper .gchoice label,
  .gform_wrapper .gfield_radio .gchoice label,
  .gform_wrapper .gfield_checkbox .gchoice label {
    font-size: 16px !important;
    line-height: 1.3 !important;
  }
}

/* ── Answer-choice icons ─────────────────────────────────────────────────
   When a choice has an icon, it REPLACES the radio ring/dot on the left and
   tints to the brand colour on hover/select. */
.gform_wrapper .gchoice.gfe-has-icon::before,
.gform_wrapper .gchoice.gfe-has-icon::after,
.gform_wrapper .gchoice:has(.gfe-choice-icon)::before,
.gform_wrapper .gchoice:has(.gfe-choice-icon)::after { display: none !important; }
.gform_wrapper .gchoice.gfe-has-icon,
.gform_wrapper .gchoice:has(.gfe-choice-icon) { padding-left: 58px !important; }
.gform_wrapper .gchoice .gfe-choice-icon {
  position: absolute !important;
  left: 11px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 34px !important;
  height: 34px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
  z-index: 2 !important;
  transition: transform 0.18s ease !important;
}
.gform_wrapper .gchoice .gfe-choice-icon svg { width: 100% !important; height: 100% !important; display: block !important; }
/* Multi-colour icons keep their own colours; a subtle scale gives life on select/hover. */
.gform_wrapper .gchoice.gfe-selected .gfe-choice-icon { transform: translateY(-50%) scale(1.1) !important; }
@media (hover: hover) {
  .gform_wrapper .gchoice:hover .gfe-choice-icon { transform: translateY(-50%) scale(1.1) !important; }
}

/* ── Text / Number / Email / Tel inputs ────────────────── */
.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="number"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container textarea {
  width: 100% !important;
  height: 56px !important;
  padding: 0 16px !important;
  margin: 0 !important;
  font-family: var(--gfe-font) !important;
  font-size: 16px !important;
  color: var(--gfe-text-dark) !important;
  background: #fff !important;
  border: 1px solid var(--gfe-border) !important;
  border-radius: var(--gfe-radius) !important;
  outline: none !important;
  -webkit-appearance: none !important;
  box-shadow: var(--gfe-shadow) !important;
  transition: border-color 0.15s, box-shadow 0.15s !important;
  box-sizing: border-box !important;
}
.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container textarea:focus {
  border-color: var(--gfe-blue) !important;
  box-shadow: 0 0 0 3px rgba(0,188,235,0.13) !important;
  background: #fff !important;
}
.gform_wrapper .ginput_container input::placeholder,
.gform_wrapper .ginput_container textarea::placeholder { color: #bbb !important; }
.gform_wrapper .ginput_container textarea {
  height: auto !important;
  padding: 12px 16px !important;
}

/* ── Prefix icons on text inputs ───────────────────────── */
/* Usage: add CSS class to GF field (Advanced tab):
   gfe-icon-dollar | gfe-icon-location | gfe-icon-email
   gfe-icon-person | gfe-icon-building | gfe-icon-phone   */

.gform_wrapper .gfield[class*="gfe-icon-"] .ginput_container,
.gform_wrapper .gfield--type-email .ginput_container,
.gform_wrapper .gfield.gfe-postcode .ginput_container,
.gform_wrapper .gfield.gfe-borrow .ginput_container,
.gform_wrapper .gfield.gfe-name-tick .ginput_container {
  position: relative !important;
}
.gform_wrapper .gfield[class*="gfe-icon-"] .ginput_container input {
  padding-left: 68px !important; /* icon area(56) + 12px gap matching icon-to-separator spacing */
}
.gform_wrapper .gfield[class*="gfe-icon-"] .ginput_container::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: 56px !important;
  height: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-right: 1px solid rgba(30,60,100,0.15) !important;
  color: rgba(1,10,94,0.55) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  pointer-events: none !important;
  z-index: 1 !important;
  box-sizing: border-box !important;
  padding: 0 8px !important; /* equal 8px gap icon↔separator and icon↔left edge */
}
/* Dollar sign — text content */
.gform_wrapper .gfield.gfe-icon-dollar .ginput_container::before {
  content: '$' !important;
  font-size: 19px !important;
  color: #737AA7 !important; /* matches SVG fill #010a5e at 55% on white */
}
/* Email @ — text content */
.gform_wrapper .gfield.gfe-icon-email .ginput_container::before {
  content: '@' !important;
  font-size: 19px !important;
  color: #737AA7 !important; /* matches SVG fill #010a5e at 55% on white */
}
/* SVG icons via background-image */
.gform_wrapper .gfield.gfe-icon-location .ginput_container::before,
.gform_wrapper .gfield.gfe-icon-person .ginput_container::before,
.gform_wrapper .gfield.gfe-icon-building .ginput_container::before,
.gform_wrapper .gfield.gfe-icon-phone .ginput_container::before {
  content: '' !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 21px 21px !important;
}
.gform_wrapper .gfield.gfe-icon-location .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23010a5e' fill-opacity='0.55'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") !important;
}
.gform_wrapper .gfield.gfe-icon-person .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23010a5e' fill-opacity='0.55'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E") !important;
}
.gform_wrapper .gfield.gfe-icon-building .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23010a5e' fill-opacity='0.55'%3E%3Cpath d='M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z'/%3E%3C/svg%3E") !important;
}
.gform_wrapper .gfield.gfe-icon-phone .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23010a5e' fill-opacity='0.55'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") !important;
}

/* ── "Select all that apply" sublabel ───────────────────── */
/* Exact match to HTML: .step-sublabel */
.gform_wrapper .gfe-subheading-label,
.gform_wrapper .gfe-select-all-label {
  display: block !important;
  font-size: clamp(14px, 3vw, 15px) !important;
  font-weight: 400 !important;
  color: #6f6f6f !important;
  text-align: center !important;
  margin-top: -14px !important;
  margin-bottom: 22px !important;
  line-height: 1.3 !important;
}
@media (max-width: 767px) {
  .gform_wrapper .gfe-subheading-label,
  .gform_wrapper .gfe-select-all-label {
    margin-top: -12px !important;
    margin-bottom: 18px !important;
  }
}

/* Error state — icon turns red */
.gform_wrapper .gfield_error.gfield[class*="gfe-icon-"] .ginput_container::before {
  color: var(--gfe-red) !important;
  border-right-color: rgba(251,87,90,0.25) !important;
  filter: none !important;
}
/* SVG icons: swap to red fill instead of unreliable CSS filter */
.gform_wrapper .gfield_error.gfield.gfe-icon-location .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fb575a'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") !important;
  border-right-color: rgba(251,87,90,0.25) !important;
}
.gform_wrapper .gfield_error.gfield.gfe-icon-person .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fb575a'%3E%3Cpath d='M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z'/%3E%3C/svg%3E") !important;
  border-right-color: rgba(251,87,90,0.25) !important;
}
.gform_wrapper .gfield_error.gfield.gfe-icon-building .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fb575a'%3E%3Cpath d='M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z'/%3E%3C/svg%3E") !important;
  border-right-color: rgba(251,87,90,0.25) !important;
}
.gform_wrapper .gfield_error.gfield.gfe-icon-phone .ginput_container::before {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fb575a'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E") !important;
  border-right-color: rgba(251,87,90,0.25) !important;
}


.gform_wrapper .gfield_description.instruction,
.gform_wrapper .instruction {
  display: none !important;
}

/* Show all custom field descriptions (but not GF system counter/instruction elements or validation messages) */
.gform_wrapper .gfield_description:not(.charleft):not(.ginput_counter):not(.instruction):not(.validation_message):not(.gfield_validation_message) {
  display: block !important;
  background: #e5f5fb !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 16px !important;
  margin: 16px 0 0 !important;
  font-size: 14px !important;
  color: #545454 !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: center !important;
}

/* Legacy gfe-hint class still supported */
.gform_wrapper .gfield_description.gfe-hint {
  display: block !important;
}

/* ── Hide GF AJAX spinner ──────────────────────────────── */
.gform_ajax_spinner,
.gform_wrapper .gform_ajax_spinner,
.gform-loader,
.gform_wrapper .gform-loader,
[id^="gform_ajax_spinner_"],
.gform_wrapper img[src*="spinner"],
.gform_wrapper img[src*="ajax-loader"],
.gform_wrapper .gform_page_footer > img,
.gform_wrapper .gform_footer > img {
  display: none !important;
}

/* ── GF 3 in-button loading state ──────────────────────── */
/* GF 3 adds .gform-has-spinner to the clicked <button>, injects a .gform-loader
   (hidden above) and sets -webkit-text-fill-color: transparent inline so its own
   spinner can replace the text. We hide that spinner, so keep the label visible —
   otherwise Continue shows only its text-shadow (grey ghost) and Previous goes blank. */
.gform_wrapper .gform-has-spinner,
.gform_wrapper .gform-has-spinner * {
  -webkit-text-fill-color: currentColor !important;
}
/* Click ripple: never rendered on GF 2 (<input> buttons can't have children);
   on GF 3 <button>s it paints over the label. Disabled to keep the original look. */
.gform_wrapper .gfe-ripple { display: none !important; }

/* ── Validation errors ─────────────────────────────────── */
/* Hide top summary box - inline field errors are enough */
.gform_wrapper .gform_validation_errors,
.gform_wrapper .gform_validation_container {
  display: none !important;
}
.gform_wrapper .gfield_error .ginput_container input,
.gform_wrapper .gfield_error .ginput_container textarea {
  border-color: var(--gfe-red) !important;
  box-shadow: 0 0 0 3px rgba(251,87,90,0.12) !important;
  background: var(--gfe-red-light) !important;
}
/* Number fields need same error treatment */
.gform_wrapper .gfield_error .ginput_container input[type="number"] {
  border-color: var(--gfe-red) !important;
  box-shadow: 0 0 0 3px rgba(251,87,90,0.12) !important;
  background: var(--gfe-red-light) !important;
}
@keyframes gfe-fadeSlideDown {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes gfe-shake {
  0%,100% { transform: translateX(0); }
  15%      { transform: translateX(-6px); }
  35%      { transform: translateX(5px); }
  55%      { transform: translateX(-4px); }
  75%      { transform: translateX(3px); }
  90%      { transform: translateX(-2px); }
}
@keyframes gfe-ripple { to { transform: scale(2.5); opacity: 0; } }
.gfe-shake { animation: gfe-shake 0.4s cubic-bezier(0.36,0.07,0.19,0.97) both !important; }
.gfe-ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,255,255,0.28);
  transform: scale(0);
  animation: gfe-ripple 0.5s linear;
  pointer-events: none;
}
/* Validation messages — plain red text, no blue box */
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message,
.gform_wrapper .gform-field-validation,
.gform_wrapper [class*="validation_message"],
.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper .gfield_error .gfield_validation_message,
.gravity-theme .gfield_validation_message,
.gform_wrapper .gform_page .gfield_validation_message {
  display: flex !important;
  align-items: center !important;
  gap: 5px !important;
  background: none !important;
  background-color: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  padding: 0 0 0 2px !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  color: #fb575a !important;
  margin-top: 5px !important;
  letter-spacing: normal !important;
  line-height: normal !important;
  width: auto !important;
  animation: gfe-fadeSlideDown 0.2s ease forwards !important;
}
/* Error icon prepended to validation messages */
.gform_wrapper .gfield_validation_message::before,
.gform_wrapper .validation_message::before {
  content: '' !important;
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none'%3E%3Ccircle cx='8' cy='8' r='7.5' stroke='%23fb575a'/%3E%3Cpath d='M8 4.5v4' stroke='%23fb575a' stroke-width='1.3' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11' r='.75' fill='%23fb575a'/%3E%3C/svg%3E") no-repeat center !important;
  background-size: 14px 14px !important;
  flex-shrink: 0 !important;
}

/* ── Checkbox / radio error flash ─────────────────────── */
.gform_wrapper .gchoice.gfe-error-flash {
  border: 1px solid var(--gfe-red) !important;
  background: var(--gfe-red-light) !important;
  box-shadow: 0 0 0 3px rgba(251,87,90,0.12) !important;
  transition: none !important;
}
.gform_wrapper .gchoice.gfe-error-flash-fade {
  border: 1px solid var(--gfe-border) !important;
  background: #fff !important;
  box-shadow: var(--gfe-shadow) !important;
  transition: border 0.4s ease, background 0.4s ease, box-shadow 0.4s ease !important;
}

/* ── Buttons ───────────────────────────────────────────── */
/* Eliminate 300ms mobile tap delay */
.gform_wrapper button,
.gform_wrapper .gform_button[type="submit"],
.gform_wrapper .gchoice,
.gform_wrapper .gfe-otp-send-btn {
  touch-action: manipulation !important;
}
/* Override GF's own gform-theme-button class */
.gform_wrapper .gform-theme-button.gform_next_button,
.gform_wrapper .gform-theme-button.gform_button,
.gform_wrapper .gform-theme-button--primary,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_button,
.gform_wrapper button.gform_next_button,
.gform_wrapper button.gform_button,
.gform_wrapper .gform_button[type="submit"],
.gform_wrapper button[type="submit"] {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 52px !important;
  background: var(--gfe-red) !important;
  border: none !important;
  border-radius: var(--gfe-radius) !important;
  color: rgba(255,255,255,0.92) !important;
  font-family: var(--gfe-font) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
  letter-spacing: 0.06em !important;
  cursor: pointer !important;
  outline: none !important;
  outline-style: none !important;
  -moz-outline-style: none !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
  transition: background 0.15s, box-shadow 0.15s !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 8px 20px rgba(251,87,90,0.1), 0 2px 4px rgba(0,0,0,0.08) !important;
  position: relative !important;
  overflow: hidden !important;
  margin-top: 0 !important;
  box-sizing: border-box !important;
  align-self: stretch !important;
  padding: 0 !important;
  text-align: center !important;
  -webkit-tap-highlight-color: transparent !important;
}
@media (hover: hover) {
  .gform_wrapper .gform-theme-button.gform_next_button:hover,
  .gform_wrapper .gform-theme-button.gform_button:hover,
  .gform_wrapper .gform_next_button:hover,
  .gform_wrapper .gform_button:hover,
  .gform_wrapper button.gform_next_button:hover,
  .gform_wrapper button.gform_button:hover {
    background: #f94448 !important;
    box-shadow: 0 4px 14px rgba(0,0,0,0.18), 0 8px 22px rgba(251,87,90,0.12), 0 2px 4px rgba(0,0,0,0.1) !important;
  }
}
.gform_wrapper .gform-theme-button.gform_next_button:active,
.gform_wrapper .gform-theme-button.gform_button:active,
.gform_wrapper .gform_next_button:active,
.gform_wrapper .gform_button:active,
.gform_wrapper button.gform_next_button:active,
.gform_wrapper button.gform_button:active {
  background: #f03a3d !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12), 0 1px 3px rgba(0,0,0,0.08) !important;
  transform: scale(0.99) !important;
}
/* Kill focus outline on all button states */
.gform_wrapper .gform_next_button:focus,
.gform_wrapper .gform_next_button:focus-visible,
.gform_wrapper .gform_button:focus,
.gform_wrapper .gform_button:focus-visible,
.gform_wrapper .gform_button[type="submit"]:focus,
.gform_wrapper .gform_button[type="submit"]:focus-visible,
.gform_wrapper button[type="submit"]:focus,
.gform_wrapper button[type="submit"]:focus-visible {
  outline: none !important;
  outline-style: none !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 8px 20px rgba(251,87,90,0.1), 0 2px 4px rgba(0,0,0,0.08) !important;
}

.gform_wrapper .gform-theme-button--secondary.gform_previous_button,
.gform_wrapper .gform_previous_button,
.gform_wrapper button.gform_previous_button {
  display: inline-block !important;
  background: transparent !important;
  border: 1px solid rgba(0,0,0,0.15) !important;
  border-radius: 50px !important;
  color: var(--gfe-text-light) !important;
  font-family: var(--gfe-font) !important;
  font-size: 14px !important;
  font-weight: 400 !important;
  padding: 9px 20px !important;
  cursor: pointer !important;
  margin-top: 12px !important;
  box-shadow: none !important;
  width: auto !important;
  max-width: none !important;
  height: auto !important;
  text-shadow: none !important;
  letter-spacing: normal !important;
  transition: background 0.15s, border-color 0.15s, color 0.15s !important;
  -webkit-tap-highlight-color: transparent !important;
}
@media (hover: hover) {
  .gform_wrapper .gform-theme-button--secondary.gform_previous_button:hover,
  .gform_wrapper .gform_previous_button:hover,
  .gform_wrapper button.gform_previous_button:hover {
    background: var(--gfe-blue-light) !important;
    border-color: var(--gfe-blue-mid) !important;
    color: var(--gfe-text-dark) !important;
  }
}
.gform_wrapper .gform-theme-button--secondary.gform_previous_button:active,
.gform_wrapper .gform_previous_button:active,
.gform_wrapper button.gform_previous_button:active {
  background: var(--gfe-blue-light) !important;
  border-color: var(--gfe-blue-mid) !important;
  color: var(--gfe-text-dark) !important;
}

/* Button footer — Continue on top full width, Previous below left-aligned */
.gform_wrapper .gform_page_footer,
.gform_wrapper .gform_footer,
.gform_wrapper .gform-page-footer {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  padding: 0 !important;
  border: none !important;
  background: none !important;
  margin-top: 28px !important;
  padding-top: 0 !important;
  margin-bottom: 0 !important;
  box-sizing: border-box !important;
}
.gform_wrapper .gform_page_footer .gform_previous_button,
.gform_wrapper .gform_page_footer button.gform_previous_button { order: 2 !important; align-self: flex-start !important; margin-top: 16px !important; }
@media (max-width: 767px) {
  .gform_wrapper .gform_page_footer .gform_previous_button,
  .gform_wrapper .gform_page_footer button.gform_previous_button {
    margin-top: 16px !important;
    padding: 7px 18px !important;
    font-size: 13px !important;
  }
}
.gform_wrapper .gform_page_footer .gform_next_button,
.gform_wrapper .gform_page_footer button.gform_next_button,
.gform_wrapper .gform_page_footer .gform_button,
.gform_wrapper .gform_page_footer button.gform_button { order: 1 !important; align-self: stretch !important; width: 100% !important; margin: 0 !important; }
/* Reset browser UA appearance on input[type=button] so box model matches text inputs */
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_button,
.gform_wrapper .gform_previous_button {
  -webkit-appearance: none !important;
  appearance: none !important;
}
.gform_wrapper.gravity-theme .gform_page_footer input+input,
.gform_wrapper.gravity-theme .gform_page_footer input+button,
.gform_wrapper.gravity-theme .gform_page_footer button+input,
.gform_wrapper.gravity-theme .gform_footer input+input,
.gform_wrapper.gravity-theme .gform_footer input+button,
.gform_wrapper.gravity-theme .gform_footer button+input { margin-left: 0 !important; }

/* ── Consent Block ─────────────────────────────────────── */
/* No negative margins. line-height: 1.6 on 12px text creates ~4px half-leading
   above & below text pixels. Element gaps of 12px + 4px leading ≈ 16px visual,
   matching the 16px desc-box margin-top (Gap A). */
.gfe-consent-block {
  font-size: 12px; color: #999; line-height: 1.6;
  text-align: center; margin: 0 0 12px 0; padding: 0 4px;
}
.gfe-consent-block a { color: #7aaecb; text-decoration: underline; cursor: pointer; }
.gfe-consent-block a:hover { color: var(--gfe-blue); }

/* Submit page WITH consent — 8px footer + 4px structural = 12px element gap.
   Plus ~4px consent text top half-leading ≈ 16px visual gap (desc → consent). */
.gform_wrapper .gform_page_footer:has(.gform_button[type="submit"]):has(.gfe-consent-block),
.gform_wrapper .gform_page_footer:has(button[type="submit"]):has(.gfe-consent-block),
.gform_wrapper .gform_footer:has(.gfe-consent-block) {
  margin-top: 8px !important;
}

/* Submit page WITHOUT consent — 16px footer margin for visual breathing room. */
.gform_wrapper .gform_page_footer:has(.gform_button[type="submit"]):not(:has(.gfe-consent-block)),
.gform_wrapper .gform_page_footer:has(button[type="submit"]):not(:has(.gfe-consent-block)),
.gform_wrapper .gform_footer:not(:has(.gfe-consent-block)) {
  margin-top: 16px !important;
}

/* ── OTP ───────────────────────────────────────────────── */

/* Send Code button (below phone field, before takeover) */
.gfe-otp-send-wrap { padding: 20px 0 0; width: 100% !important; box-sizing: border-box !important; grid-column: 1 / -1 !important; }
.gfe-otp-send-btn {
  display: block !important; width: 100% !important;
  height: 52px !important; font-size: 18px !important;
  font-weight: 500 !important; letter-spacing: 0.06em !important;
  cursor: pointer !important; border: none !important;
  border-radius: var(--gfe-radius) !important;
  background: var(--gfe-red) !important;
  color: rgba(255,255,255,0.92) !important;
  font-family: var(--gfe-font) !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 8px 20px rgba(251,87,90,0.1), 0 2px 4px rgba(0,0,0,0.08) !important;
  transition: background 0.15s, box-shadow 0.15s !important;
  box-sizing: border-box !important;
  max-width: 100% !important; min-width: 100% !important;
  white-space: nowrap !important; overflow: hidden !important;
  text-overflow: ellipsis !important; padding: 0 16px !important;
  text-align: center !important;
  -webkit-tap-highlight-color: transparent !important;
}
.gfe-otp-send-btn:hover { background: #f94448 !important; }
.gfe-otp-send-btn:disabled { opacity: 0.6; cursor: not-allowed !important; }
.gfe-otp-send-btn:focus, .gfe-otp-verify-btn:focus, .gfe-otp-back-btn:focus {
  outline: none !important; box-shadow: 0 0 0 3px rgba(251,87,90,0.3) !important;
}
.gfe-otp-verified-msg {
  text-align: center; font-size: 15px; font-weight: 600;
  color: #16a34a; padding: 16px 0;
}

/* Force-hide phone page when OTP overlay is showing */
.gform_wrapper .gform_page.gfe-otp-page-hidden {
  display: none !important;
}

/* Collapse (don't display-hide) the phone page during OTP auto-submit:
   GF's submit pipeline rejects buttons whose computed display is none,
   but never checks visibility — so keep display intact, remove the page
   visually and from layout */
.gform_wrapper .gform_page.gfe-otp-page-collapsed {
  visibility: hidden !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* When OTP is active, hide only the submit/next button — keep Previous visible */
.gfe-otp-active .gform_page_footer .gform_button[type="submit"],
.gfe-otp-active .gform_page_footer button[type="submit"],
.gfe-otp-active .gform_footer .gform_button[type="submit"],
.gfe-otp-active .gform_footer button[type="submit"],
.gfe-otp-active .gform_button[type="submit"],
.gfe-otp-active button.gform_button[type="submit"] {
  display: none !important;
}

/* Full-page OTP takeover (replaces phone page content) */
.gfe-otp-fullpage { padding: 18px 24px 24px !important; box-sizing: border-box !important; }
.gfe-otp-fullpage-inner { margin: 0 auto; }
.gfe-otp-heading {
  font-size: 26px; font-weight: 700; color: #1a1a2e; text-align: center;
  margin: 0 0 12px; font-family: var(--gfe-font);
}
.gfe-otp-intro { font-size: 15px; color: #545454; text-align: center; margin-bottom: 28px; line-height: 1.7; }
.gfe-otp-intro strong { color: #1a1a2e; }
.gfe-otp-inputs { display: flex; gap: 12px; justify-content: center; margin-bottom: 6px; }
.gfe-otp-digit {
  width: 54px !important; height: 64px !important; border: 1.5px solid var(--gfe-border) !important;
  border-radius: 12px !important; background: #fff !important; box-shadow: var(--gfe-shadow) !important;
  font-size: 26px !important; font-weight: 600 !important; color: #1a1a2e !important; text-align: center !important;
  outline: none !important; font-family: var(--gfe-font) !important;
  transition: border-color 0.15s, box-shadow 0.15s !important; -webkit-appearance: none !important;
  padding: 0 !important; margin: 0 !important; min-width: 0 !important; max-width: 54px !important;
  line-height: 64px !important; box-sizing: border-box !important;
}
.gfe-otp-digit:focus { border-color: var(--gfe-blue) !important; box-shadow: 0 0 0 3px rgba(0,188,235,0.13) !important; }
.gfe-otp-digit.filled { border-color: rgba(30,60,100,0.45) !important; }
.gfe-otp-resend { text-align: center; margin-top: 20px; font-size: 14px; color: #999; }
.gfe-otp-resend a { color: var(--gfe-blue); cursor: pointer; text-decoration: none; font-weight: 500; }
.gfe-otp-timer { font-weight: 600; color: #1a1a2e; }
.gfe-otp-error { text-align: center; font-size: 13px; color: var(--gfe-red); margin-top: 8px; min-height: 18px; }
.gfe-otp-actions {
  margin: 24px 0 0 !important; padding: 0 !important;
  display: flex !important; flex-direction: column !important; align-items: stretch !important;
  width: 100% !important; box-sizing: border-box !important;
}
.gfe-otp-verify-btn {
  display: flex !important; align-items: center !important; justify-content: center !important;
  width: 100% !important;
  height: 52px !important; font-size: 18px !important;
  font-weight: 500 !important; letter-spacing: 0.06em !important;
  cursor: pointer !important; border: none !important;
  border-radius: var(--gfe-radius) !important;
  background: var(--gfe-red) !important;
  color: rgba(255,255,255,0.92) !important;
  font-family: var(--gfe-font) !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15), 0 8px 20px rgba(251,87,90,0.1), 0 2px 4px rgba(0,0,0,0.08) !important;
  transition: background 0.15s, box-shadow 0.15s !important;
  box-sizing: border-box !important;
  text-align: center !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 1 !important;
  -webkit-tap-highlight-color: transparent !important;
}
.gfe-otp-verify-btn:hover { background: #f94448 !important; }
.gfe-otp-verify-btn:disabled { opacity: 0.6; cursor: not-allowed !important; }
.gfe-otp-back-btn {
  display: inline-block !important; background: transparent !important;
  border: 1px solid rgba(0,0,0,0.15) !important; border-radius: 50px !important;
  color: var(--gfe-text-light) !important; font-family: var(--gfe-font) !important;
  font-size: 14px !important; font-weight: 400 !important;
  padding: 9px 20px !important; cursor: pointer !important;
  margin-top: 24px !important; align-self: flex-start !important;
  box-shadow: none !important; text-shadow: none !important;
  letter-spacing: normal !important; transition: background 0.15s, border-color 0.15s, color 0.15s !important;
}
.gfe-otp-back-btn:hover {
  background: var(--gfe-blue-light) !important;
  border-color: var(--gfe-blue-mid) !important;
  color: var(--gfe-text-dark) !important;
}

/* Continue button visible on all pages (including radio-only) —
   auto-advance still fires, button serves as visual anchor + fallback */
@keyframes gfe-slide-in-right { from{opacity:0;transform:translateX(34px)} to{opacity:1;transform:translateX(0)} }
@keyframes gfe-slide-in-left  { from{opacity:0;transform:translateX(-34px)} to{opacity:1;transform:translateX(0)} }
@keyframes gfe-shake { 0%,100%{transform:translateX(0)} 15%{transform:translateX(-6px)} 35%{transform:translateX(5px)} 55%{transform:translateX(-4px)} 75%{transform:translateX(3px)} 90%{transform:translateX(-2px)} }
.gfe-shake { animation: gfe-shake 0.4s cubic-bezier(0.36,0.07,0.19,0.97) both; }
.gform_wrapper .gform_page.gfe-slide-right { animation: gfe-slide-in-right 0.3s cubic-bezier(0.25,0.46,0.45,0.94) both; }
.gform_wrapper .gform_page.gfe-slide-left  { animation: gfe-slide-in-left  0.3s cubic-bezier(0.25,0.46,0.45,0.94) both; }
@media (max-width: 767px) {
  .gform_wrapper .gform_page.gfe-slide-right { animation-duration: 0.2s; }
  .gform_wrapper .gform_page.gfe-slide-left  { animation-duration: 0.2s; }
}

/* Trestle phone validation now uses the standard field tick (gfe-tick) */

/* ── Validation Success Tick ──────────────────────────── */
.gfe-tick {
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 26px !important;
  height: 26px !important;
  pointer-events: none !important;
  z-index: 2 !important;
  opacity: 0;
  transition: opacity 0.15s ease !important;
}
.gfe-tick.gfe-tick-visible { opacity: 1; }
.gform_wrapper .gfield_error .gfe-tick { opacity: 0 !important; display: none !important; }
.gform_wrapper .gfield.gfe-tick-active .ginput_container input {
  padding-right: 46px !important;
  border-color: var(--gfe-tick) !important;
  background: #f0fdf7 !important;
  transition: padding-right 0.15s ease, border-color 0.15s ease, background 0.15s ease !important;
}
@keyframes gfe-tick-fill { from { opacity: 0; transform: scale(0.5); } to { opacity: 1; transform: scale(1); } }
@keyframes gfe-tick-check { from { stroke-dashoffset: 18; } to { stroke-dashoffset: 0; } }

/* ── Responsive ────────────────────────────────────────── */
@media (max-width: 767px) {
  .gform_wrapper .gfield_label { font-size: 18px !important; margin-bottom: 18px !important; }
  .gform_wrapper .gchoice label { font-size: 16px !important; }
  .gform_wrapper .gform-body { padding: 0 !important; }
  .gfe-otp-heading { font-size: 22px; }
  .gfe-otp-digit { width: 44px; height: 54px; font-size: 22px; }
  .gfe-otp-inputs { gap: 8px; }
  .gfe-otp-fullpage { padding: 14px 10px 16px !important; }
}
@media (max-width: 380px) {
  .gfe-otp-digit { width: 38px; height: 48px; font-size: 19px; }
  .gfe-otp-inputs { gap: 6px; }
}

/* ── Previous button ─────────────────────────────────────────────── */
/* GF renders the Previous button naturally in the page footer.
   Styled as a pill button via the rules above.                      */

/* ── Mobile spacing overrides (high specificity, end of file) ──── */
@media (max-width: 767px) {
  body .gform_wrapper .gf_progressbar_wrapper {
    padding: 14px 10px 0 !important;
  }
  body .gform_wrapper .gf_progressbar_wrapper::after {
    width: calc(100% + 20px) !important;
    margin: 18px -10px 0 !important;
  }
  body .gform_wrapper .gform_page {
    padding: 18px 10px 16px !important;
  }
  body .gfe-otp-fullpage {
    padding: 14px 10px 16px !important;
  }
  body .gform_wrapper .gform_page_footer,
  body .gform_wrapper .gform_footer,
  body .gform_wrapper .gform-page-footer {
    margin-top: 24px !important;
  }
  body .gform_wrapper .gfield_description:not(.charleft):not(.ginput_counter):not(.instruction):not(.validation_message):not(.gfield_validation_message) {
    margin: 16px 0 0 !important;
  }
}

/* ── Psychology Line ("It only takes 60 seconds") ─────── */
.gfe-psych-line {
  order: 5 !important;
  text-align: center !important;
  margin-top: 16px !important;
}
.gfe-psych-line > span {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  background: none !important;
  color: #545454 !important;
  font-size: 14px !important;
  font-family: var(--gfe-font) !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.gfe-psych-line .gfe-psych-icon {
  display: none !important;
}
.gfe-psych-line > span::before {
  content: '' !important;
  width: 21px !important;
  height: 21px !important;
  background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='1 1 22 22' fill='none' stroke='%23545454' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/svg%3E") center / 15px 15px no-repeat !important;
  flex-shrink: 0 !important;
}

/* ── Security / Trust Line ────────────────────────────── */
.gfe-security-line {
  font-size: 11px !important;
  color: #545454 !important;
  font-family: var(--gfe-font) !important;
  line-height: 1.4 !important;
  margin-top: 16px !important;
  text-align: center !important;
  order: 10 !important; /* always last in footer */
}
.gfe-security-line svg {
  vertical-align: -2px !important;
  margin-right: 3px !important;
}
.gfe-security-line svg {
  width: 14px !important;
  height: 14px !important;
  display: inline !important;
  opacity: 0.7 !important;
}
@media (min-width: 768px) {
  .gfe-security-line { font-size: 12px !important; }
}
.gfe-security-line a {
  color: var(--gfe-blue) !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
.gfe-security-line a:hover {
  text-decoration: underline !important;
}

/* ── Popup Modal ──────────────────────────────────────── */
.gfe-popup-overlay {
  display: none !important;
  position: fixed !important; inset: 0 !important; z-index: 999999 !important;
  background: rgba(0,0,0,0.7) !important;
  align-items: center !important; justify-content: center !important;
  padding: 20px !important;
}
.gfe-popup-overlay.active {
  display: flex !important;
}
.gfe-popup {
  background: #fff !important; border-radius: 12px !important;
  padding: 24px !important;
  max-width: 620px !important; width: 100% !important; max-height: 80vh !important;
  overflow: hidden !important;
  display: flex !important; flex-direction: column !important;
  position: relative !important;
  box-shadow: 0 8px 40px rgba(0,0,0,0.25) !important;
}
@media (max-width: 767px) {
  .gfe-popup {
    max-width: 100% !important;
  }
}
.gfe-popup h4 {
  font-family: var(--gfe-font) !important;
  font-size: 15px !important; font-weight: 700 !important;
  color: #2a2a2a !important; margin: 0 0 12px !important;
}
button.gfe-popup-close,
.gfe-popup button.gfe-popup-close,
body .gfe-popup-close {
  position: absolute !important; top: 12px !important; right: 12px !important;
  background: #5558ff !important; background-color: #5558ff !important;
  border: none !important; outline: none !important;
  width: 30px !important; height: 30px !important;
  min-width: 30px !important; min-height: 30px !important;
  max-width: 30px !important; max-height: 30px !important;
  border-radius: 50% !important;
  font-size: 18px !important; color: #fff !important;
  cursor: pointer !important;
  line-height: 30px !important; text-align: center !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 !important; margin: 0 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
  transition: background 0.15s, box-shadow 0.15s !important;
  -webkit-appearance: none !important; appearance: none !important;
  font-family: Arial, sans-serif !important;
  text-shadow: none !important;
  letter-spacing: 0 !important;
  text-decoration: none !important;
  text-transform: none !important;
}
button.gfe-popup-close:hover,
.gfe-popup button.gfe-popup-close:hover,
body .gfe-popup-close:hover {
  background: #4446d9 !important; background-color: #4446d9 !important;
  box-shadow: 0 3px 10px rgba(0,0,0,0.25) !important;
  color: #fff !important;
}
button.gfe-popup-close:active,
body .gfe-popup-close:active {
  background: #3a3cb8 !important; background-color: #3a3cb8 !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.2) !important;
}
button.gfe-popup-close:focus,
body .gfe-popup-close:focus {
  outline: none !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2) !important;
}
.gfe-popup-body {
  font-family: var(--gfe-font) !important;
  font-size: 13px !important; color: #545454 !important;
  line-height: 1.6 !important;
  overflow-y: overlay !important;
  overflow-y: auto !important;
  flex: 1 !important;
  scrollbar-width: thin !important;
  scrollbar-color: transparent transparent !important;
}
.gfe-popup-body:hover {
  scrollbar-color: rgba(0,0,0,0.2) transparent !important;
}
.gfe-popup-body::-webkit-scrollbar {
  width: 6px !important;
}
.gfe-popup-body::-webkit-scrollbar-track {
  background: transparent !important;
}
.gfe-popup-body::-webkit-scrollbar-thumb {
  background: transparent !important;
  border-radius: 3px !important;
}
.gfe-popup-body:hover::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.18) !important;
}
.gfe-popup-body p { margin: 0 0 10px !important; }
.gfe-popup-body ul { padding-left: 18px !important; margin: 8px 0 !important; }
.gfe-popup-body li { margin-bottom: 4px !important; }
.gfe-popup-body h4 {
  font-size: 14px !important; font-weight: 600 !important; color: #2a2a2a !important;
  margin: 14px 0 6px !important;
}
.gfe-popup-body h4:first-child { margin-top: 0 !important; }
