form.ribs-form {
    .form-section {
        padding-top: 1rem;
        padding-bottom: 1rem;
        border-bottom: 1px solid $form-section-border;

        &:last-child {
            border-bottom: none;
        }
    }
    
    .form-group {
        line-height: 1.5rem;
        min-height: 1.5rem;
        margin-bottom: 1rem;

        label {
            display: inline-block;
            font-weight: 400;
            margin-bottom: .3rem;
            font-size: 0.9rem;
            color: $form-group-label-color;
            cursor: pointer;
        }

        .form-control {
            display: block;
            width: 100%;
            height: auto;
            padding: .4375rem .75rem;
            font-size: .8125rem;
            line-height: 1.5;
            color: $form-group-input-color;
            background-color: $form-group-input-background;
            border: 1px solid $form-group-input-border;
            font-weight: 300;
            will-change: border-color,box-shadow;
            border-radius: .25rem;
            box-shadow: none;
            transition: box-shadow 250ms cubic-bezier(.27,.01,.38,1.06),border 250ms cubic-bezier(.27,.01,.38,1.06);

            &:hover {
                border-color: $form-group-input-border-hover;
            }

            &:focus {
                color: $form-group-input-focus-color;
                background-color: $form-group-input-focus-background;
                border-color: $form-group-input-focus-border;
                box-shadow: 0 0.313rem 0.719rem $form-group-input-shadow-hover, 0 0.156rem 0.125rem $form-group-input-shadow-hover1;
            }
            
            &.is-select {
                padding: .55rem .75rem;
            }

            &.is-valid {
                border-color: $form-group-input-valid-border;
                box-shadow: 0 5px 11.5px $form-group-input-valid-shadow;

                + div {
                    color: $form-group-input-valid-div-color;
                }
            }

            &.is-invalid {
                border-color: $form-group-input-invalid-border;
                box-shadow: 0 5px 11.5px $form-group-input-invalid-shadow;

                + div {
                    color: $form-group-input-invalid-div-color;
                }
            }

            + div:not(.input-append) {
                margin-top: .25rem;
                font-size: 80%;
            }
        }
    }

    .input-group {
        display: flex;
        flex-wrap: wrap;
        align-items: stretch;
        width: 100%;
        
        &.no-separation {
            .input-prepend {
                border-right: transparent;
                
                + .form-control {
                    border-left: transparent;
                }
            }
    
            .input-append {
                border-left: transparent;
            }
            
            .form-control:not(:last-child) {
                border-right: transparent;
            }
        }

        .input-prepend, .input-append {
            display: flex;
            font-size: .8125rem;
            font-weight: 300;
            line-height: 1.5;
            color: $form-group-input-group-color;
            background-color: $form-group-input-group-background;
            border: 1px solid $form-group-input-group-border;
            align-items: center;
            padding: .375rem .75rem;
            text-align: center;
            white-space: nowrap;
            margin-top: 0;

            .ribs-button {
                border: none;
                margin-right: 0;
                line-height: 1.4;

                &:hover {
                    box-shadow: 0 0.125rem 0.625rem $form-group-input-group-button-shadow, 0 0.0625rem 0.125rem $form-group-input-group-button-shadow1;
                }
            }
        }

        .input-prepend {
            border-right: none;
            border-radius: .25rem 0 0 .25rem;

            ~ .form-control {
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
            }
        }

        .input-append {
            border-left: none;
            border-radius: 0 .25rem .25rem 0;
        }

        .form-control {
            width: auto;
            flex: 1 1 auto;

            &:not(:last-child) {
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
            }
        }
    }
    
    .result-autocomplete {
        position: absolute;
        background: $autocomplete-result-background;
        color: $autocomplete-result-color;
        box-shadow: 0 2px 0 $autocomplete-result-shadow,
        0 4px 8px $autocomplete-result-shadow1,
        0 10px 10px $autocomplete-result-shadow2,
        0 7px 70px $autocomplete-result-shadow3;
        width: 100%;
        
        ul li {
            padding: 10px;
            border-left: 3px solid transparent;
            transition: 0.3s all ease;
            cursor: pointer;
            
            &:hover {
                border-left-color: $form-group-input-focus-border;
                cursor: pointer;
            }
        }
    }
}