/* CSS Document */

body {
	background: #fff;
	font-family: 'Montserrat', sans-serif;
}

*{
	box-sizing: border-box;
}

a {
	text-decoration: none;
	color: white;
}

.jumbotron {
	width: 100%;
	height: 93vh;
	background: url('img/jumbo-min.jpg');
	background-size: cover;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.jumbotron__heading {
	color: white;
	font-size: 5rem;
	text-transform: uppercase;
	letter-spacing: 20px;
	font-weight: lighter;
	border-bottom: 5px solid #89c9bf;
}

.jumbotron__motto {
	color: white;
	font-size: 1.1rem;
	letter-spacing: 3px;
	margin-top: 30px;
	line-height: 1.5em;
	font-weight: 500;
	text-align: center;
	max-width: 500px;
	margin: 0 auto;
	margin-top: 25px;
}

.jumbotron__button {
	color: white;
	font-size: 1rem;
	font-weight: 300;
	background: linear-gradient(to right, #89c9bf, #8989ff);
	border: 0;
	padding: 20px 50px;
	border-radius: 50px;
	cursor: pointer;
	margin-top: 50px;
}

.jumbotron__button:hover {
	background: linear-gradient(to left, #89c9bf, #8989ff);
}

@media only screen and (max-width: 500px) {
	.jumbotron__heading {
	font-size: 3rem;
	}
}

.menu {
	width: 100%;
	height: 7vh;
	position: sticky;
	top: 0;
	z-index: 998;
}

.menu__logo {
	height: 6vh;
	float: left;
	padding-right: 15px;
}

.menu__ul {
	height: 100%;
	display: flex;
}

.menu__item {
	background: linear-gradient(#89c9bf, #8989ff);
	color: white;
	width: 100%;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 2px;
	box-sizing: border-box;
	font-size: 0.8rem;
	border-right: 1px solid #89a9df;
	border-left: 1px solid #8999ef;
	cursor: pointer;
	display: flex;
	align-items: stretch;
}

.menu__item a {
	width: 100%;
	line-height: 7vh;
}

.menu__item:first-child {
	background: linear-gradient(#dee3ff, #fff);
	color: #8989ff !important;
	width: 200%;
	font-size: 1.3rem;
	float: left;
	padding-left: 25px;
	text-align: left;
	font-weight: bold;
}
.menu__item:first-child a {
	color: #8989ff;
}

.menu__item:not(:first-child):hover {
	background: linear-gradient(#8989ff, #89c9bf);
}

.menu-wrapper {
  position: fixed;
  top: 22px;
  right: 20px;
  width: 50px;
  height: 15px;
  cursor: pointer;
	z-index: 999;
	display: none;
}

.hamburger-menu,
.hamburger-menu:after,
.hamburger-menu:before {
  width: 50px;
  height: 5px;
}

.hamburger-menu {
  position: relative;
  transform: translateY(25px);
  background: white;
	border-top: 4px solid #fff;
	border-bottom: 3px solid #8989ff;
  transition: all 0ms 300ms;
}
.hamburger-menu.animate {
  background: rgba(255, 255, 255, 0);
	border: 0;
}

.hamburger-menu:before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 15px;
  background: white;
	border-bottom: 3px solid #8989ff;
  transition: bottom 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.hamburger-menu:after {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  background: white;
	border-bottom: 3px solid #8989ff;
  transition: top 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.hamburger-menu.animate:after {
  top: 0;
	border: 0;
	background: #8989ff;
  transform: rotate(45deg);
  transition: top 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.hamburger-menu.animate:before {
  bottom: 0;
	border: 0;
	background: #8989ff;
  transform: rotate(-45deg);
  transition: bottom 300ms cubic-bezier(0.23, 1, 0.32, 1), transform 300ms 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

@media only screen and (max-width: 959px) {
	.jumbotron {
		height: 100vh;
	}
	
	.menu {
		height: 100%;
		width: 0px;
		background: #8989ff;
		position: fixed;
		top: 0;
		right: 0;
		overflow-x: hidden;
		transition: 0.5s;
	}
	
	.menu-active {
		width: 320px;
	}
	
	.menu__item:first-child {
		padding: 15px 0;
		padding-left: 30px;
		font-weight: 500;
	}
	
	.menu__item a {
		width: 100%;
		line-height: 1rem;
		padding: 1.5rem 0;
	}
	
	.menu__item:first-child img {
		display: none;
	}
	
	.menu__item:not(:first-child):hover {
		background: linear-gradient(#a0a0ff, #a0d3cb);
	}
	
	.menu__ul {
		flex-direction: column;
	}
	
	.menu-wrapper {
		display: block;
	}
	
	.menu-wrapper-active {
		color: red !important;
	}
}

.site__content {
	width: 960px;
	margin: 0 auto;
}

.about {	
	outline: 0;
}

.about__title {
	margin-top: 25px;
}

.about__heading {
	color: #333;
	font-size: 5rem;
	font-weight: bold;
	font-family: podkova;
}

.about__desc {
	color: #777;
	width: 50%;
	font-size: 1.5rem;
	font-family: podkova;
	padding-bottom: 15px;
	border-bottom: 4px solid #8989ff;
	margin-top: 10px !important;
}

.about__content {
	color: #888;
	font-size: 1.2rem;
	line-height: 1.9rem;
	font-weight: 400;
	text-align: justify;
}

.about__image {
	max-width: 30%;
	float: right;
	border: 5px solid #8989ff;
	margin-left: 25px;
	box-sizing: content-box;
}

.about p:not(:first-child) {
	margin-top: 15px;
}

.about__list {
	list-style-type:circle;
	margin-top: 15px;
	margin-left: 50px;
}

@media only screen and (max-width: 980px) {
	.site__content {
		width: 80%;
	}
}

@media only screen and (max-width: 754px) {
	.about__image {
		display: none;
	}
}

@media only screen and (max-width: 670px) {
	.site__content {
		width: 95%;
	}
}

@media only screen and (max-width: 565px) {
	.about__desc {
		width: 80%;
	}
	
	.about__heading {
		font-size: 4rem;
	}
}

.features {
	width: 100%;
	height: 30vh;
	background: linear-gradient(#8989ff, #89c9bf);
	margin-top: 70px;
}

.features__content {
	height: inherit;
	display: flex;
	align-items: center;
}

.features__single {
	width: 100%;
	text-align: center;
	color: white;
}

.features__single-icon {
	font-size: 6rem;
}

.features__single-heading {
	text-transform: uppercase;
	font-weight: 800;
	margin-top: 15px;
}

.features__single-desc {
	margin-top: 5px;
	font-size: 0.9rem;
}

@media only screen and (max-width: 880px) {
	.features__content {
		width: 95%;
	}
}

@media only screen and (max-width: 700px) {
	.features {
		height: auto;
		padding: 50px 0;
	}
	
	.features__single:not(:first-child) {
		margin-top: 50px;
	}
	
	.features__content {
		flex-direction: column;
	}
}

.offer {
	margin-top: 25px;
	outline: 0;
}

.offer__title {
	clear: both;
}

.offer__heading {
	color: #333;
	font-size: 5rem;
	font-weight: bold;
	font-family: podkova;
	text-align: right;
}

.offer__desc {
	color: #777;
	width: 50%;
	font-size: 1.5rem;
	font-family: podkova;
	padding-bottom: 15px;
	border-bottom: 4px solid #8989ff;
	text-align: right;
	float: right;
	margin-top: 10px !important;
}

.offer__content {
	color: #888;
	font-size: 1.2rem;
	line-height: 1.9rem;
	font-weight: 400;
	text-align: justify;
	clear: both;
	padding-top: 15px;
}

.offer p:not(:first-child) {
	margin-top: 15px;
}

.offer__list-item {
	background: #faf7fd;
	border-left: 10px solid #8989ff;
	margin-top: 15px;
	padding: 15px;
	font-size: 0.8em;
	transition: 0.2s ease all;
}

.offer__list-item:hover {
	border-left: 15px solid #8989ff;
}

@media only screen and (max-width: 565px) {
	.offer__desc {
		width: 80%;
	}
	
	.offer__heading {
		font-size: 4rem;
	}
}

.certs {
	width: 100%;
	background: linear-gradient(#8989ff, #89c9bf);
	position: relative;
	margin-top: 125px;
	outline: 0;
}

.certs__title {
	position: absolute;
	margin-top: -50px;
	padding: 15px 50px;
	border: 0;
	border-radius: 10px;
	background: #8989ff;
}

.certs__heading {
	color: white;
	font-size: 2rem;
	font-weight: 100;
	font-family: podkova;
}

.certs__content {
	height: 270px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.certs__columns-container {
	width: 100%;
	overflow: hidden;
}

.certs__column {
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: space-around;
	transition: .5s ease;
	overflow: hidden;
}

.certs__single {
	position: relative;
	width: 100%;
	max-width: 170px;
	border: 5px solid #89c9bf;
	border-radius: 5px;
	cursor: pointer;
}

.certs__image {
	display: block;
	width: 100%;
	height: auto;
}

.certs__overlay {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	height: 100%;
	width: 100%;
	opacity: 0;
	transition: 0.3s ease;
	background: linear-gradient(#89c9bf, #8989ff);
}

.certs__single:hover .certs__overlay {
	opacity: 0.6;
}

.certs__overlay-icon {
	color: white;
	font-size: 100px;
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

@media only screen and (max-width: 465px) {
	.certs__heading {
	font-size: 1.6rem;
}
	
/*
	.certs {
		height: 40vh;
	}
	
	.certs__content {
		height: 40vh;
	}
*/
}

.projects {
	width: 100%;
	padding-bottom: 80px;
	
	outline: 0;
}

.projects__heading {
	margin-top: 25px;
}

.projects__title {
	color: #333;
	font-size: 5rem;
	font-weight: bold;
	font-family: podkova;
}

.projects__desc {
	color: #777;
	width: 50%;
	font-size: 1.5rem;
	font-family: podkova;
	padding-bottom: 15px;
	border-bottom: 4px solid #8989ff;
	margin-top: 10px !important;
}

.projects__content {
	display: flex;
	justify-content: space-between;
}

.projects__column {
	width: 23%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
}

.projects__single {
	position: relative;
	width: 100%;
	max-width: 100%;
	border: 5px solid #89c9bf;
	border-radius: 5px;
	cursor: pointer;
	margin-top: 15px;
}

.projects__image {
	display: block;
	width: 100%;
	height: auto;
}

.projects__overlay {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	height: 100%;
	width: 100%;
	opacity: 0;
	transition: 0.3s ease;
	background: linear-gradient(#89c9bf, #8989ff);
}

.projects__single:hover .projects__overlay {
	opacity: 0.6;
}

.projects__overlay-icon {
	color: white;
	font-size: 100px;
	position: absolute;
	top: 50%;
	left: 50%;
	text-align: center;
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

@media only screen and (max-width: 979px) {
	.projects__column {
		width: 49%;
	}
}

@media only screen and (max-width: 549px) {
	.projects__column {
		width: 100%;
	}
	.projects__title {
	font-size: 4rem;
}
	.projects__desc {
	width: 80%;
		font-size: 1.3rem;
}
}

.map {
	position: relative;
	
	outline: 0;
}

.map__map {
	border: 0;
	width: 100%;
	height: 350px;
}

.map__overlay {
	position: absolute;
	top: 75px;
	right: 20px;
	z-index: 99;
	background: linear-gradient(#8989ff, #89c9bf);
	height: 200px;
	width: 35%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	border: 0;
	border-radius: 20px;
	line-height: 1.25rem;
}

.map__overlay p {
	color: white;
	text-align: center;
}

@media only screen and (max-width: 959px) {
	.map__map {
		height: 600px;
	}
	
	.map__overlay {
		width: 80%;
		right: 10%;
		top: 350px;
	}
}

.contact {
	width: 100%;
	height: 100%;
	padding-top: 25px;
	padding-bottom: 85px;
	
	outline: 0;
}

.contact__heading {
	clear: both;
}

.contact__title {
	color: #333;
	font-size: 5rem;
	font-weight: bold;
	font-family: podkova;
	text-align: right;
}

.contact__desc {
	color: #777;
	width: 50%;
	font-size: 1.5rem;
	font-family: podkova;
	text-align: right;
	float: right;
	padding-bottom: 15px;
	border-bottom: 4px solid #8989ff;
	margin-top: 10px !important;
}

.contact__content {
	clear: both;
	width: 100%;
	padding-top: 55px;
}

.contact__form {
	width: 100%;
	display: flex;
	justify-content: space-around;
}

.contact__form-left {
	width: 100%;
	display: flex;
	flex-direction: column;
}

.contact_msg {
	width: 200%;
	border: 0;
	border: 1px solid #e6e4e4;
	padding: 15px;
	margin-left: 25px;
	font-family: podkova;
	letter-spacing: 2px;
}

.contact__input {
	border: 0;
	border: 1px solid #e6e4e4;
	padding: 15px;
	font-family: podkova;
	letter-spacing: 2px;
}

.contact__send {
	border: 0;
	padding: 13px;
	margin-top: 15px;
	background: linear-gradient(#8989ff, #89c9bf);
	font-family: podkova;
	text-transform: uppercase;
	color: white;
	font-size: 1.2em;
	cursor: pointer;
}

.contact__send:hover {
	background: linear-gradient(#89c9bf, #8989ff);
}

.contact__input:not(:first-child) {
	margin-top: 15px;
}

@media only screen and (max-width: 959px) {
	.contact__form {
		flex-direction: column-reverse;
	}
	
	.contact_msg {
		width: 100%;
		height: 150px;
		padding: 15px;
		margin-left: 0px;
		margin-bottom: 15px;
		box-sizing: border-box;
	}
}

@media only screen and (max-width: 565px) {
	.contact__desc {
		width: 80%;
	}
	
	.contact__title {
		font-size: 4rem;
	}
}

.footer {
	width: 100%;
	background: #222;
	border-top: 5px solid #8989ff;
}

.footer__content {
	height: 80px;
	font-size: 0.8rem;
	letter-spacing: 1px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: white;
}

.footer a {
	color: white;
	text-decoration: none;
}

.footer a:hover {
	color: #89c9bf;
}

.footer__totop {
	display: block;
	background: #8989ff;
	width: 50px;
	height: 50px;
	color: white;
	text-align: center;
	line-height: 50px;
	border: 0;
	border-radius: 100px;
	font-size: 1.9rem;
	margin: 0 auto;
	position: relative;
	margin-bottom: -30px;
	z-index: 999;
	cursor: pointer;
}

.footer__totop:hover {
	background: #89c9bf;
}

@media only screen and (max-width: 959px) {
	.footer__content {
		padding: 35px;
		height: 100%;
		flex-direction: column-reverse;
		justify-content:flex-end;
		font-size: 1rem;
		text-align: center;
	}
	
	.footer__content p:first-child
	{
		margin-top: 20px;
	}
}

.flash-success {
	background: lightgreen;
	padding: 20px;
	border: 0;
	border-radius: 5px;
	text-align: center;
	display: none;
	margin-bottom: 25px;
}

.flash-error, .flash-fields {
	background: coral;
	padding: 20px;
	border: 0;
	border-radius: 5px;
	text-align: center;
	color: white;
	display: none;
	margin-bottom: 25px;
}