/* @group Reset */

/* http://meyerweb.com/eric/tools/css/reset/ 
	 v2.0 | 20110126
	 License: none (public domain)
*/

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, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
	display: block;
}

body {
	line-height: 1;
}

ol, ul {
	list-style: none;
}

blockquote, q {
	quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
	content: '';
	content: none;
}

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

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

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

figure {
	line-height: 0;
}


/* @end */

:root {
	--primary-font: "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
	--unit: 20px;
	--primary-color: rgb(0, 0, 0);
	--secondary-color: #0040D3;
	--bg-color: rgb(255, 255, 255);
	--small-space: calc(var(--unit) * 2);
	--medium-space: calc(var(--unit) * 4);
	--big-space: calc(var(--unit) * 6);
	--medium-space-mobile: calc(var(--unit) * 2);
	--big-space-mobile: calc(var(--unit) * 3);
}

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

body {
  font-family: var(--primary-font);
	font-size: calc(var(--unit) - 2px);
}

main {
  transition: transform .5s;
}

@media screen and (min-width: 45rem) {
	body {
		font-size: calc(var(--unit) + 2px);
	}
}

@media screen and (max-width: 45rem) {
	.main {
		overflow-x: hidden;
	}
}


/* Navigation */

.nav-open main {
  transform: scale(.9);
}

.nav-trigger {
  position: fixed;
  z-index: 4;
  top: calc(var(--unit) * 2);
  left: calc(var(--unit) - 8px);
  height: calc(var(--unit) + 5px);
  width: calc(var(--unit) + 5px);

  overflow: hidden;
  color: transparent;
  white-space: nowrap;
  text-indent: 100%;
}

.nav-trigger span,
.nav-trigger span::before,
.nav-trigger span::after {
  position: absolute;
  height: 2px;
  width: 30px;
  background: var(--bg-color);
}

.nav-trigger span {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: background .3s;
}

.nav-trigger span::before,
.nav-trigger span::after {
  content: '';
  top: 0;
  left: 0;
  transition: background .3s, transform .3s;
}

.nav-trigger span::before {
  transform: translateY(-10px);
}

.nav-trigger span::after {
  transform: translateY(10px);
}

.nav-trigger:hover span::before {
  transform: translateY(-12px);
}

.nav-trigger:hover span::after {
  transform: translateY(12px);
}

.nav-open .nav-trigger span {
  background: transparent;
}

.nav-open .nav-trigger span::before,
.nav-open .nav-trigger span::after {
  background: var(--bg-color);
}

.nav-open .nav-trigger span::before {
  transform: rotate(-45deg);
}

.nav-open .nav-trigger span::after {
  transform: rotate(45deg);
}

.overlay {
  position: fixed;
  z-index: 2;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--primary-color);
  opacity: 0;
  visibility: hidden;
  transition: opacity .5s, visibility .5s;
}

.nav-open .overlay {
  opacity: .6;
  visibility: visible;
}

.nav-container {
  position: fixed;
  z-index: 3;
  top: 0;
  left: 0;
  height: 100%;
  width: 90%;
  max-width: 550px;
  padding: 4em 3.5em;
  background: var(--secondary-color);
  overflow: auto;
  transform: translateZ(0);
  transform: translateX(calc(-100% + 50px));
  transition: transform .5s cubic-bezier(.07,.23,.34,1);
}

.nav-open .nav-container {
  transform: translateX(0);
}

.nav {
  list-style: none;
  padding: 0;
}

.nav a {
  display: block;
  padding: .4em 0;
  font-size: calc(var(--unit) * 2);
  text-decoration: none;
  color: var(--bg-color);
  transform: translateZ(0);
}

.nav-open .nav a {
  animation: slide-in .4s .2s backwards;
}

.nav-open .nav li:nth-of-type(2) a {
  animation-delay: .3s;
}

.nav-open .nav li:nth-of-type(3) a {
  animation-delay: .4s;
}

.nav-open .nav li:nth-of-type(4) a {
  animation-delay: .5s;
}

.nav-open .nav li:nth-of-type(5) a {
  animation-delay: .6s;
}

.nav-open .nav li:nth-of-type(6) a {
  animation-delay: .7s;
}

.nav-open .nav li:nth-of-type(7) a {
  animation-delay: .8s;
}

.nav-open .nav li:nth-of-type(8) a {
  animation-delay: .9s;
}

.nav-open .nav li:nth-of-type(9) a {
  animation-delay: 1s;
}

.home-link {
	color: var(--bg-color);
	padding-bottom: var(--small-space);
}

.legal-menu {
	margin-top: calc(var(--unit) * 2);
}

.legal-menu a {
	font-size: var(--unit);
}


@keyframes slide-in {
  0% {
    opacity: 0;
    transform: translateX(80px);
  }

  100% {
    opacity: 1;
    transform: translateX(0);
  }
}




/* Typographie */

.text-copytext {
	font-size: calc(var(--unit) - 2px);
	line-height: 1.3;
}

.text-intro {
	font-size: calc(var(--unit) * 2.2);
	line-height: 1.1;
}

.text-copytext h2 {
	font-size: 1.6em;
	line-height: 1;
}

@media screen and (min-width: 45rem) {
	.text-copytext {
		font-size: calc(var(--unit) + 2px);
	}
	.text-copytext h2 {
		font-size: 8em;
	}
}


/* Layout */

.grid-one, .grid-two, .grid-three {
	display: grid;
	grid-template-columns: repeat(1, 1fr);
	grid-gap: calc(var(--unit) * 2);
}

.grid-3-column {
	grid-column: 1 / span 1;
}

@media screen and (min-width: 45rem) {
	.grid-two {
		grid-template-columns: repeat(2, 1fr);
	}
	.grid-three {
		grid-template-columns: repeat(3, 1fr);
	}
}

.flexer {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
}

.bottom-flex {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}

.tile-top--small {
	padding-top: var(--small-space);
}
.tile-top--medium {
	padding-top: var(--medium-space);
}
.tile-top--big {
	padding-top: var(--big-space);
}
.tile-bottom--small {
	padding-bottom: var(--small-space);
}
.tile-bottom--medium {
	padding-bottom: var(--medium-space);
}
.tile-bottom--big {
	padding-bottom: var(--big-space);
}

.gallery-tile--wrap {
	padding-left: var(--small-space);
	padding-right: var(--small-space);
}

.text-width--full {
	width: 100%;
}

.text-width--left {
	width: 100%;
	max-width: 38em;
}

.text-width--right {
	width: 100%;
	max-width: 38em;
	margin-left: auto;
}

@media screen and (min-width: 45rem) {
	.flexer {
		flex-direction: row;
		align-items: center;
	}
	.bottom-flex {
		flex-direction: row;
		align-items: flex-end;
	}
}



/* Blocks */

.copytext-tile {
	padding-left: var(	--big-space-mobile);
	padding-right: var(--medium-space);
}

.copytext-tile p {
	padding-bottom: 1em;
}

.copytext-tile h3 {
	font-size: 1.25em;
	padding-bottom: .5em;
	line-height: 1.2;
}

@media screen and (min-width: 45rem) {
	.copytext-tile {
		padding-left: var(--big-space);
	}
	.copytext-tile h3 {
		font-size: 2em;
	}
}

/* Intro */

.intro-tile {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100vh;
}

.logo img {
	width: 100%;
	max-width: 200px;
	padding-left: var(--unit);
}

@media screen and (min-width: 45rem) {
	.logo img {
		max-width: 800px;
		padding-left: var(--unit);
	}
}


/* Image with Text */

.mixed-tile--left {
	display: flex;
	flex-direction: column;
}

.mixed-tile--right {
	display: flex;
	flex-direction: column-reverse;
}

.mixed-tile-image {
	width: 100%;
}

.mixed-tile-text {
	display: flex;
	flex-direction: column;
	
	width: 100%;
	border-top: 8px solid var(--secondary-color);
	
	padding-top: var(--small-space);
	padding-left: var(--medium-space);
	padding-right: var(--small-space);
}

.mixed-tile-text--center {
	justify-content: center;
}

.mixed-tile-text--bottom {
	justify-content: flex-end;
}

.mixed-tile-text h2, .mixed-tile-text h3 {
	font-size: 1.25em;
	padding-bottom: .5em;
	line-height: 1.2;
}

.mixed-tile-text p {
	width: 100%;
	max-width: 26em;
	line-height: 1.3;
}

@media screen and (min-width: 45rem) {
	.mixed-tile--left {
		flex-direction: row;
	}
	.mixed-tile--right {
		flex-direction: row-reverse;
	}
	.mixed-tile-image {
		width: 50%;
	}
	.mixed-tile-text {	
		width: 50%;	
		padding-top: 0;
		padding-left: var(--big-space);
		padding-right: var(--medium-space);
	}
	.mixed-tile-text h2, .mixed-tile-text h3 {
		font-size: 2em;
	}
}

/* Table */

.table-tile {
	padding-left: var(--big-space-mobile);
	padding-right: var(--small-space);	
}

.table-tile ul {
	border-top: 2px solid var(--secondary-color);
}

.table-tile li {
	border-bottom: 2px solid var(--secondary-color);
	padding-top: calc(var(--unit) / 2);
	padding-bottom: calc(var(--unit) / 2);
}

.table-text-right {
	font-weight: bold;
}

.table-width--left {
	width: 100%;
	max-width: 100%;
}

.table-width--right {
	width: 100%;
	max-width: 100%;
	margin-left: auto;
}

@media screen and (min-width: 45rem) {
	.table-tile {
		padding-left: var(--big-space);
		padding-right: var(--medium-space);	
	}
	.table-width--left {
		max-width: 100%;
		max-width: 48em;
	}

	.table-width--right {
		max-width: 100%;
		max-width: 48em;
	}
}


/* Keyfacts */

.keyfacts-tile {
	padding-left: var(--big-space-mobile);
}

.key-flex {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
}

.keyfacts-tile-list li {
	margin-top: calc(var(--unit) * 3);
}

.keyfacts-text-left {
	font-size: 4em;
	line-height: 1.2;
	text-align: right;
}

.keyfacts-text-right {
	border-top: 8px solid var(--secondary-color);	
	margin-top: 25px;
	padding-top: var(--unit);
	padding-left: var(--unit);
}

.keyfacts-column--1-1 {
	grid-column: 1 / span 1;
}

.keyfacts-column--2-1 {
	grid-column: 1 / span 1;
}

.keyfacts-column--3-1 {
	grid-column: 1 / span 1;
}

.keyfacts-column--2-4 {
	grid-column: 2 / span 4;
}

.keyfacts-column--3-3 {
	grid-column: 2 / span 4;
}

.keyfacts-column--4-2 {
	grid-column: 2 / span 4;
}

@media screen and (min-width: 45rem) {
	.keyfacts-text-left {
		font-size: 10em;
		line-height: .9;
	}
	.keyfacts-column--1-1 {
		grid-column: 1 / span 1;
	}
	
	.keyfacts-column--2-1 {
		grid-column: 2 / span 1;
	}
	
	.keyfacts-column--3-1 {
		grid-column: 3 / span 1;
	}
	
	.keyfacts-column--2-4 {
		grid-column: 2 / span 4;
	}
	
	.keyfacts-column--3-3 {
		grid-column: 3 / span 3;
	}
	
	.keyfacts-column--4-2 {
		grid-column: 4 / span 2;
	}
}


/* IO Special */

.io-tile {
	padding-left: var(	--big-space-mobile);
	padding-right: var(--unit);
}

.io-tile-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	align-items: center;
	
	font-weight: bold;
}

.io-tile-table {
	width: 100%;	
}

.io-tile-grid .normal-text {
	font-weight: normal;
	font-style: normal;
}

.io-tile-grid .blue-text {
	color: var(--secondary-color);
}

.io-tile-grid .download {
	color: var(--secondary-color);
	font-size: .65em;
	text-align: center;
}

.io-tile ul {
	border-top: 2px solid var(--secondary-color);
}

.io-tile li {
	border-bottom: 2px solid var(--secondary-color);
	padding-top: calc(var(--unit) / 2);
	padding-bottom: calc(var(--unit) / 2);
}

.building-content {
	display: flex;
	flex-direction: column;
	padding-bottom: var(--big-space);
}

.building {
	border-top: 8px solid var(--secondary-color);
	line-height: 1;
	padding-top: calc(var(--unit) * 2);
	width: 100%;
}

.normal-char {
	text-align: center;
}

.big-char {
	font-size: 12em;
	line-height: .9;
	text-align: center;
}

@media screen and (min-width: 45rem) {
	.io-tile {
		padding-left: var(	--big-space);
		padding-right: var(--medium-space);
	}
	.building-content {
		flex-direction: row;
	}
	.building {
		width: 50%;
	}
	.io-tile-table {
		width: 50%;	
	}
}


/* Footer */

.footer {
	display: flex;
	flex-direction: column;
	color: var(--bg-color);
	background-color: var(--secondary-color);
	padding-top: var(--big-space);
	padding-right: var(--unit);	
	padding-bottom: var(--big-space);
	padding-left: var(--big-space-mobile);
}

.footer p {
	padding-bottom: 1em;
	line-height: 1.2;
}

.footer h3 {
	font-size: 1.25em;
	padding-bottom: 1em;
} 

.footer strong {
	font-weight: bold;
}

.contact {
	margin-top: var(--small-space);
}

.contact-item {
	padding-right: var(--medium-space);
}

@media screen and (min-width: 45rem) {
	.footer {
		flex-direction: row;
		justify-content: space-between;
		padding-left: var(--big-space);
		padding-right: var(--big-space);	
		padding-top: var(--big-space);
		padding-bottom: var(--big-space);
	}
	.footer h3 {
		font-size: 2em;
	} 
	.contact {
		margin-top: 0;
	}
}







/* Tabs */

.tab-tile {
	min-height: 60vh;
}

.tab-tile {
	padding-left: var(	--big-space-mobile);
	padding-right: 20px;
}

.tab-tile-headline, .info {
	font-size: calc(var(--unit) * 1.5);
	line-height: 1.2;
}

.tabs h3 {
	font-size: calc(var(--unit) * 1.5);
	font-weight: 200;
}

.tabs {
	margin-top: calc(var(--unit) * 4);
	clear: both;
	position: relative;   
}

.tabs figcaption {
	margin-top: calc(var(--unit) / 2);
	line-height: 1.2;
}

.tab {
	float: left;
}

.tab label {
	margin-right: 5px;
	position: relative;
	top: 0;
	cursor: pointer;
	font-size: calc(var(--unit) - 2px);
	color: var(--primary-color);
	background-color: #A0A0A0;
	padding: 10px 40px;
	border-radius: 4px;
}

.tab [type=radio] {
	display: none;   
}

.tab__content {
  position: relative;
	top: calc(var(--unit) * 3);
	left: 0;
	right: 0;
	bottom: 0;
	transition: opacity .3s cubic-bezier(.42,0,.34,1.01);
	opacity: 0;
}

.tab-text strong {
	font-weight: bold;
}

@media screen and (min-width: 45rem) {
	.tab-tile {
		min-height: 100vh;
		padding-left: var(	--big-space);
		padding-right: var(--medium-space);
	}
	.tab-tile-headline, .info {
		font-size: calc(var(--unit) * 3);
	}
	.tabs h3 {
		font-size: calc(var(--unit) * 3);
	}
}

[type=radio]:checked ~ label {
	color: var(--bg-color);
	background-color: var(--secondary-color);
	z-index: 2;
}

[type=radio]:checked ~ label ~ .tab__content {
	z-index: 1;
	opacity: 1;
}

/* Animations */

@keyframes spin {
  from {
      transform:rotate(0deg);
  }
  to {
      transform:rotate(360deg);
  }
}


.animated { 
  -webkit-animation-duration: 1s; 
  animation-duration: 1s; 
  -webkit-animation-fill-mode: both; 
  animation-fill-mode: both; 
}

.delay-300 {
    -webkit-animation-delay:0.3s;
    -moz-animation-delay:0.3s;
    -o-animation-delay:0.3s;
    animation-delay:0.3s;
}

@-webkit-keyframes fadeInUpShort { 
    0% { 
        opacity: 0; 
        -webkit-transform: translateY(40px); 
    } 
    100% { 
        opacity: 1; 
        -webkit-transform: translateY(0); 
    } 
} 

@keyframes fadeInUpShort { 
    0% { 
        opacity: 0; 
        transform: translateY(40px); 
    } 
    100% { 
        opacity: 1; 
        transform: translateY(0); 
    } 
} 
.fadeInUpShort{
    opacity: 0; 
    -webkit-transform: translateY(40px); 
    transform: translateY(40px); 
}
.fadeInUpShort.go { 
    -webkit-animation-name: fadeInUpShort; 
    animation-name: fadeInUpShort; 
}

.bounceInRight, .bounceInLeft, .bounceInUp, .bounceInDown{
    opacity:0;
    -webkit-transform: translateX(400px); 
    transform: translateX(400px); 
}
.fadeInRight, .fadeInLeft, .fadeInUp, .fadeInDown{
    opacity:0;
    -webkit-transform: translateX(400px); 
    transform: translateX(400px); 
}

.flipInX, .flipInY, .rotateIn, .rotateInUpLeft, .rotateInUpRight, .rotateInDownLeft, .rotateDownUpRight, .rollIn{
    opacity:0;
}

.lightSpeedInRight, .lightSpeedInLeft{
    opacity:0;
    -webkit-transform: translateX(400px); 
    transform: translateX(400px); 
}

/***********
* bounceIn *
************/
@-webkit-keyframes bounceIn { 
    0% { 
        opacity: 0; 
        -webkit-transform: scale(.3); 
    } 

    50% { 
        opacity: 1; 
        -webkit-transform: scale(1.05); 
    } 

    70% { 
        -webkit-transform: scale(.9); 
    } 

    100% { 
         -webkit-transform: scale(1); 
    } 
} 

@keyframes bounceIn { 
    0% { 
        opacity: 0; 
        transform: scale(.3); 
    } 

    50% { 
        opacity: 1; 
        transform: scale(1.05); 
    } 

    70% { 
        transform: scale(.9); 
    } 

    100% { 
        transform: scale(1); 
    } 
} 

.bounceIn.go { 
    -webkit-animation-name: bounceIn; 
    animation-name: bounceIn; 
}

/****************
* bounceInRight *
****************/

@-webkit-keyframes bounceInRight { 
    0% { 
        opacity: 0; 
        
        -webkit-transform: translateX(400px); 
    } 
    60% { 
        
        -webkit-transform: translateX(-30px); 
    } 
    80% { 
        -webkit-transform: translateX(10px); 
    } 
    100% {
    opacity: 1;
     
        -webkit-transform: translateX(0); 
    } 
} 

@keyframes bounceInRight { 
    0% { 
        opacity: 0; 
        
        transform: translateX(400px); 
    } 
    60% { 
        
        transform: translateX(-30px); 
    } 
    80% { 
        transform: translateX(10px); 
    } 
    100% {
    opacity: 1;
     
        transform: translateX(0); 
    } 
} 


.bounceInRight.go { 
    -webkit-animation-name: bounceInRight; 
    animation-name: bounceInRight; 
}



/* Slider */

.main-carousel {
	margin-top: calc(var(--unit) * 2);
}

.carousel-cell {
	width: 100%;
	/*height: 600px;*/
	padding-right: 0;
}

/*.carousel-cell {
  width: 100%; /* full width *!/
  height: 50vh; /* height of carousel *!/
  margin-right: 10px;
}*/

/* smaller, dark, rounded square */
.flickity-button {
  background: var(--secondary-color);
}
.flickity-button:hover {
  opacity: .6;
}

.flickity-prev-next-button {
	display: none;
  width: 30px;
  height: 30px;
  border-radius: 5px;
}
/* icon color */
.flickity-button-icon {
  fill: white;
}
/* position outside */
.flickity-prev-next-button.previous {
  left: -10px;
}
.flickity-prev-next-button.next {
  right: -10px;
}

/* position dots up a bit */
.flickity-page-dots {
  bottom: -22px;
}
/* dots are lines */
.flickity-page-dots .dot {
  height: 4px;
  width: 40px;
  margin: 0;
  border-radius: 0;
}

@media screen and (min-width: 45rem) {
	.flickity-prev-next-button {
		display: block;
	}
	.carousel-cell {
		width: 80%;
		padding-right: var(--small-space);
	}
	/* position outside */
	.flickity-prev-next-button.previous {
	  left: 80px;
	}
	.flickity-prev-next-button.next {
	  right: 40px;
	}
}








