.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;
}
