/* BASIC SETUP */
* { margin: 0; padding: 0; }
html { height: 100%; }
body { height: 100%; font-size: .85em; line-height: 1.4em; font-family: 'Nunito', Helvetica, Arial, sans-serif; color: #FFFFFF; background: url(../images/loader.gif) center no-repeat #333333; }

/* useful styles */
.hr hr { display: none; }
.hr { border-bottom: 1px solid #CCCCCC; margin-bottom: 1em; }
.error { color: #FF0000; }
.small { font-size: 0.75em; }

/* responsive */
.mobile { display: none !important; }
.desktop { display: block !important; }
span.desktop { display: inline; }
table.desktop { display: table; }
td.desktop { display: table-cell; }
tr.desktop { display: table-row; }

/* alignment */
.align-left { text-align: left; }
.align-center { text-align: center; }
.align-right { text-align: right; }
.valign-top { vertical-align: top; }
.valign-middle { vertical-align: middle; }
.valign-bottom { vertical-align: bottom; }
.clear { clear: both; font-size: 0; line-height: 0; height: 0px; }
.float-left { float: left; }
.float-right { float: right; }

/* common elements */
p { margin-bottom: 1em; }
img { border: 0; }
a { text-decoration: underline; color: #FFFFFF; }
a:hover { color: #0FE8BE; }

/* HEADINGS */
h1, h2, h3, h4, h5, h6 { margin-bottom: 0.1em; font-weight: 400; color: #0FE8BE; }
h1 { font-size: 1.3em; margin-bottom: 0.8em; }
h2 { font-size: 1.15em; }
h3 { font-size: 1em; }
h4, h5, h6 { font-size: 1em; }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; }

ul.vertical-navigation, ul.vertical-navigation ul { list-style-type: none; margin: 0; padding: 0; }
	ul.vertical-navigation li { margin: 0; padding: 0; }
		ul.vertical-navigation li a { display: block; text-decoration: none; }
		ul.vertical-navigation li a.active { color: #0FE8BE; }
			ul.vertical-navigation ul { display: none; padding-left: 10px; font-size: 0.9em; margin-bottom: .3em; }
			ul.vertical-navigation .active ul { display: block; }

.box { display: block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; background: url(../images/black-trans.png); z-index: 99; }


/* PAGE STRUCTURE */
/* grid is 140px columns, 20px gaps */
.c1 { left: 20px; }
.c2 { left: 180px; }
.c3 { left: 340px; }
.c4 { left: 500px; }
.c5 { left: 660px; }
.c1, .c2, .c3, .c4, .c5 { width: 140px; }
.c1.medium, .c2.medium, .c3.medium, .c4.medium, .c5.medium { width: 270px; }
.c1.wide, .c2.wide, .c3.wide, .c4.wide, .c5.wide { width: 400px; }


/* 'floating' boxes */
#logo { display: block; position: absolute; left: 40px; bottom: 70px; width: 100px; z-index: 100; /*transition: bottom .5s ease;*/ }
	#logo img { display: block; width: 100%; }

#email { display: block; position: absolute; left: 40px; bottom: 30px; z-index: 100; color: #0FE8BE; font-size: 1.4em; text-decoration: none; }
#email:hover { color: #FFFFFF; }

#contact-box { display: block; position: absolute; left: 40px; bottom: 35px; z-index: 101; }
	#contact-box .icon { display: block; float: left; margin-right: 18px; width: 21px; height: 17px; background-position: center; background-repeat: no-repeat; background-size: contain; }
	.icon.twitter { background-image: url(../images/icons/twitter.png); }
	.icon.facebook { background-image: url(../images/icons/facebook.png); }
	.icon.email { background-image: url(../images/icons/email.png); }


/* main menus at the bottom left */
#main-navigation { position: absolute; bottom: 20px; z-index: 99; font-size: 0.9em; }
	#main-navigation .box.l1 { padding: 20px 20px 180px; }
	#main-navigation #l2container { position: absolute; top: -20px; left: 0; width: 100%; }
		#main-navigation .box.l2 { padding: 20px; position: absolute; bottom: 0; left: 0; width: 100%; }
		

.subnav { position: absolute; bottom: 20px; z-index: 99; font-size: 0.9em; }
	.subnav > .box { width: 100%; padding: 20px; }
	

#main-text { position: absolute; top: 20px; padding: 10px 20px; font-size: 0.9em; max-height: calc(100% - 40px); overflow: auto; }
	#main-text ul, #main-text ol { margin-left: 1.5em; margin-bottom: 1em; }
		#main-text li { margin-bottom: 0.3em; }

/*#main-text.project { display: none; bottom: 90px; width: 440px; max-height: calc(100% - 110px); }*/
	#main-text .close { display: block; position: absolute; top: 10px; right: 12px; width: 20px; height: 20px; background: url(../images/close-link.png) center no-repeat; }
	
#project-text-link, #main-text-link { position: absolute; top: 20px; font-size: 0.9em; }
	#project-text-link a, #main-text-link a { display: block; color: #0FE8BE; text-decoration: none; font-size: 1.3em; padding: 10px 66px 10px 20px; background-image: url(../images/close-link.png); background-position: right center; background-repeat: no-repeat; transition: padding-right .3s ease; }
	#main-text-link a { display: none; background-image: url(../images/open-link.png); }
	#project-text-link a.closed { background-image: url(../images/open-link.png); }
	#main-text-link a.closed { display: block; }

#project-controls { position: absolute; bottom: 20px; right: 20px; width: calc(100% - 625px); }
	#project-controls .arrow { display: block; height: 35px; line-height: 35px; margin-right: 10px; background-size: contain; background-repeat: no-repeat; color: #FFFFFF; font-size: 0.8em; text-decoration: none; }
	#project-controls .arrow:hover { color: #0FE8BE; }
	#project-controls .arrow.prev { float: left; background-image: url(../images/arrow-left-white.png); background-position: center left; padding-left: 30px; }
	#project-controls .arrow.prev:hover { background-image: url(../images/arrow-left.png); }
	#project-controls .arrow.next { float: right; background-image: url(../images/arrow-right-white.png); background-position: center right; padding-right: 30px;  }
	#project-controls .arrow.next:hover { background-image: url(../images/arrow-right.png); }

.info, .caption { position: absolute; right: 50px; bottom: 30px; text-align: right; font-size: 0.9em; }
	.info a, .caption a { color: #aaaaaa; text-decoration: none; }
	

#main-image-box { width: 100%; height: 100%; z-index: 0; position: relative; }
	
	#main-image-box .arrow { display: block; position: absolute; top: 100px; margin-top: -60px; width: 75px; height: 75px; /*background: url(../images/black-trans.png);*/ text-align: center; color: #0FE8BE; line-height: 75px; z-index: 100; }
		#main-image-box .arrow img { display: block; width: 100%; }
	#main-image-box .arrow.left { left: 50px; }
	#main-image-box .arrow.right { right: 50px; }
	
	/* cycle2 */
	#main-image { width: 100%; height: 100%; z-index: 0; }
		#main-image .item { width: 100%; height: 100%; background-size: cover; background-position: center; }
	
	/* homebrew */
	#carousel { width: 100%; height: 100%; overflow: hidden; position: relative; }
		#carousel .content { position: absolute; left: 0; top: 0; width: auto; height: 100%; transition: left 1s ease; }
		#carousel .content.no-ani { transition: none; }
			#carousel .content .item { display: block; float: left; height: 100%; margin-right: 2px;}
			#carousel .content .item.prelast { margin-right: 0; }
			#carousel .content .item.last { float: right; margin-right: 0; }fieldset { border: 0; }

input, textarea { border-radius: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; font-family: 'Nunito', Helvetica, Arial, sans-serif; font-size: 1em; }
input[type="text"], input[type="email"], input[type="password"], textarea { width: 100%; padding: 5px; vertical-align: middle; border: 1px solid #CCCCCC; margin-bottom: 3px; }

input[type="submit"], input[type="image"] { display: block; padding: 5px; border: 0; background-color: #0FE8BE; color: #FFFFFF; cursor: pointer; width: auto; }
input[type="submit"]:hover, input[type="image"]:hover { background-color: #333333; }


form.formhandler {
	padding: 1em 0 0;
	width: 100%;
	margin: 0 auto;
}

form.formhandler fieldset {
	clear: both;
	width: 100%;
	margin: 0 0 -1em 0;
	padding: 0 0 1em 0;
	border-style: none;
	background-repeat: repeat-x;
}

form.formhandler legend {
	margin-left: 1em;
	color: #000000;
	display: none;
}

form.formhandler fieldset ol {
	/*padding: 1em 1em 0 1em;*/
	margin: 0 !important;
	list-style: none;
}

form.formhandler fieldset li {
	padding-bottom: 1em;
}

form.formhandler li input, form.formhandler li textarea { width: 100%; }

form.formhandler fieldset.submit {
	
	border-style: none;
}

form.formhandler label {
	float: left;
	width: 40%;
	margin-right: 1em;
}

form.formhandler label.inline, form.formhandler label.checkbox {
	float: none;
	display: inline;
	width: auto;
	margin: 0;
}

/* left aligned labels */
form.formhandler fieldset li {
	float: left;
	clear: left;
	width: 100%;
	padding-bottom: 0.5em;
}

form.formhandler fieldset {
	float: left;
	clear: left;
	width: 100%;
	margin: 0 0 1.5em 0;
	padding: 0;
}

/* background stuff */
form.formhandler fieldset.submit {
	float: none;
	width: auto;
	border-style: none;
	background-color: transparent;
}

form.formhandler fieldset.submit input {
	width: auto;
	cursor: pointer;
}

/* nested fieldsets */
form.formhandler fieldset fieldset {
	margin-bottom: 0;
	border-style: none;
	background-color: transparent;
	background-image: none;
}

form.formhandler fieldset fieldset label.legend {
	float: left;
	width: 100%;
	margin-right: 1em;
	vertical-align: top;
}

form.formhandler fieldset fieldset ol {
	position: relative;
	top: -1.5em;
	margin: 0 0 0 14em;
	padding: 0;
}

form.formhandler fieldset fieldset label {
	float: none;
	width: auto;
	margin-right: auto;
}
.highlight { color: #0FE8BE; }/* mobile */
@media only screen and (max-device-width: 480px), only screen and (max-width: 480px) {

	.mobile { display: block !important; }
	span.mobile { display: inline; }
	table.mobile { display: table; }
	td.mobile { display: table-cell; }
	tr.mobile { display: table-row; }
	.desktop { display: none !important; }
	
	.box { padding: 10px; }

	/* grid is 170px columns, 30px gaps */
	.c1 { left: 0px; }
	.c2, #main-text.c3, .subnav.c3 { left: 95px; }
	.c3 { left: 420px; }
	.c4 { left: 620px; }
	.c5 { left: 820px; }
	.c1, .c2, .c3, .c4, .c5 { width: 90px; }
	.c1.medium, .c2.medium, .c3.medium, .c4.medium, .c5.medium, .c1.wide, .c2.wide, .c3.wide, .c4.wide, .c5.wide { width: calc(100% - 95px); }
	
	.vertical-navigation { line-height: 1.2em; }
	
	/* page structure */
	body { font-size: 0.7em; overflow: hidden; }
	
	#logo { width: 70px; left: 10px; top: 10px; bottom: auto; }
	
	#contact-box { position: absolute; left: 10px; bottom: auto; top: 90px; }
		#contact-box .icon { width: 15px; height: 15px; margin-right: 13px; }
	
	#main-navigation { top: 0px; bottom: auto; height: auto; }
		#main-navigation .box.l1 { padding: 115px 10px 10px; }
		#main-navigation #l2container { position: static; top: auto; left: auto; }
			#main-navigation .box.l2 { margin-top: 10px; padding: 10px; position: static; bottom: auto; left: auto; }
	
	.subnav { top: 0px; bottom: auto; }
		.subnav > .box { padding: 10px; }
		
	#main-text, #main-text.project, .subnav.c3 { top: 0px; bottom: auto; min-height: 0; max-height: calc(100% - 70px); max-width: none; padding: 10px; }
	#main-text.project { top: 30px; padding-top: 0; max-height: calc(100% - 60px); }
		#main-text .close {  }
	#project-text-link, #main-text-link { position: absolute; top: 0; bottom: auto; padding: 0; }
		#project-text-link a, #main-text-link a { padding: 10px 40px 10px 10px; }
		#project-text-link a.closed, #main-text-link a.closed {  }
	
	#project-controls { position: absolute; bottom: 16px; right: 0px; width: calc(100% - 95px); }
	
	
	.info, .caption { width: 100%; left: 0px; bottom: 5px; text-align: center; font-size: 0.8em; }
	
	
	#main-image-box {  }
		#main-image-box .arrow { display: none; position: absolute; top: auto; bottom: 20px; margin-top: 0; width: 25px; height: 25px; line-height: 25px; background: url(../images/black-trans.png); }
			#main-image-box .arrow img {  }
		#main-image-box .arrow.left { left: 10px; }
		#main-image-box .arrow.right { left: 45px; }
		
		#main-image {  }
			#main-image .item {  }
		
		#carousel {  }
			#carousel .content {  }
			#carousel .content.no-ani {  }
				#carousel .content .item {  }
				#carousel .content .item.prelast {  }
				#carousel .content .item.last {  }
	
}