@import url(https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600&display=swap);

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-family: Poppins, sans-serif
}

:root {
	--brand: #1d4262;
	--brand-tint: rgba(8, 27, 44, 0.8)
}

ul {
	list-style-type: none
}

h1 {
	font-weight: 600;
	line-height: 1.2;
	font-size: 3.5em;
	color: #fff;
	text-transform: uppercase
}

h2 {
	font-weight: 300;
	line-height: 1.4em;
	color: #fff;
	margin: 25px 0;
	max-width: 64ch
}

.container {
	max-width: 1110px;
	margin: 0 auto;
	overflow: hidden
}

.showcase {
	position: relative;
	right: 0;
	width: 100%;
	min-height: 80vh;
	background-image: url(img/header-bg.jpg);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	z-index: 500
}

header {
	padding-top: 10%
}

.navbar {
	position: relative;
	background-color: var(--brand-tint);
	z-index: 100
}

.navbar.sticky {
	position: fixed;
	width: 100%
}

.intro.sticky {
	margin-top: 80px
}

.navbar .container {
	height: 120px;
	justify-content: space-between
}

.navbar img {
	width: 323px;
	height: 27px
}

.mainnav {
	display: flex
}

.mobilenav {
	display: none;
	visibility: hidden
}

.navbar a {
	color: #fff;
	text-decoration: none
}

.navbar a:hover {
	color: #ffb30f
}

.bar {
	color: #fff;
	padding: 0 50px
}

.cta {
	display: inline-block;
	background: #e99833;
	font-size: 1em;
	padding: 15px 25px;
	text-transform: uppercase;
	text-decoration: none;
	font-weight: 500;
	margin-top: 10px;
	color: #fff;
	letter-spacing: 1.1px;
	transition: .2s;
	border-radius: 4px;
	position: relative
}

.cta:hover {
	transform: scale(1.07, 1.07);
	box-shadow: 0 8px 4px 0 rgba(0, 0, 0, .4), 0 12px 20px 0 rgba(0, 0, 0, .19)
}

.cta::before {
	content: url(img/icon-email.png);
	padding-right: 10px
}

.services-intro {
	color: var(--brand);
	font-size: 2em;
	font-weight: 300;
	padding: 80px 0 30px 0;
	line-height: 1.6em;
	max-width: 70ch
}

.partners,
.services {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 3em;
}

.service-item {
	flex: 1 1 40%;
	flex-direction: column;
	gap: 1rem;
	margin-top: 50px;
}

.service-item h3 {
	text-transform: uppercase;
	color: var(--brand);
	font-size: 1.3em;
	margin: 10px 0
}

.service-item p {
	line-height: 1.4em
}

.callout {
	margin: 100px 0;
	width: 100%;
	background-color: #eee
}

.callout .container {
	position: relative;
	flex-direction: column;
	overflow: visible
}

.callout h3 {
	font-weight: 300;
	font-size: 1.8em;
	line-height: 1.6em;
	padding: 100px 0 50px 0
}

.callout .icon {
	position: absolute;
	left: -160px;
	top: 100px
}

.callout-logo {
	margin: 0 auto 100px auto
}

.callout span {
	font-weight: 600;
	color: var(--brand)
}

.title {
	color: var(--brand);
	font-size: 2.2em;
	margin-bottom: 25px;
	text-transform: uppercase
}

.partner {
	flex: 1 1 40%;
	flex-direction: column;
	align-items: flex-start;
	gap: 1rem;
	margin-top: 50px;
	max-width: 50%;
}

.no-gap {
	flex: 1 1 48%;
	margin-left: .5rem;
	margin-right: .5rem
}

.partner img {
	width: 100%
}

.partner a {
	cursor: pointer;
	border: none
}

.partner h3 {
	color: var(--brand);
	font-weight: 600;
	font-size: 1.4em;
	width: 100%;
	padding: 10px 30px
}

.partner h3 span {
	font-size: .7em
}

.partner p {
	padding: 0 30px
}

.divider {
	width: 100%;
	height: 1px;
	margin: 100px 0 50px 0;
	background-color: #819eae
}

.contact {
	padding-bottom: 25px
}

.contact-details {
	display: flex;
	justify-content: space-between;
	align-items: stretch;
	margin-bottom: 100px;
	padding-top: 25px;
	font-weight: 600;
	font-size: 1em;
	line-height: 1.8em;
	color: var(--brand)
}

.contact-details span {
	color: #7897a8;
	margin-right: 15px
}

.contact-details a,
.contact-details a:visited {
	text-decoration: none;
	color: var(--brand)
}

.contact-details a img {
	margin-left: 10px
}

.map {
	width: 100%
}

.contact-details a:hover,
a:active {
	color: #ffb30f
}

footer {
	width: 100%;
	height: 218px;
	background-image: url(img/footer-bg.jpg);
	background-size: cover;
	background-position: center;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center
}

footer img {
	width: 305px;
	height: 25px
}

.mobilemenu {
	background-color: var(--brand);
	width: 100%;
	position: fixed;
	z-index: 2;
	height: 100vh;
	top: -100vh;
	box-shadow: 0 4px 8px 0 rgba(0, 0, 0, .2), 0 6px 20px 0 rgba(0, 0, 0, .19);
	transition: all .4s ease
}

.active {
	top: 0;
	visibility: visible;
	display: inline
}

.mobile {
	display: none;
	visibility: hidden
}

.mobilemenu .container {
	padding-top: 50px
}

.mobilemenu .container p {
	color: #fff
}

.mobilemenu .contact-details {
	padding-top: 0
}

.mobilemenu .contact-details p {
	font-size: 1.1em;
	font-weight: 400
}

.mobilemenu .contact-details a {
	display: inline-block;
	color: #fff;
	padding-bottom: 20px;
	font-size: 1.2em;
	font-weight: 300
}

.flex {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 100%;
	justify-content: center;
}

@media (max-width:1111px) {
	.container {
		width: 90%;
		margin: 0 50px;
		overflow: hidden
	}
}

@media (max-width:768px) {
	.mobile {
		display: flex;
		visibility: visible;
		flex-direction: row;
		justify-content: flex-end;
		height: 100%;
		align-items: center
	}

	.service-item {
		flex: 1 1 250px
	}

	.partner {
		flex: 1 1 250px
	}
}

@media (max-width:500px) {
	.showcase {
		height: 100%
	}

	.container {
		width: 90%;
		margin: 0 20px
	}

	.navbar .container {
		height: 80px
	}

	.mainnav {
		visibility: hidden;
		display: none
	}

	.mobilenav {
		display: flex;
		visibility: visible
	}

	.toggle {
		position: relative;
		right: 20px;
		margin-left: auto;
		width: 60px;
		height: 60px;
		background: url(img/icon-map.png);
		background-repeat: no-repeat;
		background-size: 25px;
		background-position: center;
		cursor: pointer
	}

	.toggle.active {
		background: url(img/icon-close.png);
		background-repeat: no-repeat;
		background-size: 25px;
		background-position: center;
		cursor: pointer
	}

	.bar {
		color: #fff;
		padding: 0 15px
	}

	header {
		padding-top: 15%
	}

	.navbar img {
		width: 175px;
		height: 15.59px
	}

	h1 {
		font-size: 3.5em;
		line-height: 1.1em
	}

	h2 {
		font-size: 1.2em;
		font-weight: 600
	}

	.cta {
		width: 100%
	}

	.services-intro {
		color: var(--brand);
		font-size: 1.8em;
		padding: 50px 0 10px 0;
		line-height: 1.3em
	}

	.service-item h3 {
		width: 100%
	}

	.service-item p {
		font-size: 1.2em;
		line-height: 1.4em
	}

	.callout {
		margin: 50px 0
	}

	.callout .container {
		overflow: hidden
	}

	.callout h3 {
		font-size: 1.4em;
		line-height: 1.6em;
		padding: 50px 0 50px 0
	}

	.callout .icon {
		display: none;
		visibility: hidden
	}

	.callout-logo {
		margin: 0 auto 50px auto
	}

	.title {
		margin: 0
	}

	.partner {
		flex-flow: column nowrap;
		max-width: 100%;
	}

	.partner img {
		width: 100%
	}

	.partner h3 {
		padding: 10px 0
	}

	.partner p {
		padding: 0
	}

	.divider {
		margin: 50px 0
	}

	.contact-details {
		display: flex;
		flex-direction: row;
		justify-content: space-between;
		margin-bottom: 25px;
		padding-top: 25px;
		font-size: 1.2em;
		line-height: 1.6em;
		flex-wrap: wrap
	}

	.contact-details div {
		margin: 20px 0
	}

	footer {
		background-image: url(img/footer-bg-sm.jpg)
	}
}

@media (max-width:365px) {
	.navbar img {
		width: 150px;
		height: 13.37px
	}

	h1 {
		font-size: 3em;
		line-height: 1.1em
	}

	h2 {
		font-size: 1.1em;
		font-weight: 600
	}
}