input[type=checkbox].special-checkbox {
    display:none;
}

label.special-checkbox-label {
    cursor: pointer;
}

input[type="checkbox"].special-checkbox:focus + label.special-checkbox-label:before {
    border-color: #43474a;
}

input[type="checkbox"].special-checkbox + label.special-checkbox-label {
    position: relative;
    padding: 8px 10px 8px 2em;
    vertical-align: middle;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

input[type="checkbox"].special-checkbox + label.special-checkbox-label:before {
    content: '';
    color: #fff;
    position: absolute;
    top: 5px;
    left: 0;
    width: 20px;
    height: 20px;
    border: 2px solid #43474a;
    font-size: 18px;
    text-align: center;
    background-color: #43474a;
}

input[type="checkbox"].special-checkbox + label.special-checkbox-label:after {
    content: '';
    background-color: #333;
    position: absolute;
    top: 12px;
    left: 7px;
    width: 10px;
    height: 10px;
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    transform: scale(0);
    -webkit-transition: -webkit-transform 200ms ease-out;
    transition: transform 200ms ease-out;
}

input[type="checkbox"].special-checkbox + label.special-checkbox-label:after {
    background-color: transparent;
    top: 50%;
    left: 6px;
    width: 8px;
    height: 3px;
    margin-top: -5px;
    border-style: solid;
    border-color: #fff;
    border-width: 0 0 3px 3px;
    -webkit-border-image: none;
    -o-border-image: none;
    border-image: none;
    -webkit-transform: rotate(-45deg) scale(0);
    -ms-transform: rotate(-45deg) scale(0);
    transform: rotate(-45deg) scale(0);
}

input[type="checkbox"].special-checkbox:checked + label:after {
    content: '';
    -webkit-transform: rotate(-45deg) scale(1);
    -ms-transform: rotate(-45deg) scale(1);
    transform: rotate(-45deg) scale(1);
}

input[type="checkbox"].special-checkbox:checked + label.special-checkbox-label:after {
    -webkit-transform: rotate(-45deg) scale(1);
    -ms-transform: rotate(-45deg) scale(1);
    transform: rotate(-45deg) scale(1);
}
