* {
    margin:0;
    padding:0;
    border:0;
    font:inherit;
    vertical-align:baseline;
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box;
    outline:none;
}
html, body, div, p, * {
    margin:0;
    padding:0;
    font-family:'Lato', sans-serif;
    font-size:100%;
}
html {
    background:#fff;
    height:100%;
    min-height: 100%;
}
body {
    height:100%;
}
h1, h2, h3, h4 {
    font-family: 'Montserrat', sans-serif;
}
button, input[type=button] {
    min-width:150px;
    margin:0 5px;
    padding:10px 20px;
    background-color:white;
    color:black;
    border:0;
    border-radius:20px;
    letter-spacing:1px;
}
button:hover, input[type=button]:hover {
    background-color:#ddd;
    cursor:pointer;
}
button a, input[type=button] a {
    dcolor:white;
}
button a:hover, input[type=button] a:hover {
    color:white;
    text-decoration:none;
}
input[type=submit] {
    min-width:100px;
    padding:5px;
    background-color:#f45c59;
    font-family:Arial;
    font-size:100%;
    color:white;
    border:0;
    border-radius:4px;
    letter-spacing:1px;
    margin:0 5px;
    box-shadow:1px 1px 1px #555;
}
a {
    text-decoration:none;
    color:black;
}
a:hover {
    text-decoration:underline;
    color:#222;
}
p {
	font-size:13pt;
    margin-bottom:1em;
}
img {
	display:block;
}
.page {
    padding:20px;
    min-height:80vh;
    position:relative;
}
.content {
    width:90%;
    margin:0 auto;
    margin-bottom:15px;
    padding:30px;
    max-width:1200px;
    position:relative;
}
.content-plain {
    padding:0;
}
.content h2 {
    font-size:64pt;
    text-align:left;
    font-weight:400;
    letter-spacing:-2px;
    margin-bottom:25px;
}
.content h3 {
    display:block;
    margin-bottom:13px;
    font-size:31pt;
    font-weight:400;
    letter-spacing:0;
}
.content h4 {
	margin-bottom:25px;
}
.content h4 > span {
	border:1pt solid black;
	border-radius:12px;
	padding:5px 15px;
    font-weight:400;
    margin-right:15px;
}
.content a.top {
    float:right;
    font-family:Arial;
    font-size:100%;
    letter-spacing:2px;
}
.buttons {
    text-align:center;
    margin:0 auto;
    margin-top:20px;
}
#home {
    position:relative;
    padding:0;
    margin:0;
    height:100vh;
    background-color:black;
    height:100%;
}
#home .welcome {
    padding:0;
    width:100%;
    bottom:-20px;
    text-align:center;
}
.welcome h1 {
    margin:0 auto;
    text-align:center;
    margin-top:370px;
    font-family:sans-serif;
    font-size:84pt;
    color:white;
}
.welcome > ul {
    font-size:22pt;
    font-weight:400;
    height:80px;
}
.welcome > ul > li {
	display:inline-block;
    text-align:center;
    margin:0 20px;
    list-style-type:none;
    color:#fff;
    line-height:50px;
    letter-spacing:2px;
}
.welcome button {
	font-weight:600;
	font-size:18pt;
	margin:0 20px;
	border:2px solid white;
}
.welcome button.inverse {
	color:white;
	background:black;
}
.welcome button.inverse:hover {
	background:#222;
}

#services button {
	border:1px solid black;
	width:250px;
	margin-right:40px;
}
#services .buttons {
	margin-top:400px;
}

#portfolio {
    background-color:black;
}
#portfolio .content {
    color:white
}
.portfolio-left {
	display:inline-block;
	vertical-align:top;
	width:400px;
	padding-top:3em;
}
.portfolio-left .col1 {
	display:inline-block;
	width:80px;
	font-weight:600;
	font-size:30pt;
	vertical-align:top;
	text-align:right;
	padding-right:20px;
}
.portfolio-left .col2 {
	display:inline-block;
	width:200px;
}
.portfolio-left .col2 span {
	font-weight:400;
	font-size:20pt;
	margin-bottom:0.5em;
	display:block;
}
.portfolio-right {
	display:inline-block;
	vertical-align:top;
	width:780px;
	min-height:500px;
}
.portfolio-right > img {
	position:unset;
	display:block;
	margin:0;
	padding:0;
}
#about {
    background-color:black;
    min-height:60vh;
}
#about .content {
    color:white
}
#about .content h4 > span {
	border:1pt solid white;
	border-radius:12px;
	padding:5px 15px;
    font-weight:400;
    margin-right:15px;
}
#about .portfolio-left {
    width:450px;
    margin-right:30px;
}
#about .portfolio-right {
    width:700px;
    padding-top:130px;
    padding-left:80px;
}
#about .portfolio-right p {
    margin-bottom:1.5em;
}
#about .portfolio-right b {
    font-size:14pt;
    font-weight:700;
}

#contact {
    background:#fff;
    min-height:60px;
    text-align:left;
    vertical-align:center;
    font-size:95%;
    margin-bottom:0;
}
#contact .content {
    padding:25px;
    font-size:90%;
    text-align:center;
}
#contact .content img {
    height:50px;
}
#contact .content h3 {
    letter-spacing:0;
}

/* MENU */
.inner {
    width:100%;
    height:100px;
    font-weight:600;
    z-index:1;
    background-color:white;
}
.logo {
    text-decoration:none;
    color:#777;
    font-weight:800;
    font-size:30px;
    line-height:100px;
    height:95px;
    margin-left:30px;
    float:left;
}
nav {
    font-weight:600;
    line-height:100px;
    font-size:23pt;
}
nav > span {
	margin-left:10px;
}
nav > ul {
  	float:right;
    font-size:15pt;
}
nav > ul > li {
    text-align:center;
    margin-right:40px;
    list-style-type:none;
    color:#fff;
}
nav > ul li ul li {
    width: 100%;
    text-align: left;
}
nav ul li:hover {
    cursor: pointer;
    position: relative;
}
nav ul li:hover > ul {
  	display: block;
}
nav ul li:hover > a {
    color: #ddd;
    text-decoration: none;
}
nav > ul > li > a {
    cursor: pointer;
    display: block;
    outline: none;
    width: 100%;
    text-decoration: none;
}
nav > ul > li {
  	float: left;
}
nav a {
    color:black;
}
nav > ul li ul {
  	display: none;
    position: absolute;
    left: 0;
    top: 100%;
    width: 100%;
}
nav > ul li ul li > a {
  text-decoration: none;
}
img.down-arrow {
	position:absolute;
	right:10px;
	top:40px;
}

[type="checkbox"], label {
  display: none;
}

@media screen and (min-width: 768px) and (max-width: 990px) {
    .content {
        width: 90%;
        margin:0 auto;
        margin-bottom:10px;
        padding:15px;
        max-width: 990px;
    }
    .inner {
        height:70px;
    }
    .logo {
        height:70px;
    }
	nav > ul > li {
  		margin-left: 15px;
	}
    .first h2 {
        font-size:170%;
        padding-left:40px;
        padding-right:40px;
    }
}

@media screen and (max-width: 768px) {
    .page {
        padding:0;
        margin:0;
        min-height:50vh;
    }
    .content {
        width:95%;
        margin:0 auto;
        padding:20px 25px;
        max-width:760px;
        margin-bottom:10px;
        margin-top:1em;
    }
    .content-plain {
        padding:0px 20px;
        padding-bottom:2em;
    }
    .welcome {
        height:100vh;
    }
    .welcome h1 {
        margin-top:150px;
		font-size:49pt;
    }
    .welcome > ul {
        margin-top:2em;
        height:auto;
        margin-bottom:2em;
    }
    .welcome > ul > li {
        display:block;
    }
    .welcome a {
    }

    .inner {
    }
    .logo {
    }
	nav ul {
        display: none;
	}
	label {
        display: none;
        background: #222;
        width: 40px;
        height: 40px;
        cursor: pointer;
        position: absolute;
        right: 20px;
        top: 0px;
	}
    label:after{
        content:'';
        display: block;
        width: 30px;
        height: 5px;
        background: #777;
        margin: 7px 5px;
        box-shadow: 0px 10px 0px #777, 0px 20px 0px #777
    }
	[type="checkbox"]:checked ~ ul {
        display: block;
        z-index: 9999;
        position: absolute;
        right: 20px;
        left: 20px;
        top: 50px;
	}
	nav a {
        color: #777;
	}
	nav ul li {
        display: block;
        float: none;
        width: 100%;
        text-align: left;
        background: #222;
        text-indent: 20px;
	}
	nav > ul > li {
  		margin-left: 0px;
	}
	nav > ul li ul li {
        display: block;
        float: none;
	}
	nav > ul li ul {
        display: block;
        position: relative;
        width: 100%;
        z-index: 9999;
        float: none;
	}
    h1 {
        font-size: 26px;
    }
    button, input[type=button] {
        min-width:100px;
        padding:5px;
        letter-spacing:1px;
        margin:0 5px;
    }
    #home {
        position:relative;
        padding:0;
        margin:0;
        max-height:100%;
    }
    .home h2 {
        font-size:140%;
        padding-left:10px;
        padding-right:10px;
    }
    #home {
		max-height:unset;
		height:auto;
    }
    #home .welcome button {
        margin-bottom:10px;
    }
    #home .welcome {
        padding-bottom:2em;
    }
    .content h2 {
        font-size:30pt;
        text-align:center;
    }
    .content > img.down-arrow {
        position:static;
        margin:0 auto;
    }
    #services .buttons {
		margin-top:50px;
 	}
    #services .buttons button {
		display:block;
		margin:0 auto;
		margin-bottom:10px;
 	}
	.portfolio-left,
	.portfolio-right {
		display:block;
		width:100%;
        min-height:unset;
        margin:0;
	}
	.portfolio-right > img {
		width:95%;
	}
	.portfolio-left .col1 {
		text-align:left;
	}
	.portfolio-left .col2 {
		min-width:200px;
		width:auto;
        margin-bottom:2em;
	}
	.portfolio-left h3 {
		display:block;
		width:100%;
		text-align:center;
        padding-top:1em;
        border-top:1pt solid black;
	}
    .portfolio-left h3.first {
        border:0;
        padding-top:0;
    }
	.portfolio-left h4 > span {
		display:block;
		width:200px;
		text-align:center;
		margin:0 auto;
		margin-bottom:10px;
	}

	#about .content h4 > span {
		padding: 5px 15px;
		margin:0 auto;
	}
    #about .portfolio-left {
		width:100%;
        margin-right:0;
    }
    #about .portfolio-right {
		width:100%;
        padding-top:2em;
        padding-bottom:2em;
        padding-left:0;
    }
    #about .portfolio-right p {
        margin-bottom:1.5em;
    }
    #about .portfolio-right b {
        font-size:18pt;
        font-weight:600;
    }
}

input[type=text] {
    height:30px;
    border:1px solid black;
}
