/* INIT */
html {
	position: relative;
	background: white;
	color: #282828;
	font-family: 'Raleway', sans-serif;
	font-size: 16px;
	line-height: 1em;
	overflow-x: hidden;
}

body {
	position: relative;
	overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 { line-height: 2em; }

p { display: block; font-size: 16px; line-height: 1.4em; margin: 1.5em 0 0 0; color: #1b1b1b; }
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: 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; }
.justifyAlign { text-align: justify; }
.blockCenterAlign { margin-left: auto; margin-right: auto; }
.leftFloat { float: left; }
.rightFloat { float: right; }
.hidden { display: none; }
.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;
}
.mxAuto { margin-left: auto; margin-right: auto;}




/* 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%; }




/* TEXT */
.fSize10	{ font-size: 10px !important; }
.fSize11	{ font-size: 11px !important; }
.fSize12	{ font-size: 12px !important; }
.fSize14 { font-size: 14px !important; }
.fSize16 { font-size: 16px !important; }
.fSize18 { font-size: 18px !important; }
.fSize20 { font-size: 20px !important; }
.fSize24 { font-size: 24px !important; }
.fSize28 { font-size: 28px !important; }
.fSize07rem { font-size: 0.7rem !important; }
.fSize08rem { font-size: 0.8rem !important; }
.fSize09rem { font-size: 0.9rem !important; }
.fSize1rem  { font-size: 1.0rem !important; }
.fSize12rem { font-size: 1.2rem !important; }
.fSize14rem { font-size: 1.4rem !important; }
.fSize16rem { font-size: 1.6rem !important; }
.fSize18rem { font-size: 1.8rem !important; }
.fSize20rem { font-size: 2.0rem !important; }
.fSize22rem { font-size: 2.2rem !important; }
.fSize24rem { font-size: 2.4rem !important; }
.fSize26rem { font-size: 2.6rem !important; }
.fSize28rem { font-size: 2.8rem !important; }
.fSize30rem { font-size: 3rem !important; }
.fSize07em { font-size: 0.7em !important; }
.fSize08em { font-size: 0.8em !important; }
.fSize09em { font-size: 0.9em !important; }
.fSize1em  { font-size: 1.0em !important; }
.fSize12em { font-size: 1.2em !important; }
.fSize14em { font-size: 1.4em !important; }
.fSize16em { font-size: 1.6em !important; }
.fSize18em { font-size: 1.8em !important; }
.fSize20em { font-size: 2.0em !important; }
.fSize22em { font-size: 2.2em !important; }
.fSize24em { font-size: 2.4em !important; }
.fSize26em { font-size: 2.6em !important; }
.fSize28em { font-size: 2.8em !important; }
.fSize30em { font-size: 3.0em !important; }

.lineHeight06em { line-height: 0.6em; }
.lineHeight08em { line-height: 0.8em; }
.lineHeight10em { line-height: 1.0em; }
.lineHeight12em { line-height: 1.2em; }
.lineHeight14em { line-height: 1.4em; }
.lineHeight16em { line-height: 1.6em; }
.lineHeight18em { line-height: 1.8em; }
.lineHeight20em { line-height: 2.0em; }
.lineHeight22em { line-height: 2.2em; }
.lineHeight24em { line-height: 2.4em; }



/* PADDINGS */
.tp0 { padding-top: 0 !important; }
.rp0 { padding-right: 0 !important; }
.bp0 { padding-bottom: 0 !important; }
.lp0 { padding-left: 0 !important; }
.ap5 { padding: 5px !important; }
.tp5 { padding-top: 5px !important; }
.rp5 { padding-right: 5px !important; }
.bp5 { padding-bottom: 5px !important; }
.lp5 { padding-left: 5px !important; }
.ap10 { padding: 10px !important; }
.tp10 { padding-top: 10px !important; }
.rp10 { padding-right: 10px !important; }
.bp10 { padding-bottom: 10px !important; }
.lp10 { padding-left: 10px !important; }
.ap15 { padding: 15px !important; }
.tp15 { padding-top: 15px !important; }
.rp15 { padding-right: 15px !important; }
.bp15 { padding-bottom: 15px !important; }
.lp15 { padding-left: 15px !important; }
.ap20 { padding: 20px !important; }
.tp20 { padding-top: 20px !important; }
.rp20 { padding-right: 20px !important; }
.bp20 { padding-bottom: 20px !important; }
.lp20 { padding-left: 20px !important; }




/* MARGINS */
.am0 { margin: 0 !important; }
.tm0 { margin-top: 0 !important; }
.rm0 { margin-right: 0 !important; }
.bm0 { margin-bottom: 0 !important; }
.lm0 { margin-left: 0 !important; }
.am5 { margin: 5px !important; }
.tm5 { margin-top: 5px !important; }
.rm5 { margin-right: 5px !important; }
.bm5 { margin-bottom: 5px !important; }
.lm5 { margin-left: 5px !important; }
.am10 { margin: 10px !important; }
.tm10 { margin-top: 10px !important; }
.rm10 { margin-right: 10px !important; }
.bm10 { margin-bottom: 10px !important; }
.lm10 { margin-left: 10px !important; }
.am15 { margin: 15px !important; }
.tm15 { margin-top: 15px !important; }
.rm15 { margin-right: 15px !important; }
.bm15 { margin-bottom: 15px !important; }
.lm15 { margin-left: 15px !important; }
.am20 { margin: 20px !important; }
.tm20 { margin-top: 20px !important; }
.rm20 { margin-right: 20px !important; }
.bm20 { margin-bottom: 20px !important; }
.lm20 { margin-left: 20px !important; }
.am30 { margin: 30px !important; }
.tm30 { margin-top: 30px !important; }
.rm30 { margin-right: 30px !important; }
.bm30 { margin-bottom: 30px !important; }
.lm30 { margin-left: 30px !important; }
.tm40 { margin-top: 40px !important; }
.rm40 { margin-right: 40px !important; }
.bm40 { margin-bottom: 40px !important; }
.lm40 { margin-left: 40px !important; }




/* FORMS */
form {
	display: block;
}

form ul {
	display: block;
	margin: 0;
	padding: 0;
}

form ul li {
	display: block;
	margin: 0 0 10px 0;
	padding: 0;
}

input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select {
	display: block;
	width: 100%;
	margin: 0 0 8px 0;
	padding: 16px;
	font-family: 'Raleway', sans-serif;
	font-size: 16px;
	color: #1b1b1b;
	background: #fff;
	border: 1px solid #c2c2c2;
	border-radius: 0;
	outline: none;
	transition: border 150ms ease-in-out;
}

form ul li textarea {
	min-height: 150px;
	max-width: 100%;
	min-width: 100%;
}

input[type=text]:focus, input[type=email]:focus, input[type=tel]:focus, input[type=password]:focus, textarea:focus, select:focus {
	outline: none;
	border: 1px solid #691656;
}

.formInputError {
	border-left: 1px solid #b30808;
}

input[type=submit], input[type=button], button {
	border: none;
}

input[type=submit]:hover, input[type=button]:hover, button:hover {
	cursor: hand;
	cursor: pointer;
}




/* GENERIC BOX LOADING */
.boxFormLoading {
	display: none;
	margin: 15px 0 0 0;
	padding: 15px 15px 15px 45px;
	text-align: left;
	color: #383838;
	font-size: 1rem;
	line-height: 1em;
	font-weight: 400;
	background: no-repeat left center;
	background-size: auto 38px;
}

.boxFormLoading.loading {
	display: block;
	background-image: url(./img/icons/icon-loader.gif);
}

.boxFormLoading.ok {
	display: block;
	background-image: url(./img/icons/icon-ok.svg);
}

.boxFormLoading.alert {
	display: block;
	background-image: url(./img/icons/icon-alert.svg);
}

.boxFormLoading.error {
	display: block;
	background-image: url(./img/icons/icon-error.svg);
}




/* CUSTOM CHECKLIST */
.customChecklist {
	margin: 0;
	padding: 0;
	list-style: none;
}

.customChecklist li {
	position: relative;
	display: block;
	margin: 0 0 11px 0;
}

.customChecklist li:last-of-type {
	margin: 0;
}

.customChecklist li span {
	display: inline-block;
	max-width: calc(100% - 40px);
  margin: 3px 0 0 10px;
  font-size: 15px;
	font-weight: 500;
	line-height: 1em;
	color: #3d3d3d;
	letter-spacing: 0.03em;
	vertical-align: top;
}


/* CUSTOM CHECKLIST - INPUT CHECKBOX */
.customChecklist li input[type=checkbox] + label {
	cursor: pointer;
	vertical-align: top;
}

.customChecklist li input[type=checkbox] + label::before {
	content: '';
	display: inline-block;
	width: 14px;
	height: 14px;
	cursor: pointer;
	border: 2px solid #1b1b1b;
	border-radius: 2px;
	background: transparent;
	vertical-align: top;
}

.customChecklist li input[type=checkbox] + label::after {
	content: '';
  width: 7px;
  height: 4px;
  position: absolute;
  top: 6px;
  left: 4px;
  border: 3px solid #1b1b1b;
  border-top: none;
  border-right: none;
  background: transparent;
  opacity: 0;
  transform: rotate(-45deg);
}

.customChecklist li input[type=checkbox] {
	display: none;
	visibility: hidden;
}

.customChecklist li input[type=checkbox]:checked + label::after {
	opacity: 1;
}







/* ########## */
/* RESPONSIVE */
/* ########## */


/* 1200px */
@media screen and (max-width: 1200px) {

}


/* 1024px */
@media screen and (max-width: 1024px) {
	/* CUSTOM CHECKLIST */
	/* CUSTOM CHECKLIST - INPUT CHECKBOX */
	.customChecklist li input[type=checkbox] + label::after {
		top: 4px;
	}
}


/* 768px */
@media screen and (max-width: 768px) {
	p {
		font-size: 14px;
		line-height: 1.7em;
	}
	
	
	
	/* FORMS */
	input[type=text], input[type=email], input[type=tel], input[type=password], textarea, select {
		padding: 12px;
    font-size: 14px;
	}
}


/* 576px */
@media screen and (max-width: 576px) {
	/* BOX FORM LOADING */
	.boxFormLoading {
		font-size: 14px;
    line-height: 1em;
	}
	
	
	
	/* CUSTOM CHECKLIST */
	.customChecklist li span {
		font-size: 15px;
		line-height: 1em;
	}
}