/** --- --- --- --- --- --- --- --- --- --- тут начинается стиль красивого чекбокса. категорически не рекомендуется трогать код ниже --- --- --- --- */
.cbx {
    margin: auto;
    -webkit-user-select: none;
    user-select: none;
    cursor: pointer;
}

.cbx span {
    display: inline-block;
    vertical-align: middle;
    transform: translate3d(0, 0, 0);
}

.cbx span:first-child {
    position: relative;
    width: 24px;
    height: 24px;
    border-radius: 3px;
    transform: scale(1);
    vertical-align: middle;
    border: 1px solid #9098A9;
    transition: all .2s ease;
}

.cbx span:first-child svg {
    position: absolute;
    top: 4px;
    left: 3px;
    fill: none;
    stroke: #FFFFFF;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 16px;
    stroke-dashoffset: 16px;
    transition: all .3s ease;
    transition-delay: .1s;
    transform: translate3d(0, 0, 0);
}

.cbx span:first-child:before {
    content: "";
    width: 100%;
    height: 100%;
    background: var(--primary-color);
    background: #00a9e0;
    display: block;
    transform: scale(0);
    opacity: 1;
    border-radius: 50%;
}

.cbx span:last-child {
    padding-left: 8px;
}

.cbx:hover span:first-child {
    border-color: #00a9e0;
}

.inp-cbx:checked + .cbx span:first-child {
    background: var(--primary-color);
    background: #00a9e0;
    border-color: var(--primary-color);
    border-color: #00a9e0;
    animation: wave .4s ease;
}

.inp-cbx:checked + .cbx span:first-child svg {
    stroke-dashoffset: 0;
}

.inp-cbx:checked + .cbx span:first-child:before {
    transform: scale(3.5);
    opacity: 0;
    transition: all .6s ease;
}

@keyframes wave {
    50% {
        transform: scale(0.9);
    }
}

/** --- --- --- --- --- --- --- --- --- --- тут заканчивается стиль красивого чекбокса --- --- --- --- */