*, *:before, *:after {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}

/*=================================*/
/* The Cave Robot R1
/* By: Anton Simanov
/* http: //antonsimanov.com
/*=================================*/

/* Reset Styles
/*---------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
	margin: 0;
	padding: 0;
	border: 0;
	outline: 0;
	font-weight: inherit;
	font-style: inherit;
	font-size: 100%;
	font-family: inherit;
	vertical-align: baseline;
}

body {
	-border-top: 0.5em #fff solid;
	line-height: 1;
	color: black;
	background: white;

	overflow-x: hidden;
}

table {
	border-collapse: separate;
	border-spacing: 0;
}

caption, th, td {
	text-align: left;
	font-weight: normal;
}

blockquote:before, blockquote:after,
q:before, q:after {
	content: "";
}

blockquote, q {
	quotes: "" "";
}

/* HTML5 tags */
header, section, footer,
aside, nav, article, figure {
	display: block;
}

header.page { height: 0.5em; width: 100%; background: #fff; }

.menu-hint { 
	width: 100%; 
	height: 3.5em; 
	background: #fff;
	position: fixed;
	top: -100px;
	z-index: 10;
	text-align: center;

	-webkit-transition: all 0.2s linear;
	-moz-transition: all 0.2s linear;
	-ms-transition: all 0.2s linear;
	-o-transition: all 0.2s linear;
	transition: all 0.2s linear;

	-webkit-box-shadow: 0 8px 6px -10px #999;
	   -moz-box-shadow: 0 8px 6px -10px #999;
	        box-shadow: 0 8px 6px -10px #999;
}

.menu-hint.is-visible { top:0; }

.menu-hint img {
	display: inline-block;
	margin: 0 auto;
	width: 40px;
	height: 40px;
	margin-top: 0.25em;
	position: absolute;
}

.menu-hint h1 {
	padding: 0;
	display: inline-block;
	border: none !important;
	margin-left: 30px;
	line-height: 0 !important;
	margin-top: 0.75em;
}


}

header.vanilla {
	width: 100%;
	height: 8em;
	margin: 0 auto;
}

header.vanilla img { display: block; margin: auto; height: 260px; width: 300px; margin-top: 1em;}

/* hand cursor on clickable input elements */
label, input[type=button], input[type=submit], button {
	cursor: pointer;
}

/* make buttons play nice in IE:	 
		www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */
button {
	width: auto;
	overflow: visible;
}

/* Sharper Thumbnails */
img {
	-ms-interpolation-mode: bicubic;
	width: 100%;
}

img.head { width: 100%; -border-bottom: #d3d6db solid 0.025em;}

/* Input Styles
/*---------------------------------------------*/
input,
textarea,
select {
	padding: 5px;
	font: 400 1em Verdana, Sans-serif;
	color: #666;
	background: #fff;
	border: 1px solid #999999;
	margin: 0 0 1em 0;
}

input:focus,
textarea:focus,
select:focus {
	color: #000;
	background: #fff;
	border: 1px solid #666666;
}

/* Main Styles
/*---------------------------------------------*/
body {
	font: 14px/1.8em 'Montserrat', Helvetica, Arial, Helvetica, sans-serif;
	color: #444;
	-background: #F5F5F5;
	-webkit-font-smoothing: antialiased;

	background-color: #f5f5f5;
	background-image: url("../img/subtle-dots.png");
}

a, a:visited {
	color: #2eae9b;
	text-decoration: none;
	background: #eee;
	padding: 0.25%;
	border-radius: 0.2em;
	-webkit-transition: all 0.2s linear;
	-moz-transition: all 0.2s linear;
	-ms-transition: all 0.2s linear;
	-o-transition: all 0.2s linear;
	transition: all 0.2s linear;
}

a:hover, a:active {
	color: #000;
	background: #ddd;
	text-decoration: none;
}

h1, h2, h3, h4, h5, h6 {	
	color: #2f4259;
	line-height: 1em;
	margin-bottom: 0.6em;
}

h1 {
	font-size: 2.5em;
	font-weight: 700;
	text-align: center;
}

h2 {
	font-size: 1.2em;
	line-height: 1.5em;
	font-weight: 700;
}

h3 {
	font-size: 1.5em;
	margin-top: 2em;
}

p {
	font: 1em/2em 'Open Sans', sans-serif;
	margin-bottom: 1em;
	font-weight: 300;
}

p.excerpt, p.meta { font: 1.1em/2em 'Open Sans', sans-serif; font-weight: 300;}

p.meta { font-size: 1em; color: #999; font-weight: 400; line-height: 1em}

p.meta span {color: #2eae9b;}

ol, ul {
	margin: 2em;
	color: #222;
	font-size: 1.2em;
}

b, strong {
	font-weight: bold;
}

i, em {
	font-style: italic;
}

u {
	text-decoration: underline;
}

abbr, acronym {
	cursor: help;
	border-bottom: 0.1em dotted;
}

td, td img {
	vertical-align: top;
}

sub {
	vertical-align: sub;
	font-size: smaller;
}

sup {
	vertical-align: super;
	font-size: smaller;
}

code {
	font-family: Courier, "Courier New", Monaco, Tahoma;
	background: #eee;
	color: #333;
	padding: 0px 2px;
}

pre {
	background: #eee;
	padding: 20px;
	margin-bottom: 1em;
	overflow: auto;
}

blockquote {
	font-style: italic;
	margin: 4em;
	padding: 0 1em 0 1em;
	border-left: 5px solid #dddddd;
	background: #eee;
	border-radius: 0.2em;
}

section#content ul li, section#content ol li {
	font: 1em/1.8em 'Roboto', sans-serif;
}

section#content { padding: 3% 4% 0 4%; -background: #F6F7F8;}

/* Structure Styles
/*---------------------------------------------*/
#container {
	width: 100%;
	-max-width: 90em;
	margin: 0 auto;
}

.inner, .page-header {
	margin: 0 auto;
	position: relative;
		-background: #333;
	width: 64em; 
	max-width: 98%;
}

.shift {
	background: #fff;
	*margin-top: -6%;
	padding: 4%;
	border-top-left-radius: 0.25em;
	border-top-right-radius: 0.25em;
	-border: 2px solid #c8c8cc;

	        *box-shadow: 0px -7px 7px -7px #222;
	   *-moz-box-shadow: 0px -7px 7px -7px #222;
	*-webkit-box-shadow: 0px -7px 7px -7px #222;
}

.shift p { font-size: 1.2em; }

.shift h1 { margin: 1em 0 1.5em 0;}

.shift h2 { font-size: 1.6em; margin: 2em;}

.page-header { padding: 0 0 1% 0; text-align: center;}

.page-header h2 { font: 1.2em/1.5em 'Roboto', sans-serif; color: #5f5d6c;}

h1.post-heading { 
	font-family: 'Montserrat', sans-serif; 
	font-size: 1.5em; 
	line-height: 1.5em; 
	font-weight: 700; 
	text-align: left;
	text-transform: uppercase;
	-background: #c8c8cc;
	background: #fff;
	-border: 2px solid #c8c8cc;
	border-bottom: 2px solid #f5f5f5;
	margin-bottom: 0;
	padding: 0.5% 0.5% 0.5% 2%;
	border-top-left-radius: 0.2em;
	border-top-right-radius: 0.2em;
}

h1.post-heading a { color: #3c3a45; background: none; padding: 0; display: block;}

h1.post-heading a:hover { color: #000;}

.post { 
	margin-bottom: 6%; 
	padding: 4% 4% 2% 4%;
	background: #fff; 
	border-bottom-left-radius: 0.3em; 
	border-bottom-right-radius: 0.3em; 
	border-bottom: 2px solid #ddd;
	border-bottom: ; 
	border-top: none;
}

.post:last-child { margin-bottom: 0; padding-bottom: 0;}

header {
	width: 100%;
	height: auto;
	color: #8fd0ee;
}

.wrap { padding: 4em; }

.wrap h1 a { 
	display: block; 
	font-family: 'Open Sans', sans-serif; 
	color: #333; 
	font-size: 0.5em; 
	padding-top: 0.75em; 
	margin-top: 1.5em;
	text-transform: uppercase;
}

#fixed h1 { 
	font-weight: 700;
}

#fixed .nav {
	float: left;
	list-style: none;
	margin-top: 0.5em;
	padding: 0;
	height: auto;
	max-width: 20em;
}

#fixed .nav li { display: block; text-transform: uppercase; margin-bottom: 0.5em;}
#fixed .nav a {
	font-weight: 700;
	color: #5bb3dc;
	display: block;
}

#fixed .nav a:hover {
	color: #2e92c0;
	margin-left: 0.2em;
}

#footer {
	background: #3a3a44;
	color: #696979;
	float: left;
	width: 100%;
	-height: 4.5em;
	position: relative;
	margin-top: 4em;
	-border-top: #d3d6db solid 0.025em;
}

#footer p { margin: 0;}

#footer .inner { padding: 1.5em 1em 1em 0; float: none;}

#footer a { color: #89899c; background: none;}
#footer a:hover { color: #fff; }

/* OFF-CANVAS NAV
/*---------------------------------------------*/
/* Contact Form */
.contact {
  position: fixed;
  top: 0;
  bottom: 0;
  visibility: hidden;
  height: 100%;
  width: 18em;
  background: #494854;
  z-index: 99;
  margin: 0 auto;
}

.visible {
  visibility: visible;
}

a.close {
  position: absolute;		
  width: 3em;
  height: 3em;
  background: #34c5aa;
  color: #fff;
  text-align: center;
  margin: 0 auto;
  border-radius: 3em;
  padding-top: 0.5em;
  padding-left: 1em;
  left: 40%;
  top: 1em;
}

a.close i { font-size: 2em; }

a.close:hover { background: #CF7A7A;}

/* ContactBot */
.transition, form.min-contact button, form.min-contact .component label.reminder, form.min-contact .component input[type="text"] {
  -moz-transition: all 0.25s cubic-bezier(0.53, 0.01, 0.35, 1.5);
  -o-transition: all 0.25s cubic-bezier(0.53, 0.01, 0.35, 1.5);
  -webkit-transition: all 0.25s cubic-bezier(0.53, 0.01, 0.35, 1.5);
  transition: all 0.25s cubic-bezier(0.53, 0.01, 0.35, 1.5);
}

.min-contact {
    width: 250px;
    margin-right: auto;
    margin-left: auto;
    margin-top: 4.5em;
    background: #494854;
    padding: 10px 20px;
    font-family: 'Open Sans';
	font-weight: 400;
    color: #fff;
    border: none;
}

.min-contact input[type="text"], .min-contact input[type="email"], .min-contact textarea,.min-contact select{
    border: none;
    border-radius: 0.2em;
    color: #fff;
    background: #7b798a;
    height: 40px;
    margin-bottom: 16px;
    margin-right: 6px;
    -margin-top: 2px;
    outline: 0 none;
    padding: 3px 3px 3px 10px;
    width: 100%;
    font-family: 'Open Sans';
	font-weight: 400;
}

.min-contact select {
    background: #7b798a;
    appearance:none;
    -webkit-appearance:none;
    -moz-appearance: none;
    text-indent: 0.01px;
    text-overflow: '';
    width: 200px;
    height: 30px;
}

.min-contact textarea{
    height: 180px;
    padding-top: 10px;
}

.min-contact .button {
    background: #34c5aa;
    border: none;
    border-radius: 0.2em;
    padding: 10px 20px;
    width: 210px;
    color: #FFF;
}

.min-contact .button:hover {
    background: #CF7A7A;
}

/* Form Response Test */
.component:first-of-type {
  padding-top: 0;
}
.component:last-of-type {
  padding-bottom: 0;
}
.component label.reminder {
  transform-origin: left center;
  color: #eee;
  font-weight: 100;
  letter-spacing: 0.01em;
  font-size: 14px;
  box-sizing: border-box;
  padding: 10px 15px;
  display: block;
  position: absolute;
  margin-top: -60px;
  z-index: 2;
  pointer-events: none;
}
.component input[type="text"] {
  appearance: none;
  background-color: none;
  line-height: 0;
  font-size: 14px;
  width: 100%;
  display: block;
  box-sizing: border-box;
  padding: 10px 15px;
  font-weight: 100;
  letter-spacing: 0.01em;
  position: relative;
  z-index: 1;
  box-shadow: none
}
.component input[type="text"]:focus {
  outline: none;
  background: #34c5aa;
  color: white;
  margin-top: 30px;
  border: none;
}
.component input[type="text"]:valid {
  margin-top: 30px;
}
.component input[type="text"]:focus ~ label.reminder {
  -moz-transform: translate(0, -35px);
  -ms-transform: translate(0, -35px);
  -webkit-transform: translate(0, -35px);
  transform: translate(0, -35px);
  color: #34c5aa;
}
.component input[type="text"]:valid ~ label.reminder {
  text-transform: uppercase;
  font-style: italic;
  -moz-transform: translate(5px, -35px) scale(0.75);
  -ms-transform: translate(5px, -35px) scale(0.75);
  -webkit-transform: translate(5px, -35px) scale(0.75);
  transform: translate(5px, -35px) scale(0.75);
  color: #34c5aa;
}

.min-contact {
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  border: none;
  outline: none;
}

/* End Test */

.statusMessage { display: none; }

#failureMessage p, #successMessage p {  
	width: 84%; 
	z-index: 5; 
	margin: 0 auto; 
	background: #c55a2b; 
	color: #fff; 
	padding: 0.5em; 
	border-radius: 0.2em;
	margin-top: 0.8em;
}

#successMessage p { background: rgb(3, 136, 166); }

/* MENU */
#menu {
	position: fixed;
    top: 0;
    bottom: 0;
    width: 18em;
    left: -18em;
    height: 100%;
    background: #3b3a45;
    z-index: 99;

    -webkit-box-shadow: inset -1em 0 1em -1em rgba(0, 0, 0, 0.75);
       -moz-box-shadow: inset -1em 0 1em -1em rgba(0, 0, 0, 0.75);
    		box-shadow: inset -1em 0 1em -1em rgba(0, 0, 0, 0.75);
   }

ul.nav { -margin: 0 2em 2em 2em; -padding: 2em 2em 1em  2em; } 

ul.nav li { 
	list-style-type: none; 
	font-family: 'Open Sans';
	font-weight: 400;
	margin-bottom: 1em;
} 

ul.nav li a, ul.nav.front li:first-child a { 
	color: #eee;
	background: none; 
	font-size: 0.85em; 
	display: block; 
	padding-left: 0.25em;
	border-radius: 0.25em;

	-webkit-transition: all 0.1s linear;
	-moz-transition: all 0.1s linear;
	-ms-transition: all 0.1s linear;
	-o-transition: all 0.1s linear;
	transition: all 0.1s linear;
} 

ul.nav li a:hover, ul.nav.front li:first-child a:hover { 
	color: #3b3a45; 
	background: #e2e0e5;
	border-radius: 0.25em;

	-webkit-transform: scale(1.07,1.07);
		-ms-transform: scale(1.07,1.07);
			transform: scale(1.07,1.07);
} 

ul.nav li:first-child a { padding-left: 0; }

ul.nav li:first-child a:hover { background: none;}

ul.nav img { width: 10em; margin: 0 auto; padding: 0;}

-ul.nav  { border-bottom: 0.025em dashed #999;}

i { margin-right: 0.5em; }

ul.nav li hr { 
	border-right: none;
	border-left: none;
	border-bottom: 1px solid #5b5969;
	border-top: 1px solid #2e2d39;
}

#menu.active, #container.active, #share.active, .menu-hint.active {
        -webkit-transform: translate(18em, 0px);
        -moz-transform: translate(18em, 0px);
        -o-transform: translate(18em, 0px);
        -ms-transform: translate(18em, 0px);
        transform: translate(18em, 0px);
}

#container.active-next, #menu.active-next {
       -webkit-transform: translate(36em, 0px);
       -moz-transform: translate(36em, 0px);
       -o-transform: translate(36em, 0px);
       -ms-transform: translate(36em, 0px);
       transform: translate(36em, 0px);
}

#container, #menu, nav.fixed-top, .contact {
       -webkit-transform: translate(0px, 0px);
       -moz-transform: translate(0px, 0px);
       -o-transform: translate(0px, 0px);
       -ms-transform: translate(0px, 0px);
       transform: translate(0px, 0px);
       -webkit-transition: 0.15s ease;
       -moz-transition: 0.15s ease;
       -o-transition: 0.15s ease;
       transition: 0.15s ease;  
}

.menu-link, .menu-link:hover {
      position: absolute;
      top: 5px;
      right: -45px;
      background: url("img/menu.png") no-repeat scroll center center rgba(255,255,255, 0);
      width: 40px;
      height: 40px;
      z-index: 99;
      -border: 0.15em solid #3b3a45;
      border-radius: 0.25em;
}

/* ShareBot */
#share {
    position: fixed;
    top: 0;
    bottom: 0;
    width: 5em;
    right: -5em;
    height: 100%;
    z-index: 90;
    background: #3b3a45;
    margin: 0 auto;
    padding-top: 1em;

    -webkit-transform: translate(0px, 0px);
       -moz-transform: translate(0px, 0px);
         -o-transform: translate(0px, 0px);
        -ms-transform: translate(0px, 0px);
        	transform: translate(0px, 0px);
        	-webkit-transition: 0.15s ease;
        	   -moz-transition: 0.15s ease;
        		 -o-transition: 0.15s ease;
        			transition: 0.15s ease;
}

 #share.flyout {
    -webkit-transform: translate(-5em, 0px);
       -moz-transform: translate(-5em, 0px);
         -o-transform: translate(-5em, 0px);
        -ms-transform: translate(-5em, 0px);
        	transform: translate(-5em, 0px);
}

#share ul { width: 3.5em; height: auto; margin: 0 auto; padding: 0;}

#share ul li {
	list-style-type: none;
	padding-bottom: 0.25em;
	margin: 0 auto; 
	text-align: center;
}

#share ul li a {
	background: none;
	font-size: 0.85em;
	display: block;
	color: #34c5aa;
}

#share ul li a:hover {

	-webkit-transform: scale(1.1,1.1);
		-ms-transform: scale(1.1,1.1);
			transform: scale(1.1,1.1);
}

#share ul li p { color: #eee; font-size: 0.85em;}

a.js-share {
    position: absolute;
    top: 15px;
    left: -34px;
    background: none;
    color: #000;
    font-size: 1.5em;
}

.fa-facebook { z-index: 91; position: absolute; display: block; width: 100%; height: 100%; }
.fb-share-button { opacity: 0 !important; background: #555; position: relative; z-index: 99; display: block; clear: both; width: 100%; height: 100%; }

/* Work Pages
/*---------------------------------------------*/
.col-2 { 
	display: block;
	-max-width: 90em;
	height: auto;
	padding: 0;
	margin: 0 auto;
	overflow: hidden;
}

.grid-unit {
	float: left;
	display: block;
	width: 50%;
	-background: #555;
	-border: 1px solid #eee;
	text-align: center;
}

.grid-unit:hover { color: #fff; }

.grid-unit h3 { margin-top: 0; color: #000;}

.grid-unit img { width: 150px; height: 100px; margin: 0 auto; padding: 0;}

.full img { width: 100%; height: auto;}

.grid-unit a {
	display: block;
	width: 100%;
	background: #fff;
	padding: 4em;
	border-radius: 0;
}

.grid-unit a:hover { 
	background: #34c5aa; 
	color: #fff; 
		
	-webkit-transform: translate(0px,-10px);
		-ms-transform: translate(0px,-10px);
			transform: translate(0px,-10px);
}

.illu a { 
	padding: 0;
	margin-bottom: 2em; 
}

/* Full Width */

.full, .modular {
	width: 100%;
	float: none;
}

/* Modular */
.modular { 
	-background: #555; 
	border-bottom: 0.15em solid #eee;
	float: left;
	margin-bottom: 6em;
}

.modular h3.no12:after, .modular h3.sjvapcd:after {
	content: "A NoTwelve Project";
    display: block;
    clear: both;
    font-size: 0.5em;
}

.modular h3.sjvapcd:after {
	content: "SJVAPCD";
}

.modular a, .modular em {
	float: left;
}

.modular a {
	width: 60%;
	padding: 1.5em;
	margin: 0;
}

.modular a:hover {
	background: none;
}

.modular:hover {
	color: #333;
}


.modular ul {
	list-style-type: none;
	float: left;
	margin: 0 auto;
	padding: 1em;
	text-align: center;
	width: 100%;
	font: 1em/1em 'Open Sans', sans-serif;
}

.modular ul li {
	display: inline-block;
	padding-left: 2em;
}

.modular ul li:first-child {
	padding-left: 0;
}

.modular img { width: 100%; height: auto; margin: 0 auto;}

.modular aside {
	width: 40%;
	height: 300px;
	float: left;
	border-left: 0.15em solid #eee;
	display: block;
	-background: #eee;
	padding: 1.5em;
}

a.placeholder:hover { color: #2eae9b;}

i.placeholder {
	font-size: 10em;
	text-align: center;
	margin: 0 auto;
}


/* Misc Styles
/*---------------------------------------------*/
.clearfix:before,
.clearfix:after {
    content: " ";
    display: table;
}
.clearfix:after {
    clear: both;
}
.clearfix {
    *zoom: 1;
}

/* @ 1280px
`````````````````````````````````````````````````````````````````````````` */
@media screen and (max-width: 1280px) {

.wrap { padding: 1em; padding-top: 4em;}

}

/* @ 980px
`````````````````````````````````````````````````````````````````````````` */
@media screen and (max-width: 980px) {

.modular { float: none; }

.modular a, .modular em, .modular ul, .modular aside {
	float: none;
	width: 100%;
}

.modular aside { border: none; height: auto;}

.modular img { width: 50%;}

.menu-hint h1 { margin-top: 1em;}

}


/* @ 800px
`````````````````````````````````````````````````````````````````````````` */
@media screen and (max-width: 800px) {

.wrap h1 a { font-size: 0.4em;}

#fixed .nav li {font-size: 0.9em;}

.grid-unit {float: none; width: 100%;}

.modular img { width: 60%;}

.modular ul li { padding-left: 1em; }
	
.menu-hint h1 { font-size: 0.75em; margin-top: 2em; margin-left: 40px;}	

}

/* @ 320px
`````````````````````````````````````````````````````````````````````````` */
@media screen and (max-width: 320px) {

	.page-header h2 { font-size: 0.9em; }

	h1.post-heading { font-size: 1.2em;}

	p.excerpt { font-size: 0.9em;}

	.shift h1 { font-size: 1.25em; }
	.shift h2 { font-size: 1em;}
	.shift p { font-size: 1em; }

	#footer .inner { font-size: 0.85em;}

	.grid-unit img { width: 80%; height: 80%;}

	.full img { width: 100%; height: auto; }

	.modular ul li { display: list-item; padding: 0;}
	
	.menu-hint h1 { visibility: hidden; }
	
	.menu-hint img { position: relative; }

}