@charset "UTF-8";
.is-hidden {
  display: none !important;
}

/*||==============================================||
  ||                                              ||
  ||   HIDE / DISPLAY RULES UPON BREAKPOINTS      ||
  ||                                              ||
  ||      BOOSTRAP RESPONSIVE BREAKPOINTS         ||
  ||                                              ||
  ||                sm : 576 px                   ||
  ||                md : 768 px                   ||
  ||                lg : 992 px                   ||
  ||                xl : 1200 px                  ||
  ||                                              ||
  ||    INSERT YOUR CUSTOM RULES AT THE END       ||
  ||                                              ||
  ||==============================================|| */
/*|==============================================|
  |                                              |
  |         HIDE ONLY BEYOND BREAKPOINTS         |
  |                                              |
  |==============================================| */
@media (min-width: 321px) {
  /* SCSS generated */
  .hide-xs {
    display: none !important;
  }
}

@media (min-width: 576px) {
  /* SCSS generated */
  .hide-sm {
    display: none !important;
  }
}

@media (min-width: 768px) {
  /* SCSS generated */
  .hide-md {
    display: none !important;
  }
}

@media (min-width: 992px) {
  /* SCSS generated */
  .hide-lg {
    display: none !important;
  }
}

@media (min-width: 1200px) {
  /* SCSS generated */
  .hide-xl {
    display: none !important;
  }
}

@media (min-width: 1550px) {
  /* SCSS generated */
  .hide-xxl {
    display: none !important;
  }
}

/*|==============================================|
  |                                              |
  |      DISPLAY ONLY BEYOND BREAKPOINTS         |
  |                                              |
  |==============================================| */
@media (max-width: 320px) {
  .display-xs {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 575px) {
  .display-sm {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 767px) {
  .display-md {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 991px) {
  .display-lg {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 1199px) {
  .display-xl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 1549px) {
  .display-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

/*|==============================================|
  |                                              |
  |              NO DISPLAY INTERVALS            |
  |                                              |
  |==============================================| */
@media (max-width: 320px), (min-width: 576px) {
  .display-xs-to-sm {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 320px), (min-width: 768px) {
  .display-xs-to-md {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 320px), (min-width: 992px) {
  .display-xs-to-lg {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 320px), (min-width: 1200px) {
  .display-xs-to-xl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 320px), (min-width: 1550px) {
  .display-xs-to-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 575px), (min-width: 768px) {
  .display-sm-to-md {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 575px), (min-width: 992px) {
  .display-sm-to-lg {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 575px), (min-width: 1200px) {
  .display-sm-to-xl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 575px), (min-width: 1550px) {
  .display-sm-to-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 767px), (min-width: 992px) {
  .display-md-to-lg {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 767px), (min-width: 1200px) {
  .display-md-to-xl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 767px), (min-width: 1550px) {
  .display-md-to-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 991px), (min-width: 1200px) {
  .display-lg-to-xl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 991px), (min-width: 1550px) {
  .display-lg-to-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

@media (max-width: 1199px), (min-width: 1550px) {
  .display-xl-to-xxl {
    /* SCSS generated */
    display: none !important;
  }
}

/*
╔═════════════════════════════════════════════╗
║               App Font Variables            ║
╚═════════════════════════════════════════════╝*/
:root {
  --app-font-big_john: 'Big John';
  --app-font-bigjohnpro-bold: 'BigJohnPRO-Bold';
  --app-font-bigjohnpro-light: 'BigJohnPRO-Light';
  --app-font-bigjohnpro-regular: 'BigJohnPRO-Regular';
  --app-font-dejavusans: 'DejaVuSans';
  --app-font-montserrat_blackitalic: 'Montserrat BlackItalic';
  --app-font-montserrat_black: 'Montserrat Black';
  --app-font-montserrat_bolditalic: 'Montserrat BoldItalic';
  --app-font-montserrat_bold: 'Montserrat Bold';
  --app-font-montserrat_extrabolditalic: 'Montserrat ExtraBoldItalic';
  --app-font-montserrat_extrabold: 'Montserrat ExtraBold';
  --app-font-montserrat_italic: 'Montserrat Italic';
  --app-font-montserrat_light: 'Montserrat Light';
  --app-font-montserrat_medium: 'Montserrat Medium';
  --app-font-montserrat_mediumitalic: 'Montserrat MediumItalic';
  --app-font-montserrat_regular: 'Montserrat Regular';
}

:root .app-font-Big_John {
  font-family: var(--app-font-big_john);
}

:root .app-font-BigJohnPRO-Bold {
  font-family: var(--app-font-bigjohnpro-bold);
}

:root .app-font-BigJohnPRO-Light {
  font-family: var(--app-font-bigjohnpro-light);
}

:root .app-font-BigJohnPRO-Regular {
  font-family: var(--app-font-bigjohnpro-regular);
}

:root .app-font-DejaVuSans {
  font-family: var(--app-font-dejavusans);
}

:root .app-font-Montserrat_BlackItalic {
  font-family: var(--app-font-montserrat_blackitalic);
}

:root .app-font-Montserrat_Black {
  font-family: var(--app-font-montserrat_black);
}

:root .app-font-Montserrat_BoldItalic {
  font-family: var(--app-font-montserrat_bolditalic);
}

:root .app-font-Montserrat_Bold {
  font-family: var(--app-font-montserrat_bold);
}

:root .app-font-Montserrat_ExtraBoldItalic {
  font-family: var(--app-font-montserrat_extrabolditalic);
}

:root .app-font-Montserrat_ExtraBold {
  font-family: var(--app-font-montserrat_extrabold);
}

:root .app-font-Montserrat_Italic {
  font-family: var(--app-font-montserrat_italic);
}

:root .app-font-Montserrat_Light {
  font-family: var(--app-font-montserrat_light);
}

:root .app-font-Montserrat_Medium {
  font-family: var(--app-font-montserrat_medium);
}

:root .app-font-Montserrat_MediumItalic {
  font-family: var(--app-font-montserrat_mediumitalic);
}

:root .app-font-Montserrat_Regular {
  font-family: var(--app-font-montserrat_regular);
}

@font-face {
  font-family: "Big John";
  src: url("../fonts/Big_John.otf");
}

@font-face {
  font-family: "BigJohnPRO-Bold";
  src: url("../fonts/BigJohnPRO-Bold.otf");
}

@font-face {
  font-family: "BigJohnPRO-Light";
  src: url("../fonts/BigJohnPRO-Light.otf");
}

@font-face {
  font-family: "BigJohnPRO-Regular";
  src: url("../fonts/BigJohnPRO-Regular.otf");
}

@font-face {
  font-family: "DejaVuSans";
  src: url("../fonts/DejaVuSans.otf");
}

@font-face {
  font-family: "Montserrat BlackItalic";
  src: url("../fonts/Montserrat_BlackItalic.otf");
}

@font-face {
  font-family: "Montserrat Black";
  src: url("../fonts/Montserrat_Black.otf");
}

@font-face {
  font-family: "Montserrat BoldItalic";
  src: url("../fonts/Montserrat_BoldItalic.otf");
}

@font-face {
  font-family: "Montserrat Bold";
  src: url("../fonts/Montserrat_Bold.otf");
}

@font-face {
  font-family: "Montserrat ExtraBoldItalic";
  src: url("../fonts/Montserrat_ExtraBoldItalic.otf");
}

@font-face {
  font-family: "Montserrat ExtraBold";
  src: url("../fonts/Montserrat_ExtraBold.otf");
}

@font-face {
  font-family: "Montserrat Italic";
  src: url("../fonts/Montserrat_Italic.otf");
}

@font-face {
  font-family: "Montserrat Light";
  src: url("../fonts/Montserrat_Light.otf");
}

@font-face {
  font-family: "Montserrat Medium";
  src: url("../fonts/Montserrat_Medium.otf");
}

@font-face {
  font-family: "Montserrat MediumItalic";
  src: url("../fonts/Montserrat_MediumItalic.otf");
}

@font-face {
  font-family: "Montserrat Regular";
  src: url("../fonts/Montserrat_Regular.otf");
}

:root {
  --app-font-default: 'Montserrat Regular';
  --app-font-title: 'Montserrat Bold';
}

footer {
  width: 100%;
  background: var(--app-color-deepblue);
  color: var(--app-color-yellow);
  /* Because footer's width is always 100% central-frame margins
   are turned into padding */
  padding-left: var(--app-centralframe-margin-desktop);
  padding-right: var(--app-centralframe-margin-desktop);
  padding-top: 2em;
  padding-bottom: 3em;
}

@media (max-width: 1200px) {
  footer {
    padding-left: var(--app-centralframe-margin-tablet);
    padding-right: var(--app-centralframe-margin-tablet);
  }
}

@media (max-width: 991px) {
  footer {
    left: 0;
    padding-top: 1em;
    padding-bottom: 4em;
    padding-left: 0;
    padding-right: 0;
  }
}

@media (max-width: 576px) {
  footer {
    padding-right: 1.25em;
    padding-left: 1.25em;
  }
}

footer .news-container {
  width: 100%;
  display: flex;
  justify-content: space-between;
}

footer .news-container ul.social-networks {
  font-size: 2em;
}

footer .news-container a {
  transition: .25s ease-in;
}

footer .news-container a:hover {
  color: var(--app-color-pink) !important;
  transform-origin: bottom;
  transform: scale(1.25);
  display: inline-block;
}

footer .news-container input[type=email] {
  border: 2px solid var(--app-color-yellow);
  padding-left: 2px;
}

footer .news-container input[type=submit] {
  background: var(--app-color-yellow);
  color: var(--app-color-deepblue);
  border: none;
  position: relative;
  font-family: "Montserrat Bold";
  padding-left: 3px;
  padding-right: 3px;
  height: 100%;
}

footer .news-container input[type=submit]::after {
  content: "";
  background: var(--app-color-deepblue);
  width: 100%;
  height: 0;
  position: absolute;
  bottom: 0;
  left: 0;
  transition: .25s ease;
}

footer .news-container input[type=submit]:hover {
  color: var(--app-color-pink);
}

footer .news-container input[type=submit]:hover::after {
  height: 100%;
}

footer .news-container p {
  /* Text is bold */
  font-family: var(--app-font-montserrat_bold);
  letter-spacing: 1px;
}

footer hr {
  background: var(--app-color-yellow);
  width: 100%;
  margin-top: 1em;
  /* (G) */
}

@media (max-width: 1123px) {
  footer hr {
    margin-top: 1.25em;
    /* (G) */
  }
}

@media (max-width: 991px) {
  footer hr {
    display: none;
  }
}

footer .reference-details {
  display: flex;
  justify-content: space-between;
}

footer .reference-details .address {
  font-weight: normal;
  display: block;
}

footer .reference-details .address p, footer .reference-details .address span {
  font-family: var(--app-font-montserrat_medium) !important;
  margin-bottom: 0;
}

footer .reference-details .legal-informations {
  text-align: right;
}

footer .reference-details .legal-informations a {
  font-family: var(--app-font-montserrat_medium) !important;
}

@media (max-width: 991px) {
  footer .reference-details .legal-informations {
    text-decoration: underline;
  }
  footer .reference-details .legal-informations a {
    font-family: var(--app-font-montserrat_bold) !important;
  }
}

footer .powered-by-container {
  /* Used by Code Phenix Logo */
  bottom: 0;
  right: 0;
  padding-top: .5em;
  padding-bottom: .5em;
  background-color: transparent;
}

footer .powered-by-container .powered-by {
  /* Used by Code Phenix Logo */
  padding: .6em 2em;
  background-color: transparent;
  background-image: linear-gradient(to right, var(--app-color-deepblue), var(--app-color-lightblue) 70%), linear-gradient(to bottom, var(--app-color-deepblue), var(--app-color-lightblue) 40%, var(--app-color-lightblue), var(--app-color-deepblue) 54%);
  -webkit-text-fill-color: var(--app-color-yellow);
  -webkit-text-stroke: .02em transparent;
  font-family: "Source Sans Pro", Arial, sans-serif;
  font-weight: 700;
}

@font-face {
  font-family: 'Montserrat Bold';
  src: url("../fonts/Montserrat_Bold.otf");
  font-weight: bold;
}

@font-face {
  font-family: 'Montserrat Light';
  src: url("../fonts/Montserrat_Light.otf");
  font-weight: lighter;
}

@font-face {
  font-family: 'Montserrat';
  src: url("../fonts/Montserrat_Regular.otf");
}

header {
  position: fixed;
  z-index: 7;
  width: 100%;
  top: 0;
  left: 0;
  background: var(--app-color-white);
}

header .nav-container {
  align-items: center;
  margin-left: 60px;
  height: 100%;
}

header .nav-container .navbar {
  height: 100%;
}

@media (min-width: 991px) and (max-width: 1100px) {
  header .nav-container .navbar {
    padding-right: 5em;
    font-size: .98em;
  }
}

@media (max-width: 991px) {
  header .nav-container {
    display: none !important;
  }
}

header .nav-container .app-navmenu {
  height: 100%;
}

header .nav-container .app-navmenu ul {
  height: 100%;
}

header .nav-container .app-navmenu .nav-item {
  font-weight: var(--app-font-bold);
  text-align: center;
  font-family: var(--app-font-montserrat_bold);
  transition: .25s linear;
}

header .nav-container .app-navmenu .nav-item:hover span {
  -webkit-text-fill-color: var(--app-color-lightblue);
  -moz-text-fill-color: var(--app-color-lightblue);
  -ms-text-fill-color: var(--app-color-lightblue);
}

header .nav-container .app-navmenu .nav-item:nth-child(3) {
  overflow: hidden;
}

header .nav-container .app-navmenu .nav-item:nth-child(3) a {
  display: flex;
  justify-content: center;
  align-items: center;
}

header .nav-container .app-navmenu .nav-item:nth-child(3) a {
  color: var(--app-color-default) !important;
  padding-bottom: 0;
}

header .nav-container .app-navmenu .nav-item span {
  color: var(--app-color-default) !important;
  display: inline-block;
  width: 80%;
  font-family: var(--app-font-montserrat_bold);
}

header .nav-container .app-navmenu .nav-item .picto {
  width: 100%;
  min-width: 300px;
  max-width: 300px;
  height: 200px;
  padding-top: 3em;
  transform-origin: top;
  transition: all .25s linear;
  background: var(--app-color-deepblue);
  display: flex;
  align-items: center;
  justify-content: center;
}

header .nav-container .app-navmenu .nav-item .picto div {
  width: 65%;
  transition: all .25s ease-in;
}

header .nav-container .app-navmenu .nav-item .picto div img {
  height: 100%;
  width: 100%;
}

header .nav-container .navbar {
  margin-bottom: 0;
  padding-bottom: 0;
}

.burger-container {
  position: relative;
  z-index: 8;
}

.burger-container .navbar-toggler {
  top: 1em;
}

@media (max-width: 991px) {
  .burger-container .navbar-toggler {
    top: unset;
  }
}

.burger-container nav {
  width: 60px;
  background: var(--app-color-deepblue);
  height: 100vh;
  position: relative;
  display: flex;
  justify-content: center;
}

@media (min-width: 991px) {
  .burger-container nav .container-img {
    display: none;
  }
}

@media (max-width: 991px) {
  .burger-container nav {
    width: 100vw;
    height: 90px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .burger-container nav .container-img {
    display: block;
    max-width: 125px;
    padding-top: 1em;
  }
}

.burger-container nav button {
  position: relative;
  z-index: 1000;
  align-self: flex-start;
}

@media (max-width: 991px) {
  .burger-container nav button {
    position: absolute;
    left: 1em;
    align-self: center;
  }
  @-moz-document url-prefix(),
        @-ms-document url-prefix() {
    .burger-container nav button {
      top: .5em;
      left: .7em;
    }
    .burger-container nav button[aria-expanded='true'] {
      top: .5em;
      left: .7em;
    }
  }
}

.burger-container nav button:focus,
.burger-container nav a:focus {
  outline: none;
}

.burger-container nav .icon-burger {
  width: unset;
  height: unset;
  vertical-align: unset;
}

.burger-container nav .icon-burger:before {
  content: url("../../assets/pics/icons/burger.svg");
  font-size: 2em;
}

.burger-container nav button[aria-expanded='true'] .icon-burger:before {
  content: url("../../assets/pics/icons/cross.svg");
}

.burger-container nav button[aria-expanded='true'] .icon-burger:after {
  content: "";
  border-right: 1px solid var(--app-color-yellow);
  width: 100%;
  height: 50px;
  right: -.5em;
  top: -1em;
  position: absolute;
  --i: 150%;
  animation: borderAnime .65s linear both;
}

@media (max-width: 768px) {
  .burger-container nav button[aria-expanded='true'] .icon-burger:after {
    height: 20px;
    right: 1.15em;
    top: 2.6em;
    position: absolute;
    --i: 60%;
  }
}

@media (max-width: 768px) {
  .burger-container nav button[aria-expanded='true'] ~ .burger-menu ul {
    position: relative;
  }
  .burger-container nav button[aria-expanded='true'] ~ .burger-menu ul::after {
    content: "";
    border-right: 1px solid var(--app-color-yellow);
    width: 100%;
    height: 40px;
    right: 100%;
    top: 100%;
    position: absolute;
    --i: 27%;
    animation: .65s borderAnime .75s linear both;
  }
}

.burger-container nav .burger-menu {
  width: 35vw;
  height: 100vh;
  background: var(--app-color-deepblue);
  color: var(--app-color-yellow);
  position: absolute;
  left: 60px;
  top: 0;
  padding-top: 5em;
  z-index: 16;
}

@media (min-width: 991px) and (max-width: 1140px) {
  .burger-container nav .burger-menu {
    width: 45vw;
    line-height: 1.1em;
  }
}

@media (max-width: 991px) {
  .burger-container nav .burger-menu {
    left: 0;
    padding-left: 4em;
    padding-top: 4em;
  }
  @-moz-document url-prefix() {
    .burger-container nav .burger-menu {
      padding-left: 3em;
      top: -.75em;
      height: 110vh;
      line-height: 1.1em;
    }
  }
}

@media (max-width: 991px) and (orientation: landscape) {
  .burger-container nav .burger-menu {
    overflow-y: auto;
    padding-left: 5em;
    width: 50vw;
  }
}

@media (max-width: 768px) {
  .burger-container nav .burger-menu {
    width: 100vw;
    line-height: 1.3em;
    padding-left: 2.85em;
    padding-top: 6em;
  }
}

@media (max-width: 380px) and (max-height: 500px) {
  .burger-container nav .burger-menu {
    padding-left: 2.65em;
  }
  .burger-container nav .burger-menu ul {
    line-height: 1em;
  }
}

.burger-container nav .burger-menu .nav-burger {
  margin-top: .75em;
}

.burger-container nav .burger-menu a {
  padding-left: 1em;
}

@-moz-document url-prefix() {
  .burger-container nav .burger-menu a {
    padding-left: 1em;
  }
}

.burger-container nav .burger-menu a:hover {
  color: var(--app-color-pink);
}

.burger-container nav .burger-menu .nav-item {
  position: relative;
  font-size: 1.15em;
  padding: .1em 0;
  padding-right: 1em;
  display: flex;
  align-items: center;
}

.burger-container nav .burger-menu .nav-item span {
  font-family: var(--app-font-montserrat_bold);
}

@-moz-document url-prefix() {
  .burger-container nav .burger-menu .nav-item {
    padding-right: 0;
  }
}

@media (max-width: 991px) {
  .burger-container nav .burger-menu .nav-item {
    font-size: 1.05em;
    padding: .05em 0;
  }
}

.burger-container nav .burger-menu .nav-item.arrow::before {
  font-family: 'Icomoon';
  content: "\f0da";
  position: absolute;
  transition: .15s linear;
  top: 8px;
}

@media (max-width: 1010px) {
  .burger-container nav .burger-menu .nav-item.arrow::before {
    top: 6px;
  }
}

.burger-container nav .burger-menu .nav-item.appear.arrow {
  color: var(--app-color-pink);
}

.burger-container nav .burger-menu .nav-item.appear.arrow:before {
  font-family: 'Icomoon';
  content: "\f0dd";
  position: absolute;
  top: 5px;
}

.burger-container nav .burger-menu .nav-item.appear.arrow .subNavItem a.nav-link {
  font-size: 1.25em;
}

.burger-container nav .burger-menu .nav-item .subNavItem {
  width: 100%;
}

.burger-container nav .burger-menu .nav-item .subNavItem span {
  font-family: var(--app-font-montserrat_bold);
}

.burger-container nav .burger-menu .nav-item .subNavItem a {
  padding-top: .25em;
  font-size: .95em;
  font-size: 1.05em;
  position: relative;
  left: -10%;
  padding-left: 13%;
  width: 100%;
}

@media (max-width: 380px) {
  .burger-container nav .burger-menu .nav-item .subNavItem a {
    padding-left: 14%;
  }
}

.burger-container nav .burger-menu .nav-item .subNavItem .burger-item-container a {
  font-family: var(--app-font-montserrat_light);
  display: inline-block;
}

.burger-container nav .burger-menu .nav-item .subNavItem .burger-item-container::before {
  content: "";
  display: none;
  position: absolute;
  width: 100%;
  left: 1em;
  top: 2.05em;
  border-left: 1px solid var(--app-color-yellow);
  transition: .25s linear;
  animation: borderAnime .65s linear both;
}

@media (max-width: 991px) {
  .burger-container nav .burger-menu .nav-item .subNavItem .burger-item-container::before {
    top: 2.25em;
  }
}

.burger-container nav .burger-menu .nav-item .subNavItem .burger-item {
  transition: .85s ease-out 1s;
  display: none;
}

.burger-container nav .burger-menu .nav-item.appear {
  cursor: pointer;
}

.burger-container nav .burger-menu .nav-item.appear a.nav-link {
  padding-bottom: 0;
}

.burger-container nav .burger-menu .nav-item.appear .burger-item {
  font-family: var(--app-font-montserrat_light);
  font-size: 1em;
  display: block;
  position: relative;
  color: var(--app-color-white);
}

.burger-container nav .burger-menu .nav-item.appear .burger-item-container {
  padding: 0 .5em .5em;
}

@media (max-width: 1140px) {
  .burger-container nav .burger-menu .nav-item.appear .burger-item-container {
    padding: 1em .5em;
  }
}

@media (max-width: 991px) {
  .burger-container nav .burger-menu .nav-item.appear .burger-item-container {
    line-height: 2em;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding-top: 0;
    padding-left: 1em;
  }
}

.burger-container nav .burger-menu .nav-item.appear .burger-item-container::before {
  display: block;
}

@keyframes borderAnime {
  from {
    height: 0;
  }
  to {
    height: var(--i);
  }
}

@keyframes opacify {
  from {
    opacity: 0;
  }
  to {
    opacify: 1;
  }
}

/* ---------------------
------------------------
----- Special style ----
------------------------
-----------------------*/
.filtre {
  position: fixed;
  z-index: 7;
  width: 100vw;
  height: 100vh;
  background: rgba(31, 35, 70, 0.8);
  top: 0;
  left: 0;
  transition: opacity 1s linear;
}

/*
╔═════════════════════════════════════════════╗
║      Vertical scroll bar customization      ║
║                                             ║
║                 CHROME ONLY !               ║
║                                             ║
╚═════════════════════════════════════════════╝*/
::-webkit-scrollbar {
  background: aliceblue;
  width: 10px;
  box-shadow: inset 0.15em 0 0.53em 0.06em rgba(48, 7, 77, 0.8), inset 0.5em 0 0.3em 0.1em rgba(255, 255, 255, 0.1);
}

::-webkit-scrollbar-thumb:vertical {
  border-radius: 2px;
  background-image: url(../../assets/pics/sketches/scrollbar.png);
  /*background-color: var(--app-color-pink);*/
  background-repeat: no-repeat;
  background-position: 1px 1px;
  background-size: 100% 100%;
  box-shadow: inset 0.21em 0 0.3em 0.06em rgba(48, 7, 77, 0.8), inset 0.5em 0 0.3em 0.1em rgba(255, 255, 255, 0.2);
}

::-webkit-scrollbar-button:vertical:decrement {
  background-image: url(../../assets/pics/pictos/up.svg);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: 1px 1px;
  padding: 1px 0;
  box-shadow: 0 0.21em 0.3em 0.06em rgba(48, 7, 77, 0.6);
}

::-webkit-scrollbar-button:vertical:increment {
  background-image: url(../../assets/pics/pictos/down.svg);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: 1px 3px;
  padding: 1px 0;
  box-shadow: 0 -0.21em 0.3em 0.06em rgba(48, 7, 77, 0.6);
}

::-webkit-scrollbar-button:vertical:increment:hover,
::-webkit-scrollbar-button:vertical:decrement:hover {
  background-size: 80%;
  background-position: 2px 3px;
}

/*
╔═════════════════════════════════════════════╗
║                SCSS Variables               ║
╚═════════════════════════════════════════════╝*/
/* Text inserted in colored box */
/* Display width limit */
/*
╔═════════════════════════════════════════════╗
║                  CSS Rules                  ║
║                                             ║
║          Alphabetical order please          ║
║                                             ║
╚═════════════════════════════════════════════╝*/
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
  font-family: var(--app-font-default);
}

/* Factorizing color textbox properties  */
/* Factorizing color-textboxes container properties */
:root {
  --app-centralframe-margin-desktop: 20%;
  --app-centralframe-margin-tablet: 15%;
  --app-centralframe-margin-mobile: 10%;
  /* App color classes */
  --app-color-black: black;
  --app-color-default: #1f2346;
  --app-color-deepblue: #1f2346;
  --app-color-darkgray: darkgrey;
  --app-color-darkgrey: darkgrey;
  --app-color-lightblue: #5599c0;
  --app-color-lightgray: lightgray;
  --app-color-lightgrey: lightgray;
  --app-color-gray: #eaeaea;
  --app-color-lightblue: #5599c0;
  --app-color-pink: #e71d73;
  --app-color-violet: #592e61;
  --app-color-white: white;
  --app-color-yellow: #ffed00;
  --app-color-red: firebrick;
  --app-color-lightgreen: lightgreen;
  --app-color-antiquewhite: antiquewhite;
  /* App title font size classes */
  --app-fontsize-title1: 3.8em;
  --app-fontsize-title2: 2.2em;
  --app-fontsize-title3: 1.5em;
  --app-fontsize-title4: 1.2em;
  --app-fontsize-title5: 0.9em;
  --app-fontsize-title6: 0.6em;
  /* App colored text box classes */
  /* h1 to h6 default style should (probably ?) be overriden by parent color textboxes style */
}

:root .app-color-black {
  color: black;
}

:root .app-bgcolor-black {
  background-color: black;
}

:root .app-color-default {
  color: #1f2346;
}

:root .app-bgcolor-default {
  background-color: #1f2346;
}

:root .app-color-deepblue {
  color: #1f2346;
}

:root .app-bgcolor-deepblue {
  background-color: #1f2346;
}

:root .app-color-darkgray {
  color: darkgray;
}

:root .app-bgcolor-darkgray {
  background-color: darkgray;
}

:root .app-color-darkgrey {
  color: darkgray;
}

:root .app-bgcolor-darkgrey {
  background-color: darkgray;
}

:root .app-color-lightblue {
  color: #5599c0;
}

:root .app-bgcolor-lightblue {
  background-color: #5599c0;
}

:root .app-color-lightgray {
  color: lightgray;
}

:root .app-bgcolor-lightgray {
  background-color: lightgray;
}

:root .app-color-lightgrey {
  color: lightgray;
}

:root .app-bgcolor-lightgrey {
  background-color: lightgray;
}

:root .app-color-gray {
  color: #eaeaea;
}

:root .app-bgcolor-gray {
  background-color: #eaeaea;
}

:root .app-color-lightblue {
  color: #5599c0;
}

:root .app-bgcolor-lightblue {
  background-color: #5599c0;
}

:root .app-color-pink {
  color: #e71d73;
}

:root .app-bgcolor-pink {
  background-color: #e71d73;
}

:root .app-color-violet {
  color: #592e61;
}

:root .app-bgcolor-violet {
  background-color: #592e61;
}

:root .app-color-white {
  color: white;
}

:root .app-bgcolor-white {
  background-color: white;
}

:root .app-color-yellow {
  color: #ffed00;
}

:root .app-bgcolor-yellow {
  background-color: #ffed00;
}

:root .app-color-red {
  color: firebrick;
}

:root .app-bgcolor-red {
  background-color: firebrick;
}

:root .app-color-lightgreen {
  color: lightgreen;
}

:root .app-bgcolor-lightgreen {
  background-color: lightgreen;
}

:root .app-color-antiquewhite {
  color: antiquewhite;
}

:root .app-bgcolor-antiquewhite {
  background-color: antiquewhite;
}

:root .app-color-default {
  color: var(--app-color-default);
}

:root .app-bgcolor-default {
  background-color: white;
}

:root .app-header-height {
  height: 105px;
}

:root .deepblue-textbox {
  background-color: var(--app-color-deepblue);
  color: var(--app-color-yellow);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: small;
  /* default */
  padding: 2px 12px;
  border: 2px solid var(--app-color-deepblue);
  margin-bottom: auto;
  margin-top: auto;
}

:root .deepblue-textbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .deepblue-textbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .deepblue-textbox {
    margin: 0 0.5em;
  }
}

:root .deepblue-textbox a {
  font-family: var(--app-font-montserrat_bold);
}

@media (max-width: 768px) {
  :root .deepblue-textbox {
    font-size: medium;
  }
}

@media (max-width: 576px) {
  :root .deepblue-textbox {
    padding: 3px 8px;
  }
  :root .deepblue-textbox.no-m-width {
    min-width: unset;
  }
}

:root .deepblue-textbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .deepblue-mediumtextbox {
  background-color: var(--app-color-deepblue);
  color: var(--app-color-yellow);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: large;
  padding: 2px 6px;
  border: 2px solid var(--app-color-deepblue);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .deepblue-mediumtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .deepblue-mediumtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .deepblue-mediumtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .deepblue-mediumtextbox {
    font-size: medium;
  }
}

:root .deepblue-mediumtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .deepblue-mediumtextbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .deepblue-bigtextbox {
  background-color: var(--app-color-deepblue);
  color: var(--app-color-yellow);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: x-large;
  padding: 0.3em 2.1em;
  border: 2px solid var(--app-color-deepblue);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .deepblue-bigtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .deepblue-bigtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .deepblue-bigtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .deepblue-bigtextbox {
    font-size: 1.25em;
  }
}

:root .deepblue-bigtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .pink-bigtextbox {
  border: none;
}

:root:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .pink-textbox {
  background-color: var(--app-color-pink);
  color: var(--app-color-white);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: small;
  /* default */
  padding: 2px 12px;
  border: 2px solid var(--app-color-pink);
  margin-bottom: auto;
  margin-top: auto;
}

:root .pink-textbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .pink-textbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .pink-textbox {
    margin: 0 0.5em;
  }
}

:root .pink-textbox a {
  font-family: var(--app-font-montserrat_bold);
}

@media (max-width: 768px) {
  :root .pink-textbox {
    font-size: medium;
  }
}

@media (max-width: 576px) {
  :root .pink-textbox {
    padding: 3px 8px;
  }
  :root .pink-textbox.no-m-width {
    min-width: unset;
  }
}

:root .pink-textbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .pink-mediumtextbox {
  background-color: var(--app-color-pink);
  color: var(--app-color-white);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: large;
  padding: 2px 6px;
  border: 2px solid var(--app-color-pink);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .pink-mediumtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .pink-mediumtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .pink-mediumtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .pink-mediumtextbox {
    font-size: medium;
  }
}

:root .pink-mediumtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .pink-mediumtextbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .pink-bigtextbox {
  background-color: var(--app-color-pink);
  color: var(--app-color-white);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: x-large;
  padding: 0.3em 2.1em;
  border: 2px solid var(--app-color-pink);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .pink-bigtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .pink-bigtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .pink-bigtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .pink-bigtextbox {
    font-size: 1.25em;
  }
}

:root .pink-bigtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .pink-bigtextbox {
  border: none;
}

:root:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .yellow-textbox {
  background-color: var(--app-color-yellow);
  color: var(--app-color-deepblue);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: small;
  /* default */
  padding: 2px 12px;
  border: 2px solid var(--app-color-yellow);
  margin-bottom: auto;
  margin-top: auto;
}

:root .yellow-textbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .yellow-textbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .yellow-textbox {
    margin: 0 0.5em;
  }
}

:root .yellow-textbox a {
  font-family: var(--app-font-montserrat_bold);
}

@media (max-width: 768px) {
  :root .yellow-textbox {
    font-size: medium;
  }
}

@media (max-width: 576px) {
  :root .yellow-textbox {
    padding: 3px 8px;
  }
  :root .yellow-textbox.no-m-width {
    min-width: unset;
  }
}

:root .yellow-textbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .yellow-mediumtextbox {
  background-color: var(--app-color-yellow);
  color: var(--app-color-deepblue);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: large;
  padding: 2px 6px;
  border: 2px solid var(--app-color-yellow);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .yellow-mediumtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .yellow-mediumtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .yellow-mediumtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .yellow-mediumtextbox {
    font-size: medium;
  }
}

:root .yellow-mediumtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .yellow-mediumtextbox:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root .yellow-bigtextbox {
  background-color: var(--app-color-yellow);
  color: var(--app-color-deepblue);
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  font-size: x-large;
  padding: 0.3em 2.1em;
  border: 2px solid var(--app-color-yellow);
  font-family: var(--app-font-montserrat_bold);
  font-weight: normal;
  margin-bottom: auto;
  margin-top: auto;
}

:root .yellow-bigtextbox:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  :root .yellow-bigtextbox:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  :root .yellow-bigtextbox {
    margin: 0 0.5em;
  }
}

@media (max-width: 576px) {
  :root .yellow-bigtextbox {
    font-size: 1.25em;
  }
}

:root .yellow-bigtextbox a {
  font-family: var(--app-font-montserrat_bold);
}

:root .pink-bigtextbox {
  border: none;
}

:root:hover {
  background-color: var(--app-color-white);
  color: var(--app-color-pink) !important;
}

:root [class$="textbox"] h1,
:root [class$="textbox"] h1.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root [class$="textbox"] h2,
:root [class$="textbox"] h2.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root [class$="textbox"] h3,
:root [class$="textbox"] h3.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root [class$="textbox"] h4,
:root [class$="textbox"] h4.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root [class$="textbox"] h5,
:root [class$="textbox"] h5.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root [class$="textbox"] h6,
:root [class$="textbox"] h6.app-title {
  font-weight: inherit;
  font-size: inherit;
  padding: 0;
  margin: 0;
}

:root .color-textboxes {
  display: flex;
  justify-content: center;
  text-align: center;
  margin-top: 1.5em;
}

@media (max-width: 992px) {
  :root .color-textboxes {
    margin-top: 0;
  }
}

@media (max-width: 576px) {
  :root .color-textboxes {
    flex-direction: column;
    align-items: center;
  }
}

.sized-title1 {
  font-size: 3.8em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h1.app-title {
  font-size: 3.8em;
  color: var(--app-color-default);
}

.sized-title2 {
  font-size: 2.2em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h2.app-title {
  font-size: 2.2em;
  color: var(--app-color-default);
}

.sized-title3 {
  font-size: 1.5em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h3.app-title {
  font-size: 1.5em;
  color: var(--app-color-default);
}

.sized-title4 {
  font-size: 1.2em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h4.app-title {
  font-size: 1.2em;
  color: var(--app-color-default);
}

.sized-title5 {
  font-size: 0.9em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h5.app-title {
  font-size: 0.9em;
  color: var(--app-color-default);
}

.sized-title6 {
  font-size: 0.6em;
}

/* Standard behavior : title color inherits. Adding .default will set default color */
h6.app-title {
  font-size: 0.6em;
  color: var(--app-color-default);
}

a {
  color: var(--app-default-color);
  padding-top: 0;
  padding-bottom: 0;
}

a:hover {
  color: unset !important;
  text-decoration: none;
}

a:hover[class*="textbox"]:hover {
  transform: scale(1.05);
}

a:focus {
  outline: none;
}

a[class*="textbox"][class^="icon-"],
a[class*="textbox"][class*="icon-"],
button[class*="textbox"][class*="icon-"] {
  font-family: "icomoon" !important;
}

.app-font-bold {
  font-family: "Montserrat Bold";
}

.app-title {
  font-weight: normal;
  text-align: center;
  text-transform: uppercase;
  color: var(--app-color-default);
  font-family: var(--app-font-title);
}

.app-img-top {
  margin-top: -20vh;
}

body {
  overflow-x: hidden;
}

.carousel-controls {
  position: relative;
  bottom: -4em;
  display: flex;
  align-items: center;
  margin-bottom: 2em;
}

.carousel-controls .carousel-control-prev,
.carousel-controls .carousel-control-next {
  opacity: 1;
  align-items: flex-end;
}

.carousel-controls .carousel-control-prev:hover,
.carousel-controls .carousel-control-next:hover {
  opacity: 0.5;
}

.carousel-controls .carousel-control-prev {
  left: 30%;
  z-index: 16;
  font-size: 1.35em;
}

@media (max-width: 768px) {
  .carousel-controls .carousel-control-prev {
    left: 15%;
  }
}

@media (max-width: 576px) {
  .carousel-controls .carousel-control-prev {
    left: 0;
  }
}

.carousel-controls .carousel-control-next {
  right: 30%;
  z-index: 16;
  font-size: 1.35em;
}

@media (max-width: 768px) {
  .carousel-controls .carousel-control-next {
    right: 15%;
  }
}

@media (max-width: 576px) {
  .carousel-controls .carousel-control-next {
    right: 0;
  }
}

.carousel-controls .carousel-indicators {
  margin-bottom: 0;
  z-index: 5;
}

.carousel-controls .carousel-indicators li {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--app-color-deepblue);
  border: 2px solid var(--app-color-deepblue);
  opacity: 1;
}

.carousel-controls .carousel-indicators li.active {
  background: var(--app-color-white);
}

.carousel-controls .carousel-indicators li:hover {
  opacity: 0.85;
}

.central-frame {
  /* Central area with large symetric horizontal padding */
  margin-left: var(--app-centralframe-margin-desktop);
  margin-right: var(--app-centralframe-margin-desktop);
  background-color: var(--app-color-white);
  position: relative;
  top: -7em;
  margin-bottom: -6em;
  padding-top: 1em;
}

.central-frame h1.app-title {
  font-size: 3.1em;
  line-height: 1.1;
}

@media (max-width: 1200px) {
  .central-frame {
    margin-left: var(--app-centralframe-margin-tablet);
    margin-right: var(--app-centralframe-margin-tablet);
    top: -6em;
    padding-top: 1em;
  }
  .central-frame .description {
    padding: 1em 2.5em 1.5em;
  }
}

@media (max-width: 992px) {
  .central-frame {
    margin-left: var(--app-centralframe-margin-mobile);
    margin-right: var(--app-centralframe-margin-mobile);
    top: -6em;
    margin-bottom: -3em;
  }
  .central-frame .description {
    padding: 1em 2.5em 1.5em;
  }
}

@media (max-width: 790px) {
  .central-frame h1.app-title {
    font-size: 2.5em;
    line-height: 1.1;
  }
  .central-frame .description {
    padding-top: 1em;
  }
}

@media (min-width: 576px) {
  .central-frame .px-md-5 {
    padding: 0 3em;
  }
}

@media (max-width: 575px) {
  .central-frame .px-md-5 {
    padding: 0 1em;
    text-align: justify;
  }
}

.central-frame section {
  padding-left: 0;
  padding-right: 0;
  margin-top: 0em;
}

.container-be-help {
  position: fixed;
  top: calc(100vh / 2.5);
  background: var(--app-color-pink);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.5em 1.5em 0.5em 1.5em;
  right: 0;
  transition: 0.85s ease-in !important;
  z-index: 7;
  cursor: pointer;
}

@media (max-width: 991px) {
  .container-be-help {
    top: 90px;
    right: 1em;
    z-index: 6;
  }
}

@media (max-width: 768px) {
  .container-be-help {
    padding: 0.5em 0.5em;
    font-size: 0.9em;
  }
}

.container-be-help span {
  color: var(--app-color-yellow);
  font-size: 1em;
}

.container-be-help .tooltip {
  display: none;
}

.container-be-help:hover {
  width: 250px;
  height: 100%;
  min-height: 250px;
  max-height: 290px;
}

.container-be-help:hover span {
  position: absolute;
  top: 1em;
  left: 1em;
}

.container-be-help:hover .tooltip {
  width: 100%;
  display: block;
  opacity: 1;
  top: 2em;
  left: 0;
  padding: 1em;
}

.container-be-help:hover .tooltip div {
  width: 100%;
  text-align: center;
  padding: 2em 0;
}

.container-be-help:hover .tooltip div .button-help {
  background: none;
  border: 1px var(--app-color-yellow) solid;
  text-align: center;
  padding: 0.5em 0;
  position: relative;
}

.container-be-help:hover .tooltip div .button-help::after {
  content: "";
  width: 100%;
  height: 0;
  left: 0;
  bottom: 0;
  background: var(--app-color-lightblue);
  position: absolute;
  transition: 0.35s cubic-bezier(0.75, 0.15, 0.25, 1);
  z-index: 0;
}

.container-be-help:hover .tooltip div .button-help:hover::after {
  height: 100%;
}

.container-be-help:hover .tooltip div .button-help .link-help {
  padding: 2em 2em !important;
  position: relative;
  z-index: 1;
  color: var(--app-color-yellow) !important;
}

.container-be-help:hover .tooltip div .button-help:hover .link-help {
  font-weight: bold;
  color: var(--app-color-white) !important;
}

.central-frame .description {
  /* Description paragraphs set on almost every page */
  font-family: var(--app-font-montserrat_bold);
  font-size: 1.15em;
  text-align: center;
  padding: 1.5em 2.5em;
}

@media (max-width: 576px) {
  .central-frame .description {
    text-align: justify !important;
    padding: 1em 1.15em;
    margin: 0 auto;
    width: 100%;
  }
}

@media (max-width: 380px) {
  .central-frame .description {
    padding: 1em 0.8em;
  }
}

@media (min-width: 991px) {
  .central-frame .description {
    padding: 2em 2.5em 1.5em;
  }
}

div#app {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  max-width: 2500px;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
  margin: 0 auto;
}

.download-link a:hover {
  text-decoration: none;
  color: inherit;
}

.go-up {
  position: fixed;
  right: -20vw;
  top: calc(100vh / 2);
  background: var(--app-color-deepblue);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 1em 1.5em 0.5em 1.5em;
  transition: 0.85s ease-in !important;
  z-index: 6;
  cursor: pointer;
}

.go-up span:before {
  color: var(--app-color-yellow);
  font-size: 1.25em;
}

@media (max-width: 768px) {
  .go-up {
    display: none;
  }
}

.go-up::before {
  content: "";
  width: 100%;
  height: 0;
  left: 0;
  bottom: 0;
  background: var(--app-color-pink);
  position: absolute;
  z-index: -1;
  transition: 0.25s ease-out;
}

.go-up:hover::before {
  height: 100%;
}

/* Title specifications h1 to h6 */
/* Responsive title font sizes (not elegant duplication but couldn't find another way) */
@media screen and (max-width: 992px) {
  .font-size-title1 {
    font-size: 3.2em;
  }
  h1.app-title {
    font-size: 3.2em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 992px) {
  .font-size-title2 {
    font-size: 2em;
  }
  h2.app-title {
    font-size: 2em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 992px) {
  .font-size-title3 {
    font-size: 1.2em;
  }
  h3.app-title {
    font-size: 1.2em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 992px) {
  .font-size-title4 {
    font-size: 1.1em;
  }
  h4.app-title {
    font-size: 1.1em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 992px) {
  .font-size-title5 {
    font-size: 0.8em;
  }
  h5.app-title {
    font-size: 0.8em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 992px) {
  .font-size-title6 {
    font-size: 0.5em;
  }
  h6.app-title {
    font-size: 0.5em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title1 {
    font-size: 2.8em;
  }
  h1.app-title {
    font-size: 2.8em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title2 {
    font-size: 1.4em;
  }
  h2.app-title {
    font-size: 1.4em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title3 {
    font-size: 1.15em;
  }
  h3.app-title {
    font-size: 1.15em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title4 {
    font-size: 1em;
  }
  h4.app-title {
    font-size: 1em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title5 {
    font-size: 0.85em;
  }
  h5.app-title {
    font-size: 0.85em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 768px) {
  .font-size-title6 {
    font-size: 0.7em;
  }
  h6.app-title {
    font-size: 0.7em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title1 {
    font-size: 1.9em;
  }
  h1.app-title {
    font-size: 1.9em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title2 {
    font-size: 1.45em;
  }
  h2.app-title {
    font-size: 1.45em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title3 {
    font-size: 1.3em;
  }
  h3.app-title {
    font-size: 1.3em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title4 {
    font-size: 1.15em;
  }
  h4.app-title {
    font-size: 1.15em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title5 {
    font-size: 0.75em;
  }
  h5.app-title {
    font-size: 0.75em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 576px) {
  .font-size-title6 {
    font-size: 0.6em;
  }
  h6.app-title {
    font-size: 0.6em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title1 {
    font-size: 1.8em;
  }
  h1.app-title {
    font-size: 1.8em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title2 {
    font-size: 1.35em;
  }
  h2.app-title {
    font-size: 1.35em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title3 {
    font-size: 1.25em;
  }
  h3.app-title {
    font-size: 1.25em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title4 {
    font-size: 1.1em;
  }
  h4.app-title {
    font-size: 1.1em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title5 {
    font-size: 0.75em;
  }
  h5.app-title {
    font-size: 0.75em;
    margin-bottom: 0em;
  }
}

@media screen and (max-width: 380px) {
  .font-size-title6 {
    font-size: 0.6em;
  }
  h6.app-title {
    font-size: 0.6em;
    margin-bottom: 0em;
  }
}

h1.app-title,
h2.app-title {
  font-family: var(--app-font-title);
  font-weight: normal;
}

.half-transparent {
  opacity: 0.5;
}

header {
  height: 105px;
}

@media (max-width: 992px) {
  header {
    height: 80px;
  }
}

/* Image containers */
.image-box {
  position: relative;
  overflow: hidden;
}

.image-box img {
  width: 100%;
}

.image-box-absolute {
  position: absolute;
}

.image-box-absolute img {
  width: 100%;
}

main {
  margin: 0 auto;
  margin-top: 85px;
  width: 100%;
}

@media screen and (max-width: 992px) {
  main {
    margin: 80px 0 1em 0;
  }
}

@media screen and (max-width: 576px) {
  main {
    font-size: 0.9em;
  }
}

main form {
  width: 80%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}

@media (max-width: 991px) {
  main form {
    width: 100%;
  }
}

main form fieldset {
  background-color: var(--app-color-white);
  font-family: var(--app-font-montserrat_light);
  font-style: italic;
  line-height: 0.8;
  width: 100%;
}

main form fieldset .correct {
  border-bottom-color: var(--app-color-lightgreen) !important;
}

main form fieldset select.correct {
  border-bottom-color: var(--app-color-lightblue) !important;
}

main form fieldset .incorrect {
  border-bottom-color: var(--app-color-red) !important;
}

main form fieldset label {
  position: relative;
  width: 49.5%;
  color: var(--app-color-default);
  margin: 1em 0;
}

@media (max-width: 992px) {
  main form fieldset label {
    font-size: 1.1em;
    width: 100%;
  }
}

main form fieldset label .legend {
  padding-left: 0.25em;
  position: absolute;
  background: transparent;
  bottom: 6px;
  left: 0;
}

@media (max-width: 576px) {
  main form fieldset label .legend {
    bottom: 15px;
  }
}

main form fieldset label .legend .is-mandatory {
  /* Indicateur champ obligatoire */
  color: red;
}

main form fieldset label[for="courriel"], main form fieldset label[for="object"] {
  width: 100%;
}

main form fieldset label input {
  position: relative;
  left: 0;
  top: 0;
  background: transparent;
  z-index: 1;
  color: var(--app-color-default);
}

main form fieldset label input ~ .legend {
  z-index: 0;
}

main form fieldset label input[type="email"], main form fieldset label input[type="tel"], main form fieldset label input[type="text"], main form fieldset label input[type="number"] {
  border: none;
  border-bottom: solid 1px var(--app-color-default);
  width: 100%;
}

main form fieldset label input.full {
  border-bottom: solid 2px var(--app-color-lightblue);
}

main form fieldset label input:focus {
  outline: none;
}

main form fieldset label input:focus ~ .legend,
main form fieldset label input ~ .legend.full {
  top: -1.25em;
  font-size: 0.85em;
  opacity: 0.5;
}

main form fieldset label[type="submit"] {
  border: 0;
  background-color: var(--app-color-var(--app-color-deepblue));
  color: var(--app-color-var(--app-color-yellow));
  display: inline-flex;
  align-items: center;
  font-weight: normal;
  font-family: var(--app-font-montserrat_bold);
  text-transform: uppercase;
  z-index: 6;
  margin-left: auto;
  width: 100px;
}

main form fieldset label[type="submit"]:hover {
  cursor: pointer;
}

@media (max-width: 576px) {
  main form fieldset label[type="submit"]:nth-child(2) {
    margin: 1em 0;
  }
}

@media (min-width: 577px) {
  main form fieldset label[type="submit"] {
    margin: 0 0.5em;
  }
}

main form fieldset label[for="freeText"] {
  width: 100%;
  margin: 1em 0 0 0;
}

main form fieldset label[for="freeText"] textarea {
  position: relative;
  left: 0;
  top: 0;
  background: transparent;
  border: solid 1px var(--app-color-default);
  color: var(--app-color-default);
  width: 100%;
  resize: none;
  z-index: 1;
  padding-top: 0.5em;
  padding-bottom: 2em;
  padding-left: 0.25em;
}

main form fieldset label[for="freeText"] textarea:focus {
  outline: none;
}

main form fieldset label[for="freeText"] textarea ~ .legend {
  top: 0.5em;
  z-index: 0;
}

main form fieldset label[for="freeText"] textarea:focus ~ .legend,
main form fieldset label[for="freeText"] textarea ~ .legend.full {
  top: -1.85em;
  left: 0;
  font-size: 0.85em;
  opacity: 0.5;
}

main form fieldset label[for="freeText"] textarea.full {
  border: solid 2px var(--app-color-lightblue);
}

main form fieldset label[for="villes"] {
  margin: 1em 0 1em 0;
}

main form fieldset label[for="villes"] select {
  padding-top: 0.7em;
  padding-bottom: 0.7em;
  -webkit-appearance: button;
  -moz-appearance: button;
  -webkit-user-select: none;
  -moz-user-select: none;
  -webkit-padding-end: 20px;
  -moz-padding-end: 20px;
  -webkit-padding-start: 2px;
  -moz-padding-start: 2px;
  background-color: transparent;
  /* Fallback color if gradients are not supported */
  background-position: center right;
  background-repeat: no-repeat;
  border: 1px solid var(--app-color-default);
  width: 100%;
  box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
  color: var(--app-color-default);
  font-size: inherit;
  overflow: hidden;
  padding-left: 1.45em;
  text-overflow: ellipsis;
  white-space: nowrap;
  position: relative;
  z-index: 3;
  font: var(--app-font-default);
}

main form fieldset label[for="villes"] select:focus {
  outline: none;
}

main form fieldset label[for="villes"] select::selection:hover {
  background: var(--app-color-default);
}

main form fieldset label[for="villes"] select.full {
  border: solid 2px var(--app-color-lightblue);
}

main form fieldset label[for="villes"] select ~ .legend {
  top: 0.7em;
  left: 1.25em;
  z-index: 0;
}

@-moz-document url-prefix() {
  main form fieldset label[for="villes"] select ~ .legend {
    top: 0.7em;
  }
}

main form fieldset label[for="villes"] select ~ .legend ~ .arrow:before {
  font-style: normal;
  font-family: "Icomoon";
  content: "\f0da";
}

main form fieldset label[for="villes"] select:active ~ .legend,
main form fieldset label[for="villes"] select ~ .legend.full {
  top: -1.25em;
  left: 0;
  font-size: 0.85em;
  opacity: 0.5;
}

main form fieldset label[for="villes"] select ~ .arrow {
  position: absolute;
  top: 0.7em;
  left: 0.75em;
  background: transparent;
}

@-moz-document url-prefix() {
  main form fieldset label[for="villes"] select ~ .arrow {
    top: 0.7em;
  }
}

main form fieldset label[for="villes"] select:focus ~ .legend ~ .arrow:before {
  font-family: "Icomoon";
  content: "\f0d7";
}

main form fieldset label[for="villes"] select .legend.full ~ .arrow:before {
  font-family: "Icomoon";
  content: "\f0da";
}

main form fieldset * {
  background-color: transparent;
}

main form label[for="envoyer"] {
  display: flex;
  justify-content: flex-end;
  padding-top: 0;
}

main form label[for="envoyer"] input[type="submit"] {
  position: relative;
  border: 2px solid var(--app-color-deepblue);
  padding: 0.5em 2em;
  background: var(--app-color-default);
  color: var(--app-color-yellow);
  font-weight: bold;
  text-transform: uppercase;
  font-family: var(--app-font-montserrat);
}

main form label[for="envoyer"] input[type="submit"]:hover {
  background-color: var(--app-color-yellow);
  color: var(--app-color-deepblue) !important;
}

main .illustration {
  max-height: 65vh;
  overflow: hidden;
}

main .illustration img {
  width: 100%;
}

@media (min-width: 992px) and (max-height: 750px) {
  main .illustration {
    max-height: 90vh;
  }
}

main .testimony .row {
  margin-left: 0;
  margin-right: 0;
}

main .testimony .row .card.col-4 {
  flex: 0 0 32%;
  max-width: 32%;
}

main .testimony .row .card .card-img-top {
  top: 24px;
}

main .testimony .row .card .card-img-top img {
  max-width: 100%;
}

main .testimony .row .card .body-img {
  width: 80px;
  padding-left: 0.2em;
  padding-top: 0.3em;
  float: left;
  padding-right: 0.3em;
}

.recruits [class*="textbox"] {
  cursor: pointer;
}

.ruled {
  /*
    Add a rule (thin horizontal line) to the element. Useful for color textboxes.
  */
  position: relative;
  z-index: 4;
  cursor: unset !important;
}

.ruled [class*="textbox"] {
  cursor: unset !important;
}

.ruled::before {
  position: absolute;
  content: "";
  background-color: var(--app-color-deepblue);
  width: 100%;
  height: 1px;
  top: 50%;
  left: 0;
  z-index: 1;
}

.anchor {
  position: relative;
  top: -200px;
  visibility: hidden;
}

@media (max-width: 992px) {
  .anchor {
    top: -100px;
  }
}

#rgpd {
  position: fixed;
  bottom: 0;
  left: 0;
  min-height: 100px;
  width: 100%;
  z-index: 1000;
  /* background-color: white; */
}

#rgpd .cookies {
  padding: 1em 50px;
}

#rgpd button {
  /*   border: 2px solid var(--app-color-white);
  border-radius: 15px;
  color: var(--app-color-gray); */
  display: inline-block;
  text-align: center;
  margin-bottom: 0.5em;
  margin-top: 0.5em;
  padding: 10px;
  text-align: center;
  text-decoration: none;
  min-width: 150px;
}

@media (max-width: 991px) {
  #rgpd .made-codephenix {
    text-align: left;
  }
  #rgpd .cookies > div {
    margin-left: 0;
    margin-right: 0;
  }
  #rgpd button {
    max-width: unset;
  }
}

button:disabled {
  cursor: not-allowed !important;
  pointer-events: all !important;
}

/*# sourceMappingURL=common.css.map */