:root {
    --input-padding-x: .75rem;
    --input-padding-y: .75rem;
}

.form-label-group {
    position: relative;
    margin-bottom: 1.2rem;
}

.form-label-group>input,
.form-label-group>label {
    padding: .75rem;
}

.floating-labels-x {
    padding-left: .75rem;
}

.form-label-group>label {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    margin-bottom: 0;
    /* Override default `<label>` margin */
    line-height: 1.5;
    color: #505050;
    border: 1px solid transparent;
    border-radius: .25rem;
    transition: all .1s ease-in-out;
}

input[type="date"].form-control {
    line-height: 24px;
    font-size: 16px;
}

.form-label-group input::-webkit-input-placeholder {
    color: transparent;
}

.form-label-group input:-ms-input-placeholder {
    color: transparent;
}

.form-label-group input::-ms-input-placeholder {
    /* Edge Fallback */
    color: #999;
}

.form-label-group input::-moz-placeholder {
    color: transparent;
}

.form-label-group input::placeholder {
    color: transparent;
}

.form-label-group input:not(:placeholder-shown) {
    padding-top: calc(.75rem + .75rem * (2 / 3));
    padding-bottom: calc(.75rem / 3);
    padding-left: .75rem;
}

.form-label-group input:not(:placeholder-shown)~label {
    padding-top: 0;
    padding-bottom: calc(.75rem / 2);
    font-size: 12px;
    color: #bbb;
}

/* IE Fallback */
.form-label-group input:not(:-ms-input-placeholder) {
    padding-top: calc(.75rem + .75rem * (1 / 3));
    padding-bottom: calc(.75rem / 2);
    padding-left: .75rem;
}

.form-label-group input:not(:-ms-input-placeholder)~label {
    padding-top: 0;
    padding-bottom: calc(.75rem);
    font-size: 12px;
    color: #bbb;
}
