:host {
  /**
  * @prop --klevu-checkbox-color var(--klevu-color-primary): Color of the checkbox background and border
  * @prop --klevu-checkbox-size 20px: Size of the checkbox
  */
  --color: var(--klevu-checkbox-color, var(--klevu-color-primary));
  --size: var(--klevu-checkbox-size, 20px);
  display: flex;
}

.check {
  display: block;
  width: var(--size);
  height: var(--size);
  position: relative;
}

.content {
  margin-left: var(--klevu-spacing-03);
  user-select: none;
  display: block;
  width: 100%;
  height: var(--size);
  min-width: 0;
}

input[type="checkbox"] {
  appearance: none;
  background-color: #fff;
  margin: 0;
  font: inherit;
  color: currentColor;
  width: var(--size);
  height: var(--size);
  border: 1px solid var(--klevu-color-neutral-5);
  border-radius: var(--klevu-border-radius-s);
  display: inline-block;
  box-sizing: border-box;
  transition: background-color var(--klevu-animation-duration-fast) var(--klevu-animation-timing-function);
}

input[type="checkbox"]:focus {
  outline: 0;
}

input[type="checkbox"]:focus::after {
  content: "";
  position: absolute;
  top: -3px;
  left: -3px;
  width: calc(100% + 2px);
  height: calc(100% + 2px);
  border: 2px solid var(--color);
  border-radius: calc(var(--klevu-border-radius-s) + 2px);
}

input[type="checkbox"]:hover {
  border-color: var(--color);
}

input[type="checkbox"]:checked {
  background-color: var(--color);
  border-color: var(--color);
}

klevu-icon {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 120ms transform ease-in-out;
  color: var(--klevu-color-neutral-1);
  pointer-events: none;
}

input[type="checkbox"]:disabled {
  cursor: not-allowed;
  opacity: var(--klevu-opacity-disabled);
}

klevu-typography {
  line-height: 1;
}
