.radio {
  width: var(--spacing-6);
  height: var(--spacing-6);
  -moz-appearance: none;
       appearance: none;
  -webkit-appearance: none;
  display: flex;
  align-content: center;
  justify-content: center;
  border-radius: 100%;
  background-color: var(--color-white);
  border: 2px solid var(--color-gray-300);
  position: relative;
}

@media (hover: hover) {
  .radio:hover {
    border: 2px solid var(--color-gray-400);
    box-shadow: inset 0px 0px 5px 5px
      var(--color-background-brand-subtle-hovered);
    cursor: pointer;
  }
}

.radio:active {
  background-color: var(--color-background-brand-subtle-pressed);
}

@media (hover: hover) {
  .radio:checked:hover {
    border-color: var(--color-background-brand-hovered);
    box-shadow: none;
  }

  .radio:checked:hover::before {
    background-color: var(--color-background-brand-hovered);
  }
}

.radio:checked {
  border-color: var(--color-background-brand-base);
}

.radio::after {
  content: "";
  position: absolute;
  width: var(--spacing-10);
  height: var(--spacing-10);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.radio:checked::before {
  content: "";
  background-color: var(--color-background-brand-base);
  width: var(--spacing-4);
  height: var(--spacing-4);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 100%;
}

.radio:disabled {
  pointer-events: none;
  background-color: var(--color-gray-100);
  border-color: var(--color-gray-100);
}

label {
  display: flex;
  align-items: center;
  gap: var(--spacing-2);
  font: var(--type-label-base);
  color: var(--color-text-base);
}
