:root {
	--blue: #309A89;
	--dark-blue: #1e6055;

	--site-max-width: 1200px;
}

/***************************
* base styles
***************************/

html, body {
	font-family: 'Raleway', sans-serif;
	margin: 0;
	box-sizing: border-box;
}

*, *:before, *:after {
	box-sizing: inherit;
}

a:link, a:visited {
	color: var(--blue);
	text-decoration: none;
	box-shadow: 
		0 -2px 0 rgba(42, 143, 126, 0.3) inset,
		0 -1px 0 rgba(42, 143, 126, 0.3) inset;
}

.link__white:link, .link__white:visited {
	color: white;
	box-shadow: 
		0 -4px 0 rgba(255,255,255,0.33) inset,
		0 -2px 0 rgba(255,255,255,0.33) inset,
		0 -1px 0 rgba(255,255,255,0.33) inset;
}

.inner {
	max-width: var(--site-max-width);
	margin-left: auto;
	margin-right: auto;
}

.picture-frame {
	border: 12px solid var(--blue);
	line-height: 0;
}

input[type="text"], textarea {
	width: 100%;
	font-size: 1.2em;
	padding: 8px 16px;
	background: var(--blue);
	border: 4px solid var(--dark-blue);
	color: white;
}

textarea {
	font-family: 'Raleway', sans-serif;
	font-size: 1em;
	width: 100%;
	resize: none;
	line-height: 1.5;
	height: 4em;
}

button {
	cursor: pointer;
}


.icon {
	fill: var(--blue);
	height: 100%;
	width: 100%;
	pointer-events: none;
}

.blue-text {
	color: var(--blue);
	font-weight: 900;
}


/***************************
* header and navigation
***************************/

.site-header {
	border-bottom: 1px solid slategray;
}

.site-header__inner {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 0 16px;
}

.site-nav__ul {
	display: flex;
	display: none;
}

.site-title:link, .site-title:visited {
	color: var(--blue);
	font-size: 1em;
	vertical-align: middle;
	text-decoration: none;
	transition: color 100ms linear;
	box-shadow: none;
}
.site-title:hover {
	color: var(--dark-blue);
}

.logomark {
	vertical-align: bottom;
	height: 36px;
}
.bubble {
	stroke: currentColor;
}

@media (min-width: 500px) {
	.site-header__inner {
		justify-content: space-between;
	}
	.logomark {
		height: 56px;
	}
	.site-title:link, .site-title:visited {
		font-size: 1.5em;
	}
}

/**************************
* .site-footer
***************************/

.site-footer {
	background: var(--dark-blue);
	color: white;
	padding: 32px 16px;
	text-align: center;
}

.site-footer__inner {
	display: flex;
	justify-content: space-between;
	flex-flow: column nowrap;
}

@media (min-width: 800px) {
	.site-footer__inner {
		flex-flow: row nowrap;
	}
}


/***************************
* top-section
***************************/

.top-section {
	font-size: 1.2rem;
	padding: 32px 12px;
	color: var(--blue);
	text-align: center;
}
.top-section h2 {
	/* maybe? maybe not */
	font-weight: 900;
}

@media (min-width: 500px) {
	.top-section {
		padding: 48px 24px;
		font-size: 2rem;
		text-align: left;
	}
}
@media (min-width: 1100px) {
	.top-section {
		font-size: 3.65rem;
	}
}

/***************************
* banner
***************************/

.banner {
	background: var(--blue);
	color: white;
	padding: 32px 16px;
}

.banner__header {
	font-size: 1.7em;
}

.banner__subtext {
	color: var(--dark-blue);
	margin-top: 0;
}

.banner--inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-flow: column nowrap;
}

.banner__form {
	display: flex;
	flex-flow: column nowrap;
	max-width: 320px;
	width: 100%;
}

@media (min-width: 800px) {
	.banner {
		padding: 16px 0;
	}
	.banner__header {
		font-size: 2em;
	}
	.banner--inner {
		flex-flow: row nowrap;
		padding: 0 28px;
	}
	.banner__form {
		margin-left: 12px;
	}
}

/***************************
* special inline form
***************************/

.inputs {
	position: relative;
	min-height: 80px;
}

.step {
	transition: opacity 100ms linear, transform 100ms linear;
	border-radius: 4px;
	padding-right: 48px;
}

.hidden {
	position: absolute;
	top: 0;
	left: 0;
	opacity: 0;
	transform: translateY(100%);
}



.form-next {
	position: absolute;
	top: 0;
	right: 0;
	padding: 8px;
	height: 48px;
	width: 60px;
	background: var(--dark-blue);
	border: none;
	z-index: 10;
	border-bottom-left-radius: 50%;
}


/**************************
* bio
***************************/

.bio {
	padding: 48px 16px;
}

.bio img {
	width: 100%;
	max-width: 100%;
	height: auto;
}

.bio--inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-flow: column nowrap;
}

.bio-left {
	order: 1;
}

.bio-left p {
	line-height: 1.6;
	max-width: 24em;
}

@media (min-width: 800px) {
	.bio {
		padding: 84px 16px;
	}
	.bio--inner {
		flex-flow: row nowrap;
	}
	.bio-left {
		order: -1;
		margin-bottom: 32px;
		margin-right: 32px;
	}
	.bio-left p {
		font-size: 1.3em;
		max-width: 30em;
		margin: 0;
		text-indent: 1em;
	}
}

/**************************
* logos
***************************/

.banner__logos {
	padding: 48px 16px;
}

.logos__header {
	text-transform: uppercase;
	letter-spacing: 2px;
	font-weight: 100;
	text-align: center;
	opacity: 0.5;
}

.logos--inner {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-flow: row wrap;
}

.logo-links:link, .logo-links:visited {
	box-shadow: none;
	margin: 20px;
}

.logos--inner img {
	max-width: 100%;
	height: auto;
}

/**************************
* services
***************************/

.services {
	padding: 64px 16px;
	text-align: left;
}

.services__header {
	color: var(--blue);
	font-size: 2em;
	margin: 0 auto;
	max-width: 400px;
}

.split {
	display: flex;
	flex-flow: column nowrap;
}

.split-section {
	flex: 1;
	margin: 8px auto;
	max-width: 400px;
}

.split__header {
	font-size: 1.2em;
}

@media (min-width: 800px) {
	.services {
		text-align: center;
	}
	.split {
		flex-flow: row nowrap;
	}
	.split-section {
		margin: 16px;
	}
}

/**************************
* quotes
***************************/

.quotes {
	background: #eee;
	color: #333;
	padding: 64px 16px;
}

.recommendation {
	font-size: 1em;
	max-width: 30em;
	margin: 0 auto;
	line-height: 1.6;
	text-align: center;
}

.recommendation__attribution {
	/*color: white;*/
}

@media (min-width: 800px) {
	.recommendation {
		font-size: 2em;
	}
}