@import '../mixins/mixins';
@import '../mixins/typo';
@import '../config/variables';

@include b(radio-button) {
  position: relative;
  display: inline-block;
  outline: none;

  @include e(label) {
    @include bodyL;
    color: $--color-text;
    transition: all .2s cubic-bezier(.645,.045,.355,1);
  }

  @include e(desc) {
    font-size: 13px;
    line-height: 19px;
    color: $--color-warmtext;
    transition: all .2s cubic-bezier(.645,.045,.355,1);
  }

  @include e(inner) {
    display: inline-block;
    white-space: nowrap;
    vertical-align: middle;
    background: $--color-white;
    border: 1px solid $--color-silver;
    -webkit-appearance: none;
    text-align: center;
    box-sizing: border-box;
    outline: none;
    margin: 0 0 0 -1px;
    position: relative;
    cursor: pointer;
    height: 52px;
    transition: all .2s cubic-bezier(.645,.045,.355,1);
    padding: 14px 34px;
    z-index: 1;

    &:hover {
      z-index: 2;
      border-color: $--color-dark;
      @include e(label) {
        color: $--color-dark;
      }
      @include e(desc) {
        color: $--color-dark;
      }
    }

    &:active {
      z-index: 2;
      border-color: $--color-primary;
      @include e(label) {
        color: $--color-primary;
      }
      @include e(desc) {
        color: $--color-primary;
      }
    }
  }

  @include when(desc) {
    @include e(inner) {
      padding: 4px 34px 6px;
    }
  }

  &:first-child {
    .el-radio-button__inner {
      margin: 0;
      border-radius: $--border-radius 0 0 $--border-radius;
      box-shadow: none !important;
    }
  }

  @include e(orig-radio) {
    opacity: 0;
    outline: none;
    position: absolute;
    z-index: -1;

    &:checked {
      & + .el-radio-button__inner {
        background: $--color-primary;
        border-color: $--color-primary;
        .el-radio-button__label,
        .el-radio-button__desc {
          color: $--color-white;
        }
      }
      &:hover {
        & + .el-radio-button__inner {
          border-color: $--color-dark;
          background: $--color-dark;
          .el-radio-button__label,
          .el-radio-button__desc {
            color: $--color-white;
          }
        }
      }
      &:active {
        & + .el-radio-button__inner {
          border-color: $--color-primary;
          background: $--color-primary;
          .el-radio-button__label,
          .el-radio-button__desc {
            color: $--color-white;
          }
        }
      }
    }

    &:disabled {
      & + .el-radio-button__inner {
        border-color: $--color-disabled;
        z-index: 1 !important;
        .el-radio-button__label,
        .el-radio-button__desc {
          color: $--color-silver;
        }
      }
      &:checked + .el-radio-button__inner {
        border-color: $--color-disabled;
        background: $--color-disabled;
        z-index: 1 !important;
        .el-radio-button__label,
        .el-radio-button__desc {
          color: $--color-white;
        }
      }
    }
  }

  &:last-child {
    .el-radio-button__inner {
      border-radius: 0 $--border-radius $--border-radius 0;
    }
  }

  &:first-child:last-child {
    .el-radio-button__inner {
      border-radius: $--border-radius;
    }
  }
}
