.custom-checkbox {
  .custom-control-input {
    &:checked {
      ~ .custom-control-label {
        color:                                              $custom-checkbox-checked-color;
        transition:                                         background-color 0.5s ease;
        &::before {
          background-color:                                 $custom-checkbox-checked-color;
          transition:                                       background-color 0.5s ease;
        }
      }
    }
    ~ .custom-control-label {
      transition:                                           color 0.5s ease;
      &::before {
        transition:                                         background-color 0.5s ease;
      }
    }
  }
  &.inverse {
    .custom-control-input ~ .custom-control-label {
      &::before {
        background-color:                                   $custom-checkbox-inverse-checked-color;
      }
    }
    .custom-control-input:checked ~ .custom-control-label {
      &::before {
        background-color:                                   $custom-checkbox-inverse-checked-color;
      }
      &::after {
        background-image:                                   $custom-checkbox-inverse-indicator-icon-checked;
      }
    }
  }
  .custom-control-input ~ .custom-control-label {
    &::before {
      margin-top:                                           -2px;
    }
    &::after {
      margin-top:                                           -2px;
      cursor:                                               pointer;
    }
  }

  &.full-width-checkbox {
    .custom-control-input {
      width:                                                100% !important;
    }
  }
}
