html {
  box-sizing: border-box;
}

body {
  margin: 0;
}

*,
*:before,
*:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: transparent;
}

:host {
  font-family: var(--c-font-family);
}

::-ms-reveal {
  display: none;
}

:host {
  /**
   * @prop --c-checkbox-background-color-hover: Checkbox hover background color
   * @prop --c-checkbox-color-active: Active checkbox color
   * @prop --c-checkbox-color-disabled: Disabled checkbox color
   * @prop --c-checkbox-color: Checkbox color
   */
  --_c-checkbox-background-color-hover: var(--c-checkbox-background-color-hover, rgba(var(--c-primary-rgb), 0.1));
  --_c-checkbox-color-active: var(--c-checkbox-color-active, var(--_c-checkbox-color));
  --_c-checkbox-color-disabled: var(--c-checkbox-color-disabled, var(--c-tertiary-500));
  --_c-checkbox-color: var(--c-checkbox-color, var(--c-primary-600));
  --_c-checkbox-color-error: var(--c-error-600);
}

.c-checkbox {
  position: relative;
  width: fit-content;
}
.c-checkbox__label-content {
  padding-top: 10px;
  text-align: left;
  user-select: none;
}
.c-checkbox__label-content span.required {
  color: var(--c-error-600);
}
.c-checkbox--disabled {
  --_c-checkbox-color: var(--_c-checkbox-color-disabled);
  --c-error-600: var(--_c-checkbox-color);
  --_c-checkbox-color-active: var(--_c-checkbox-color-disabled);
  color: var(--_c-checkbox-color);
  opacity: 0.75;
}
.c-checkbox--disabled .c-checkbox__label {
  cursor: default;
}
.c-checkbox--error {
  --_c-checkbox-color: var(--c-error-600);
  --_c-checkbox-color-active: var(--_c-checkbox-color-error);
  color: var(--_c-checkbox-color-error);
}
.c-checkbox input:focus {
  outline: none;
}
.c-checkbox input:focus + .c-checkbox__label .ripple {
  outline: 2px var(--_c-checkbox-color-active) solid;
}
@supports selector(:focus-visible) {
  .c-checkbox input:focus + .c-checkbox__label .ripple {
    outline: none;
  }
}
.c-checkbox input:focus-visible + .c-checkbox__label .ripple {
  outline: 2px var(--_c-checkbox-color-active) solid;
}
.c-checkbox:not(.c-checkbox--disabled) .ripple:hover {
  background-color: var(--_c-checkbox-background-color-hover);
}
.c-checkbox .visuallyhidden {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  height: 1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.c-checkbox input:checked + .c-checkbox__label .ripple::before {
  background: var(--_c-checkbox-color-active);
  border-color: var(--_c-checkbox-color-active);
}
.c-checkbox input:checked + .c-checkbox__label .path {
  stroke: #ffffff;
  fill: #ffffff;
  stroke-dashoffset: 0;
  stroke-width: 13;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-miterlimit: 10;
}

.c-checkbox__label {
  cursor: pointer;
  display: flex;
  gap: 4px;
  position: relative;
  user-select: none;
}
.c-checkbox__label svg {
  height: 14px;
  left: 14px;
  position: absolute;
  top: 14px;
  width: 14px;
}
.c-checkbox__label--indeterminate .path {
  stroke-dasharray: 0 !important;
  stroke-dashoffset: 0 !important;
  stroke: transparent;
}
.c-checkbox__label .ripple {
  border-radius: 50%;
  color: var(--_c-checkbox-color-active);
  display: grid;
  height: 42px;
  min-width: 42px;
  overflow: hidden;
  place-content: center;
  position: relative;
  transform: translateZ(0);
  width: 42px;
}
.c-checkbox__label .ripple::before {
  border-radius: 2px;
  border: 2px solid var(--_c-checkbox-color);
  content: "";
  display: inline-block;
  height: 18px;
  left: 12px;
  position: absolute;
  top: 12px;
  transition: all 0.25s ease-out;
  vertical-align: middle;
  width: 18px;
}