/* ================================================================ *\
	#Reset
\* ================================================================ */

* { padding: 0; margin: 0; outline: 0; }

/* ================================================================ *\
	#Base
\* ================================================================ */

article,
aside,
figcaption,
figure,
footer,
header,
main,
nav,
section { display: block; }

html,
body { height: 100%; }

html { overflow-y: scroll; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
body { min-width: 320px; background: #fff; font-family: 'Open Sans', sans-serif; font-size: 24px; font-weight: 300; line-height: 1.3; color: #000; -webkit-font-smoothing:antialiased; }

a { text-decoration: none; }
a:hover { text-decoration: underline; }

img { border: 0; vertical-align: middle; }
strong { font-weight: bold; }
small { font-size: 80%; }

button,
input,
select,
textarea { font-family: inherit; font-size: inherit; color: inherit; -webkit-font-smoothing:antialiased; }

button,
input[type="button"],
input[type="reset"],
input[type="submit"] { cursor: pointer; }

button::-moz-focus-inner,
input::-moz-focus-inner { padding: 0; border: 0; }

button { overflow: visible; }
textarea { overflow: auto; resize: none; }

table { border-collapse: collapse; border-spacing: 0; }
th,
td { padding: 0; }

h1,
h2,
h3,
h4,
h5,
h6 { font-weight: 300; }

@media(max-width: 767px){
	body { font-size: 14px; }
}

/* ================================================================ *\
	#Helpers
\* ================================================================ */

.alignleft { float: left; }
.alignright { float: right; }
.hidden { display: none; visibility: hidden; }

.clearfix:before,
.clearfix:after { display: table; content: ' '; }
.clearfix:after { clear: both; }

/* ------------------------------------------------------------ *\
	Wrapper
\* ------------------------------------------------------------ */

.wrapper { overflow: hidden; }


/* ------------------------------------------------------------ *\
	Shell
\* ------------------------------------------------------------ */

.shell { max-width: 1142px; padding: 0 20px; margin: auto; }

/* ------------------------------------------------------------ *\
	Section
\* ------------------------------------------------------------ */

.section { padding: 50px 0; }
.section p { max-width: 93%; margin: auto; line-height: 1.4; }
.section h2 { font-size: 46px; line-height: 1.22; margin-bottom: 40px; }
.section h5 { font-size: 18px; margin-top: 39px; }

.section .section__head { text-align: center; margin-bottom: 74px; }
.section .section__body { margin: 0 15px; }

@media(max-width: 767px){
	.section p { max-width: 100%; }
	.section h2 { font-size: 25px; }
	.section h5 { font-size: 13px; }
	.section .section__body { margin: 0; }
}

/* ------------------------------------------------------------ *\
	Form
\* ------------------------------------------------------------ */

select::-ms-expand {
    display: none; /* to ie 10 */
}

.form form.form { padding: 0; margin: 0; }
.form form.form p.required label, 
.form form.form span.required label { background: none !important; }
.form form.form p { margin-left: 0; margin-right: 0; padding: 0; }

.form form.form span.value { margin-left: 0!important; }

.form-field.user-option .value { position: absolute; left: 0; top: 0; width: 100%!important; height: 100%!important; display: block!important; }
.form-field.user-option .value input { position: absolute; top: 0; left: 0; width: 50%; height: 100%; visibility: visible; opacity: 1; }

.form form.form p.no-label { margin-left: 0; }

.form .field--select + div + .error.no-label { display: none; }
.form .field--select.error select { border-color: #8b0000; }

.form .red-background, 
.form form.form p.errors { font-family: 'Open Sans', sans-serif; font-size: 25px; margin: 0 0 30px; max-width: 100%; }

.form .submit { text-align: left; margin: 77px 0 0 0 !important; }
.form .submit input { font-family: 'Open Sans', sans-serif; font-weight: 600; text-transform: uppercase; border: 1px solid black; padding: 9px 44px; font-size: 15px; text-decoration: none; overflow: hidden; position: relative; display: inline-block; vertical-align: middle; padding: 9px 80px !important; background: #86bc25 !important; border-color: #86bc25 !important; color: white !important; border-radius: 0; transition: opacity .3s; -webkit-appearance: none; }
.form .submit input:hover { opacity: .8; }

.form .form-field { position: relative; display: inline-block; width: 49%; margin-bottom: 75px; }

.form .form-field:not(.pd-checkbox):nth-of-type(even) { float: right; }
.form .errors ~ .form-field:not(.pd-checkbox) ~ .form-field:not(.pd-checkbox) { margin-left: 8px; }
.form .errors ~ .form-field:not(.pd-checkbox):nth-of-type(even)  { float: none; }
.form .errors ~ .form-field:not(.pd-checkbox):nth-of-type(odd) { float: right; }
.form .form-field:not(.pd-checkbox) label { display: none; }

.form .form-field:not(.pd-checkbox) input,
.form .form-field select { appearance: none; -moz-appearance: none; font-family: 'Open Sans', sans-serif!important; font-weight: 300; opacity: 1; color: #000; width: 100%;
    font-size: 22px; line-height: 40px; padding: 0 0 4px; height: 40px; display: block; border: none; border-bottom: 1px solid #D0D0CE; -webkit-appearance: none; border-radius: 0; }

.form .form-field.error input { border-bottom: 2px solid #8b0000; }    

.form .form-field:not(.pd-checkbox):after { width: 0%; position: absolute; content: ''; height: 2px; bottom: 0; left: 50%; background: #86bc25; transition: 0.2s ease all; -moz-transition: 0.2s ease all;
    -webkit-transition: 0.2s ease all; }
.form .form-field:not(.pd-checkbox).active:after  { left: 0; width: 100%; }

.form .form-field:not(.pd-checkbox) input::placeholder { color: #000; font-weight: 300; }

.form .field--select:before { position: absolute; content: ''; display: block; width: 12px; height: 12px; border: 2px solid #d0d0ce; right: 10px; top: 11px; transform: rotate(45deg); border-top: 0; border-left: 0; }

.form .form-field.phone { display: block; margin-bottom: 69px; float: left; }

.form .checkbox { display: block; margin-bottom: 25px; min-height: 30px; width: 72%; line-height: 1.2;}
.form .Checkbox_1 { margin-bottom: 70px; }

.form p[class*="checkbox_group"] ~ p[class*="checkbox_group"] { margin-top: 70px; }
.form p[class*="checkbox_group"] .field-label { margin-bottom: 36px; }

.form .checkbox .field-label { font-family: 'Open Sans', sans-serif!important; float: none; font-weight: 300;  width: 100%; font-size: 20px; padding: 0; text-align: left; margin-bottom: 30px; }

.form .checkbox .bold { display: inline-block; color: #000; font-weight: 700!important; pointer-events: none; }

.form .checkbox .value { position: relative; margin-left: 0; font-weight: 300; }
.form .checkbox .value > span + span { margin-top: 30px; }

.form .checkbox .value input { visibility: hidden; opacity: 0; height: 0; width: 0; padding: 0; display: none; }

.form .checkbox .value label { font-family: 'Open Sans', sans-serif!important; font-weight: 300; font-size: 20px; min-height: 30px; max-width: 72%; position: relative; padding-left: 45px; display: inline-block; line-height: 1.3; width: auto; }
.form .checkbox .value label a { color: #86bc25; }

.form .checkbox .value label:before {position: absolute; content: ""; width: 30px; height: 30px; display: block; border: 1px solid #77787b; margin-right: 10px; top: 0; left: 0px; }
.form .checkbox .value label:after { position: absolute; content: ""; width: 15px; height: 30px; position: absolute; top: -10px; border: 3px solid #86bc25; border-left: none; border-top: none; left: 15px; transform: rotate(45deg); opacity: 0; transition: opacity .3s; } 
.form .checkbox .value input:checked + label:after { opacity: 1; } 

.form .checkbox--last { margin: 100px 0 0 !important; }
.form .checkbox_1 ~ .error { display: none; }
.form .Checkbox_1:not(.hidden) ~  .error.no-label { display: block; }

.form .checkbox.error span label { color: #000!important; }

.form .checkbox.hidden ~  .error.no-label { display: none; }

.form .checkbox:not(.hidden) + div + .error.no-label { display: block; }
.form .error:not(.form-field) { font-family: 'Open Sans', sans-serif!important; font-size: 16px; text-align: left; margin: 20px 0!important; font-weight: 600; }


@media(max-width: 767px){
	.form .submit { text-align: center; }
	.form .submit input { padding: 15px 80px !important; width: 100%; }

	.form .form-field { display: block; width: 100%; margin-bottom: 15px; }
	.form .form-field:not(.pd-checkbox) input, 
	.form .form-field select { font-size: 14px; height: 30px; line-height: 30px; }

	.form .field--select:before { width: 7px; height: 7px; top: 10px; }

	.form .form-field:not(.pd-checkbox):nth-of-type(even) { float: none; }
	.form .form-field.phone { margin-bottom: 50px; }

	.form .red-background, 
	.form form.form p.errors { font-size: 15px; margin-bottom: 20px; }

	.form .checkbox { min-height: 20px; margin-bottom: 20px; }
	.form .checkbox .field-label { width: auto; font-size: 14px; margin-bottom: 30px; }

	.form .checkbox .value > span + span { margin-top: 15px; }

	.form p[class*="checkbox_group"] ~ p[class*="checkbox_group"] { margin-top: 40px; }

	.form p[class*="checkbox_group"] .field-label { margin-bottom: 30px; }

	.form .checkbox .value label { width: auto; font-size: 14px; max-width: 100%; margin-right: 0; padding-left: 35px; }

	.form .checkbox .value label:before { width: 18px; height: 18px; top: 0px; }
	.form .checkbox .value label:after { border-width: 5px; transform: rotate(45deg) scale(.5); left: 9px; top: -11px; }

	.form .Checkbox_1 { margin-bottom: 40px; }

	.form .checkbox--last { margin-top: 40px!important; }

	.form .form-field:not(.pd-checkbox):after { bottom: 0; }

	.form .errors ~ .form-field:not(.pd-checkbox) ~ .form-field:not(.pd-checkbox) { margin-left: 0; }
	
	.form .error.form-field { margin-bottom: 20px; }
	.form .error:not(.form-field) { font-size: 14px;  }


}
