.fps-form {
  --fps-primary: #00aeef;
  --fps-accent: #ff8a00;
  --fps-page-bg: transparent;
  --fps-container-bg: #ffffff;
  --fps-text: #061b3a;
  --fps-muted-text: #667085;
  --fps-border: #d9e7f2;
  --fps-selected-bg: #e6faff;
  --fps-button-text: #ffffff;
  --fps-error: #d92d20;
  --fps-radius-lg: 28px;
  --fps-radius-md: 16px;
  --fps-radius-sm: 10px;
  --fps-shadow: 0 24px 60px rgba(6, 27, 58, 0.12);
  color: var(--fps-text);
  box-sizing: border-box;
}

.fps-form *,
.fps-form *::before,
.fps-form *::after {
  box-sizing: border-box;
}

.fps-form.fps-layout-full-page-background {
  background-color: var(--fps-page-bg) !important;
  padding: clamp(24px, 5vw, 64px) 16px;
  border-radius: var(--fps-radius-lg);
}

.fps-form .gform_wrapper,
.fps-form .gform-theme,
.fps-form .gform-theme--framework {
  color: var(--fps-text) !important;
}

.fps-form.fps-layout-rounded-container .gform_wrapper {
  width: min(100%, 900px);
  margin: 0 auto !important;
  padding: clamp(28px, 5vw, 56px) !important;
  background-color: var(--fps-container-bg) !important;
  border: 1px solid var(--fps-border) !important;
  border-radius: var(--fps-radius-lg) !important;
  box-shadow: var(--fps-shadow) !important;
}

.fps-form .gform_heading,
.fps-form .gfield_description,
.fps-form .gform-field-label--description,
.fps-form .ginput_counter,
.fps-form .gfield_header_item,
.fps-form .gform_fileupload_rules {
  color: var(--fps-muted-text) !important;
}

.fps-form .gform_title,
.fps-form .gsection_title,
.fps-form .gfield_label,
.fps-form legend.gfield_label {
  color: var(--fps-text) !important;
}

.fps-form .gform_title {
  font-size: clamp(36px, 5vw, 64px) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.04em !important;
  margin: 0 0 28px !important;
  font-weight: 800 !important;
}

.fps-form .gfield_label,
.fps-form legend.gfield_label {
  font-size: clamp(24px, 2.6vw, 36px) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  margin-bottom: 22px !important;
}

.fps-form .gfield_required,
.fps-form .gfield_required_text {
  color: var(--fps-accent) !important;
}

.fps-form input[type='text'],
.fps-form input[type='email'],
.fps-form input[type='url'],
.fps-form input[type='tel'],
.fps-form input[type='number'],
.fps-form input[type='password'],
.fps-form input[type='date'],
.fps-form select,
.fps-form textarea {
  width: 100% !important;
  min-height: 54px !important;
  border: 1.5px solid var(--fps-border) !important;
  border-radius: var(--fps-radius-sm) !important;
  background-color: #fff !important;
  color: var(--fps-text) !important;
  padding: 14px 16px !important;
  font-size: 17px !important;
  line-height: 1.4 !important;
  box-shadow: none !important;
  transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease !important;
}

.fps-form textarea {
  min-height: 130px !important;
  resize: vertical;
}

.fps-form input:focus,
.fps-form select:focus,
.fps-form textarea:focus {
  border-color: var(--fps-primary) !important;
  outline: none !important;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--fps-primary) 18%, transparent) !important;
}

.fps-form .gform_wrapper .gform_button,
.fps-form .gform_wrapper .gform_next_button,
.fps-form .gform_wrapper .gform_previous_button,
.fps-form .gform_wrapper button,
.fps-form .gform_wrapper input[type='submit'],
.fps-form .gform_wrapper input[type='button'],
.fps-form .gform_wrapper .button,
.fps-form .gform_wrapper .gform-theme-button,
.fps-form .gform_wrapper .gform-theme-button--size-md {
  min-height: 56px !important;
  min-width: 132px !important;
  border-radius: 9999px !important;
  border: 2px solid transparent !important;
  padding: 15px 32px !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  cursor: pointer !important;
  text-decoration: none !important;
  box-shadow: none;
  transition: transform 160ms ease, box-shadow 160ms ease, background-color 160ms ease, border-color 160ms ease, color 160ms ease !important;
}

.fps-form .gform_wrapper .gform_button,
.fps-form .gform_wrapper .gform_next_button,
.fps-form .gform_wrapper input[type='submit'],
.fps-form .gform_wrapper button[type='submit'],
.fps-form .gform_wrapper .gform-theme-button:not(.gform_previous_button) {
  background: var(--fps-primary) !important;
  background-color: var(--fps-primary) !important;
  color: var(--fps-button-text) !important;
  border-color: var(--fps-primary) !important;
  box-shadow: 0 12px 24px color-mix(in srgb, var(--fps-primary) 26%, transparent) !important;
}

.fps-form .gform_wrapper .gform_previous_button {
  background: #fff !important;
  background-color: #fff !important;
  border-color: color-mix(in srgb, var(--fps-text) 30%, var(--fps-border)) !important;
  color: var(--fps-text) !important;
  box-shadow: none !important;
}

.fps-form .gform_wrapper .gform_button:hover,
.fps-form .gform_wrapper .gform_next_button:hover,
.fps-form .gform_wrapper input[type='submit']:hover,
.fps-form .gform_wrapper button[type='submit']:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 28px color-mix(in srgb, var(--fps-primary) 32%, transparent) !important;
}

.fps-form .gform_wrapper .gform_previous_button:hover {
  border-color: var(--fps-primary) !important;
  color: var(--fps-primary) !important;
  background: color-mix(in srgb, var(--fps-primary) 5%, #fff) !important;
}

.fps-form .gform_footer,
.fps-form .gform_page_footer {
  align-items: center !important;
  gap: 16px !important;
  margin-top: 42px !important;
  padding-top: 8px !important;
  width: 100% !important;
  min-height: 64px !important;
  position: relative !important;
}

.fps-form .gform_footer {
  display: flex !important;
  justify-content: flex-end !important;
}

.fps-form .gform_page_footer {
  display: grid !important;
  grid-template-columns: minmax(0, max-content) minmax(90px, 1fr) minmax(0, max-content) !important;
}

.fps-form .gform_page_footer .gform_previous_button {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: start !important;
  margin-right: 0 !important;
}

.fps-form .gform_page_footer .gform_next_button,
.fps-form .gform_page_footer .gform_button,
.fps-form .gform_page_footer input[type='submit'],
.fps-form .gform_page_footer button[type='submit'] {
  grid-column: 3 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: end !important;
  margin-left: 0 !important;
}

.fps-form .fps-step-footer-label {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: center !important;
  position: static !important;
  transform: none !important;
  color: var(--fps-muted-text) !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  pointer-events: none !important;
}

.fps-form .gform_validation_errors {
  border: 1px solid color-mix(in srgb, var(--fps-error) 35%, transparent) !important;
  border-radius: var(--fps-radius-md) !important;
  background: color-mix(in srgb, var(--fps-error) 8%, #fff) !important;
  box-shadow: none !important;
  color: var(--fps-error) !important;
  padding: 16px 18px !important;
}

.fps-form .gfield_error input,
.fps-form .gfield_error select,
.fps-form .gfield_error textarea {
  border-color: var(--fps-error) !important;
}

.fps-form .gfield_validation_message,
.fps-form .validation_message {
  color: var(--fps-error) !important;
  font-weight: 700 !important;
  margin-top: 8px !important;
}

.fps-form .gform_ajax_spinner,
.fps-form .gform-spinner,
.fps-form .gform-theme-spinner {
  align-self: center !important;
  justify-self: end !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 0 0 -4px !important;
  vertical-align: middle !important;
}

.fps-form .gform_page_footer .gform_ajax_spinner,
.fps-form .gform_page_footer .gform-spinner,
.fps-form .gform_page_footer .gform-theme-spinner {
  display: inline-block !important;
  grid-row: 1 !important;
  align-self: center !important;
}

.fps-form .gform_page_footer input[type='hidden'] {
  display: none !important;
}

@media (max-width: 640px) {
  .fps-form.fps-layout-rounded-container .gform_wrapper {
    padding: 24px 16px !important;
    border-radius: 20px !important;
  }

  .fps-form .gform_title {
    font-size: 36px !important;
  }

  .fps-form .gform_footer,
  .fps-form .gform_page_footer {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 0 !important;
  }

  .fps-form .gform_page_footer .gform_previous_button,
  .fps-form .gform_page_footer .gform_next_button,
  .fps-form .gform_page_footer .gform_button,
  .fps-form .gform_page_footer input[type='submit'],
  .fps-form .gform_page_footer button[type='submit'],
  .fps-form .fps-step-footer-label {
    margin-left: 0 !important;
    margin-right: 0 !important;
    text-align: center !important;
  }

  .fps-form .fps-step-footer-label {
    position: static !important;
    transform: none !important;
    order: 2 !important;
  }

  .fps-form .gform_page_footer .gform_next_button,
  .fps-form .gform_page_footer .gform_button,
  .fps-form .gform_page_footer input[type='submit'],
  .fps-form .gform_page_footer button[type='submit'] {
    order: 1 !important;
  }

  .fps-form .gform_page_footer .gform_ajax_spinner,
  .fps-form .gform_page_footer .gform-spinner,
  .fps-form .gform_page_footer .gform-theme-spinner {
    order: 1 !important;
    align-self: center !important;
    margin: -8px 0 0 !important;
  }

  .fps-form .gform_page_footer .gform_previous_button {
    order: 3 !important;
  }

  .fps-form .gform_wrapper .gform_button,
  .fps-form .gform_wrapper .gform_next_button,
  .fps-form .gform_wrapper .gform_previous_button,
  .fps-form .gform_wrapper input[type='submit'],
  .fps-form .gform_wrapper input[type='button'] {
    width: 100% !important;
  }
}
