.checkbox, .radio {
    position: relative;
    cursor: pointer;
    display: initial;
}

.checkbox::-moz-selection, .radio::-moz-selection {
    background: transparent;
}

.checkbox::selection, .radio::selection {
    background: transparent;
}

.checkbox input + span, .radio input + span {
    background: transparent;
    content: '';
    display: inline-block;
    margin: 0 10px 0 0;
    padding: 0;
    vertical-align: middle;
    width: 20px;
    height: 20px;
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
    -webkit-backface-visibility: hidden;
    border: 1px solid #545454;
}

.checkbox input + span::after, .radio input + span::after {
    content: '';
    display: block;
    -webkit-transform: scale(0);
    transform: scale(0);
    -webkit-transition: -webkit-transform .2s;
    transition: -webkit-transform .2s;
    transition: transform .2s;
    transition: transform .2s, -webkit-transform .2s;
}

.checkbox input:checked + span::after, .radio input:checked + span::after {
    -webkit-transform: scale(1);
    transform: scale(1);
}

.checkbox input, 
.radio input {
    position: absolute;
    cursor: pointer;
    opacity: 0;
}

.checkbox input + span::after {
    background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABcAAAAXCAIAAABvSEP3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA6UlEQVQ4jWP8//8/A8WAiXIjhqUpLGTombBk/v4zJxgYGAqjkxxMzckxJb+recHGtXAuxBTSfIRmhIKUDITBSHx6QTPCQF1r48QZArx8JLgFjxEM8HCBB1iiX0iAkytJRiB8xG9tABeaWFab4B9MvBEIH8HDCaLtwOmTxBuBcMuFm9f88zM+fP4EERXg5ds4ccb8jWuJMYIBOY7QDEIDeIxgQI4jPOrwG8GAFtNYVRM0goGBgeE/Bjh/46qcuy2flT6flb5dYuT7Tx8x1aAB7Gn3w+dPF25cZ4BlE4KAhByABwymUoo6pgAA57mw7lI77ucAAAAASUVORK5CYII=') no-repeat center;
    background-size: contain;
    width: 20px;
    height: 20px;
}

.radio input + span::after {
    border-radius: 100%;
    margin: 4px;
    width: 10px;
    height: 10px;
}

.radio input:checked + span::after {
    background: #0e3a2f;
}

.checkbox input + span,
.radio input + span {
    display: block;
    float: left;
    border-radius: 2px;
}

.radio input + span {
    border-radius: 100%;
}

.checkable__text {
    display: block;
}