header, main, footer{
	position: relative;
	padding: 0;
	margin: 0;
	border: 0;
	width: 100%;
	z-index: 1;
}

main {
	/*margin-top: 3rem;*/
	background: var(--main);
	min-height: 80vh;
}

@media (min-width: 991px){
	main {
		/*margin-top: 7rem;*/
	}
}


.select2-dropdown {
	background-color: var(--input-color);
	border-color: var(--input-border);
	color: var(--input-text);
}
.select2-search__field {
	color: var(--input-text);
}

select,
select[multiple],
textarea,
input[type=text],
input[type=date],
input[type=time],
input[type=datetime-local],
input[type=month],
input[type=week],
input[type=password],
input[type=file],
input[type=number],
.select2-selection{
	background-color: var(--input-color);
	border-color: var(--input-border);
	color: var(--input-text);
	transition: .5s ease-in-out all;
}

select ~ .select2 > .selection > .select2-selection > .select2-selection__rendered {
	color: var(--input-text);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--input-text);
}

.select2-results__option,
.select2-results__option > span.subtext,
.select2-selection__rendered > span.subtext {
	color: var(--input-subtext);
}

.select2-container--default .select2-selection--single {
	background-color: var(--input-color);
	border-color: var(--input-border);
}

select ~ label,
select[multiple] ~ label,
textarea ~ label,
input[type=text] ~ label,
input[type=date] ~ label,
input[type=time] ~ label,
input[type=datetime-local] ~ label,
input[type=month] ~ label,
input[type=week] ~ label,
input[type=password] ~ label,
input[type=file] ~ label,
input[type=number] ~ label {
	background-color: var(--label-color);
	border-color: var(--label-border);
	color: var(--input-text);
	transition: .5s ease-in-out all;
}

select[require], select[data-config^="@required"],
select[multiple],
textarea[require], textarea[data-config^="@required"],
input[type=text][require], input[type=text][data-config^="@required"],
input[type=date][require], input[type=date][data-config^="@required"],
input[type=time][require], input[type=time][data-config^="@required"],
input[type=datetime-local][require], input[type=datetime-local][data-config^="@required"],
input[type=month][require], input[type=month][data-config^="@required"],
input[type=week][require], input[type=week][data-config^="@required"],
input[type=password][require], input[type=password][data-config^="@required"],
input[type=file][require], input[type=file][data-config^="@required"],
input[type=number][require], input[type=number][data-config^="@required"],
.select2-selection[require], .select2-selection[data-config^="@required"] {
	border-color: var(--input-border-required);
	transition: .5s ease-in-out all;
}

select[require] ~ label, select[data-config^="@required"] ~ label,
select[multiple] ~ label,
textarea[require] ~ label, textarea[data-config^="@required"] ~ label,
input[type=text][require] ~ label, input[type=text][data-config^="@required"] ~ label,
input[type=date][require] ~ label, input[type=date][data-config^="@required"] ~ label,
input[type=time][require] ~ label, input[type=time][data-config^="@required"] ~ label,
input[type=datetime-local][require] ~ label, input[type=datetime-local][data-config^="@required"] ~ label,
input[type=month][require] ~ label, input[type=month][data-config^="@required"] ~ label,
input[type=week][require] ~ label, input[type=week][data-config^="@required"] ~ label,
input[type=password][require] ~ label, input[type=password][data-config^="@required"] ~ label,
input[type=file][require] ~ label, input[type=file][data-config^="@required"] ~ label,
input[type=number][require] ~ label, input[type=number][data-config^="@required"] ~ label,
.select2-selection[require] ~ label, .select2-selection[data-config^="@required"] ~ label {
	background-color: var(--label-color-required);
	border-color: var(--label-border-required);
	color: var(--label-text-required);
	transition: .5s ease-in-out all;
}


input[type=text][success],
input[type=date][success],
input[type=time][success],
input[type=datetime-local][success],
input[type=month][success],
input[type=week][success],
input[type=password][success],
input[type=file][success],
input[type=number][success],
select[success],.select2-selection[sucess]{
	background-color: var(--input-color);
	border-color: var(--input-border-sucess);
	transition: .5s ease-in-out all;
}

input[type=text][empty],
input[type=date][empty],
input[type=time][empty],
input[type=datetime-local][empty],
input[type=month][empty],
input[type=week][empty],
input[type=password][empty],
input[type=file][empty],
input[type=number][empty],
select[empty],.select2-selection[empty]{
	background-color: var(--input-color);
	border-color: var(--input-border-empty);
	transition: .5s ease-in-out all;
}

input[type=text][empty] ~ label,
input[type=date][empty] ~ label,
input[type=time][empty] ~ label,
input[type=datetime-local][empty] ~ label,
input[type=month][empty] ~ label,
input[type=week][empty] ~ label,
input[type=password][empty] ~ label,
input[type=file][empty] ~ label,
input[type=number][empty] ~ label,
select[empty] ~ label {
	background-color: var(--label-color-empty) !important;
	border-color: var(--label-border-empty) !important;
	color: var(--label-text-empty) !important;
	transition: .5s ease-in-out all;
}

input[type=text][invalid],
input[type=date][invalid],
input[type=time][invalid],
input[type=datetime-local][invalid],
input[type=month][invalid],
input[type=week][invalid],
input[type=password][invalid],
input[type=file][invalid],
input[type=number][invalid],
select[invalid],
.select2-selection[invalid]{
	background-color: var(--input-color);
	border-color: var(--input-border-invalid) !important;
	transition: .5s ease-in-out all;
}

input[type=text][invalid] ~ label,
input[type=date][invalid] ~ label,
input[type=time][invalid] ~ label,
input[type=datetime-local][invalid] ~ label,
input[type=month][invalid] ~ label,
input[type=week][invalid] ~ label,
input[type=password][invalid] ~ label,
input[type=file][invalid] ~ label,
input[type=number][invalid] ~ label,
select[invalid] ~ label{
	background-color: var(--label-color-invalid) !important;
	border-color: var(--label-border-invalid) !important;
	color: var(--label-text-invalid) !important;
	transition: .5s ease-in-out all;
}

select:focus,
select[multiple]:focus,
textarea:focus,
input[type=text]:focus,
input[type=date]:focus,
input[type=time]:focus,
input[type=datetime-local]:focus,
input[type=month]:focus,
input[type=week]:focus,
input[type=password]:focus,
input[type=file]:focus,
input[type=number]:focus,
input[type=text]:focus,
.select2-selection:focus {
	background-color: var(--input-color-focus) !important;
	border-color: var(--input-border-focus) !important;
	transition: .5s ease-in-out all;
}

select[disabled],
select[multiple][disabled],
textarea[disabled],
input[type=text][disabled],
input[type=date][disabled],
input[type=time][disabled],
input[type=datetime-local][disabled],
input[type=month][disabled],
input[type=week][disabled],
input[type=password][disabled],
input[type=file][disabled],
input[type=number][disabled],
input[type=text][disabled],
.select2-selection[disabled] {
	background-color: var(--input-color-disabled) !important;
	border-color: var(--input-border-disabled) !important;
	transition: .5s ease-in-out all;
}

select[readonly],
select[multiple][readonly],
textarea[readonly],
input[type=text][readonly],
input[type=date][readonly],
input[type=time][readonly],
input[type=datetime-local][readonly],
input[type=month][readonly],
input[type=week][readonly],
input[type=password][readonly],
input[type=file][readonly],
input[type=number][readonly],
input[type=text][readonly],
.select2-selection[readonly] {
	background-color: var(--input-color-disabled) !important;
	border-color: var(--input-border-disabled) !important;
	transition: .5s ease-in-out all;
}