.o3-form-input-radio-button {
	+ label::before {
		content: '';
		display: inline-block;
		width: var(--o3-spacing-s);
		height: var(--o3-spacing-s);
		margin-right: var(--o3-spacing-3xs);
		border: var(--_o3-form-input-border);
		border-radius: 50%;
		box-sizing: border-box;
	}

	&:hover + label::before {
		border-color: var(--_o3-form-color-use-case-border-hover);
	}

	&:active + label::before {
		border-color: var(--_o3-form-color-use-case-border-active);
	}

	&:checked + label::before {
		border-color: var(--_o3-form-color-use-case-selected);
	}

	&:checked + label::after {
		position: absolute;
		content: '';
		width: var(--o3-spacing-3xs);
		height: var(--o3-spacing-3xs);
		background-color: var(--_o3-form-color-use-case-selected);
		/* 6px margin centers our 12px width/height circle within the checkbox outer ring, so checkbox is 24px in total  */
		margin: 6px;
		border-radius: 50%;
	}

	&:checked:hover + label::before {
		border-color: var(--_o3-form-color-use-case-selected-hover);
	}

	&:checked:hover + label::after {
		background-color: var(--_o3-form-color-use-case-selected-hover);
	}

	&:checked:active + label::before {
		border-color: var(--_o3-form-color-use-case-selected-active);
	}

	&:checked:active + label::after {
		background-color: var(--_o3-form-color-use-case-selected-active);
	}

	&:disabled + label::before {
		border-color: var(--_o3-form-color-use-case-border-disabled);
	}

	&:disabled:checked + label::after {
		background-color: var(--_o3-form-color-use-case-border-disabled);
	}

	&:disabled + label {
		color: var(--_o3-form-color-use-case-border-disabled);
	}

	&.o3-form-input-error + label::before {
		border-color: var(--o3-color-use-case-error);
		background-color: var(--_o3-form-color-use-case-background-error);
	}

	&.o3-form-input-error:checked + label::before {
		border-color: var(--o3-color-use-case-error);
		background-color: var(--_o3-form-color-use-case-background-error);
	}

	&.o3-form-input-error:checked + label::after {
		background-color: var(--o3-color-use-case-error);
	}

	&:focus + label::before {
		box-shadow: var(--o3-focus-use-case-ring-inner),
			var(--03-focus-use-case-ring-outer);
		outline: 3px solid transparent; /* For Windows high contrast mode. */
	}

	@supports selector(:focus-visible) {
		&:focus + label::before {
			box-shadow: unset;
		}
		&:focus-visible + label::before {
			box-shadow: var(--o3-focus-use-case-ring-inner),
				var(--o3-focus-use-case-ring-outer);
			outline: 3px solid transparent; /* For Windows high contrast mode. */
		}
	}
}

.o3-form-input-radio-button__label {
	display: flex;
	align-items: center;
	font-size: var(--o3-type-body-base-font-size);
	font-weight: var(--o3-type-body-base-font-weight);
	font-family: var(--o3-type-body-base-font-family);
	line-height: var(--o3-type-body-base-line-height);
	color: var(--o3-color-use-case-body-text);
}
