/**
 * form.css
 *
 * All forms are styled the same way.
 * The file defines a standard form layout with first steps of a form grid.
 * The grid is neccessary for multiple form fields in one row.
 *
 * Index
 * - FORM
 *   - GRID
 *   - FIELDS
 *   - CONTACT
 *   - BROCHURE
 *
 * Media
 * - TABLET
 * - DESKTOP
 */

/* ------------------------------------ *
 * #FORM
 * ------------------------------------ */
.forms p,
.forms label {
    display: block;
    position: relative;
    margin: 0 0 15px;
}

.forms .error-message {
    margin-top: -10px;
    padding: 0;
    color: rgb(255, 0, 0);
    font-size: 0.9rem;
}

.forms label > span:not(.flow-tooltip) {
    display: inline-block;
    width: 100%;
    padding: 0;
    line-height: 29px;
    cursor: pointer;
    text-align: left;
    vertical-align: top;
    font-size: 1em;
}
.forms label span.required {

}
.forms label span.required:after {
    content: ' *';
    color: rgb(255, 0, 0);
}
.forms .submit-wrapper {
    text-align: right;
    width: 427px;
}



/* #FORM-GRID */
.forms-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

.forms-element-1,
.forms-element-2,
.forms-element-3,
.forms-element-4,
.forms-element-5,
.forms-element-6 {
    position: relative;
    width: 100%;
    padding-right: 5px;
    padding-left: 5px;
    box-sizing: border-box;
}

.forms-element-1 {
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
}
.forms-element-2 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}
.forms-element-3 {
    flex: 0 0 50%;
    max-width: 50%;
}
.forms-element-4 {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}
.forms-element-5 {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
}
.forms-element-6 {
    flex: 0 0 100%;
    max-width: 100%;
}



/* #FORM-FIELDS */
.forms :required {
    box-shadow: none;
}

.forms [type=checkbox] {
    margin-top: 9px;
}

.forms input:not([type=submit]),
.forms select,
.forms textarea {
    display: inline-block;
    box-sizing: border-box;
    height: auto;
    padding: 10px 6px;
    border: 1px solid rgb(153, 153, 153);
    border-radius: 2px;
    font-size: 1em;
    line-height: 17px;
}
.forms input[readonly] {
    color: rgb(153, 153, 153);
}
.forms input[readonly]:not([type=submit]):focus {
    border-color: rgb(153, 153, 153);
    box-shadow: none;
}

.forms select {
    min-width: 30%;
    cursor: pointer;
    padding: 4px 6px;
}
.forms textarea {
    width: 245px;
    resize: vertical;
}

.forms [size] {
    width: 100%;
}

/* form focus styling */
.forms input:not([type="submit"]):focus,
.forms select:focus,
.forms textarea:focus {
    border-color: rgb(1, 93, 168);
    box-shadow: 0 0 8px rgba(1, 93, 168, 0.5);
}

/* form field validation */
.forms input.invalid,
.forms select.invalid,
.forms textarea.invalid {
    border-color: rgb(255, 0, 0);
}

/* form input control */
.forms .input-control {
    overflow: hidden;
}
.forms .input-control > input {
    display: block;
    float: left;
    margin: 10px 10px 0 0;
}
.forms .input-control > p {
    display: block;
    float: left;
    width: 88%;
    margin: 0;
    cursor: pointer;
}

/* form notes */
.forms .form-note {

}



/* #FORM-CONTACT */
.contact-usermessage select {
    width: 100%;
}
.contact-usermessage textarea {
    width: 100%;
}



/* #FORM-BROCHURE */
.brochure-image {
    display: none;
}





/* #TABLET */
@media screen and (min-width: 640px) {
    /* #FORM */
    .forms .input-control > input {
        margin-top: 3px;
    }
}


/* #DESKTOP */
@media screen and (min-width: 1024px) {
    /* #FORM */
    .forms .input-control > input {
        margin-top: 3px;
    }



    /* #FORM-CONTACT */
    .forms.contact {
        width: 500px;
    }



    /* #FORM-BROCHURE */
    .forms.brochure {
        width: 500px;
    }

    .brochure-image {
        position: absolute;
        display: block;
        top: 157px;
        right: 0;
        width: 465px;
    }
    .brochure-image p {
        width: 200px;
        margin: 0 auto;
        padding: 30px 40px;
        text-align: center;
        background: rgb(131, 192, 41);
        color: rgb(255, 255, 255);
    }
    .brochure-image img {
        display: block;
        max-width: 230px;
        margin: 0 auto 15px;
    }
    .brochure-image br {
        display: none;
    }
}