html, body {
  margin:0;
  padding:0;
  height:100%;
}

body {
  color: #848484;
  background: #FFF;
}

body.main {
  background: #333;
}

body.main.intro_complete {
  background: #FFF;
}

body, a, p, div, h1, h2, h3, h4, h5, h6 {
  font-family: 'Lato','Helvetica', sans-serif;
}

a {
  -o-transition:color .3s ease-out, background 1s ease-in;
  -ms-transition:color .3s ease-out, background 1s ease-in;
  -moz-transition:color .3s ease-out, background 1s ease-in;
  -webkit-transition:color .3s ease-out, background 1s ease-in;
  transition:color .3s ease-out, background 1s ease-in;
  color: #456588;
}

a:hover, a:focus, a:active {
  color: #e57c00;
}

h1, h2, h3, h4, h5, h6 {
  color: #777;
}

h1 {
  font-size: 1.5rem;
}

h2 {
  font-size: 1.2375rem;
}

h3 {
  font-size: 1.2375rem;
}

picture.img {
  display: inline-block;
	height: auto;
	max-width: 100%;
	vertical-align: middle;
}

ul {
  list-style-type: none;
}

.clearfix {
  clear: both;
}

/* menu business */

.page-wrap {
  width: 100%;
  transition: width 0.25s ease;
}
#main-nav {
  position: fixed;
  top: 0;
  width: 0;
  right: 0;
  height: 100%;
  background: #333 none repeat scroll 0 0;
  overflow-y: auto;
  transition: width 0.3s ease;
  z-index: 100;
}
#main-nav ul {
  margin-left: 3.25rem;
  margin-top: 40vh;
  list-style-type: none;
}
#main-nav ul ul, .design_project #main-nav ul ul {
  margin-top: 0;
}

.design_project #main-nav ul {
  margin-top: 8vh;
  margin-left: 1.5rem;
}

.main-nav ul li a, 
.main-nav ul li a:active, 
.main-nav ul li a:hover, 
.main-nav ul li a:link, 
.main-nav ul li a:visited  {
	display: block;
	color: #ccc;
  font-size: 0.9rem;
	padding: 0.8rem;
}
.open-menu {
  background: #fff none repeat scroll 0 0;
	position: fixed;
	right: -3em;
	top: 0;
	z-index: 50;
	-webkit-transition: all 0.6s;
	-moz-transition: all 0.6s;
	-ms-transition: all 0.6s;
	-o-transition: all 0.6s;
	transition: all 0.6s;
}

header.secondary_header .open-menu {
  right: 0;
}

.close-menu {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 45;
	-webkit-transition: all 0.6s;
	-moz-transition: all 0.6s;
	-ms-transition: all 0.6s;
	-o-transition: all 0.6s;
	transition: all 0.6s;
}
.open-menu.small {
  right: 0;
}
a.close-menu, 
a.close-menu:active,
a.close-menu:link, 
a.close-menu:visited.close-menu {
  color: #fff;
}
.main-nav ul li a:hover {
  background: #444;
}
.main-nav ul li a:hover,
.main-nav a.close-menu:hover {
  color: #FFA200;
}

#main-nav.open {
  width: 100%;
}
#main-nav.open + .page-wrap {
  width: 80%;
}
#main-nav.open + .page-wrap .open-menu {
  /*display: none; */
}
#main-nav.open .close-menu {
	display: block;
}
#main-nav.open + .page-wrap {
	width: 80%;
	left: 20%;
}

header.primary_header, header.secondary_header {
  background: #FFF;
  width: 100%;
  color: #000;
  padding: 1em 0;
  z-index: 25;
  opacity: 0.95;
	-webkit-transition: height 0.3s;
	-moz-transition: height 0.3s;
	-ms-transition: height 0.3s;
	-o-transition: height 0.3s;
	transition: height 0.3s;
}

header.primary_header {
  opacity: 0;
  margin-top: 30vh;
}

header.primary_header.small, header.secondary_header {
  height: 4rem;
  position: fixed;
  top: 0;
  left: 0;
  margin-top: 0 !important;
}

body.main.intro_complete header.primary_header,
body.main.intro_complete header.primary_header .primary_logo_holder, 
body.main.intro_complete header.secondary_header .primary_logo_holder,
body.main.intro_complete #initial_top_nav,
body.main.intro_complete .highlight {
  opacity: 1;
}

body.main.intro_complete #intro_logo_holder {
  display: none;
}

body.main.intro_complete header.primary_header {
  margin-top: 20vh;
}

body.main.intro_complete #initial_top_nav {
  margin-top: 0;
}

body.main.intro_complete .header_spacer {
  height: 21vh;
}

body.main.intro_complete .highlight {
  height: 30vh;
}

header.primary_header a, #initial_top_nav a {
  color: #ea4d00;
}

header a.open-menu {
  color: #333;
}
header a.open-menu:hover {
  color: #ea4d00;
}

header.primary_header a, header.secondary_header a, header.secondary_header span  {
  font-size: 1.05rem;
  display: inline-block;
}

header a.open-menu, a.close-menu {
  font-size: 1.5rem;
  padding: 0.5em;
}

header.primary_header a:hover, header.primary_header a:focus, header.primary_header a:active,
header.seconary_header a:hover, header.seconary_header a:focus, header.seconary_header a:active, {
  color: #555555;
}

header.primary_header .primary_logo_holder, header.secondary_header .primary_logo_holder {
  width: 159px;
  height: 31px;
  margin: 0 auto;
  opacity: 0;
  -webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	-ms-transition: all 0.3s;
	-o-transition: all 0.3s;
	transition: all 0.3s;
	transition-property: opacity, margin;
}

header.secondary_header .primary_logo_holder {
  opacity: 1;
}

header.primary_header .primary_logo_holder.small {
  margin-top: 0;
}

.header_spacer {
  height: 10vh;
}

#intro_logo_holder {
  margin: -10em auto;
  width: 50%;
}

#intro_logo {
  opacity: 0;
}

.highlight {
  display: block;
  opacity: 0;
  max-height: 256px;
  background: url("../images/dash_pattern.png") repeat-x local top center;
}

.highlight.small {

}

.highlight_bottom {
  background: url("../images/dash_pattern.png") repeat-x local center 20% / 130px auto;
  display: block;
  height: 2rem;
}

header.secondary_header .secondary_logo_holder {
  width: 163px;
  height: 32px;
  margin: 0 auto;
}

#initial_top_nav {
  max-width: 18rem;
  margin: 3em auto 0;
  opacity: 0;
  -webkit-transition: all 0.3s;
	-moz-transition: all 0.3s;
	-ms-transition: all 0.3s;
	-o-transition: all 0.3s;
	transition: all 0.3s;
}

#initial_top_nav.small {
  margin-top: 18vh !important;
}

#initial_top_nav ul {
  list-style-type: none;
  margin: 0;
}

#initial_top_nav ul li {
  display: inline-block;
}

footer {
	font-family: Helvetica;
	font-size: 0.7rem;
  width: 100%;
  height: 5.5rem;
  color: #fff;
  background: #a8211b;
  padding-top: 1.8rem;
}

footer .footer_logo {
  margin-right: 1rem;
}

#contents {
	min-height: 100%;
  position: relative;
}

.page_contents {
  padding-bottom: 5.5em;
  padding-top: 5.5em;
}

h1 .company {
  color: #333;
}

h1 .project_function {
 color: #a8211b;
 font-size: 0.8em;
 margin-left: 0.3em;
}

.roles_label {
  color: #000;
	font-size: 0.87rem;
	text-transform: uppercase;
	margin-right: 0.4em;
}

.copyright_holder {
  color: #fff;
	display: inline-block;
	font-family: Helvetica;
	font-size: 0.8rem;
}

.swipe_hover {
	background: transparent;
	cursor: pointer;
	margin: 0.4em;
	padding: 0 0.8em;
	text-decoration: none;
	display: inline-block;
	position: relative;
	transform: translateZ(0px);
	transition-duration: 0.5s;
	transition-property: color;
	vertical-align: middle;
}

.swipe_hover::before {
	background: #333;
	bottom: 0;
	right: 0;
	top: 0;
	left: 0;
	content: "";
	position: absolute;
	border-radius: 1em;
	transform: scaleY(0);
	transform-origin: 0 0 50%;
	transition-duration: 0.5s;
	transition-property: transform;
	transition-timing-function: ease-out;
	z-index: -1;
}

.swipe_hover:hover::before, .swipe_hover:focus::before, .swipe_hover:active::before {
	transform: scaleY(1);
	transition-timing-function: cubic-bezier(0.52, 1.64, 0.37, 0.66);
}

#initial_top_nav a.swipe_hover:hover, #initial_top_nav a.swipe_hover:focus, #initial_top_nav a.swipe_hover:active {
	color: #fff;
}

img.design_large {
  border: 1px solid #ccc;
  padding: 5px;
  margin-bottom: 2rem;
}

/* sections */
#design, #about, #construct, #intro {
  min-height: 100vh;
  clear: both;
  padding-top: 5rem;
}


/* design section  */

#design {
  opacity: 0;
  -webkit-transition: all 0.8s;
	-moz-transition: all 0.8s;
	-ms-transition: all 0.8s;
	-o-transition: all 0.8s;
	transition: all 0.8s;
	background: #363636;
}


#design.open {
  opacity: 1;
}

.section_header {
  width: 40%;
  float: left;
  opacity: 0;
  -webkit-transition: opacity 0.3s;
	-moz-transition: opacity 0.3s;
	-ms-transition: opacity 0.3s;
	-o-transition: opacity 0.3s;
	transition: opacity 0.3s;
}

#about_touch_header {
  display: none;
}

.section_header.show {
  opacity: 1;
}

.section_header h2 {
  margin: 0 auto;
  width: 90%;
  font-size: 2rem;
  font-weight: 300;
  text-transform: uppercase;
  text-align: center;
}

.section_content {
  width: 60%;
  float: right;
  margin-top: -7.77rem;
}

.project_thumb_holder {
  background: #363636;
  min-height: 80vh;
	position: relative;
	width: 100%;
}

.project_thumb {
  background-position: left bottom;
	background-size: cover;
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	transform: scale(1);
	-webkit-transition: all 0.5s;
	-moz-transition: all 0.5s;
	-ms-transition: all 0.5s;
	-o-transition: all 0.5s;
	transition: all 0.5s;
	width: 100%;
}

.project_thumb:hover {
  filter: brightness(55%);
}

.project_thumb.scion {
  background-image: url("../images/design/thumbs/scion2_thumb.jpg");
}
.project_thumb.nickelodeon {
  background-image: url("../images/design/thumbs/nickelodeon.jpg");
}
.project_thumb.ambit {
  background-image: url("../images/design/thumbs/ambit.jpg");
}
.project_thumb.ht {
  background-image: url("../images/design/thumbs/hippie_tendencies.jpg");
}
.project_thumb.doubletwist {
  background-image: url("../images/design/thumbs/doubletwist.jpg");
}
.project_thumb.scion_configurator {
  background-image: url("../images/design/thumbs/scion_configurator.jpg");
}
.project_thumb.urbanter {
  background-image: url("../images/design/thumbs/urbanter.jpg");
}


.project_thumb_holder .title_link {
  left: 2em;
	position: absolute;
	top: 2em;
	z-index: 10;
}

.project_thumb_holder .title_link h3 {
  color: #fff;
}

.project_thumb_holder .title_link h3.alt {
  color: #333;
}

.project_thumb img {
  display: block;
  margin: 0 auto;
  max-width: 1000px;
  width: 100%;
}

.project_thumb .title_link {
  background: #343434;
}

/* about section */

#about {
  min-height: calc(100vh - 5rem);
}

#about h2, #about h3 {
  color: #444;
}

#about ul {
  list-style-type: none;
}

#about ul li {
  color: #333;
}

/* construct section */

#construct {
  background: #a8211b;
}

#construct .construct_spacer {
  width: 100%;
  height: 6rem;
}

#construct .section_header h2 {
  color: #fff;
}

#construct .section_content {
  min-height: 100vh;
  background: #eee;
  color: #5f5f5f;
}

#construct .section_content h2 {
  color: #a8211b;
  font-size: 1.5rem;
  margin-bottom: 1.7rem;
}

#construct .section_content h3 {
  color: #333;
  font-size: 1rem;
}

#construct .section_content ul {
  margin-bottom: 0.5rem;
  color: #000;
	font-size: 0.85rem;
	font-weight: 400;
	text-transform: uppercase;
}


/* go mobile, joe! */
@media screen and (max-width: 39.9375em) {
  #initial_top_nav nav {
    max-width: 16.5rem;
  }
  .copyright_holder {
    padding: 1em 0;
  }  
  header .swipe_hover.left_link {
    margin-left: -3.8em;
  }
  header .swipe_hover.right_link {
    margin-right: -0.6rem;
    padding-right: 1em;
  }
  header .swipe_hover::before {
	  background: none;
  }
  #initial_top_nav {
    max-width: 17rem;
  }
  #initial_top_nav a, header.secondary_header a, header.secondary_header span  {
    font-size: 0.9rem;
    font-family: Helvetica, sans-serif;
  }
  #main-nav.open ul {
		margin-left: 1.5rem;
	}
  .section_header h2 {
    font-size: 1.2rem;
  }
  #construct .section_content p {
    font-size: 0.85rem;    
  }
  #design .section_content {
    margin-top: -6.7rem;
  }
  #about {
    padding-bottom: 3em;
  }
}

/* further touch enhancements */

body.touch {
  background: #FFF;
}

body.touch header.primary_header .primary_logo_holder,
body.touch #intro,
body.touch #design, 
body.touch #about, 
body.touch #construct, 
body.touch #intro .section_content,
body.touch #design .section_content, 
body.touch #about .section_content, 
body.touch #construct .section_content,
body.touch #construct .section_content
 {
  opacity: 1;
  min-height: 0;
}

body.touch header.primary_header {
  position: relative;
  margin-top: 0;
  opacity: 1;
}

body.touch .header_spacer {
  height: 2rem;
}

body.touch header.primary_header .primary_logo_holder,
body.touch #intro,
body.touch #intro .section_content {
  min-height: 0;
  max-height: none;
  height: auto;
}

body.touch #design, body.touch #about, body.touch #construct, body.touch #intro {
  padding-top: 0;
  min-height: 0;
  max-height: none;
  height: auto;
}

body.touch #construct .construct_spacer {
  height: 2rem;
}

body.touch #construct_header {
  background: #a8211b;
}

body.touch #about_touch_header {
  background: #333 none repeat scroll 0 0;
	display: block;
	margin-bottom: 2em;
}

body.touch #about_touch_header h2 {
  color: #ccc;
}

body.touch .section_header {
  float: none;
	opacity: 1;
	width: 100%;
  padding: 2em 0;
}

body.touch #design .section_content {
  margin-top: auto;
}

body.touch header.primary_header .primary_logo_holder {
  margin-top: 0;
}

body.touch #initial_top_nav {
  display: none;
}

body.touch header.primary_header {
  height: 4rem;
}

body.touch .section_content {
  float: none;
  padding-top: 0;
  margin-top: 0;
  width: auto;
}

body.touch .project_thumb_holder {
  min-height: 20em;
}
body.touch .project_thumb {
  max-height: 20em;
}
body.touch #intro {
  padding-top: 1em;
  height: 6rem;
}

body.touch .open-menu {
  display: none;
}
