.gform_wrapper {
  margin: 0 !important;
  .gfield,
  fieldset {
    position: relative !important;
    
    legend {
      display: none !important;
    }

    label {
      position: absolute !important;
      top: 0 !important;
      left: 0 !important;
      font-family: "IBM Plex Mono" !important;
      font-size: 14px !important;
      font-style: italic !important;
      line-height: 120% !important;
      color: #6E6E6E !important;
      transform: translateY(27px) !important;
      transition: transform 0.2s ease-in-out !important;
      cursor: text !important;
      pointer-events: none !important;
      z-index: 1 !important;
    }

    &.gfield_contains_required {
      label {
        .gfield_required {
          display: none;
        }
        &::after {
          padding-left: 8px;
          content: "*";
        }
      }
    }

    /* Support for both old span structure and new gfield structure */
    &:focus-within,
    span:focus-within {
      > label,
      > .gfield_label {
        transform: translateY(0px) !important;
      }
    }

    &.has-content,
    span.has-content {
      > label,
      > .gfield_label {
        transform: translateY(0px) !important;
      }
    }

    input,
    textarea {
      position: relative !important;
      background-color: transparent !important;
      border: none !important;
      border-bottom: 1px solid #C6C6C6 !important;
      padding: 27px 0 8px 0 !important;
      box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05) !important;
      cursor: text !important;
      caret-color: #353535 !important;
      color: #353535 !important;
      font-family: "Suisse Intl" !important;
      font-weight: 400 !important;
      width: 100% !important;

      &::-webkit-input-placeholder,
      &:-moz-placeholder,
      &:-ms-input-placeholder,
      &::placeholder {
        color: transparent !important;
        opacity: 0 !important;
        visibility: hidden !important;
      }

      &:focus {
        outline: none !important;
      }
    }

    &.gfield--type-consent {
      label {
        font-family: "Suisse Intl";
        font-style: normal;
        color: #353535;

        cursor: pointer;

        .gfield_required_text {
          display: none;
        }

        &::after {
          content: "*";
          font-family: "IBM Plex Mono";
          font-style: italic;
          display: inline;
          padding-left: 8px;
          color: #353535;
        }
      }

      .gfield_consent_description {
        border: none !important;
        padding: 0 0 0 21px !important;
        font-family: "IBM Plex Mono";
        font-style: italic;
        font-size: 14px;
        color: #6E6E6E;
        line-height: 120%;
      }
    }
  }

  .gform_footer {
    margin: 32px 0 0 0 !important;
    padding: 0 !important;
    .gform_button {
      background-color: #ffffff00;
      border-top-color: var(--wp--preset--color--custom-sort-50);
      border-top-width: 1px;
      border-top-style: solid;
      border-right-color: var(--wp--preset--color--custom-sort-50);
      border-right-width: 1px;
      border-right-style: solid;
      border-bottom-color: var(--wp--preset--color--custom-sort-50);
      border-bottom-width: 1px;
      border-bottom-style: solid;
      border-left-color: var(--wp--preset--color--custom-sort-50);
      border-left-width: 1px;
      border-left-style: solid;
      color: var(--wp--preset--color--custom-sort-90-main);
      font-family: var(--wp--preset--font-family--suisse-intl);
      font-size: var(--wp--preset--font-size--custom-1);
      font-style: normal;
      font-weight: 400;
      letter-spacing: 0.5px;
      line-height: 0.8;
      padding-top: 8px;
      padding-right: 14px;
      padding-bottom: 8px;
      padding-left: 14px;
      text-transform: uppercase;
      border-radius: 200px;
      cursor: pointer;
      display: flex;
      justify-content: start;
      align-items: center;
      gap: 6px;
      transition: background-color 150ms ease-in-out, 
      border-color 150ms ease-in-out;

      &:hover {
        background-color: #9BD2AF;
        border-color: #9BD2AF;
      }
  
      &:focus {
        outline: 1px solid #9D9D9C;
      }
    }
  }
}