.form-field-checkbox {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  position: relative;
  margin-bottom: unit(2);


  &:last-child {
    margin-bottom: 0;
  }

  &__input {
    position: absolute;
    opacity: 0
  }

  &__checkbox {
    position: relative;
    width: $global-input-element-size;
    height: $global-input-element-size;
    display: inline-flex;
    margin-right: unit(1);

    &::before {
      position: absolute;
      top: 0;
      left: 0;
      content: '';
      width: 100%;
      height: 100%;
      border-color: var(--input-border);
      border-width: $global-input-border-size;
      border-style: solid;
      transition: border-color var(--animation-easing) var(--animation-duration-standard);
    }

    &::after {
      position: absolute;
      content: '';
      top: $global-input-border-size + $global-input-border-space;
      left: $global-input-border-size + $global-input-border-space;
      width: calc(100% - #{($global-input-border-size + $global-input-border-space) * 2});
      height: calc(100% - #{($global-input-border-size + $global-input-border-space) * 2});
      background-color: var(--input-radio--fill);
      opacity: 0;
      transition: opacity var(--animation-easing) var(--animation-duration-standard);
    }
  }

  &:hover {
    .form-field-checkbox__checkbox {
      &::before {
        border-color: var(--input-radio--fill);
      }
    }
  }

  &__input:checked + &__checkbox { // sass-lint:disable-line force-pseudo-nesting
    &::before {
      border-color: var(--input-border);
    }

    &::after {
      opacity: 1;
    }
  }

  &--disabled {
    cursor: default;
    pointer-events: none;

    .form-field-checkbox__checkbox {
      &::before {
        border-color: var(--color-charcoal);
      }

      &::after {
        opacity: 0;
      }
    }

    &:hover {
      .form-field-checkbox__checkbox {
        &::before {
          border-color: var(--color-charcoal);
        }

        &::after {
          opacity: 0;
        }
      }
    }
  }
}
