body {
	margin: 0;
	font-family: 'Nunito', sans-serif;
}


input[type="text"],
input[type="password"] {
	border: solid 1px #434343;
	line-height: 1;
	padding: 0.3em;
	font-family: 'Nunito', sans-serif;
	background-color: #ffffff;
	border-radius: 2px;
	color: #434343;
	outline: 0;
	transition: color 0.2s, border 0.2s, box-shadow 0.2s;
}

textarea {
	border: solid 1px #434343;
	line-height: 1.3;
	padding: 0.3em;
	font-family: 'Nunito', sans-serif;
	background-color: #ffffff;
	border-radius: 2px;
	color: #434343;
	outline: 0;
	width: 40vw;
	height: 40vh;
	resize: none;
	box-sizing: border-box;
	transition: color 0.2s, border 0.2s, box-shadow 0.2s;
}

input[type="text"]:hover,
input[type="text"]:focus,
input[type="password"]:hover,
input[type="password"]:focus,
textarea:hover,
textarea:focus {
	color: #212121;
	border-color: #212121;
	box-shadow: 0 0 0.5em #212121;
}

input[type="submit"] {
	border: 0;
	border-radius: 2px;
	text-transform: uppercase;
	font-weight: 300;
	letter-spacing: 0.125em;
	background-color: #402B7C;
	line-height: 1;
	padding: 0.3em;
	color: #fff;
	font-size: 1.3em;
	font-family: 'Nunito', sans-serif;
	cursor: pointer;
	transition: transform 0.2s;
	outline: 0;
}

input[type="submit"]:hover {
	transform: scale(1.1);
}

input[type="submit"]:disabled {
	cursor: no-drop;
	opacity: 0.5;
}

select {
	display: inline-block;
	flex: 1;
	font-size: 16px;
	font-family: 'Nunito', sans-serif;
	font-weight: 400;
	color: #444;
	line-height: 1.3;
	padding: .6em 1.4em .5em .8em;
	width: auto;
	max-width: 100%;
	box-sizing: border-box;
	margin: 0;
	border: 1px solid #aaa;
	box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
	border-radius: 2px;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	background-color: #fff;
	background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23402B7C%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
	  linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);
	background-repeat: no-repeat, repeat;
	background-position: right .7em top 50%, 0 0;
	background-size: .65em auto, 100%;
	cursor: pointer;
}

select:hover {
	border-color: #888;
}

select:focus {
	border-color: #aaa;
	color: #222;
	outline: none;
}

select:disabled {
	cursor: no-drop;
	opacity: 0.5;
}

select option {
	font-weight:normal;
}

.loading-holder {
	position: fixed;
	z-index: 10000;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #ffffff;
	opacity: 0.5;
	display: none;
}

.loading-holder .loading {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 40vmin;
	height: 0;
	transform: translate(-50%, -50%);
}

.loading-holder .loading div {
	background-color: #888;
	width: 1vmin;
	height: 1vmin;
	position: absolute;
	border-radius: 50%;
	transform: translate(-50%, -50%);
	top: 0;
	animation: sweller 0.5s infinite ease-in-out;
}

.loading-holder .loading div:first-child {
	left: 0;
}

.loading-holder .loading div:nth-child(2) {
	left: 25%;
	animation-delay: 0.1s;
}

.loading-holder .loading div:nth-child(3) {
	left: 50%;
	animation-delay: 0.2s;
}

.loading-holder .loading div:nth-child(4) {
	left: 75%;
	animation-delay: 0.3s;
}

.loading-holder .loading div:nth-child(5) {
	left: 100%;
	animation-delay: 0.4s;
}

@keyframes sweller {
	25% {
		transform: translate(-50%, -50%) scale(3);
		box-shadow: 0 0 1vmin #402B7C;
		background-color: #402B7C;
	}
	
	50% {
		transform: translate(-50%, -50%) scale(1);
	}

}

.shade {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: #dfdfdf;
	opacity: 0.5;
	z-index: 999;
	display: none;
}

label {
	display: block;
	margin-bottom: 0.5em;
}

.row {
	margin-bottom: 1em;
}

.bold {
	font-weight: 700;
}

.center {
	text-align: center;
}

.bigger {
	font-size: 1.3em;
}

.smaller {
	font-size: 0.8em;
}

.error {
	padding: 0.5em;
	background-color: #E19294;
	margin-bottom: 1.2em;
	border-radius: 2px;
	display: none;
	color: #212121;
}

.fancy-checker {
	cursor: pointer;
	position: relative;
	padding-left: 1.5em;
	user-select: none;
}

.fancy-checker input {
	display: none;
}

.fancy-checker .check {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 1em;
	height: 1em;
	display: block;
	border: solid 1px currentColor;
	border-radius: 50%;
	box-sizing: border-box;
	transition: background-color 0.2s, box-shadow 0.2s;
}

.fancy-checker:hover input ~ .check {
	box-shadow: 0 0 4px currentColor;
}

.check::after {
	content: '';
	position: absolute;
	display: none;
}

.fancy-checker input:checked ~ .check::after {
	display: block;
}

.fancy-checker .check::after {
	position: absolute;
	border-radius: 50%;
	background-color: currentColor;
	top: 1px;
	left: 1px;
	right: 1px;
	bottom: 1px;
}

.fancy-checker.disabled {
	opacity: 0.8;
	cursor: no-drop;
}