
.json-backed-form {
  max-width: 405px;
  padding: 0px 20px;
  label {
    font-size: 20px;
    font-weight: 500;
    letter-spacing: -0.01em;
    line-height: 28px;
    @media (max-width : 640px) {
      font-size: 16px;
      line-height: 24px;
      letter-spacing: 0;
    }
    position: relative;
    display: block;
    margin-top: 30px;
    margin-bottom: 14px;
    &.field-required {
      &:after {
        content: '*';
        display: inline;
        color: #bb1654;
      }
    }
  }
  select,
  input:not(.button) {
    padding: .5rem 1rem;
    width: 100%;
    border: 1px solid #d3d6dc;
    &[aria-invalid="true"] {
      border: 1px solid #bb1654;
    }
    //@note: if we want to re-integrate success border color, target [aria-invalid="false"] here
  }
  .button {
    cursor: pointer;
    margin-top: 30px;
  }
  select {
    background: white;
    padding: .5rem 2rem .5rem 1rem;
    width: 100%;
  }
  .select-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
    &:after {
      content: '';
      position: absolute;
      top: 50%;
      right: 16px;
      width: 8px;
      height: 8px;
      border-top: 1px solid #757575;
      border-right: 1px solid #757575;
      transform: translateY(-50%) rotate(135deg);
    }
  }
  .help-text {
    &.error {
      color: #57a635;
    }
    &.success {
      color: #bb1654;
    }
  }
  .form-section + .form-section {
    margin-top: 30px;
    @include breakpoint(large) {
      margin-top: 60px;
    }
  }
}

input[aria-invalid="true"] {
  border: 1px solid #bb1654;
}
//@note: if we want to re-integrate success border color, target input[aria-invalid="false"] here

.input-info {
  display: block;
  font-size: 1rem;
  line-height: 1;
  letter-spacing: -0.39px;
  font-weight: normal;
  padding-top: 10px;
}
.input-info.valid {
    color: #57a635;
  }
.input-info.invalid {
    color: #bb1654;
  }