/* Helpers
---------------------------------------- */
.button--orange {
	display: inline-block;
	height: 40px;
	padding: 12px 25px;
	margin: 0;
	background-color: #FA5C19;
	border: 1px solid #FA5C19;
	border-radius: 22px;
	cursor: pointer;
	outline: none; 
	font-family: 'Montserrat',sans-serif;
	font-weight: 600;
	font-size: 14px;
	line-height: 1;
	white-space: nowrap;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #FFF;
}
.button--orange.button--inversed {
	background-color: #FFF;
	color: #FA5C19;
}
.button--orange.button--grey {
	background-color: #FFF;
	color: #8C999F;
   border-color: #8C999F;
   font-weight: 500;
}
@media (hover: hover) {
	.button--orange:hover {
		background-color: #FFF;
		color: #FA5C19;
	}
	.button--orange.button--inversed:hover {
		background-color: #FA5C19;
		color: #FFF;
	}
}


/* Form container
---------------------------------------- */
.form--container {
	max-width: 800px;
	position: relative;
}
.form--container h2 {
	margin-bottom: 1.5em; 
}
.form--block {
	margin-bottom: 20px;	
}
.form--block_title h3 {
	font-size: 16px;
	padding: 0;
	margin-bottom: 15px;
}


/* Form input group 
---------------------------------------- */
.form--input_group {
	margin-bottom: 15px;
}
.form--input_title {
	display: block;
	margin-bottom: 5px;
	padding: 0;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.form--input_group input, 
.form--input_group textarea {
	display: block;
	width: 100%;
	padding: 5px 14px;
	font-family: 'Montserrat',sans-serif;
	font-size: 16px;
	font-weight: 400;
	color: #5C696F;
	background-color: #fff;
	border-radius: 2px;
	border: 1px solid #ddd;
	transition: all 0.2s ease;
	outline: none;
	margin-bottom: 5px;
}
.form--input_group input {
	height: 44px;
}
.form--input_group textarea {
	height: 200px;
	resize: vertical;
}
.form--input_group input:focus, 
.form--input_group textarea:focus {
	border-color: #b5bbbe;
}
.form--input_group input::placeholder, 
.form--input_group textarea::placeholder {
	opacity: 0.5;
	font-size: 14px;
}
.form--input_group input::-webkit-input-placeholder,
.form--input_group textarea::-webkit-input-placeholder {
	opacity: 0.5;
	font-size: 14px;
}
.form--block_half_row .form--input_group {
	float: left;
	width: calc( 50% - 20px);
}
.form--block_half_row::after {
	content: "";
	clear: both;
	display: table;
}

.form--block_half_row .form--input_group:first-child {
	margin-right: 20px;
}
.form--block_half_row .form--input_group:last-child {
	margin-left: 20px;
}

@media (max-width: 1024px) {
	.form--block_half_row .form--input_group {
		float: none;
		width: 100%;
	}
	.form--block_half_row .form--input_group:first-child {
		margin-right: 0;
	}
	.form--block_half_row .form--input_group:last-child {
		margin-left: 0;
	}
}


/* Input errors 
---------------------------------------- */
.form--input_error input,
.form--input_error textarea,
.form--input_error input:focus,
.form--input_error textarea:focus {
	border-color: #FA5C19;
}
.form--error_status {
	display: none;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.05em;
	padding: 0;
	color: #FA5C19;
}
.form--error_status:last-of-type {
	margin-bottom: 5px;
}
.form--input_error.form--error_no_data .error--no_data,
.form--input_error.form--error_incorrect_email .error--incorrect_email,
.form--input_error.form--error_incorrect_phone .error--incorrect_phone {
	display: block;
}

/* Checkbox 
---------------------------------------- */
.form--checkbox {
	position: relative;
	margin-top: 20px;
}
.form--checkbox::after {
	content: "";
	clear: both;
	display: table;
}
.form--checkbox input {
	opacity: 0 !important;
	width: 0px !important;
	height: 0px !important;
	float: left;
}
.form--checkbox_label {
	position: absolute;
	top: 0;
	left: 0;
	width: 23px;
	height: 23px;
	cursor: pointer;
}
.form--checkbox_state {
	position: absolute;
	top: 1px;
	left: 1px;
	height: 21px;
	width: 21px;
	border: 1px solid #ccc;
	border-radius: 2px;
	transition: all .2s linear;
}
.checkbox--active .form--checkbox_state {
	background: url("icon-checkbox-checked.svg") center/contain no-repeat;
}
.form--checkbox_option {
	margin: 0 0 0 36px;
	font-size: 15px;
	display: block;
}
.form--checkbox_option a {
	color: #0071BC;
}
.form--checkbox .form--error_status {
	margin-top: 5px; 
}
.form--input_error .form--checkbox_state {
	border-color: #FA5C19;
}

/* Radio group
---------------------------------------- */
.form--radio {
	margin-top: 30px;
}
.radio--section {
   position: relative;
   display: inline-block;
   margin-right: 30px;
   padding-bottom: 5px;
}
.radio--section::after {
	content: "";
	clear: both;
	display: table;
}
.radio--section input {
	opacity: 0 !important;
	width: 0px !important;
	height: 0px !important;
	float: left;
}
.form--interested br {
   display: none;
}
@media (max-width: 786px) {
   .form--interested br {
      display: inline;
   }
}


/* Select 
---------------------------------------- */
.form--select2 select {
	width: 100%;
}
.form--select2 .form--error_status {
	margin-top: 5px; 
}
.form--select2.form--input_error .select2-container--default .select2-selection--single {
	border-color: #FA5C19;
}


/* Locked fields 
---------------------------------------- */
.form--input_group.form--input_locked input {
	display: none;
}


/* Form file uploads block 
---------------------------------------- */
.form--upload_box {
	display: block;
	margin-bottom: 5px;
	min-height: 125px;
	width: 100%;
	color: #5C696F;
	background-color: #F8F8F8;
	border: 1px solid #F8F8F8;
	border-radius: 2px;
	font-size: 16px;
	cursor: pointer;
	text-align: center;
	position: relative;
	}
	.form--upload_box input[type="file"] {
		visibility: hidden;
		opacity: 0;
		position: absolute;
		width: 0.1px;
		height: 0.1px;
		padding: 0;
		margin: 0;
	}
	.form--no_files .form--upload_before {
		display: block;
	}
	.form--files_selected .form--uploaded_files {
		display: block;
}

/* File upload area 
---------------------------------------- */
.form--upload_before {
	display: none;
	width: 100%;
	height: 100%;
	padding: 25px;
	}
	.form--upload_instructions {
		padding-bottom: 0.5em;
	}
	.form--upload_instructions b {
		color: #FA5C19;
		font-weight: 500;
		text-decoration: underline;
	}
	.form--upload_instructions_plus {
		display: block;
		color: #5C696F;
	}
	.form--upload_restrictions {
		font-size: 13px;
		color: #8C999F;
}
@media (max-width: 450px) {
	.form--upload_instructions_plus {
		font-size: 15px;
	}
}

/* File upload errors 
---------------------------------------- */
.form--input_error .form--upload_box {
	border-color: #FA5C19;
	}
	.form--error_too_many .error--too_many,
	.form--error_too_large .error--too_large,
	.form--error_invalid_type .error--invalid_type {
		display: block;
}


/* Uploaded file list 
---------------------------------------- */
.form--uploaded_files {
	display: none;
	position: relative;
	width: 100%;
	height: 100%;
	padding: 25px 40px 25px 25px;
	}
	.form--files_container {
		display: flex;
		align-items: flex-start;
		flex-wrap: wrap;
	}
	.form--uploaded_files .button--close {
		position: absolute;
		width: 40px;
		height: 40px;
		top: 0;
		right: 0;
		background: url("button-close.svg") no-repeat center;
		background-size: 15px 15px;
}

.button--file {
	position: relative;
	height: 40px;
	padding: 11px 38px 13px 18px;
	margin: 0 10px 10px 0;
	background-color: transparent;
	border: 1px solid #8C999F;
	border-radius: 22px;
	cursor: pointer;
	outline: none; 
	}
	.button--file p {
		display: block;
		font-family: 'Montserrat',sans-serif;
		font-weight: 500;
		font-size: 14px;
		line-height: 1;
		white-space: nowrap;
		color: #5C696F;
		padding: 0;	
	}
	.button--file p::after {
		content: "";
		position: absolute;
		right: 15px;
		top: 14px;
		height: 10px;
		width: 10px;
		background: url(button-close.svg) no-repeat center;
}
@media (hover: hover) {
	.button--file:hover p::after {
		background-image: url(button-close-orange.svg);
	}
	.form--uploaded_files .button--close:hover {
		background-image: url(button-close-orange.svg);
	}
}

/* Hidden fields 
---------------------------------------- */
.form--block_row.form--block_hidden {
	display: none;
}

/* Submit button 
---------------------------------------- */
.form--submit {
	margin-top: 25px;
}
.form--error_not_valid .error--has_errors {
	display: block;
	width: calc( 100% - 150px );
}


/* AJAX messages 
---------------------------------------- */
.form--process_active .form--process {
	display: block;
}
.form--process_active .form--contact {
	display: none;
}

.form--process {
	display: none;
	padding: 50px 50px;
	border: 1px solid #ddd;
}
.form--process_msg {
	display: none;
	text-align: center;
}
.form--process_msg img {
	width: 70px;
	height: auto;
	margin-bottom: 20px;
}
.form--process_msg h2 {
	padding-bottom: 0;
	margin-bottom: 20px;
}
.form--process_msg p {
	padding: 0;
}
.form--process_msg a {
	color: #0071BC;
}
.form--process_msg .button--close_msg {
	margin-top: 30px;
}


/* Spinner 
---------------------------------------- */
.spinner--container {
	text-align: center;
	padding-bottom: 20px;
}
.spinner {
	display: inline-block;
	width: 44px;
	height: 44px;
	position: relative;
	border-top: 4px solid #dadada;
	border-right: 4px solid #dadada;
	border-bottom: 4px solid #dadada;
	border-left: 4px solid #FA5C19;
	border-radius: 50%;
	-webkit-animation: rotate-frame 1s infinite linear;
	animation: rotate-frame 1s infinite linear;
}

@-webkit-keyframes rotate-frame {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes rotate-frame {
  0% {
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}


/* Modal form
---------------------------------------- */
.modal--window {
  display: none;
  position: fixed;
  left: 0;
  top: 0;
  height: 100vh;
  width: 100vw;
  background-color: #f0f0f0;
  z-index: 2000;
}
.modal--window_close {
	display: block;
	position: absolute;
	width: 40px;
	height: 40px;
	top: 10px;
	right: 10px;
	background: url(button-close.svg) no-repeat center;
	background-size: 20px 20px;
}
.modal--content {
	margin: 60px auto;
	padding: 40px;
	background-color: #FFF;
	max-width: 880px;
}
.modal--content .modal--msg {
	display: block;
	padding: 40px;
	border: 1px solid #d2d2d2;
}
.modal--msg .spinner--container {
	padding-top: 20px;
}

.modal--active {
  overflow-y: hidden;
}
.modal--active .modal--window {
  display: block;
  width: 100%;
  overflow-y: scroll;
}



