:root {
    --input-padding-x: .75rem;
    --input-padding-y: .75rem;
}

/*.form-label-group {
    position: relative;
    margin-bottom: 0.5rem;
}

    .form-label-group > input,
    .form-label-group > label {
        padding: var(--input-padding-y) var(--input-padding-x);
    }

    .form-label-group > label {
        position: absolute;
        top: 0;
        left: 0;
        display: block;
        width: 100%;
        margin-bottom: 0;
        line-height: 1.5;
        cursor: text;
        border: 1px solid transparent;
        border-radius: .25rem;
        transition: all .1s ease-in-out;
    }

    .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 {
        color: transparent;
    }

    .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(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));
        padding-bottom: calc(var(--input-padding-y) / 3);
    }

        .form-label-group input:not(:placeholder-shown) ~ label {
            padding-top: calc(var(--input-padding-y) / 3);
            padding-bottom: calc(var(--input-padding-y) / 3);
            font-size: 10px;
            color: #777;
        }

.form-label-select-group > label {
    padding: var(--input-padding-y) var(--input-padding-x);
}

.form-label-select-group label {
    position: absolute;
    z-index: 1;
    top: 15px;
    transform: translateY(-50%);
    transition: all 0.2s ease 0s;
}

    .form-label-select-group label.selected {
        transform: translateY(0);
        top: -20px;
        padding-top: calc(var(--input-padding-y) / 3);
        padding-bottom: calc(var(--input-padding-y) / 3);
        font-size: 10px;
        color: #777;
    }*/


/*************************************************/

.floating-label {
    position: relative;
    margin-bottom: 0.8rem;
}

    .floating-label input, .floating-label label, .floating-label textarea {
        padding: var(--input-padding-y) var(--input-padding-x);
    }

        /*.floating-label input:not(:placeholder-shown), .floating-input:not(:placeholder-shown) ~ label {
            padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));
            padding-bottom: calc(var(--input-padding-y) / 3);
        }*/
        .floating-label input:not(:placeholder-shown), .floating-input:not(:placeholder-shown) ~ label {
            padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * (2 / 3));
            padding-bottom: calc(var(--input-padding-y) / 2);
        }
/*.floating-label input:not(:placeholder-shown), .floating-input:not(:placeholder-shown) ~ label {
            padding-top: calc(var(--input-padding-y) + var(--input-padding-y) * 0.1);
            padding-bottom: calc(var(--input-padding-y) );
        }*/


.floating-input, .floating-select {
    font-size: 1rem;
    padding: 4px 4px;
    display: block;
    width: 100%;
    height: 40px;
    background-color: transparent;
    border: none;
    border-bottom: 1px solid #ced4da;
}

    .floating-input:focus, .floating-select:focus {
        outline: none;
    }

.floating-select-container label[for] {
    top: -5px;
}

.floating-input {
    padding-left: 15px;
}

.floating-label label {
    color: #999;
    z-index: 1;
    margin: 0;
    font-size: 13px;
    font-weight: normal;
    position: absolute;
    pointer-events: none;
    left: 0px;
    top: 0px;
    transition: 0.2s ease all;
    -moz-transition: 0.2s ease all;
    -webkit-transition: 0.2s ease all;
}

.floating-input:focus ~ label, .floating-input:not(:placeholder-shown) ~ label {
    top: -18px;
    font-size: 11px;
}

.floating-label label.selected {
    transform: translateY(0);
    top: -20px;
    padding-top: calc(var(--input-padding-y) / 3);
    padding-bottom: calc(var(--input-padding-y) / 3);
    font-size: 11px;
    color: #777;
}

.floating-textarea:focus ~ label, .floating-textarea:not(:placeholder-shown) ~ label {
    top: -35px;
}

/* Fallback for Edge
-------------------------------------------------- */
@supports (-ms-ime-align: auto) {
    .floating-label > label {
        display: none;
    }

    .floating-label input::-ms-input-placeholder {
        color: #777;
    }
}

/* Fallback for IE
-------------------------------------------------- */
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
    .floating-label > label {
        display: none;
    }

    .floating-label input:-ms-input-placeholder {
        color: #777;
    }
}


/* Select2 override
------------------------------------------------- */
.select2-container--bootstrap4 .select2-selection--single {
    /*height: calc(2rem + 8px) !important;*/
    height: 30px !important;
}

.select2-container--bootstrap4.select2-container--focus .select2-selection {
    border-color: #80bdff;
    -webkit-box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
    box-shadow: 0 0 0.2rem 0 rgba(0,123,255,.25);
}

.select2-results__option {
    font-size: 13px;
    display: flex
}