html,*{
	margin: 0;
	padding: 0;
}

body{
	font-family: 'Open Sans', sans-serif;
	font-weight: 300;
	color: #222;
	min-width: 960px;
	position: relative;
	letter-spacing: -.05em;
}

::selection {
  background: #146d8b;
  color: #efefef;
}
::-moz-selection {
  background: #146d8b;
  color: #efefef;
}

::-webkit-scrollbar {
    width: 0px;
	height: 0px;
}
::-webkit-scrollbar-track {
	background: rgba(192,192,192,1);
}

::-webkit-scrollbar-thumb {
	background: rgba(32,32,32,1);
}

a, a:hover, a:active, a:visited {
	color: inherit;
	font-weight: 400;
	text-decoration: none;
	transition: opacity .5s ease-in-out;
}

a:hover {
	opacity: .66;
}

a:active {
	opacity: .33;
}

a.button {
	border: 1px solid rgba(255,255,255,.5);
	/*padding: .5em 1.25em;*/
	border-radius: 2em;
	min-width: 100px;
	display: inline-block;
	/*transition: all .5s ease-out;*/
}
a.button:hover {
	background: rgba(255,255,255,.9);
	color: #146d8b;
}
#navigation.scrolled a.button {
	border-color: #146d8b;
}
#navigation.scrolled a.button:hover {
	background: #146d8b;
	color: #fff;
}
a.button.dark {
	border: 1px solid rgba(0,0,0,.5);
}
a.button.dark:hover, a.button.dark.active {
	background: #191919;
	color: #fff;
}

input {
	width: 25%;
	min-width: 360px;
	padding: .5em;
	font-size: 1.5em;
	box-sizing: border-box;
	border-radius: 3px;
	-webkit-appearance: none;
	border: 1px solid transparent;
	box-shadow: 0 1px 2px rgba(0,0,0,0.1) inset, 0 -1px 0 rgba(0,0,0,0.01) inset;
	background: linear-gradient(to bottom, #fafafa 0%, #ffffff 100%);
	margin: 0.3em 0;
	color: #494949;
}

p {
	line-height: 1.5em;
	margin-bottom: 1em;
}

b {
	white-space: nowrap;
}

h1 {
	font-size: 2.5em;
	font-weight: 100;
	text-align: center;
}

.label { display: inline-block; width: 50%; }

.inactive {
	opacity: .33;
}

.small {
	font-size: .66em;
	opacity: .75;
}

.moment {
	max-width: 1280px;
	margin: 2em auto;
	padding: 1em 1em;
	padding-bottom: 0;
}
.hero{
	font-weight: 100;
	font-size: 3em;
	letter-spacing: -0.05em;
	margin-top: 0;
}
.hero > b{
	font-weight: 700;
}

.hero.giant {
	font-size: 6em;
	padding: 0;
	margin: 0 auto;
}

.semihero {
	text-align: center;
	font-size: 1.5em;
}

.responsive > .linehero, .linehero {
	display: block;
	text-align: center;
	font-size: 1.5em;
	color: #146d8b;
	padding: 1em 0;
	margin: 1em auto !important;
	border-top: 1px solid #146d8b;
	border-bottom: 1px solid #146d8b;
	width: 75%;
}

.responsive {
	/*white-space: nowrap;*/
}

.responsive > div {
	display: inline-block;
	width: 50%;
	vertical-align: middle;
	white-space: normal;
	margin: 1em 0;
}
.responsive > .twothirds {
	width: 66.666%;
}
.responsive > .halves {
	width: 50%;
}
.responsive > .thirds {
	width: 33.333%;
}
.responsive > .quarters {
	width: 25%;
}

.responsive > .custom {
	display: block;
  padding: 2em;
  background-color: #4C5C5C;
  color: #fff;
}
	.responsive > .custom .semihero {
		margin: 0;
	}
	.responsive > .custom .semihero a {
		font-weight: 100;
	}
#navigation .responsive > div {
	margin: 0;
}

.responsive.box {
	display: table;
	border-collapse: separate;
	border-spacing: 1em;
}

.responsive.box > div {
	display: table-cell;
	box-sizing: border-box;
	height: auto;
	vertical-align: top;
	border: 1px solid #146d8b;
	color: #146d8b;
	padding: 1em;
	font-size: .8em;
}
.responsive.box > div h2 {
	font-weight: 100;
	margin-bottom: 1em;
	text-align: center;
	font-size: 1.66em;
}

.left{
	text-align: left;
}
.right{
	text-align: right;
}
.center {
	text-align: center;
}

.legal div {
	clear: both;
}
.legal span {
	float: left;
	width: 40pt;
	opacity: .75;
}

#content ul, .modal-content ul {
	margin: 1em 3em;
	font-size: .9em;
}
#content li, .modal-content li {
	margin: .5em 0;
}


#navigation{
	position: fixed;
	top: 0;
	text-align: left;
	background-color: rgba(255,255,255,0);
	width: 100%;
	min-width: 960px;
	opacity: 0;
	transition: background-color .5s ease-out;
	z-index: 10;
}

#navigation.animate {
	opacity: 1;
	animation: navstart 1s ease-in-out;
	-webkit-animation: navstart 1s ease-in-out;
}

#navigation.hide {
	animation: navhide 1s ease-in-out;
	-webkit-animation: navhide 1s ease-in-out;
}

#navigation.scrolled{
	background-color: rgba(255,2555,255,0.9);
	box-shadow: 0 0 10px rgba(0,0,0,0.15)
}

#navigation.scrolled.dark {
	background-color: rgba(0,0,0,0.9);
}

@keyframes navstart {
	0% { top: -40px; opacity: 0; }
	75% { top: 0; padding-top: 5px; opacity: 1; }
	100% { opacity: 1; }
}
@-webkit-keyframes navstart {
	0% { top: -40px; opacity: 0; }
	75% { top: 0; padding-top: 5px; opacity: 1; }
	100% { opacity: 1; }
}

@keyframes navhide {
	0% { opacity: 1; }
	25% { top: 0; padding-top: 5px; opacity: 1; }
	100% { top: -40px; opacity: 0; }
}
@-webkit-keyframes navhide {
	0% { opacity: 1; }
	25% { top: 0; padding-top: 5px; opacity: 1; }
	100% { top: -40px; opacity: 0; }
}

#container{
	border-bottom: solid 1px rgba(255,255,255,0.5);
	margin: 0 auto;
	padding: 1em 0em;
	max-width: 1440px;
	overflow: hidden;
	transition: border-bottom .5s ease-out;
}
#navigation.scrolled #container {
	border-bottom: solid 1px rgba(255,255,255,0);
}

#cover {
	position: relative;
	height: 920px;
	overflow: hidden;
	background: #000 url('/images/iion_webpromo_v001.jpg') no-repeat top center;
	background-size: cover;
	z-index: 1;
	max-width: 2560px;
	margin: 0 auto;
}

#cover video {
	position: absolute;
	top: 0px;
	right: 0px;
	min-width: 100%;
	min-height: 100%;
	width: auto;
	height: auto;
	overflow: hidden;
	/*margin-top: -5px;*/
	z-index: -1;
	display: none;
}

#cover h1 {
	font-weight: 700;
}

#cover .overlay {
	position: fixed;
	top: 33%;
	left: 0;
	right: 0;
	width: 700px;
	margin: 0 auto;
	color: #fff;
	text-align: center;
	z-index: 2;
	font-size: 1.66em;
}

.divider {
	background: url('/images/cover-divider.png') no-repeat center center;
	width: 100%;
	height: 50px;
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 3;
}

#navigation .logo{
	display: inline-block;
	width: 100px;
	height: 47px;
	position: relative;
}
#navigation .logo div {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 47px;
	margin-left: 1em;
	background-size: contain;
	background-position: left center;
	background-repeat: no-repeat;
	transition: opacity .5s ease-out;
}
#navigation .logo .white {
	background-image: url('/images/iion-logo-white.png');
}
#navigation .logo .blue {
	background-image: url('/images/iion-logo-blue.png');
	opacity: 0;
}
#navigation.scrolled .logo .white {
	opacity: 0;
}
#navigation.scrolled .logo .blue {
	opacity: 1;
}

.nav {
	list-style: none;
	color: #fff;
	text-align: right;
	line-height: 40px;
	transition: color .5s ease-out;
	margin-right: 1em;
}
#navigation.scrolled .nav {
	color: #146d8b;
}

.nav li{
	display: inline-block;
	padding: 0 1em;
	font-weight: 400;
	min-width: 80px;
	text-align: center;
}

.nav li.active a {
	font-weight: 700;
	letter-spacing: -.033em;
}

#content {
	background: #fff;
	max-width: 2560px;
	margin: 0 auto;
}

.navanchor {
	display: block;
	height: 85px;
}

.tbox {position: absolute; display: none; z-index: 900; 	animation: modalstart .5s ease-out; -webkit-animation: modalstart .5s ease-out; }
.tinner {background: #fff; box-shadow: 0 0 30px rgba(0,0,0,.15); overflow: auto; -webkit-overflow-scrolling: touch; overflow-x: hidden; }
.tmask {position: absolute; display: none; top: 0px; left: 0px; height: 100%; width: 100%; background: #000; z-index:800; }
.tclose {position: absolute; top: 0px; right: 0px; width: 30px; height: 30px; cursor: pointer; background: url('/images/close.png') no-repeat; opacity: .25; }
.tclose:hover { opacity:1; }
.modal-content{padding: 40px;}
.modal-banner{width: 100%; background-repeat: no-repeat; background-position: center center; color: #383838; box-sizing: border-box; padding: 40px; text-align: center;}
.short{height: 200px; line-height: 210px;}
.tall{height: 400px; line-height: 600px;}

.modal-banner h1 {
	color: #fff;
}

.modal-banner img {
	max-height: 100%;
	max-width: 50%;
	width: auto;
}

@keyframes modalstart {
	0% { transform: translateY(1000px); }
	100% { transform: translateY(0px); }
}
@-webkit-keyframes modalstart {
	0% { transform: translateY(1000px); }
	100% { transform: translateY(0px); }
}

.tinner h1 {
	text-align: left;
}


.connect > div{
	display: inline-block;
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	width: 32%;
	height: 96px;
	/*margin: 0 1em;*/
}
.connect > div > div{
	opacity: 0;
	background-position: center center;
	background-size: contain;
	background-repeat: no-repeat;
	width: 100%;
	height: 100%;
	transition: opacity 2.5s ease-out;
}
.connect > div > div > a {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: 80px;
	overflow: hidden;
}
.connect > div:hover > div{
	opacity: 1;
	transition: opacity .5s ease-out;
}
.connect #facebook{
	background-image: url('/images/connect/facebook.png');
}
	.connect #facebook > div{
		background-image: url('/images/connect/facebook_hover.png');
	}
.connect #twitter{
	background-image: url('/images/connect/twitter.png');
}
	.connect #twitter > div{
		background-image: url('/images/connect/twitter_hover.png');
	}
.connect #instagram{
	background-image: url('/images/connect/instagram.png');
}
	.connect #instagram > div{
		background-image: url('/images/connect/instagram_hover.png');
	}


.moment img{
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
}
.products > div {
	margin: 0;
	text-align: center;
	overflow: hidden;
	position: relative;
	background: #000;
}
.products > div > img {
	display: block;
	width: 100%;
	height: auto;
	transition: all 5s ease-out;
	opacity: 1;
}
.products > div:hover  > img {
	transform: scale(1.15);
	opacity: 0.5;
}

.products > div > div {
	position: absolute;
	top: 50%;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 100%;
	height: 200px;
	margin-top: -100px;
}

.products > div > div > img {
	max-width: 100%;
	max-height: 66%;
	margin-bottom: 1em;
}

.products > div > div > ul {
	list-style: none;
}
.products > div > div > ul > li{
	display: inline-block;
	background-color: rgba(0,0,0,0.05);
	border: solid 1px #ffffff;
	color: #ffffff;
	transition: all 1s ease-out;
	margin: 0 -0.5px;
}
.products > div > div > ul > li > * {
	display: block;
	padding: 0.5em 1em;
	width: 4em;
	font-weight: 100;
}
	.products > div > div > ul > li:hover{
		transition: background-color 0.5s ease-out;
		background-color: rgba(255,255,255,0.9);
		color: #222;
	}
	.products > div > div > ul > li:active{
		opacity: .5;
	}
	.products > div > div > ul > li:first-child{
		border-top-left-radius: 2em;
		border-bottom-left-radius: 2em;
	}
		.products > div > div > ul > li:first-child > * {
			padding-left: 1.5em;
		}
	.products > div > div > ul > li:last-child{
		border-top-right-radius: 2em;
		border-bottom-right-radius: 2em;
	}
		.products > div > div > ul > li:last-child > * {
			padding-right: 1.5em;
		}


.people {
	padding-bottom: 2em;
	text-align: center;
}
.people > div {
	text-align: left;
}

.people .fadeable {
	vertical-align: top;
}
.people > div img:not(.fadeable) {
	display: inline-block;
	vertical-align: middle;
	opacity: 0.75;
	box-shadow: 0 5px 10px rgba(0,0,0,.1);
	border-radius: 100%;
	transition: opacity 0.5s ease-out;
}


	.people > div:hover img{
		opacity: 1;
	}

.people > div > .words{
	display: inline-block;
	box-sizing: border-box;
	vertical-align: middle;
	padding: 1rem 2rem;
}
.people > div > .words h3{
	font-weight: 400;
}
.people > div > .words h4{
	font-size: 0.75em;
	line-height: 1.25em;
	margin-bottom: 0.75em;
	font-weight: 100;
	opacity: 0.75;
}
.people > div > .words p{
	text-align: left;
	font-size: .75em;
}

/* Large People */
.people .large{
	font-size: 1.25em;
}
.people .large > img{
	width: 256px;
	height: 256px;
}
.people .large > .words{
	width: calc(100% - 284px);
}
/* Medium People */
.people .medium{
	font-size: 1em;
	text-align: center;
}
.people .medium .profile {
	width: 192px;
	height: 192px;
	margin: 0 auto;
	position: relative;
}
	.people .medium .profile .links{
		position: absolute;
		bottom: 5%;
		left: 50%;
		transform: translate(-50%, 0%);
	}

	.people .medium .profile .links > * {
		opacity: 0.3;
		transition: opacity .3s ease-out;
	}
	.people .medium .profile .links > *:hover {
		opacity: 0.6;
	}



.people .medium > img, .people .medium .profile > img{
	width: 192px;
	height: 192px;
}
.people .medium > .words{
	display: block;
}
/* Small People */
.people .small{
	font-size: 1em;
	text-align: center;
}
.people .small > img{
	width: 128px;
	height: 128px;
}
.people .small > .words{
	display: block;
}

#portfoliocontainer {
	background: #000;
}

#portfoliocontainer > div {
	position: relative;
	height: 1080px;
	overflow: hidden;
	background-repeat: no-repeat;
	background-position: center top;
	background-size: cover;
	background-attachment: scroll;
}
	body.fullscreen #portfoliocontainer > div {
		/*background-attachment: fixed;*/
	}
	body.fullscreen #portfoliocontainer > div.fixed {
		background-attachment: fixed;
	}
#portfoliocontainer > div > div {
	position: absolute;
	top: 50%;
	right: 15%;
	width: 320px;
	height: auto;
	margin-top: -256px;
	background: rgba(255,255,255,.95);
	color: #191919;
	padding: 2.5em;
	border-radius: 3px;
	transition: opacity .5s ease-out;
}
#portfoliocontainer > div > div:hover {
	/*opacity: 0.5;*/
}
#portfoliocontainer h2 {
	font-size: 2em;
	font-weight: 100;
	margin-bottom: .25em;
}
#portfoliocontainer h4 {
	font-size: .9em;
	font-weight: 100;
	margin-bottom: 1em;
}


.process {
	position: relative;
	background: #191919 url('/images/process/process-bg.jpg') no-repeat bottom center;
	background-size: cover;
	color: #efefef;
	text-align: center;
}
.process > img {
	max-width: 90%;
	height: auto;
	opacity: 0;
	transition: opacity 1s ease-in-out;
}

.process > img.active {
	opacity: 1;
}


.clients {
	padding-top: 2em;
	position: relative;
	/*min-height: 1200px;*/
	background: url('/images/table.jpg') no-repeat center bottom;
	background-size: 100%;
	text-align: center;
}

.partners {
	padding-top: 2em;
	text-align: center;
}

.clients div.moment {
	margin-bottom: 0;
	padding-bottom: 420px;
}

.clients img, .partners img {
	opacity: .66;
	transition: all .5s ease-in-out;
	padding: 2em;
	transform: scale(1);
	width: 160px;
	height: 80px;
}
.clients img:hover, .partners img:hover {
	opacity: 1;
	transform: scale(1.05);

}

.contact {
	position: relative;
	min-height: 800px;
	background: url('/images/contact2.jpg') no-repeat center top;
	background-size: cover;
	text-align: center;
}

.contact .message {
	margin-left: -.66em;
	margin-right: -.66em;
	padding: .5em 1em;
	background: #646464;
}

.contact .message p {
	font-size: .5em;
}

.regionswitch {
}

.regionswitch > a {
	margin: 1em;
	padding: .5em;
	position: relative;
}

.regionswitch > a.active {
	opacity: 1 !important;
}

.regionswitch > a.active::after {
	content: "";
	background: url('/images/selector.png') no-repeat bottom center;
	width: 100%;
	height: 1em;
	position: absolute;
	bottom: calc(-1em - 1px);
	left: 0;
	right: 0;
	opacity: .8;
}

.regiononly > * {
	display: none;
}
.regiononly.shownz > .nzonly {
	display: block;
}
.regiononly.showau > .auonly {
	display: block;
}

.contactbox {
	width: 480px;
	margin: 0 auto;
	background: #191919;
	background: rgba(25,25,25,.8);
	color: #efefef;
	border-radius: 3px;
	text-align: left;
	font-size: 2em;
	font-weight: 100;
	padding: .5em;
	margin-bottom: 1em;
}

.contactbox a {
	background: url('/images/connect/contact.png') no-repeat center left;
	background-size: contain;
	display: block;
	padding: .25em;
	padding-left: 2.5em;
	margin: .5em;
}

.contactbox a.email {
	background-image: url('/images/connect/email_solid.png');
}

.contactbox a.support {
	background-image: url('/images/connect/support_solid.png');
}

.contactbox a.phone {
	background-image: url('/images/connect/phone_solid.png');
}

.contactbox a.modal {
	background-image: url('/images/connect/more.png');
	font-size: .5em;
	padding: 1.2em;
	padding-left: 5em;
	margin: 1em;
	opacity: .66;
}

.footer {
	font-size: .75em;
	padding: 2em;
	text-align: center;
}

@media only screen and (max-width: 1280px) {
	.people {
		padding-bottom: 0em;
		margin: 0;
	}
	.people > div {
		text-align: left !important;
	}
	.people > div p{
		display: none;
	}
	.people > .large img{
		width: 128px;
		height: 128px;
	}
	.people > .large > .words, .people > .medium > .words, .people > .medium > .words, .people > .small > .words{
		display: inline-block;
		text-align: left;
		width: calc(100% - 128px);
	}
	.people > .medium img:not(.fadeable){
		margin: 0 16px;
		width: 96px;
		height: 96px;
	}
	.people > .medium .profile {
		display: inline-block;
		width: 96px;
		height: 96px ;
	}
	.people > .medium .profile .links {
		left:50%;
		bottom: 0%;
		transform: scale(0.6);
	}
	.people > .small img{
		margin: 0 32px;
		width: 64px;
		height: 64px;
	}
	#portfoliocontainer > div {
		/*background-attachment: scroll;*/
	}

	.clients .moment {
		max-width: 800px; /* maybe a better way to do this */
	}


}

@media only screen and (max-width:768px) {
	body, #navigation {
		min-width: 480px;
	}
	#cover .overlay {
		max-width: 480px;
		font-size: 1em;
	}
	.nav {
		text-align: center;
		padding: .5em 0;
	}
	.nav li {
		padding: 0 .5em;
		min-width: 60px;
	}
	.responsive {
		white-space: normal;
	}
	.responsive > div {
		display: inline-block !important;
		width: 100% !important;
		margin-right: 0;
		text-align: center;
		clear: both;
	}
	.people > div {
		font-size: 1.5em !important;
	}
	.people > div p {
		display: block;
		font-size: .66em !important;
	}

	.clients div.moment {
		margin-bottom: 0;
		padding-bottom: 250px;
	}

	.clients img {
		/*zoom: .5;*/
	}

	.hero {
		font-size: 2em;
	}
	
	.hero.giant {
		font-size: 3em;
	}
	
	.contactbox {
		font-size: 1.66em;
	}
	
	#portfoliocontainer > div > div {
		left: 50%;
		margin-left: -200px;
	}
	
	.contact {
		min-height: 400px;
	}

	.modal-banner { padding: 30px 20px; }

	.modal-banner img {
		max-height: 100%;
		max-width: 75%;
		width: auto;
	}
}
