:root {
    --choice-btn-border-width: 1px;
    --choice-btn-border-radius: var(--radius-md);
    --choice-btn-align-items: center;
    --choice-btn-input-size: 20px;
    --choice-btn-input-icon-size: 16px;
    --choice-btn-input-border-width: 1px;
    --choice-btn-input-margin-right: var(--space-sm);
    --choice-btn-input-translate-y: 0em
}

.choice-btn__grid {
    display: none
}

.choice-btn__fallback {
    position: absolute;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(50%);
    clip-path: inset(50%)
}

.choice-btn {
    position: relative;
    background-color: var(--color-bg-light);
    border-radius: var(--choice-btn-border-radius);
    box-shadow: 0 0 0 var(--choice-btn-border-width) var(--color-contrast-lower);
    -webkit-user-select: none;
    user-select: none;
    cursor: pointer;
    transition: .2s
}

.choice-btn.choice-btn--focus,
.choice-btn.choice-btn--checked,
.choice-btn:active {
    box-shadow: 0 0 0 2px var(--color-primary)
}

.choice-btn.choice-btn--focus,
.choice-btn:active {
    box-shadow: 0 0 0 2px var(--color-primary), 0 0 0 4px hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.2)
}

.choice-btn__grid {
    display: block;
    display: grid;
    grid-template-columns: var(--choice-btn-input-size) 1fr;
    grid-gap: var(--choice-btn-input-margin-right);
    align-items: var(--choice-btn-align-items)
}

.choice-btn__input {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--color-bg-light);
    width: var(--choice-btn-input-size);
    height: var(--choice-btn-input-size);
    border-width: var(--choice-btn-input-border-width);
    border-style: solid;
    border-color: hsla(var(--color-contrast-low-h), var(--color-contrast-low-s), var(--color-contrast-low-l), 0.65);
    box-shadow: var(--shadow-xs);
    position: relative;
    top: var(--choice-btn-input-translate-y);
    transition: .2s
}

.choice-btn__input .icon {
    color: var(--color-white);
    font-size: var(--choice-btn-input-icon-size)
}

.choice-btn:hover:not(.choice-btn--checked) .choice-btn__input {
    border-color: hsla(var(--color-contrast-low-h), var(--color-contrast-low-s), var(--color-contrast-low-l), 1)
}

.choice-btn--checked .choice-btn__input {
    border-color: var(--color-primary);
    background-color: var(--color-primary)
}

.choice-btn__input--checkbox {
    border-radius: 4px
}

.choice-btn__input--checkbox .icon>* {
    transition: stroke-dashoffset .3s;
    stroke-dasharray: 18;
    stroke-dashoffset: 18
}

.choice-btn--checked .choice-btn__input--checkbox .icon>* {
    stroke-dasharray: 18;
    stroke-dashoffset: 0
}

.choice-btn__input--radio {
    border-radius: 50%
}

.choice-btn__input--radio .icon {
    transition: transform .3s var(--ease-out-back);
    transform: scale(0)
}

.choice-btn--checked .choice-btn__input--radio .icon {
    transform: scale(1)
}