.radio, .checkbox {
    display: block;
    padding-left: 0.25em;
}
.radio label, .checkbox label{
    display: inline-block;
    float: left;
    line-height: 1.3;
    width: 100%;
}
.radio > input,
.checkbox > input {
    opacity: 0;
    z-index: 1;
    position: fixed;
    left: -500px;
}
.checkbox input + label::before, .radio input + label::before {
    font-family: 'Font Awesome 5 Pro';
    display: inline-block;
    float: left;
    margin-left: -1em;
    margin-top: -2px;
    width: 1.25em;
    height: 1.2em;
    font-size: 16px;
    color: #999;
}
.checkbox input + label::before {
    content: "\f0c8 ";
}
.radio input + label::before {
    content: "\f111 ";
}
.checkbox input:checked + label::before {
    content: "\f14a ";
    color: #555;
}
label.other-input-label::before {
    margin-top: 2px !important;
}
.radio input:checked + label::before {
    content: "\f192 ";
    color: #555;
}
.checkbox.disabled input + label::before, .radio.disabled input + label::before{
    color: rgba(0,0,0,0.35);
}

.radio-inline, .checkbox-inline {
    display: inline-block;
    margin: 0;
    margin-right: 10px;
    white-space: nowrap;
}

.checkbox-inline+.checkbox-inline, .radio-inline+.radio-inline {
    margin-left: 0
}

.checkbox label > input, .radio label > input {
    display: inline-block;
    height: 2em;
    padding: 6px 12px;
    color: #555;
    background-color: #fff;
    background-image: none;
    border: 1px solid #ccc;
    box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
    transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}