/* 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;
}

body, html {
  font-family: "Montserrat", sans-serif;
  font-size: 1em;
  padding: 0;
  margin: 0;
  width: 100vw;
  height: 100vh;
}

.main {
  width: 100vw;
  overflow: hidden;
}

header {
  padding: 25px;
}
header img {
  display: block;
  height: 80px;
  width: auto;
}
@media only screen and (max-width: 800px) {
  header img {
    margin: auto;
  }
}

div.content {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  text-align: center;
  height: calc(100vh - 100px - 80px - 40px);
}
div.content h1 {
  font-weight: 300;
  font-size: 1em;
  max-width: 90vw;
  margin: auto;
}
div.content h2 {
  font-weight: 800;
  font-size: 2em;
  max-width: 90vw;
  width: 500px;
  margin: 10px auto;
}
@media only screen and (max-width: 800px) {
  div.content h2 {
    font-size: 1.8em;
  }
}
div.content .illu-svg {
  display: block;
  max-height: 50vh;
  height: 600px;
  width: auto;
}
div.content .illu-svg svg {
  display: block;
  height: 100%;
  width: auto;
}
@media only screen and (max-width: 800px) {
  div.content .illu-svg {
    max-width: 100vw;
    height: auto;
  }
  div.content .illu-svg svg {
    display: block;
    width: 100%;
    height: auto;
  }
}

svg * {
  transform-box: fill-box;
}

.roue1, .roue2, .roue3, .roue4, .roue5, .roue6 {
  -webkit-transform-origin: center center;
          transform-origin: center center;
}

.roue1 {
  -webkit-animation: rotating 2s linear infinite;
          animation: rotating 2s linear infinite;
}

.roue2 {
  animation: rotating 6s linear infinite reverse;
}

.roue3 {
  -webkit-animation: rotating 2s linear infinite;
          animation: rotating 2s linear infinite;
}

.roue4 {
  animation: rotating 3s linear infinite reverse;
}

.roue5 {
  -webkit-animation: rotating 4s linear infinite;
          animation: rotating 4s linear infinite;
}

.roue6 {
  animation: rotating 3s linear infinite reverse;
}

footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 25px;
  text-transform: uppercase;
  font-size: 12px;
  text-align: right;
}
footer img {
  display: block;
  height: 40px;
  width: auto;
  margin-left: 5px;
}

.bg-pan-left {
  background: rgb(255, 255, 255);
  background: -webkit-gradient(linear, left top, right top, from(rgba(0, 37, 106, 0.2)), to(rgb(255, 255, 255)));
  background: linear-gradient(90deg, rgba(0, 37, 106, 0.2) 0%, rgb(255, 255, 255) 100%);
  background-size: 600% 100%;
  -webkit-animation: bg-pan-left 5s ease-in-out infinite alternate both;
          animation: bg-pan-left 5s ease-in-out infinite alternate both;
}

.slide-in-bottom {
  -webkit-animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
          animation: slide-in-bottom 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
}

.fade-in {
  -webkit-animation: fade-in 1.2s cubic-bezier(0.39, 0.575, 0.565, 1) 0.7s both;
          animation: fade-in 1.2s cubic-bezier(0.39, 0.575, 0.565, 1) 0.7s both;
}

@-webkit-keyframes bg-pan-left {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

@keyframes bg-pan-left {
  0% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}
@-webkit-keyframes slide-in-bottom {
  0% {
    -webkit-transform: translateY(1000px);
            transform: translateY(1000px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
  }
}
@keyframes slide-in-bottom {
  0% {
    -webkit-transform: translateY(1000px);
            transform: translateY(1000px);
    opacity: 0;
  }
  100% {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
  }
}
@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes rotating {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes rotating {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}