/* INIT */
html {
	position: relative;
	background: white;
	color: #444242;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 16px;
	line-height: 1em;
	overflow-x: hidden;
}

body {
	position: relative;
	font-family: 'Montserrat', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #444242;
	overflow-x: hidden;
}

main {
	min-height: calc(100vh - 383px);
}

p { 
	display: block;
	margin: 1.6em 0 0 0;
	line-height: 1.6;
	letter-spacing: 0.02em;
	color: #444242;
}
p:first-child { margin-top: 0; }
p.centerAlign { text-align: center; margin-left: auto; margin-right: auto; }

div { position: relative; zoom: 1; }
img { display: block; max-width: 100%; height: auto; }
hr { display: none; }
a { display: inline-block; color: inherit; }

* { box-sizing: border-box; position: relative; }

*, *:link, *:visited, *:hover, *:active, *:focus {
	outline: 0 !important;
}

*, *:link, *:visited, *:hover, *:active, *:focus, a, a:link, a:visited, a:hover, a:active, a:focus {
	outline: 0;
}




/* BASIC CLASSES */
.leftAlign { text-align: left; }
.rightAlign { text-align: right; }
.centerAlign { text-align: center; }
.blockCenterAlign { margin-left: auto; margin-right: auto; }
.leftFloat { float: left; }
.rightFloat { float: right; }
.clear { clear: both; display: block; overflow: hidden; visibility: hidden; width: 0; height: 0; font-size: 0; line-height: 0; }
.clearLeft { clear: left; display: block; overflow: hidden; visibility: hidden; width: 0; height: 0; font-size: 0; line-height: 0; }
.clearRight { clear: right; display: block; overflow: hidden; visibility: hidden; width: 0; height: 0; font-size: 0; line-height: 0; }
.division {
	display: block;
	height: 1px;
	background: black;
	margin: 30px 0;
}




/* CLEARFIX */
.clearfix:after {
	visibility: hidden;
	display: block;
	font-size: 0;
	content: " ";
	clear: both;
	height: 0;
}
.clearfix { display: inline-block; }
* html .clearfix { height: 1%; }
.clearfix { display: block; }




/* MAX WIDTHS */
.mw1280 { max-width: 1280px; }
.mw1170 { max-width: 1170px; }
.mw1024 { max-width: 1024px; }
.mw960  { max-width: 960px; }
.mw800  { max-width: 800px; }
.mw760  { max-width: 760px; }
.mw640  { max-width: 640px; }
.mw585  { max-width: 585px; }
.mw530  { max-width: 530px; }
.mw520  { max-width: 520px; }
.mw480  { max-width: 480px; }
.mw320  { max-width: 320px; }
.mw90pct { max-width: 90%; }
.mw80pct { max-width: 80%; }
.mw70pct { max-width: 70%; }
.mw60pct { max-width: 60%; }
.mw50pct { max-width: 50%; }




/* FORMS */
form {
	display: block;
}

form ul {
	display: block;
	margin: 0;
	padding: 0;
}

form > ul > li {
	display: block;
	margin: 0 0 8px 0;
	padding: 0;
}

input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select {
	display: block;
	margin: 0;
	padding: 7px 22px !important;
	width: 100%;
	font-family: 'Montserrat', sans-serif !important;
	font-size: 16px !important;
	line-height: 1.5 !important;
	color: #FFF !important;
	letter-spacing: 0.02em;
	background-color: #adadad;
	border: 1px solid transparent;
	border-radius: 0;
	outline: none;
	box-sizing: border-box;
	transition: all 150ms ease;
}

input[type=text]:focus, input[type=email]:focus, input[type=tel]:focus, input[type=password]:focus, textarea:focus, select:focus {
	background-color: #858585;
	outline: none;
}

form ul li select {
	appearance: none;
	background-image: url(./img/icons/icon-arrow-down-1.svg) ;
	background-repeat: no-repeat;
	background-position: calc(100% - 11px) center;
	background-size: 16px auto;
}

form ul li select option:disabled {
	color: #FFF !important;
}

form ul li textarea {
	min-height: 190px;
	max-width: 100%;
}

form .upload {
	height: 100%;
	color: #fff;
	background: #adadad;
	overflow: hidden;
}

form .upload > span {
	position: relative;
	display: block;
	color: #fff;
	text-align: left !important;
}

form .upload .link {
	height: 100%;
	padding: 7px 0;
	color: inherit;
}

form .upload .info {
	display: inline-block;
	margin: 0;
	padding: 0 22px;
	font-size: 16px;
	color: inherit;
}

form .upload input[type=file] {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	line-height: 1;
	z-index: 1000;

	-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
	filter: alpha(opacity=0);
	-moz-opacity: 0;
	-khtml-opacity: 0;
	opacity: 0;
}

form .upload input[type=file]:hover {
	cursor: hand !important;
	cursor: pointer !important;
}

input[type=submit], input[type=button], button {
	border: none;
}

input[type=submit]:hover, input[type=button]:hover, button:hover {
	cursor: hand;
	cursor: pointer;
}

.hasErrors {
	border-color: #e3100d !important;
}

form ::placeholder { color: #3A3A3A; }
form ::-webkit-input-placeholder { color: #3A3A3A; }
form ::-moz-placeholder { color: #3A3A3A; }
form :-ms-input-placeholder { color: #3A3A3A; }
form :-moz-placeholder { color: #3A3A3A; }




/* GENERIC BOX LOADING */
.boxLoading {
	display: none;
	margin: 15px 0;
	padding: 25px 15px 25px 55px;
	text-align: left;
	color: #383838;
	font-size: 1rem;
	line-height: 1em;
	font-weight: 400;
	background: no-repeat 10px center;
	background-size: 30px auto;
	border-radius: 4px;
}

.boxLoading.loading {
	display: block;
	border: 2px solid #b2b2b2;
	background-image: url(./img/icons/icon-loader-1.svg);
}

.boxLoading.ok {
	display: block;
	border: 2px solid #a3d179;
	background-image: url(./img/icons/icon-ok.svg);
}

.boxLoading.alert {
	display: block;
	border: 2px solid #ffb81f;
	background-image: url(./img/icons/icon-alert.svg);
}

.boxLoading.error {
	display: block;
	border: 2px solid #bf3d27;
	background-image: url(./img/icons/icon-error.svg);
}







/* ########## */
/* RESPONSIVE */
/* ########## */


/* 1279px */
@media screen and (max-width: 1279px) {
	body {
		padding-top: 90px;
	}

	main {
		min-height: calc(100vh - 427px);
	}
}


/* 1023px */
@media screen and (max-width: 1023px) {
	main {
    min-height: calc(100vh - 440px);
	}
}


/* 767px */
@media screen and (max-width: 767px) {
	body {
		padding-top: 85px;
	}

	main {
    min-height: calc(100vh - 459px);
	}
}


/* 639px */
@media screen and (max-width: 639px) {
	body {
		padding-top: 75px;
	}



	/* FORMS */
	input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select {
		padding: 8px 14px !important;
		font-size: 15px !important;
		line-height: 1.5 !important;
	}

	form .upload .info {
		padding: 0 14px;
		font-size: 15px;
	}
}