@mixin sassy-radio {
  position: absolute;
  left: -1000rem;

  + label {
    position: relative;
    cursor: pointer;
    margin-right: rem(15);
    padding-left: rem(25);
    font-size: rem(14);

    &::before {
      content: '';
      position: absolute;
      left: 0;
      bottom: 0;
      height: rem(18);
      width: rem(18);
      border-radius: rem(9);
      background-color: $sassy-base-color;
      font-family: sans-serif;
    }

    &::after {
      content: '';
      transition: background-color 0.3s;
    }
  }

  &:checked + label::after {
    content: '';
    position: absolute;
    left: rem(5);
    top: rem(3);
    height: rem(8);
    width: rem(8);
    border-radius: rem(15);
    background-color: $sassy-accent-color;
    text-align: center;
  }

  &:focus + label::before {
    box-shadow: 0 rem(1) 0 darken($sassy-base-color, 30%);
  }

  &:disabled {
    + label {
      cursor: not-allowed;

      &::before {
        background-color: $sassy-disabled-color;
      }
    }

    &:checked + label::after {
      background-color: darken($sassy-disabled-color, 30%);
    }
  }
}
