.input {
    padding: 16px 0 8px;
    position: relative;
}

.input__label {
    margin-bottom: 4px;
    font-weight: bold;
    font-size: 14px;
    line-height: 1.5;
    color: #000;
}

.input__wrapper {
    display: flex;
    align-items: center;
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    background-color: #fff;
    background-clip: padding-box;
    border: 2px solid #b0b0b0;
    color: #b0b0b0;
    border-radius: 4px;
    outline-offset: 2px;
    transition: border-color 0.3s, color 0.3s;
    will-change: border-color, color;
    position: relative;
}

.input__wrapper--focus {
    border-color: #000;
    color: #000;
}

.input__after {
    padding-right: 8px;
}

.input__before {
    padding-left: 8px;
}

.input__before .bi,
.input__after .bi {
    font-size: 24px;
}

.input__field {
    display: block;
    flex-grow: 1;
    width: 100%;
    box-sizing: border-box;
    padding: 12px 24px;
    font-size: 17px;
    font-weight: 500;
    font-style: normal;
    line-height: 24px;
    letter-spacing: 0.4px;
    color: rgb(57, 57, 57);
    background-color: #fff;
    outline: 0px none;
    border: 0px none;
    appearance: none;

    &:disabled {
        background-color: var(--color-gray-thin);
        color: var(--color-gray-heavy);
    }
}

.input__select {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.input__check {
    position: absolute;
    left: 0;
    top: 0;
    filter: opacity(0);
    +.input__label {
        display: flex;
        align-items: center;
        gap: 8px;
        padding-bottom: 16px;
        &:after {
            content: "\f26e";
            font-family: bootstrap-icons !important;
            position: absolute;
            left: 0;
            top: 11px;
            font-size: 23px;
            color: var(--color-gray-light);
            transition: color 0.1s;
        }
        &:before {
            content: '';
            width: 24px;
            height: 24px;
            border: 2px solid var(--color-gray-thin);
            border-radius: 4px;
        }
    }

    &:checked {
        +.input__label {
            &:after {
                color: var(--color-primary-dark);
            }
            &:before {
                border: 2px solid var(--color-primary-normal);
            }
        }
    }
}