/*
Form Resetting
*/
.required {
    border-color: #e74c3c !important;
    box-shadow: 0 0 0 2px rgba(192,57,43 ,0.30) !important;
}

input,
button,
select,
optgroup,
textarea {
    margin: 0;
    padding: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    box-sizing: border-box;
    -webkit-border-radius: 0;
}

input:focus,
button:focus,
textarea:focus,
select:focus {
    outline: 0;
}

button,
select {
    text-transform: none;
}

input[type=search] {
    -webkit-appearance: none;
}

input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
    display: none;
}

/*
Form Styling
*/
::-webkit-input-placeholder { /* Chrome/Opera/Safari */
    color: #9a9a9a;
}
::-moz-placeholder { /* Firefox 19+ */
    color: #9a9a9a;
}
:-ms-input-placeholder { /* IE 10+ */
    color: #9a9a9a;
}
:-moz-placeholder { /* Firefox 18- */
    color: #9a9a9a;
}

fieldset {
    border: 1px solid rgba(0,0,0,0.20);
}

fieldset legend {
    padding: 0 10px;
    font-size: 17px;
    font-weight: 500;
}

input,
textarea,
select,
button {
    padding: 7px 10px;
    border-radius: 5px;
    color: #495057;

    border: 1px solid #ced4da;
    transition: border 0.3s, box-shadow 0.3s, color 0.3s;
    -webkit-transition: border 0.3s, box-shadow 0.3s, color 0.3s;
}

input:focus,
textarea:focus,
select:focus {
    color: #000;
    border-color: rgb(58, 77, 208);
    box-shadow: 0 0 0 2px rgba(58, 77, 208, 0.3);
}

input[type=date],
input[type=datetime],
input[type=email],
input[type=number],
input[type=password],
input[type=search],
input[type=tel],
input[type=text],
input[type=url],
textarea {
    width: 100%;
    -webkit-appearance: none;
}

input[type=submit],
input[type=button],
button {
    background: #484848;
    color: #fff;
    cursor: pointer;
    -webkit-appearance: none;

    transition: border 0.3s, box-shadow 0.3s, background 0.3s;
    -webkit-transition: border 0.3s, box-shadow 0.3s, background 0.3s;
}

input[type="submit"]:disabled,
input[type="button"]:disabled,
button:disabled {
    background: #6b6b6b;
}

input[type=submit]:focus,
input[type=button]:focus,
button:focus,
input[type=submit]:hover,
input[type=button]:hover,
button:hover {
    color: #fff;
    background: #3a4dd0;
    border-color: rgb(58, 77, 208);
    box-shadow: 0 0 0 2px rgba(58, 77, 208, 0.3);
}

input[type=submit].redFormButton,
input[type=button].redFormButton,
button.redFormButton {
    background: #c0392b;
}

input[type=submit].redFormButton:focus,
input[type=button].redFormButton:focus,
button.redFormButton:focus,
input[type=submit].redFormButton:hover,
input[type=button].redFormButton:hover,
button.redFormButton:hover {
    background: #a33329;
    border-color: #c0392b;
    box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.25);
}

input[type=file] {
    border: 0;
    line-height: 0;
    -webkit-appearance: none;
}

input[type=file]::-webkit-file-upload-button {
    font-family: inherit;
    background: #3688cc;
    color: #fff;
    border: 1px solid #ced4da;
    border-radius: 5px;
    padding: 5px 8px;
    cursor: pointer;
    outline: 0;
    -webkit-appearance: none;

    transition: border 0.3s, box-shadow 0.3s, background 0.3s;
    -webkit-transition: border 0.3s, box-shadow 0.3s, background 0.3s;
}

input[type=file]::-webkit-file-upload-button:hover,
input[type=file]::-webkit-file-upload-button:focus {
    background: #3473b5;
    border-color: #80bdff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.30);
}