:host {
  display: inline-flex;
  outline: none;
  position: relative;
  pointer-events: auto;
  border: 0.0625rem solid transparent;
  cursor: pointer;
  min-width: 17.5rem;
}
:host slot {
  display: contents;
}

:host(:hover:not([disabled]:not([disabled=false])):not([checked]:not([checked=false]))) {
  --r-radio-button--cursor: pointer;
  --r-radio-button--box--background-color: var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04));
}

:host(:active:not([disabled]:not([disabled=false])):not([checked]:not([checked=false]))) {
  --r-radio-button--box--border-color: var(--r-border-regular, #282828);
  --r-radio-button--box--background-color: var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12));
}

:host(:focus-within),
:host(.focused) {
  --r-radio-button--box--box-shadow: 0 0 0 4px var(--r-border-focused-outlined, #fff);
  --r-radio-button--box--outline: 2px solid var(--r-border-focused, #0071e3);
  --r-radio-button--box--outline-offset: 1px;
}

:host([checked]:not([checked=false])),
:host([checked]:not([checked=false]):hover) {
  cursor: default;
  --r-radio-button--box--border-color: var(--r-border-regular, #282828);
  --r-radio-button--box--background-color: var(--r-background-interactive-softest, #fff);
  --r-radio-button--marker--transform: scale(1);
}

:host([invalid]:not([invalid=false])),
:host([invalid]:not([invalid=false])[checked]:not([checked=false])) {
  --r-radio-button--box--border-color: var(--r-status-error-regular, #b00c15);
  --r-radio-button--box--background-color: var(--r-status-error-soft, #fef6f6);
}

:host([disabled]:not([disabled=false])) {
  --r-radio-button--box--opacity: 0.4;
  cursor: not-allowed;
}

.r-radio-button {
  display: var(--r-radio-button--display, flex);
  flex: var(--r-radio-button--flex, 1);
  gap: var(--r-radio-button--gap, var(--r-spacing-075, 0.75rem));
  position: var(--r-radio-button--position, relative);
  min-height: var(--r-radio-button--min-height, 24px);
  user-select: var(--r-radio-button--user-select, none);
  box-sizing: var(--r-radio-button--box-sizing, border-box);
  font-family: var(--r-radio-button--font-family, var(--r-font-family-text, system-ui));
  font-size: var(--r-radio-button--font-size, var(--r-font-size-400, 1rem));
  line-height: var(--r-radio-button--line-height, var(--r-line-height-m, 1.5rem));
  text-align: var(--r-radio-button--text-align, left);
  color: var(--r-radio-button--color, var(--r-text-regular, #282828));
  opacity: var(--r-radio-button--opacity, 1);
  box-shadow: var(--r-radio-button--box-shadow, none);
  outline: var(--r-radio-button--outline, none);
  cursor: var(--r-radio-button--cursor, inherit);
  padding: var(--r-radio-button--padding, var(--r-spacing-100, 1rem));
  margin: var(--r-radio-button--margin, 0);
  background-color: var(--r-radio-button--background-color, transparent);
  border-color: var(--r-radio-button--border-color, transparent);
  border-width: var(--r-radio-button--border-width, 0);
  border-style: var(--r-radio-button--border-style, solid);
}
.r-radio-button--input {
  position: var(--r-radio-button--input--position, absolute);
  z-index: var(--r-radio-button--input--z-index, -1);
  opacity: var(--r-radio-button--input--opacity, 0);
}
.r-radio-button--box {
  position: var(--r-radio-button--box--position, relative);
  display: var(--r-radio-button--box--display, block);
  top: var(--r-radio-button--box--top, 0);
  left: var(--r-radio-button--box--left, 0);
  width: var(--r-radio-button--box--width, 1.5rem);
  height: var(--r-radio-button--box--height, 1.5rem);
  background-color: var(--r-radio-button--box--background-color, var(--r-background-interactive-softest, #fff));
  border-width: var(--r-radio-button--box--border-width, 0.0625rem);
  border-style: var(--r-radio-button--box--border-style, solid);
  border-color: var(--r-radio-button--box--border-color, var(--r-border-soft, #686868));
  border-radius: var(--r-radio-button--box--border-radius, 50%);
  box-sizing: var(--r-radio-button--box--box-sizing, border-box);
  box-shadow: var(--r-radio-button--box--box-shadow, none);
  outline: var(--r-radio-button--box--outline, none);
  outline-offset: var(--r-radio-button--box--outline-offset, 0);
  cursor: var(--r-radio-button--box--cursor, inherit);
  opacity: var(--r-radio-button--box--opacity, 1);
}
.r-radio-button--box::before {
  content: var(--r-radio-button--marker--content, "");
  display: var(--r-radio-button--marker--display, block);
  width: var(--r-radio-button--marker--width, 0.75rem);
  height: var(--r-radio-button--marker--height, 0.75rem);
  position: var(--r-radio-button--marker--position, absolute);
  top: var(--r-radio-button--marker--top, calc(50% - 0.375rem));
  left: var(--r-radio-button--marker--left, calc(50% - 0.375rem));
  border-radius: var(--r-radio-button--marker--border-radius, 50%);
  background-color: var(--r-radio-button--marker--background-color, var(--r-background-interactive-regular, #282828));
  transition: var(--r-radio-button--marker--transition, 0.1s all);
  transform: var(--r-radio-button--marker--transform, scale(0));
  transform-origin: var(--r-radio-button--marker--transform-origin, center);
}
.r-radio-button--text {
  flex: var(--r-radio-button--text--flex, 1);
  display: var(--r-radio-button--text--display, flex);
  flex-direction: var(--r-radio-button--text--flex-direction, column);
  gap: var(--r-radio-button--text--gap, var(--r-spacing-025, 0.25rem));
  font-weight: var(--r-radio-button--text--font-weight, var(--r-font-weight-semibold, 600));
}
.r-radio-button--leading {
  min-height: var(--r-radio-button--leading--min-height, var(--r-spacing-150, 1.5rem));
  min-width: var(--r-radio-button--leading--min-width, calc(var(--r-spacing-150, 1.5rem) + 2 * var(--r-spacing-075, 0.75rem)));
  color: var(--r-radio-button--leading--color, var(--r-icon-soft, #686868));
  display: var(--r-radio-button--leading--display, flex);
  justify-content: var(--r-radio-button--leading--justify-content, center);
  align-items: var(--r-radio-button--leading--align-items, start);
}
