/**
 * @license EUPL-1.2
 * Copyright (c) 2021 Robbert Broersma
 */
/**
 * @license EUPL-1.2
 * Copyright (c) 2021 Robbert Broersma
 */
/**
 * @license EUPL-1.2
 * Copyright (c) 2021 Gemeente Utrecht
 * Copyright (c) 2021 Robbert Broersma
 */
/* stylelint-disable-next-line block-no-empty */
/* stylelint-disable-next-line block-no-empty */
.utrecht-radio-button {
  /*
   * Use 24x24px as hardcoded minimum target size, to meet WCAG 2.5.8 standards.
   * https://www.w3.org/WAI/WCAG22/Understanding/target-size-minimum.html
   */
  /*
   * For the `radial-gradient()` use a 5% gradient size to improve anti-aliasing.
   * With a 0% gradient, the circle will have jagged edges.
   */
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  margin-block-end: 0;
  margin-block-start: 0;
  margin-inline-end: 0;
  margin-inline-start: 0;
  --_utrecht-radio-button-background-color: var(
    --_utrecht-radio-button-interactive-background-color,
    var(--_utrecht-radio-button-state-background-color, var(--utrecht-radio-button-background-color))
  );
  --_utrecht-radio-button-border-color: var(
    --_utrecht-radio-button-interactive-border-color,
    var(--_utrecht-radio-button-state-border-color, var(--utrecht-radio-button-border-color, currentColor))
  );
  --_utrecht-radio-button-border-width: var(
    --_utrecht-radio-button-interactive-border-width,
    var(--_utrecht-radio-button-state-border-width, var(--utrecht-radio-button-border-width))
  );
  --_utrecht-radio-button-color: var(
    --_utrecht-radio-button-interactive-color,
    var(--_utrecht-radio-button-state-color, var(--utrecht-radio-button-color, currentColor))
  );
  --_utrecht-radio-button-icon-size: 0;
  background-color: var(--_utrecht-radio-button-background-color);
  background-image: radial-gradient(circle, var(--_utrecht-radio-button-color, transparent) calc(var(--_utrecht-radio-button-icon-size, 50%) - 5%), var(--_utrecht-radio-button-background-color, currentColor) var(--_utrecht-radio-button-icon-size, 50%));
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  block-size: var(--utrecht-radio-button-size, 1em);
  border-color: var(--_utrecht-radio-button-border-color);
  border-radius: 50%;
  border-style: solid;
  border-width: var(--_utrecht-radio-button-border-width);
  cursor: var(--utrecht-action-activate-cursor, revert);
  inline-size: var(--utrecht-radio-button-size, 1em);
  margin-inline-end: var(--utrecht-radio-button-margin-inline-end);
  min-block-size: 24px;
  min-inline-size: 24px;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
  -webkit-user-select: none;
  user-select: none;
  vertical-align: top;
}

.utrecht-radio-button--checked {
  --_utrecht-radio-button-icon-size: var(--utrecht-radio-button-icon-size, 50%);
  --_utrecht-radio-button-state-background-color: var(--utrecht-radio-button-checked-background-color);
  --_utrecht-radio-button-state-border-color: var(--utrecht-radio-button-checked-border-color);
  --_utrecht-radio-button-state-border-width: var(--utrecht-radio-button-checked-border-width);
  --_utrecht-radio-button-state-color: var(--utrecht-radio-button-checked-color);
  --_utrecht-radio-button-state-active-background-color: var(--utrecht-radio-button-checked-active-background-color);
  --_utrecht-radio-button-state-active-border-color: var(--utrecht-radio-button-checked-active-border-color);
  --_utrecht-radio-button-state-active-border-width: var(--utrecht-radio-button-checked-active-border-width);
  --_utrecht-radio-button-state-active-color: var(--utrecht-radio-button-checked-active-color);
  --_utrecht-radio-button-state-focus-background-color: var(--utrecht-radio-button-checked-focus-background-color);
  --_utrecht-radio-button-state-focus-border-color: var(--utrecht-radio-button-checked-focus-border-color);
  --_utrecht-radio-button-state-focus-border-width: var(--utrecht-radio-button-checked-focus-border-width);
  --_utrecht-radio-button-state-focus-color: var(--utrecht-radio-button-checked-focus-color);
  --_utrecht-radio-button-state-hover-background-color: var(--utrecht-radio-button-checked-hover-background-color);
  --_utrecht-radio-button-state-hover-border-color: var(--utrecht-radio-button-checked-hover-border-color);
  --_utrecht-radio-button-state-hover-border-width: var(--utrecht-radio-button-checked-hover-border-width);
  --_utrecht-radio-button-state-hover-color: var(--utrecht-radio-button-checked-hover-color);
}

.utrecht-radio-button--hover {
  --_utrecht-radio-button-interactive-background-color: var(
    --_utrecht-radio-button-state-hover-background-color,
    var(--utrecht-radio-button-hover-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --_utrecht-radio-button-state-hover-border-color,
    var(--utrecht-radio-button-hover-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --_utrecht-radio-button-state-hover-border-width,
    var(--utrecht-radio-button-hover-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --_utrecht-radio-button-state-hover-color,
    var(--utrecht-radio-button-hover-color)
  );
}

.utrecht-radio-button--focus {
  --_utrecht-radio-button-interactive-background-color: var(
    --utrecht-radio-button-focus-background-color,
    var(--utrecht-radio-button-focus-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --utrecht-radio-button-focus-border-color,
    var(--utrecht-radio-button-focus-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --utrecht-radio-button-focus-border-width,
    var(--utrecht-radio-button-focus-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --utrecht-radio-button-focus-color,
    var(--utrecht-radio-button-focus-color)
  );
}

.utrecht-radio-button--focus-visible {
  /* - The browser default focus ring should apply when these CSS custom properties are not set.
   * - Make the `box-shadow` value available, so components that have their own `box-shadow`
   *   can combine it with the focus ring box shadow.
   */
  --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)
    var(--utrecht-focus-inverse-outline-color, transparent);
  box-shadow: var(--_utrecht-focus-ring-box-shadow);
  outline-color: var(--utrecht-focus-outline-color, revert);
  outline-offset: var(--utrecht-focus-outline-offset, revert);
  outline-style: var(--utrecht-focus-outline-style, revert);
  outline-width: var(--utrecht-focus-outline-width, revert);
}

.utrecht-radio-button--active {
  --_utrecht-radio-button-interactive-background-color: var(
    --_utrecht-radio-button-state-active-background-color,
    var(--utrecht-radio-button-active-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --_utrecht-radio-button-state-active-border-color,
    var(--utrecht-radio-button-active-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --_utrecht-radio-button-state-active-border-width,
    var(--utrecht-radio-button-active-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --_utrecht-radio-button-state-active-color,
    var(--utrecht-radio-button-active-color)
  );
}

.utrecht-radio-button--disabled {
  /*
   * The disabled radio button should have:
   * - should have no active effect
   * - should have no focus effect
   * - should have no hover effect
   * - should have a working focus-visible effect, in case someone sets `<input type="radio" disabled tabindex="0">`
   */
  --_utrecht-radio-button-background-color: var(
    --utrecht-radio-button-disabled-background-color,
    var(--utrecht-radio-button-background-color)
  );
  --_utrecht-radio-button-border-color: var(
    --utrecht-radio-button-disabled-border-color,
    var(--utrecht-radio-button-border-color)
  );
  --_utrecht-radio-button-border-width: var(
    --utrecht-radio-button-disabled-border-width,
    var(--utrecht-radio-button-border-width)
  );
  --_utrecht-radio-button-color: var(--utrecht-radio-button-disabled-color, var(--utrecht-radio-button-color));
  /* no focus effect */
  --_utrecht-radio-button-focus-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-focus-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-focus-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-focus-color: var(--_utrecht-radio-button-color);
  /* no active effect */
  --_utrecht-radio-button-active-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-active-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-active-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-active-color: var(--_utrecht-radio-button-color);
  /* no hover effect */
  --_utrecht-radio-button-hover-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-hover-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-hover-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-hover-color: var(--_utrecht-radio-button-color);
  cursor: var(--utrecht-action-disabled-cursor, not-allowed);
}

.utrecht-radio-button--invalid {
  border-color: var(--utrecht-radio-button-invalid-border-color, var(--utrecht-radio-button-border-color));
  border-width: var(--utrecht-radio-button-invalid-border-width, var(--utrecht-radio-button-border-width));
  color: var(--utrecht-radio-button-invalid-color, var(--utrecht-radio-button-color));
}

.utrecht-radio-button--html-input {
  /* override the `:focus` selector above */
  /* stylelint-disable-next-line no-descending-specificity */
}
.utrecht-radio-button--html-input:checked {
  --_utrecht-radio-button-icon-size: var(--utrecht-radio-button-icon-size, 50%);
  --_utrecht-radio-button-state-background-color: var(--utrecht-radio-button-checked-background-color);
  --_utrecht-radio-button-state-border-color: var(--utrecht-radio-button-checked-border-color);
  --_utrecht-radio-button-state-border-width: var(--utrecht-radio-button-checked-border-width);
  --_utrecht-radio-button-state-color: var(--utrecht-radio-button-checked-color);
  --_utrecht-radio-button-state-active-background-color: var(--utrecht-radio-button-checked-active-background-color);
  --_utrecht-radio-button-state-active-border-color: var(--utrecht-radio-button-checked-active-border-color);
  --_utrecht-radio-button-state-active-border-width: var(--utrecht-radio-button-checked-active-border-width);
  --_utrecht-radio-button-state-active-color: var(--utrecht-radio-button-checked-active-color);
  --_utrecht-radio-button-state-focus-background-color: var(--utrecht-radio-button-checked-focus-background-color);
  --_utrecht-radio-button-state-focus-border-color: var(--utrecht-radio-button-checked-focus-border-color);
  --_utrecht-radio-button-state-focus-border-width: var(--utrecht-radio-button-checked-focus-border-width);
  --_utrecht-radio-button-state-focus-color: var(--utrecht-radio-button-checked-focus-color);
  --_utrecht-radio-button-state-hover-background-color: var(--utrecht-radio-button-checked-hover-background-color);
  --_utrecht-radio-button-state-hover-border-color: var(--utrecht-radio-button-checked-hover-border-color);
  --_utrecht-radio-button-state-hover-border-width: var(--utrecht-radio-button-checked-hover-border-width);
  --_utrecht-radio-button-state-hover-color: var(--utrecht-radio-button-checked-hover-color);
}
.utrecht-radio-button--html-input:disabled {
  /*
   * The disabled radio button should have:
   * - should have no active effect
   * - should have no focus effect
   * - should have no hover effect
   * - should have a working focus-visible effect, in case someone sets `<input type="radio" disabled tabindex="0">`
   */
  --_utrecht-radio-button-background-color: var(
    --utrecht-radio-button-disabled-background-color,
    var(--utrecht-radio-button-background-color)
  );
  --_utrecht-radio-button-border-color: var(
    --utrecht-radio-button-disabled-border-color,
    var(--utrecht-radio-button-border-color)
  );
  --_utrecht-radio-button-border-width: var(
    --utrecht-radio-button-disabled-border-width,
    var(--utrecht-radio-button-border-width)
  );
  --_utrecht-radio-button-color: var(--utrecht-radio-button-disabled-color, var(--utrecht-radio-button-color));
  /* no focus effect */
  --_utrecht-radio-button-focus-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-focus-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-focus-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-focus-color: var(--_utrecht-radio-button-color);
  /* no active effect */
  --_utrecht-radio-button-active-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-active-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-active-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-active-color: var(--_utrecht-radio-button-color);
  /* no hover effect */
  --_utrecht-radio-button-hover-background-color: var(--_utrecht-radio-button-background-color);
  --_utrecht-radio-button-hover-border-color: var(--_utrecht-radio-button-border-color);
  --_utrecht-radio-button-hover-border-width: var(--_utrecht-radio-button-border-width);
  --_utrecht-radio-button-hover-color: var(--_utrecht-radio-button-color);
  cursor: var(--utrecht-action-disabled-cursor, not-allowed);
}
.utrecht-radio-button--html-input:invalid, .utrecht-radio-button--html-input[aria-invalid=true] {
  border-color: var(--utrecht-radio-button-invalid-border-color, var(--utrecht-radio-button-border-color));
  border-width: var(--utrecht-radio-button-invalid-border-width, var(--utrecht-radio-button-border-width));
  color: var(--utrecht-radio-button-invalid-color, var(--utrecht-radio-button-color));
}
.utrecht-radio-button--html-input:focus:not([aria-disabled=true], :disabled) {
  --_utrecht-radio-button-interactive-background-color: var(
    --utrecht-radio-button-focus-background-color,
    var(--utrecht-radio-button-focus-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --utrecht-radio-button-focus-border-color,
    var(--utrecht-radio-button-focus-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --utrecht-radio-button-focus-border-width,
    var(--utrecht-radio-button-focus-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --utrecht-radio-button-focus-color,
    var(--utrecht-radio-button-focus-color)
  );
}
.utrecht-radio-button--html-input:focus-visible {
  /* - The browser default focus ring should apply when these CSS custom properties are not set.
   * - Make the `box-shadow` value available, so components that have their own `box-shadow`
   *   can combine it with the focus ring box shadow.
   */
  --_utrecht-focus-ring-box-shadow: 0 0 0 var(--utrecht-focus-outline-width, 0)
    var(--utrecht-focus-inverse-outline-color, transparent);
  box-shadow: var(--_utrecht-focus-ring-box-shadow);
  outline-color: var(--utrecht-focus-outline-color, revert);
  outline-offset: var(--utrecht-focus-outline-offset, revert);
  outline-style: var(--utrecht-focus-outline-style, revert);
  outline-width: var(--utrecht-focus-outline-width, revert);
}
.utrecht-radio-button--html-input:hover:not([aria-disabled=true], :disabled) {
  --_utrecht-radio-button-interactive-background-color: var(
    --_utrecht-radio-button-state-hover-background-color,
    var(--utrecht-radio-button-hover-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --_utrecht-radio-button-state-hover-border-color,
    var(--utrecht-radio-button-hover-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --_utrecht-radio-button-state-hover-border-width,
    var(--utrecht-radio-button-hover-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --_utrecht-radio-button-state-hover-color,
    var(--utrecht-radio-button-hover-color)
  );
}
.utrecht-radio-button--html-input:active:not([aria-disabled=true], :disabled) {
  --_utrecht-radio-button-interactive-background-color: var(
    --_utrecht-radio-button-state-active-background-color,
    var(--utrecht-radio-button-active-background-color)
  );
  --_utrecht-radio-button-interactive-border-color: var(
    --_utrecht-radio-button-state-active-border-color,
    var(--utrecht-radio-button-active-border-color)
  );
  --_utrecht-radio-button-interactive-border-width: var(
    --_utrecht-radio-button-state-active-border-width,
    var(--utrecht-radio-button-active-border-width)
  );
  --_utrecht-radio-button-interactive-color: var(
    --_utrecht-radio-button-state-active-color,
    var(--utrecht-radio-button-active-color)
  );
}