@import '../../base.less';

@import './_var.less';

@import './_mixin.less';

.@{prefix}-radio {
  position: relative;
  display: inline-flex;
  vertical-align: middle;
  background: @radio-bg-color;

  &:focus {
    outline: 0;
  }

  &--block {
    display: flex;
    padding: @radio-vertical-padding;
  }

  &--right {
    flex-direction: row-reverse;
  }

  &__icon {
    position: relative;
    margin-top: calc((@radio-label-line-height - @radio-icon-size) / 2);
    width: @radio-icon-size;
    height: @radio-icon-size;
    font-size: @radio-icon-size;
    /* stylelint-disable-next-line */
    -webkit-text-size-adjust: none;
    color: @radio-icon-color;
    overflow: hidden;

    &:empty {
      display: none;
    }

    &--left {
      margin-right: 8px;
    }

    &--checked {
      color: @radio-icon-checked-color;
    }

    &--disabled {
      cursor: not-allowed;
      color: @radio-icon-disabled-color;
    }

    &-circle {
      width: @radio-icon-size;
      height: @radio-icon-size;
      box-sizing: border-box;

      &::after {
        content: '';
        width: calc(200% - 3px);
        height: calc(200% - 3px);
        border-radius: 50%;
        border: 3px solid @radio-icon-color;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%) scale(.5);
        box-sizing: border-box;
      }

      &--disabled::after {
        background: @radio-icon-disabled-bg-color;
      }
    }

    &-dot {
      width: calc((@radio-icon-size - 3px) * 2);
      height: calc((@radio-icon-size - 3px) * 2);
      border: 3px solid @radio-icon-checked-color;
      border-radius: 50%;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%) scale(.5);
      box-sizing: border-box;
      display: flex;
      align-items: center;
      justify-content: center;

      &::after {
        content: '';
        display: block;
        width: @radio-icon-size;
        height: @radio-icon-size;
        background: @radio-icon-checked-color;
        border-radius: 50%;
      }

      &--disabled {
        border-color: @radio-icon-disabled-color;

        &::after {
          background: @radio-icon-disabled-color;
        }
      }
    }
  }

  &__image {
    line-height: @radio-icon-size;
  }

  &-icon__image {
    height: @radio-icon-size;
    width: @radio-icon-size;
    vertical-align: sub;
  }

  &__content {
    flex: 1;

    &:empty {
      display: none;
    }
  }

  &__title {
    .limit-title-row();

    color: @radio-label-color;
    font: @radio-label-font;

    &--disabled {
      cursor: not-allowed;
      color: @radio-label-disabled-color;
    }
  }

  &__description {
    .limit-title-row();

    color: @radio-content-color;
    font: @radio-content-font;

    &--disabled {
      cursor: not-allowed;
      color: @radio-content-disabled-color;
    }

    &:empty {
      display: none;
    }
  }

  &__title + &__description {
    margin-top: 4px;
  }

  &__border {
    position: absolute;
    bottom: 0;
    height: 1px;
    background: @radio-border-color;
    left: 48px;
    right: 0;
    transform: scaleY(.5);

    &--right {
      left: 16px;
    }
  }

  // mobile vue
  &__original {
    opacity: 0;
    width: 0;
    height: 0;
  }

  &__icon-wrap {
    display: block !important;
    width: @radio-icon-size;
    height: @radio-icon-size;
  }
}
