html {
  box-sizing: border-box;
 	overflow:auto;
}

*, *:before, *:after {
  box-sizing: inherit;
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

html,body {
	height:100%;

	margin:0px;
	padding:0px;
	font-family:Arial, Helvetica, sans-serif;
}

header {
	position:relative;
	height:7em;
	width:100%;
	background-color:black;
	z-index:10;
	background-image:url(background_images/logo.png);
	background-repeat:no-repeat;
	background-position:2em;
	background-size:40% auto;
	top:0px;
	left:0px;
	min-width:350px;
}

header > a {
	display:block;
	width:50%;
	height:100%;
	position:absolute;
	left:0px;
	top:0px;
}

header ul {
	list-style:none;
	margin:0px;
	padding:0px;
	line-height:7em;
	padding-left:50%;
}

header ul li {
	float:left;
	width:25%;
	text-align:center;
	color:#AAAAAA;
	border-left:1px solid #555555;
}

header ul li a {
	text-decoration:none;
	color:white;
}

header ul li a:hover {
	color:#00AA00;
}

section {
	padding:1.5em;
	line-height:1.8em;
	position:relative;
	min-width:350px;
}

section#main {
	background-image:url(content/home/title.jpg);
	background-size:cover;
	background-position:50% 50%;
	width:100%;
	height:calc(100% - 9em);
	z-index:0;
	background-repeat:no-repeat;
	overflow:hidden;

}

section#main.home > div {
	position:absolute;
	width:90%;
	left:5%;
	height:10%;
	background-size:contain;
	z-index:2;
	background-repeat:no-repeat;
	background-position:center;
	transition:all 3s;
	opacity:0.01;
}

section#main.home > div.fadein {
	opacity:1;
}

section#main.home > div#dream {
	background-image:url(background_images/dream.png);
	top:5%;
	background-position:left;
	left:-50%;
}

section#main.home > div#dream.fadein {
	left:5%;
}

section#main.home > div#landscape {
	background-image:url(background_images/landscape.png);
	top:auto;
	bottom:10%;
	background-position:right;
	left:150%;
}

section#main.home > div#landscape.fadein {
	left:5%;
}

section#main.home > div#together {
	background-image:url(background_images/together.png);
	top:40%;
	height:20%;
	transform: scale(0.2,0.2);
}

section#main.home > div#together.fadein {
	transform: scale(1,1);
}

body section#half {
	padding-right:55%;
	background-size:50% auto;
	background-position:right top;
	background-repeat:no-repeat;
	min-height:calc(100% - 7em);
}

body#contact section#half {
	background-image:url(content/contact.jpg);
}

body#about section#half {
	background-image:url(content/about.jpg);
}

body#serv section#half {
	background-image:url(content/services.jpg);
}

body section#half a {
	color:#007700;
}

footer {
	position:relative;
	bottom:0px;
	left:0px;
	width:100%;
	height:3.2em;
	background-color:#007700;
	z-index:10;
	border-top:1px solid black;
	padding:1em;
	font-size:0.9em;
	min-width:350px;
}

footer span, footer a {
	display:inline-block;
	width:20%;
	color:#003300;
	text-decoration:none;
}

footer span.copy {
	width:40%;
}

footer span.centre, footer a.centre, body#contact section#half a {
	text-align:left;
	padding-left:2em;	
}

footer span.credit {
	text-align:right;
	color:#003300;	
}

footer i {
	font-style:normal;
}

footer a.centre, body#contact section#half a {
	background-image:url(background_images/phone.png);
	background-position:left;
	background-size:contain;
	background-repeat:no-repeat;
}

footer a.centre[href^="mailto"], body#contact section#half a[href^="mailto"] {
	background-image:url(background_images/email.png);
}

h1 {
	color:#007700;
	font-weight:normal;
}

body section#half div h1 {
	margin-top:0px;
	white-space:nowrap;
}

body#serv section#half div h1 {
	width:100%;
}

h2 {
	color:#777777;
	font-weight:normal;
	border-bottom:1px dotted #777777;
}

img.half {
	float:left;
	width:50%;
}

img.half:nth-child(3) {
	padding-right:1em;
}

img.half:nth-child(4) {
	padding-left:1em;
}

body section#half div {
	min-height:50vh;
}


.row-grid {
    clear: both;
    padding-top: 2em;
    background-color: white;
    max-width: 1300px;
    margin: auto;
}

.product-row-image {
    width: 23%;
    display: inline-block;
    position: relative;
    background-size: cover;
    border: 2px solid white;
    padding-bottom: 22%;
    transition: all 0.5s;
    box-shadow: 0px 0px 5px rgba(0,0,0,0.2);
    margin: 0.5%;
    border-radius: 5px;
}

.product-row-image img {
    width: 100%;
    opacity: 0.01;
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0px;
}

@media screen and (max-width:1200px) {
	footer i {
		display:none;
	}
}


@media screen and (max-width:900px) {

	header {
		background-size:480px;
		background-position:1em 2em;
	}
	
	header ul {
		padding-left:0px;
		margin-left:calc(100% - 5em);
		width:5em;
		padding-top:6em;
		background-image:url(background_images/menu.png);	
		background-repeat:no-repeat;
		background-position: calc(100% - 1em) 2em;
		background-size:40px;
		cursor:pointer;
	}
	
	header > a {
		width:500px;
	}
	
	header ul.open {
		min-height:100vh;
		background-color:transparent;
		padding-left:0px;
		margin-left:50%;
		width:50%;
		padding-top:7em;
		background-image:url(background_images/menu_close.png);	
	}
	
	header ul li {
		display:none;
	}
	
	header ul.open li {
		display:block;
		text-align:right;
		float:none;
		padding-right:1em;
		width:100%;
		border-left:none;
		background-color:rgba(0,0,0,0.8);
		position:relative;
		line-height:3em;
	}
	
	header ul.open li:last-child {
		padding-bottom:calc(100vh - 13em);
	}
	
	body section#half {
		background-size:100% auto;
		padding:0px;
		padding-top:50%;
		background-position: right top;
		background-attachment:scroll;
	}
	
	body section#half div {
		background-color:white;
		padding:1.5em;
	}

	body section#half div h1 {
		margin-top: -4em;
		margin-bottom: 2em;
		background-color: rgba(0,0,0,0.7);
		width: 50%;
		padding: 0.5em;
	}
}

@media screen and (max-width:800px) {
	footer {
		height:5.2em;
	}
	
	footer span, footer a.centre {
		display:inline-block;
		width:33%;
	}
	
	footer span.copy {
		width:100%;
		display:block;
		text-align:center;
		padding-bottom:1em;
	}
}

@media screen and (max-width:600px) {

	header {
		background-size:300px;
		background-position: 1em 50%;
		background-image:url(background_images/logo_upright.png);
	}

	header > a {
		width:340px;
	}
		
	footer {
		height:7.5em;
	}
	
	footer a.centre {
		width:50%;
		margin-bottom:1em;
		white-space:nowrap;
	}
	
	
	footer span, footer span.credit {
		width:100%;
		display:block;
		text-align:center;
		padding-bottom:1em;
	}
	
	img.half, img.half:nth-child(3), img.half:nth-child(4) {
		float:none;
		width:100%;
		padding-left:0px;
		padding-right:0px;
	}
	
	.product-row-image {
		width:31%;
		padding-bottom:30%;
	}
	
	h1 span {
		display:none;
	}
}

@media screen and (max-width:420px) {

	header {
		background-size:60%;
	}
	
	header > a {
		width:70%;
	}
	
	.product-row-image {
		width:48%;
		padding-bottom:47%;
	}
}