@import "bourbon";

/* Buttons ------ */
.button{
	font-size: 1.125em;
	letter-spacing: 0.08em; 
	display: block;
	width: 180px;
	text-align: center;
	margin: 0 auto;
	padding: 16px 0 14px;
	text-transform: uppercase;
	background-color: #85b073;
	-webkit-box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.2);
  box-shadow: 0px 10px 20px 0px rgba(0, 0, 0, 0.2);
 	@include box-sizing(border-box);
	&.light{ color: #fff !important; }
	&.dark{ color: #000 !important; }
}

/* Page Templates ------ */
.page{
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	@include transition-property(transform 200ms ease);

	.module{
		position: relative;
		overflow: hidden;
		img.bg{
			display: block;
			width: 100%;
		}
		.content{
			position: absolute;
			top: 0;
		}
	}
}
.page .module .text_dark, .page .module .text_dark a{
	color: #000;
}
.page .module .text_light, .page .module .text_light a{
	color: #fff;
}
.page .module .fill_dark{
	background-color: rgba(0,0,0,0.6);
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#8c000000', endColorstr='#8c000000');
}
.page .module .fill_light{
	background-color: rgba(255,255,255,0.7);
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#8cffffff', endColorstr='#8cffffff');
}

// Intro
.module.intro{
	background-color: #333;
	.content{
		position: absolute;
		top: auto;
		bottom: 20px;
		color: #fff;
		text-align: center;
		width: 100%;
		margin: 0 auto;
		padding: 0 8%;
		text-shadow: 0 1px 3px rgba(0,0,0,0.4);
		@include box-sizing(border-box);
		.title{
			font-size: 2em;
			font-family: "AvenirNextSemibold";
			letter-spacing: 0.08em;
			margin-bottom: 6px;
			text-transform: uppercase;
			.imgt{ display: none; }
		}
		p {
			font-size: 1.125em;
			line-height: 1.25em;
			margin-bottom: 12px;
		}
	}
}
.module.intro.mobl{
	background-size: 100% !important;
	.content{
		position: static;
		padding: 74% 24px 16px;
		img{ width: 100%; }
		.title{
			font-size: 2.125em;
			line-height: 1.125em;
			letter-spacing: 0.08em;
			margin-bottom: 12px;
			text-transform: uppercase;
			text-align: center;
		}
		.location{
			text-transform: uppercase;
			font-size: 1.2em;
			letter-spacing: 0.08em;
		}
		p{
			text-align: center;
			font-size: 1.125em;
			line-height: 1.4em;
			text-align: center;
			margin-bottom: 16px;
		}
		a{
			display: inline-block;
			padding: 20px 32px;
			margin-top: 32px;
			text-transform: uppercase;
			background-color: #2e75e4;
		}
	}
}
.module.intro_parallax{
	.bg_p{
		display: block;
		width: 100%;
		-webkit-user-select: none;
  	-moz-user-select: none;
  	-ms-user-select: none;
  	-o-user-select: none;
  	user-select: none; 
	}
	.content .title{ display: none; }
}

.module.full{
  background-color: #333;
	a{ color: #000; }
	&.list .content{
		text-align: center;
		width: 60%;
		&:before {
		  content: '';
		  display: inline-block;
		  height: 100%; 
		  vertical-align: middle;
		  margin-right: -0.25em;
		}
		.inner{
			width: 92%;
			display: inline-block;
		  vertical-align: middle;
			.title{
				text-shadow: 0 1px 3px rgba(0,0,0,0.4);
				font-family: "AvenirNextSemibold";
				font-size: 1.2em;
				margin-bottom: 8px;
			}
		}
	}
	.content {
		@include box-sizing(border-box);
	  text-align: center;
	  width: 50%;
	  top: 0;
	  bottom: 0;
	  display: block;
		&.right{
			right: 0;
		}
		&.left{
			left: 0;
		}
	  .inner {
		  width: 100%;
		  .title{
				font-size: 2em;
				line-height: 1em;
				text-transform: uppercase;
				margin-bottom: 16px;
				letter-spacing: 2px;
				img{ width: 100%; }
			}
			.intro{
				font-size: 2em;
				line-height: 1em;
				text-transform: uppercase;
				margin-bottom: 16px;
				letter-spacing: 2px;
			}
			.desc{
				font-size: 1em;
				line-height: 1.25em;
			}
			span{
				line-height: 1em;
			}
		}
 	}
}

/* Large Left & Large Right */
.module.largeleft, .module.largeright{
  background-color: #333;
	.inner{
		display: inline-block;
		vertical-align: top;
		position: relative;
		.content{
			width: 55%;
			padding: 60px;
			font-size: 1.25em;
			line-height: 1.5em;
			text-transform: uppercase;
			@include box-sizing(border-box);

		}
		.video{
			position: relative;
			padding-bottom: 57.3%;
			height: 0;
			iframe{
				position: absolute;
				top: 0;
				left: 0;
				bottom: 0;
				right: 0;
				width: 100%;
				height: 100%;
			}
		}
	}
	&.vidbox{ background-color: #000; }
}
.module.largeleft .content{
	text-align: left;
	left: 0;
}
.module.largeright .content{
	text-align: right;
	right: 0;
}
.module.largeleft .left{ width: 60% }
.module.largeleft .right{ width: 40% }
.module.largeright .left{ width: 40% }
.module.largeright .right{ width: 60% }

// Big
.module.big{
  background-color: #333;
  position: relative;
	.content{
		text-align: center;
	  width: 50%;
	  margin: auto;
	  display: block;
	  z-index: 2;
		position: absolute;
	  top: 50%;
	  @include transform(translateY(-50%));
	  left: 50%;
	  margin-left: -20%;
	  .inner {
		  display: inline-block;
		  vertical-align: middle;
		}
	  p{
			padding: 60px;
			font-size: 32px;
			line-height: 40px;
			text-align: center;
			@include box-sizing(border-box);
		}

		&.left{
			left: 6%;
			right: auto;
			margin-left: auto;
		}
		&.right{
			right: 6%;
			left: auto;
			margin-left: auto;
		}
	}
	&.no-parallax{
		height: 600px !important;
	}
}

// Half & Half
.module.half .part{
  background-color: #333;	
	width: 100%;
	display: block;
	vertical-align: top;
	position: relative;
	.content{
		padding: 60px;
		font-size: 1.25em;
		line-height: 1.35em;
		width: 60%;
		text-transform: uppercase;
		@include box-sizing(border-box);
	}
	&.left .content{
		text-align: left;
		left: 0;
		span{ display: none; }
	}
	&.right .content{
		text-align: right;
		right: 0;
	}
}

.module.half.list .part .content{
	bottom: 0;
	right: auto;
	top: auto;
	text-align: center;
	width: 100%;
	font-size: 1.125em;
	line-height: 1.25em;
	text-transform: none;
	h2{
		margin-bottom: 12px;
		img{ width: 60%; }
	}
	p{ margin-bottom: 20px; }
}

/* Tri */
.module.tri{
	background-color: #333;
	.inner{
		width: 33.3333333%;
		display: inline-block;
		vertical-align: top;
		position: relative;
	}
}

/* Factoid */
.module.factoid{
	img{
		width: 100%;
		display: block;
	}
	.fact{
		background-color: #fff;
		border-bottom: 1px solid #eee;
		position: relative;
	  p{
	  	color: #000;
			padding: 20px 16px 32px;
			text-align: center;
			font-size: 1.3em;
			line-height: 1.3em;
			-webkit-box-sizing: border-box;
		     -moz-box-sizing: border-box;
		          box-sizing: border-box;
	  }
	  &:after {
			bottom: 100%;
			border: solid transparent;
			content: " ";
			height: 0;
			width: 0;
			position: absolute;
			pointer-events: none;
			border-color: rgba(0, 0, 0, 0);
			border-bottom-color: #fff;
			border-width: 20px;
			left: 50%;
			margin-left: -20px;
			z-index: 10;
		}
	}
}

/* Mobile Video */
.module.mobile_video{
	position: relative;
	background-color: #000;
	.video{
		position: relative;
		padding-bottom: 58%;
		height: 0;
		iframe{
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			right: 0;
			width: 100%;
			height: 100%;
		}
	}
	img{
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		width: 100%;
		z-index: -1;
	}
}

@media screen and (min-width: 1024px){
	.module.big .content{
		margin-left: -25%;
	}
}

@media screen and (min-width: 768px) {
	
	// Intro
	.module.intro .content{
		padding: 0 12%;
		bottom: 12px;
		.title{
			font-size: 3.5em;
			line-height: 1.125em;
			letter-spacing: 0.08em;
			margin: 8px;
			img{ width: 40%; }
		}
		.desc{
			font-size: 1.25em;
			line-height: 1.25em;
			margin-bottom: 16px;
		}
	}

	// Full
	.module.full{
		.content{
			padding: 24px;
			text-align: left;
			.inner{
				.title{
					font-size: 1.2em;
					line-height: 1.3em;
					img{ width: 70%; }
				}
				.intro{
					font-size: 1.1em;
					line-height: 1.2em;
				}
				.desc{
					font-size: 1em;
					line-height: 1.2em;
					margin-top: 12px;
				}
				span{
					display: block;
					font-size: 1em;
					margin-top: 16px;
				}
			}
		}
	}

	.module.full.list{
		.content{
			width: 48%;
			.inner{
				.title{
					font-size: 2em;
					line-height: 1em;
				}
				p{
					font-size: 1em;
					line-height: 1.25em;
				}
				span{
					margin-top: 24px;
					display: block;
				}
			} 
		}
	}

	// Large Left & Right
	.module.largeleft, .module.largeright{
		.inner{
			.content{
				padding: 24px;
				font-size: 1em;
				line-height: 1.5em;
			}
		}
	}

	// Big
	.module.big .content{
	  p{
			padding: 24px;
			font-size: 1.4em;
			line-height: 1.4em;
		}
	}

	// Half & Half
	.module.half .part{
		width: 50%;
		display: inline-block;
		.content{
			padding: 24px;
			font-size: 1.1em;
			line-height: 1.25em;
			img{ width: auto; }
		}
		&.left .content{
			span{ display: block; }
		}
	}

}

@media screen and (min-width: 900px){
	.module.full.list .content .title img{
		width: auto;
	}
}

@media screen and (min-width: 1024px) {
	// Intro
	.module.intro .content{
		.title{
			font-size: 4.5em;
			letter-spacing: 0.08em;
			margin: 8px;
		}
		.desc{
			font-size: 1.5em;
			line-height: 1.3em;
			margin-bottom: 24px;
		}
	}

	// Full
	.module.full .content{
		padding: 32px;
		.inner{
			.title{
				font-size: 1.6em;
				line-height: 1.2em;
			}
			.intro{
				font-size: 1.6em;
				line-height: 1.2em;
			}
			.desc{
				font-size: 1.25em;
				line-height: 1.3em;
			}
		}
		
	}

	.module.full.list{
		.content .inner{
		  .title{
				font-size: 2.4em;
				line-height: 1em;
				font-family: "AvenirNextSemibold";
			}
			p{
				margin-top: 12px;
				font-size: 1.25em;
				line-height: 1.25em;
			}
			span{
				margin-top: 12px;
			}
		}
	}

	// Large Left & Right
	.module.largeleft, .module.largeright{
		.inner{
			.content{
				padding: 52px;
				font-size: 1.25em;
				line-height: 1.5em;
			}
		}
	}

	// Big
	.module.big .content{
	  p{
			padding: 40px;
			font-size: 1.8em;
			line-height: 1.5em;
		}
	}

	// Half & Half
	.module.half .part{
		.content{
			padding: 60px;
			font-size: 1.3em;
			line-height: 1.4em;
		}
	}
}

@media screen and (min-width: 1200px) {
	// Full
	.module.full .content .inner{
		.title{
			font-size: 1.7em;
			line-height: 1.4em;
			margin-bottom: 20px;
		}
		.intro{
			font-size: 1.7em;
			line-height: 1.4em;
			margin-bottom: 20px;
		}
		.desc{
			font-size: 1.3em;
			line-height: 1.4em;
			letter-spacing: 1px;
		}
	}
}