.hidden {
	display: none;
}
.invalid-feedback {
	display: block;
}
.focus-wrapper {
	position: relative;
	z-index: 1;
	padding-top: 0.5rem;
}
.focus-wrapper label, .focus-label {
	position: absolute;
	top: 0.75rem;
	left: 0;
	margin: 0;
	padding: 0;
	color: #a09baf;
	transition: 0.3s ease-in;
	cursor: text;
	z-index: -1;
}
.focus-wrapper .form-control {
	padding: 0.375rem 0;
	border-width: 2px;
	border-top: 0;
	border-left: 0;
	border-right: 0;
	background-color: transparent;
	box-shadow: none !important;
}
.focus-wrapper .form-control:focus {
	background-color: transparent;
}
.focus-wrapper .form-control ~ .focus-border {
	position: absolute;
	bottom: 0;
	left: 50%;
	width: 0;
	height: 2px;
	background-color: #5b31ff;
	transition: 0.3s ease-in;
}
.focus-wrapper .form-control:focus ~ .focus-border {
	width: 100%;
	left: 0;
}
/* separate directives else rules won't work in Firefox */
.focus-wrapper .form-control:focus ~ label {
	top: -0.3rem;
	font-size: 0.75rem;
	font-weight: bold;
	color: #5b31ff;
	z-index: 1;
}
.focus-wrapper .form-control.has-content ~ label, .focus-label {
	top: -0.3rem;
	font-size: 0.75rem;
	font-weight: bold;
	color: #5b31ff;
	z-index: 1;
}
.focus-wrapper .form-control:-webkit-autofill ~ label {
	top: -0.5rem;
	font-size: 0.75rem;
	font-weight: bold;
	color: #5b31ff;
	z-index: 1;
}
.focus-wrapper select.form-control ~ label {
	top: -0.3rem;
	font-size: 0.75rem;
	font-weight: bold;
	color: #5b31ff;
	z-index: 1;
}
.focus-wrapper ~ .invalid-feedback {
	margin-top: 0;
}
.focus-wrapper .form-control:disabled, .focus-wrapper .form-control[readonly] {
	color: #a09baf;
}



a {
	text-decoration: underline;
}
a.btn {
	text-decoration: none;
	white-space: normal;
	word-wrap: break-word;
}
h1, h2, h3, h4 {
	word-wrap: break-word;
	font-weight: bolder;
	color: #110638;
}
h3, h4 {
	margin-bottom: 1.5rem;
	margin-top: 2.5rem;
}
h2 {
	font-size: 2rem;
	margin-bottom: 2rem;
}
h3 {
	font-size: 1.5rem;
	padding-top: 1.5rem;
	background: url("../img/hr.png") no-repeat left top;	
}
h4 {
	font-size: 1.25rem;
	text-transform: uppercase;
}
.page-wrapper {
	padding-top: 6rem;
	padding-bottom: 4rem;
}
.page-wrapper.no-pad {
	padding-top: 0;
	padding-bottom: 0;
}



.topbar .navbar-nav {
	display: inline-block;
	text-align: left;
}
.topbar .navbar-toggler {
	position: absolute;
	top: 0.75rem;
	right: 1rem;
	border: none;
}
.topbar .navbar-toggler-icon {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#5b31ff' stroke-width='4' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}
.topbar .navbar-collapse {
	padding-top: 3.5rem;
}
.topbar .navbar-links {
	width: 100%;
	transition: 0.3s ease-in;
}
.topbar .navbar-logo {
	position: absolute;
	top: 0.85rem;
	left: 1rem;
	text-align: left;
}
.topbar, .topbar.tiny {
	/* background-color: rgba(255, 255, 255, 0.85); */
	background-color: #ffffff;
	border-bottom: 1px solid #dcdae1;
}
.topbar .navbar,
.topbar.tiny .navbar {
	min-height: 63px;
	transition: 0.3s ease-in;
}
.topbar .navbar-logo img,
.topbar.tiny .navbar-logo img {
	height: 37px;
	transition: 0.3s ease-in;
}
.topbar .btn-outline-primary {
	color: #5b31ff !important;
}
.topbar .btn-outline-primary:hover {
	color: #ffffff !important;
}
.topbar .nav-item.active .nav-link {
	color: #2b1778;
}
.topbar a, .footer a {
	text-decoration: none;
}
.footer {
	z-index: 50;
	border-top: 1px solid #b7b4c3;
	/* background-color: rgba(5, 1, 16, 0.05); */
}
.footer strong {
	display: block;
	margin-bottom: 1.5rem;
	text-transform: uppercase;
	color: #2b1778;
}
.footer ul, .footer li {
	margin: 0;
	padding: 0;
	list-style-type: none;
	line-height: 2rem;
}
.footer li a {
	color: #2b1778;
}
.footer .copy {
	padding: 1rem 4rem 1rem 1rem;
	border-top: 1px solid #b7b4c3;
	background: url("../img/footer.svg") no-repeat center bottom;
	background-size: 100% 5px;
}
.scroll-top {
	display: block;
	position: fixed;
	right: 10px;
	bottom: 10px;
	width: 40px;
	height: 40px;
	z-index: 1000;
	opacity: 1;
	font-size: 2.5rem;
	line-height: 40px;
}
.scroll-top.hidden {
	opacity: 0;
}
.cookie {
	display: none;
	padding: 0.5rem 1rem;
	background-color: #2b1778;
	color: #ffffff;
	z-index: 1031;
}
.cookie a {
	color: #ffffff;
	text-decoration: underline;
}
.btn {
	text-transform: uppercase;
}
#comment {
	min-height: 200px;
}
form input[name="_hpfb"] {
	position: absolute;
	z-index: -1;
	opacity: 0;
}



@media (min-width: 768px) {
	h2 { font-size: 3rem; }
	h3 { font-size: 2rem; }
	h4 { font-size: 1.75rem; }
	.footer li a {
		color: #aea2d6;
	}
	.footer li a:hover {
		color: #2b1778;
	}
	.footer .copy {
		padding-right: 1rem;
	}
}
@media (min-width: 992px) {
	.topbar .navbar-collapse { padding-top: 0; }
	.topbar .navbar-links { text-align: right; }
	.topbar .nav-item {
		margin-left: 1rem;
		display: inline-block;
	}
	.page-wrapper { padding-top: 8rem; }
}
@media (min-width: 1200px) {
}
