.radio {
  & > &__dot-container {
    border-color: var(--wds-radio-border, var(--wds-color-border-dark-primary));
  }

  @media (hover: hover) {
    &:not(&--checked):hover > &__dot-container {
      border-color: var(--wds-radio-border-hover, var(--wds-color-border-dark-primary));
    }
  }

  &:not(&--checked)#{&}--disabled > &__dot-container {
    border-color: var(--wds-radio-border-disabled, var(--wds-color-border-dark-primary-disabled));
  }

  &--checked > &__dot-container {
    background-color: var(--wds-radio-fill-active-hover, var(--wds-color-fill-standard-primary));
  }

  &--checked#{&}--disabled > &__dot-container {
    border-color: var(--wds-radio-border-active-disabled, var(--wds-color-black-100-transparent-0));
    background-color: var(--wds-radio-fill-active-disabled, var(--wds-color-fill-standard-primary-disabled));
  }

  &__input:focus-visible ~ &__dot-container {
    border-color: var(--wds-radio-border, var(--wds-color-border-dark-primary));
  }

  @media (hover: hover) {
    &:not(&--checked) > &__dot-container:hover:not(:active) {
      border-color: var(--wds-radio-border-hover, var(--wds-color-border-dark-primary));
    }
  }

  & > &__dot-container > &__dot {
    width: var(--wds-radio-dot-size, 4px);
    height: var(--wds-radio-dot-size, 4px);
    background-color: var(--wds-radio-dot-fill-active, var(--wds-color-fill-standard-tertiary));
  }

  &:active > &__dot-container > &__dot {
    background-color: var(--wds-radio-dot-fill-active, var(--wds-color-fill-standard-tertiary));
  }

  &--checked#{&}--disabled > &__dot-container > &__dot {
    background-color: var(--wds-radio-dot-fill-disabled, var(--wds-color-fill-standard-tertiary-disabled));
  }

  &#{&}--size-small &__label &__label-text {
    font-size: var(--wds-radio-label-font-size-small, var(--wds-font-size-body-tiny));
    line-height: var(--wds-radio-label-font-line-height-small, var(--wds-font-line-height-body-tiny));
  }

  &#{&}--size-medium &__label &__label-text {
    font-size: var(--wds-radio-label-font-size-medium, var(--wds-font-size-body-small));
    line-height: var(--wds-radio-label-font-line-height-medium, var(--wds-font-line-height-body-small));
  }
}
