html,
body {
  height: 100%;
}
header,
footer,
section,
article,
aside,
nav {
  display: block;
}
body {
  font-family: 'im_fell_dw_picaregular', serif;
  margin: 0px;
  -webkit-font-smoothing: antialiased;
  -moz-font-smoothing: antialiased;
  font-smooth: always;
  text-rendering: optimizeLegibility;
  -moz-hyphens: auto;
  -webkit-hyphens: auto;
  hyphens: auto;
  overflow-x: hidden;
}
* {
  box-sizing: border-box;
}
.print {
  display: none;
}
img {
  border: 0px;
}
.hidden {
  display: none;
}
.clear {
  clear: both;
}
#site {
  height: 100%;
}
#site > section {
  position: relative;
}
#site > section.full {
  height: 90%;
}
#site > section.full iframe {
  width: 100%;
  height: 100%;
  border: 0px;
}
#site > section i {
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 25px;
  font-size: 70px;
  color: #dadada;
  margin-top: -50px;
  z-index: 900;
}
#site > section i:hover {
  color: #2e464d;
}
#site > section i.icon-right-open-big {
  left: auto;
  right: 25px;
}
.container {
  width: 100%;
  padding: 50px 100px 60px 100px;
  max-width: 1680px;
  margin: 0px auto;
}
.container-fixed {
  max-width: 992px;
  margin: 0px auto;
}
.container-fixed p {
  margin: 4px 0px;
}
.publications-list {
  margin-top: 100px;
}
.publications-list h2 {
  margin-top: 50px;
}
#publications-table td {
  vertical-align: top;
}
#publications-table td p:last-child {
  margin-bottom: 50px;
}
#publications-table img {
  width: 200px;
  margin-right: 20px;
  margin-bottom: 50px;
}
#publications-table h2 {
  margin-top: 0px;
}
#publications-table p {
  max-width: 500px;
}
.fa {
  font-size: 30px !important;
}
.fa.small {
  font-size: 20px !important;
}
@media screen and (min-width: 1200px) {
  .container-fixed {
    max-width: 1170px;
  }
}
.row:after {
  content: "";
  display: block;
  clear: both;
}
.icon-menu {
  cursor: pointer;
  font-size: 50px;
}
header {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  z-index: 1000;
}
header .container {
  padding-top: 0px;
  padding-bottom: 0px;
}
header h1 {
  float: left;
  margin: 0px auto;
  max-width: 1680px;
  font-size: 60px;
  font-weight: normal;
  line-height: 90px;
}
header h1 svg {
  width: 177px;
}
header .icon-menu {
  float: right;
}
menu {
  position: absolute;
  top: 0px;
  right: -300px;
  width: 300px;
  z-index: 1100;
  height: 90%;
  margin: 0px;
  padding: 0px 40px 40px 40px;
  overflow: hidden;
  display: none;
}
menu .icon-menu {
  margin-left: -17px;
}
menu strong a {
  font-family: 'im_fell_dw_picaregular', serif;
  font-size: 20px;
  line-height: 24px;
  margin: 30px 0px 10px 0px;
}
menu strong:first-child a {
  margin-top: 0px;
}
menu a {
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  line-height: 18px;
  display: block;
}
menu a:hover {
  opacity: 0.5;
}
/* Textes */
h2 {
  font-weight: normal;
  font-size: 32px;
  line-height: 38px;
  margin: 0px;
  -moz-hyphens: none;
  -webkit-hyphens: none;
  hyphens: none;
}
.text {
  color: #2e464d;
  font-size: 17px;
  line-height: 20px;
  font-family: 'Montserrat', sans-serif;
}
/* Panels */
.slider {
  position: relative;
  overflow: hidden;
}
.slider figure {
  display: none;
  margin: 0px;
  height: 100%;
  background-size: auto 70%;
  background-repeat: no-repeat;
  background-position: center 20%;
}
.slider figure .title {
  position: absolute;
  bottom: 15%;
  left: 0px;
  width: 100%;
}
.slider figure .title h2 {
  text-align: center;
  width: 100%;
  margin: 0px auto;
  max-width: 1680px;
}
.slider figure:first-child {
  display: block;
}
.slider nav {
  position: absolute;
  bottom: 5%;
  left: 0px;
  width: 100%;
  text-align: center;
}
.slider nav a {
  display: inline-block;
  width: 15px;
  height: 15px;
  margin: 0px 15px;
  border-radius: 10px;
  border: 3px solid white;
  background-color: white;
}
.slider nav a.selected {
  background-color: transparent;
}
.slider .more {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 185px;
  display: none;
}
.slider .more:after {
  content: "";
  display: block;
  clear: both;
}
.slider .more .container {
  width: 65%;
  max-width: 1280px;
  height: 100%;
  padding: 0px;
}
.slider .more .container div {
  border-left: 1px solid black;
  padding: 5px 0px 0px 25px;
  float: left;
  height: 100%;
}
.slider .more .container div h3 {
  margin: 0px 0px 30px 0px;
  font-size: 20px;
  line-height: 24px;
  font-weight: normal;
}
.slider .more .container div p {
  padding-right: 10px;
  font-size: 13px;
  line-height: 18px;
  font-family: 'Montserrat', sans-serif;
}
.slider .more .container div:nth-child(1):nth-last-child(1) {
  width: 100%;
}
.slider .more .container div:nth-child(1):nth-last-child(2),
.slider .more .container div:nth-child(2):nth-last-child(1) {
  width: 50%;
}
.slider .more .container div:nth-child(1):nth-last-child(3),
.slider .more .container div:nth-child(2):nth-last-child(2),
.slider .more .container div:nth-child(3):nth-last-child(1) {
  width: 33.3333%;
}
.slider .more .container div:nth-child(1):nth-last-child(4),
.slider .more .container div:nth-child(2):nth-last-child(3),
.slider .more .container div:nth-child(3):nth-last-child(2),
.slider .more .container div:nth-child(4):nth-last-child(1) {
  width: 25%;
}
.slider .more .container div:nth-child(1):nth-last-child(5),
.slider .more .container div:nth-child(2):nth-last-child(4),
.slider .more .container div:nth-child(3):nth-last-child(3),
.slider .more .container div:nth-child(4):nth-last-child(2),
.slider .more .container div:nth-child(5):nth-last-child(1) {
  width: 20%;
}
.slogan {
  color: #2e464d;
  text-align: center;
}
.slogan small {
  display: block;
  font-size: 13px;
  font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
  margin-bottom: 25px;
}
.slogan a {
  color: #0f7583;
  text-decoration: none;
}
.slogan .point {
  pointer-events: none;
  position: absolute;
  left: 0px;
  top: 0px;
  width: 150px;
  margin: -5px 0px 0px -50px;
  height: 10px;
  font-size: 13px;
  font-family: 'Montserrat', sans-serif;
  color: #2e464d;
  z-index: 2000;
}
.gallery {
  overflow: hidden;
}
.gallery figure {
  display: none;
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  padding: 0px;
  margin: 0px;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}
.gallery figure:first-child {
  display: block;
}
.gallery .overlay {
  transition: all 0.3s linear;
  opacity: 0;
}
.gallery:hover .overlay {
  opacity: 1;
}
.gallery i {
  color: white !important;
}
.blocs .container {
  padding: 0px;
}
.blocs .container:after {
  content: "";
  display: block;
  clear: both;
}
.blocs.bigger .content {
  background-color: #f3f4f6;
  padding: 40px;
}
.blocs article {
  position: relative;
  float: left;
  margin: 1% 0% 1% 1%;
  width: 32%;
}
.blocs article:nth-child(n+4) {
  display: none;
}
.blocs article:before {
  content: "";
  display: block;
  padding-top: 82%;
}
.blocs article:nth-child(3) {
  margin-right: 0%;
}
.blocs article:nth-child(odd) .content .flipContainer {
  transition: all 0.2s linear;
}
.blocs article h2 {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.blocs article p {
  font-size: 17px;
  line-height: 20px;
  font-family: 'Montserrat', sans-serif;
}
.blocs article .content {
  perspective: 1000;
  -webkit-perspective: 1000;
  -moz-perspective: 1000;
  -ms-perspective: 1000;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  text-align: center;
  z-index: 500;
}
.blocs article .content figure {
  height: calc(100% - 40px);
  margin: 0px 0px 12px 0px;
  background-position: center top;
  background-size: contain;
  background-repeat: no-repeat;
}
.blocs article .content .flip,
.blocs article .content .flipContainer {
  height: 100%;
}
.blocs article .content .flipContainer {
  transform-style: preserve-3d;
  -webkit-transform-style: preserve-3d;
  -moz-transform-style: preserve-3d;
  -ms-transform-style: preserve-3d;
  transition: all 0.3s linear;
}
.blocs article .content:hover .flipContainer {
  transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -ms-transform: rotateY(180deg);
}
.blocs article .content .front,
.blocs article .content .back {
  position: absolute;
  top: 0px;
  left: 0px;
  width: 100%;
  height: 100%;
  padding: 40px;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
}
.blocs article .content .front .button,
.blocs article .content .back .button {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  -moz-backface-visibility: hidden;
  -ms-backface-visibility: hidden;
}
.blocs article .content .front {
  background-color: #f3f4f6;
  background-position: center top;
  background-repeat: no-repeat;
  background-size: 75%;
}
.blocs article .content .back {
  background-color: #d8e6e8;
  color: #2e464d;
  text-align: left;
  transform: rotateY(180deg);
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -ms-transform: rotateY(180deg);
}
.blocs article .content .more {
  display: none;
}
.blocs article .content .more p {
  margin: 25px 0px;
}
.blocs article .content .more .button {
  position: static;
  margin: 0px auto;
}
.blocs i:first-of-type {
  display: none;
}
.button {
  position: absolute;
  width: 70%;
  bottom: 20px;
  left: 50%;
  margin-left: -36%;
  font-size: 13px;
  color: #f3f4f6;
  font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
}
.button a {
  display: block;
  padding: 20px;
  background-color: #1fbcd9;
  color: #f3f4f6;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}
.button a:hover {
  background-color: #23d2e0;
}
.button .dual {
  width: 50%;
  float: left;
}
.button .dual:first-child {
  border-right: 1px solid #f3f4f6;
}
.overlay {
  position: absolute;
  top: 0px;
  left: 0px;
  background-color: rgba(255, 255, 255, 0.5);
  width: 100%;
  color: #2e464d;
}
.overlay p {
  width: 50%;
  margin: 25px 0px 0px 0px;
}
footer {
  background: #2e464d;
  color: #f3f4f6;
}
footer .container {
  padding-bottom: 25px;
}
footer .container > a {
  display: block;
  width: 20%;
  margin: 0px auto;
  border: 1px solid #f3f4f6;
  color: #f3f4f6;
  text-align: center;
  padding: 10px;
  font-size: 13px;
  text-transform: uppercase;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
}
footer .container > a:hover {
  opacity: 0.5;
}
footer .one-eight {
  margin: 50px 0.5% 50px 0px;
  width: 12%;
  float: left;
}
footer .one-eight h3 {
  font-weight: normal;
  font-size: 20px;
  line-height: 24px;
  margin: 0px 0px 20px 0px;
}
footer .one-eight a {
  display: block;
  color: #d8e6e8;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 13px;
  line-height: 15px;
}
footer .one-eight a:hover {
  opacity: 0.5;
}
footer small {
  display: block;
  text-align: center;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  opacity: 0.5;
}
@media screen and (min-width: 1024px) and (max-width: 1279px) {
  #site > section i {
    left: 0px;
    font-size: 50px;
  }
  #site > section i.icon-right-open-big {
    right: 0px;
  }
  .blocs.bigger .content {
    padding: 20px;
  }
  .blocs article .content .front,
  .blocs article .content .back {
    padding: 20px;
  }
  .blocs article .content .back h2 {
    font-size: 20px;
    line-height: 24px;
  }
  .blocs article .content .back p {
    font-size: 13px;
    line-height: 18px;
  }
  .blocs .button a {
    padding: 10px;
    font-size: 11px;
    line-height: 15px;
  }
  .overlay p {
    width: 75%;
  }
  footer .one-eight {
    width: 24%;
  }
  .resp {
    display: none;
  }
}
@media screen and (min-width: 768px) and (max-width: 1023px) {
  #site > section i {
    left: 0px;
    font-size: 50px;
  }
  #site > section i.icon-right-open-big {
    right: 0px;
  }
  h2 {
    font-size: 24px;
    line-height: 28px;
  }
  .blocs.bigger .content {
    padding: 20px;
  }
  .blocs article .content .front,
  .blocs article .content .back {
    padding: 20px;
  }
  .blocs article .content h2,
  .blocs article .content .back h2 {
    font-size: 20px;
    line-height: 24px;
  }
  .blocs article .content p,
  .blocs article .content .back p {
    font-size: 13px;
    line-height: 18px;
  }
  .blocs .button a {
    padding: 5px;
    font-size: 11px;
    line-height: 15px;
  }
  .overlay p {
    width: 100%;
  }
  footer .container > a {
    width: 30%;
    margin-bottom: 25px;
  }
  footer .one-eight {
    width: 24%;
  }
  .resp {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  #site > section i {
    left: 10px;
    font-size: 40px;
  }
  #site > section i.icon-right-open-big {
    right: 10px;
  }
  .icon-menu {
    font-size: 30px;
  }
  iframe {
    pointer-events: none;
  }
  .container {
    padding: 20px 20px 30px 20px;
  }
  header h1 {
    font-size: 40px;
  }
  menu {
    position: static;
    left: 0px;
    width: 100%;
    height: auto;
  }
  menu .icon-menu {
    position: absolute;
    top: 0px;
    right: 20px;
    z-index: 2000;
  }
  menu strong:first-of-type a {
    margin-top: 15px;
  }
  /* Textes */
  h2 {
    font-size: 20px;
    line-height: 24px;
  }
  .text {
    font-size: 14px;
    line-height: 18px;
  }
  .slogan small {
    font-size: 11px;
  }
  .slogan .point {
    font-size: 11px;
  }
  .blocs.bigger article:before {
    display: none;
  }
  .blocs.bigger article .content {
    position: static;
  }
  .blocs i {
    display: none;
  }
  .blocs article {
    float: none;
    margin: 10px;
    width: calc(100% - 20px);
  }
  .blocs article:nth-child(n+4) {
    display: block;
  }
  .blocs article:nth-child(3) {
    margin-right: 10px;
  }
  .blocs article .content {
    min-height: 300px;
  }
  .blocs article .content figure {
    min-height: 150px;
  }
  .blocs article .content:hover .flipContainer {
    transform: none;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
  }
  .blocs article .content .back {
    padding: 20px;
    background-color: transparent;
    transform: none;
    -webkit-transform: none;
    -moz-transform: none;
    -ms-transform: none;
  }
  .blocs article .content .back h2 {
    text-align: center;
  }
  .blocs article .content .back p {
    display: none;
  }
  .blocs article .content .more {
    display: block;
  }
  .button {
    font-size: 11px;
  }
  .button a {
    padding: 10px;
  }
  footer .container > a {
    width: 50%;
    margin-bottom: 25px;
  }
  footer .one-eight {
    display: none;
  }
  footer small {
    font-size: 9px;
  }
}
