
html {
  text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
}

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

/*
*:first-child { margin-top: 0; }
*:last-child { margin-bottom: 0; }

* + * { margin-top: 1em; }
*/

@font-face {
  font-family: 'Transistor';
  src: url('fonts/font_regular.eot');
  src: url('fonts/font_regular.eot') format('embedded-opentype'),
       url('fonts/font_regular.woff') format('woff'),
       url('fonts/font_regular.ttf') format('truetype'),
       url('fonts/font_regular.svg#AkkuratRegular') format('svg');
  font-weight: normal;
  font-style: normal;
}


@font-face {
  font-family: 'Transistor';
  src: url('fonts/font_bold.eot');
  src: url('fonts/font_bold.eot') format('embedded-opentype'),
       url('fonts/font_bold.woff') format('woff'),
       url('fonts/font_bold.ttf') format('truetype'),
       url('fonts/font_bold.svg#AkkuratBold') format('svg');
  font-weight: bold;
  font-style: normal;
}

::-moz-selection {
  color: #C96333;
  background: transparent;
}
::selection {
  color: #C96333;
  background: transparent;
}

html {
	font: 18px/1.35 'Transistor', Helvetica, Arial, sans-serif;
	-webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
	margin: 0;
	padding: 2em 5% 5%;
	color: #fff;
	letter-spacing: 0.03em;
	background: #000;
}

body > header, body > footer {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	    -ms-flex-pack: justify;
	        justify-content: space-between;
}

h1, h2, h3, h4, h5, h6 {
	font-weight: bold;
	margin: 0;
}

h1 {
	margin-bottom: 2em;
	font-size: 1.75em;
	letter-spacing: -0.03em;
}

address {
	display: block;
	font-style: normal;
}

main ul {
	margin-top: 1.5em;
	padding-left: 1em;
}
main ul li { display: block; }
main ul li + li { margin-top: 0.5em; }

main ul li::before {
	content: '-';
	margin: 0 0.25em 0 -0.8em;
}

main ol:not(.notes) {
	counter-reset: section;
	padding-left: 0;
}
main ol:not(.notes) li {
	display: block;
	position: relative;
	padding-bottom: 1em;
	margin-top: 0;
}
main ol:not(.notes) li::before {
	counter-increment: section;
	content: counters(section,".");
	display: inline-block;
	margin-right: 0.5em;
	width: 1.5em; height: 1.5em;
	border-radius: 10em;
	box-shadow: 0 0 0 2px #fff;

	line-height: 1.5em;
	text-align: center;
	font-weight: bold;
}
main ol:not(.notes) li::after {
	content: '';
	display: block;
	position: absolute;
	top: 1.5em; left: 0.7em; bottom: 0;
	border-left: 2px solid;
}
main ol:not(.notes) li:last-child::after { display: none; }

img {
	width: 100%;
	display: block;
}

a {
	outline: none;
	text-decoration: none;
	color: inherit;

	-webkit-transition: color 0.2s ease-out;
	transition: color 0.2s ease-out;
}
a:hover { color: #C96333; }

p {
	margin-top: 0;
}

[role="banner"] {
	position: fixed;
	width: 100%;
	margin: 0;
	padding: 1em 5% 0;
	top: 0; left:0; right:0;
	z-index: 10;
	overflow: hidden;
	-webkit-box-align: center;
	-webkit-align-items: center;
	    -ms-flex-align: center;
	        align-items: center;
	background: #000;
}

[role="banner"] h1 {
	position: relative;
	margin-bottom: 0;
	font-size: 1em;
}
[role="banner"] h1 svg {
	display: block;
	width: 12em;
	height: 3.3em;
}

main { padding-top: 1px; }

.about {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-webkit-flex-direction: row;
	    -ms-flex-direction: row;
	        flex-direction: row;
	-webkit-justify-content: space-around;
	    -ms-flex-pack: distribute;
	        justify-content: space-around;
	padding: 20vh 0;
}

.about address {
	margin-top: 2em;
	font-size: 1.25rem;
	font-weight: normal;
}

.link-list {
	margin: 0;
	padding: 0;
}

.link-list li {
	list-style: none;
	display: inline-block;
	margin: 0 0.5em;
}
/*.link-list li:first-child { margin-left: 0; }*/
.link-list li:last-child { margin-right: 0; }

.project-list {
	padding: 0;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-flex-wrap: wrap;
	    -ms-flex-wrap: wrap;
	        flex-wrap: wrap;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	    -ms-flex-pack: justify;
	        justify-content: space-between;
}
.project-list::after {
	content: '';
	display: block;
	height: 0;
}

.project-list li, .project-list a { display: block; }

.project-list li, .project-list::after {
	position: relative;
	width: 48.75%;
	margin: 0 0 2.7vw 0;
}
.project-list li::before { display: none; }

.project-list a:hover { color: inherit; }

.project-list a:hover img { -webkit-filter: grayscale(100%); }

.project-list a p {
	position: absolute;
	top: 0; right: 0; bottom: 0; left: 0;
	background: rgba(0,0,0,0.85);
	margin: 0;
	opacity: 0;
	-webkit-transition: opacity 0.2s;
	transition: opacity 0.2s;
}
.project-list a:hover p { opacity: 1; }

.project-list a p > * {
	margin: 0;
	-webkit-transform: translateY(10px);
	    -ms-transform: translateY(10px);
	        transform: translateY(10px);
	-webkit-transition: -webkit-transform 0.25s;
	transition: -webkit-transform 0.25s;
	transition: transform 0.25s;
	transition: transform 0.25s, -webkit-transform 0.25s;
}
.project-list a:hover p > * { -webkit-transform: none; -ms-transform: none; transform: none; }

.project-list a b {
	position: absolute;
	right: 0.8em; bottom: 50%; left: 0.8em;
	display: block;

	font-size: 1.25em;
	line-height: 1;
}

.project-list a .categories {
	position: absolute;
	top: 50%; right: 1.2em; left: 1.2em;

	font-weight: normal;
	font-size: 0.85em;
}

.yetmoreabout { margin: 10em auto; }

.services section:first-of-type { padding-top: 0.15em; }

.services section + section {
	margin-top: calc(0.62em - 1px);
	padding-top: calc(0.62em - 1px);
	border-top: 1px solid;
}

.services h2 {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-webkit-justify-content: space-between;
	    -ms-flex-pack: justify;
	        justify-content: space-between;
	-webkit-box-align: center;
	-webkit-align-items: center;
	    -ms-flex-align: center;
	        align-items: center;
	position: relative;
	cursor: pointer;
	-webkit-transition: color 0.2s;
	transition: color 0.2s;
	font-size: 1em;
}

.services h2:hover { color: #C96333; }

.approach ol { font-weight: bold; }

.getintouch { margin: 6em 0; }

.toggle-icon {
	width: 0.75em;
	height: 0.75em;
	-webkit-transition: -webkit-transform 0.2s;
	transition: -webkit-transform 0.2s;
	transition: transform 0.2s;
	transition: transform 0.2s, -webkit-transform 0.2s;
}
.details-visible .toggle-icon { -webkit-transform: rotate(135deg); -ms-transform: rotate(135deg); transform: rotate(135deg); }

.details {
	margin-top: 0;
	max-height: 0;
	opacity: 0;
	overflow: hidden;
	-webkit-transition: all 0.5s ease-out;
	transition: all 0.5s ease-out;
}
.details-visible .details { max-height: 30em; opacity: 1; }

.details > :first-child { margin-top: 1em; }
.details > :last-child { margin-bottom: 1em; }

.super-size-me {
	font-size: 2rem;
	line-height: 1.15em;
	font-weight: bold;
}
.super-size-me.less { font-size: 1.25rem; }



/* ==================================================== */
/* GRILLE
/* ==================================================== */
.row { overflow: hidden; }
.row > .column {
  float: left;
  margin: 0;
}
.column.center { text-align: center; }
.column.right { text-align: right }

.row.c2 > .column {
	width: 48.4575%;
  margin-right: 3.085%;
}
.row.c2 > .column:nth-child(2n), .row.c2 > .column.last { margin-right: 0; }

.row.c3 > .column {
	width: 31.277%;
  margin-right: 3.085%;
}
.row.c3 > .column:nth-child(3n), .row.c3 > .column.last { margin-right: 0; }

.row.c3-1 > .column {
	width: 68.04%;
  margin-right: 8.045%;
}
.row.c3-1 > .column:nth-child(2n),
.row.c3-1 > .column.last {
	width: 23.915%;
	margin-right: 0;
}

.row.c4 > .column {
	width: 22.68%;
  margin-right: 3.085%;
}
.row.c4 > .column:nth-child(4n), .row.c4 > .column.last { margin-right: 0; }





/* ==================================================== */
/* PAGE : JOBS
/* ==================================================== */


.page,
.page [role="banner"] {
	color: #000;
	background: #FFF;

    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.page main {
	padding: 2.7% 0
}

.page main h1 {
	font-size: 2.25rem;
	line-height: 1.15em;
	margin: 8rem 0 .25em;
}

.page main h2 {
	font-size: 1.5rem;
	line-height: 1.15em;
	margin: 2.5em 0 1em;
}

.page main p,
.page main li {
	font-size: 1.15rem;
	line-height: 1.35em;
}

.page .social-link {
	display: inline-block;
	vertical-align: top;
	margin-bottom: 2rem;
}
/*	.page .linkedin {
		margin-top: 0.2em;
		margin-left: 0.5em;
	}*/

.page .highlight-content {
	border: 1px solid #000;
	margin-top: 4rem;
	padding: 2.5rem;
}

.page .highlight-content h2 {
	margin-top: 0;
}


.button {
	display: inline-block;
	font-size: 1.25rem;
	line-height: 1.15em;
	color: #FFF;
	background: #000;
	padding: 0.5em 0.75em;
	border: 2px solid #000;
	border-radius: 2px;
	text-decoration: none;

	transition: all 300ms ease;
}
	.button:hover {
		color: #000;
		background: transparent;
	}
	.button:after {
		content: '';
		display: none;
	}

.page .notes-wrapper {
	margin: 4rem 0;
}

.page small,
.page .notes,
.page .notes li {
	font-size: 0.9rem;
	padding-left: 0
}


/* ==================================================== */
/* RESPONSIVE
/* ==================================================== */
* { -webkit-tap-highlight-color: rgba(0,0,0,0); }

.small-screen, .mobile-only { display: none !important; }

@media (min-width : 112em) { /* 1800px @ 16px/em */
	.project-list li, .project-list::after { width: 22.5%; }
}

@media (min-width : 90em) and (max-width: 112em) { /* 1440px @ 16px/em */
	.project-list li, .project-list::after { width: 31.5%; }
}

@media (max-width : 90em) { /* 1440px @ 16px/em */
	.super-size-me { font-size: 1.75rem; }
	.super-size-me.less { font-size: 1rem; }
}


@media (max-width : 71em) { /* ~1130px @ 16px/em */
	.row.about .column, .row.getintouch .column { width: 100%; }

	.super-size-me,
	.super-size-me.less { font-size: 1.5rem; }
}


@media (max-width : 62em) { /* ~990px @ 16px/em */
	main .row.c3-1 {
		overflow: visible;
			-webkit-flex-direction: column;
	    -ms-flex-direction: column;
	        flex-direction: column;
	}
	main .row.c3-1 .column,
	main .row.c3-1 .column:last-child {
		float: none;
		width: 100%;
		margin-right: 0;
	}

	main .row.c3-1 .column + .column { margin-top: 4em; }

	.large-screen { display: none !important; }
	.small-screen { display: block !important; }

	.projects, .yetmoreabout { margin: 4em 0; }
}


@media (max-width : 37.5em) { /* 600px @ 16px/em */
	.project-list li, .project-list::after { width: 100%; }

	[role="banner"] {
		position: static;
		padding-left: 0;
		padding-right: 0;
		margin-bottom: 1em;
	}

	body > header .link-list { display: none; }

	.about { padding: 0; min-height: 0; }

	main .row.c2 .column + .column,
	main .row.c3 .column + .column,
	main .row.c3-1 .column + .column,
	main .row.c4 .column + .column {
		margin-top: 4rem;
	}

	.super-size-me,
	.super-size-me.less { font-size: 1rem; }

	.about address { font-size: 1rem; }

	body > footer .link-list li { display: block; }
}



/* Landscape */
@media (min-device-width: 320px)
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2)
  and (orientation: landscape) {

	[role="banner"] { background-color: #000 }
	[role="navigation"] { display: none; }

	main .row.c2 .column + .column,
	main .row.c3 .column + .column,
	main .row.c3-1 .column + .column,
	main .row.c4 .column + .column {
		margin-top: 4rem;
	}


}

@media (min-device-width: 320px)
  and (max-device-width: 568px)
  and (-webkit-min-device-pixel-ratio: 2) {

	.mobile-only { display: block !important; }

	footer, footer a { font-size: 0.75rem; }
}
