.control-label {
    position: absolute;
    left: 8px;
    padding-left: 3px;
    padding-right: 3px;
    top: 0.4em;
    transition: transform 200ms 50ms ease, font-size 200ms 50ms ease;
    pointer-events: none;
    background-color: #ffffff;
    border-radius: 3px;
    z-index: 100;
}

label:not(.form-check-label):not(.custom-file-label){
    font-weight: 500;
}

.toggle + label.control-label {
    position: relative;
    transition: none;
    left: 0;
    top: 0;
}

.toggle + label.control-label.freeze {
    position: relative;
    font-size: inherit;
    transform: none;
    left: 0;
    top: 0;
}

input:focus + label.control-label, textarea:focus + label.control-label, label.control-label.freeze {
    font-size: 0.8em;
    transform: translateY(-1.2em);
    transition: transform 200ms ease, font-size 200ms ease;
    font-weight: bold;
}

input:focus + label.control-label, textarea:focus + label.control-label {
    color: #007bff;
}

.form-group {
    position: relative;
}
