body {
  padding: 0;
  margin: 0; }

ul, ol {
  margin: 0;
  padding: 0;
  list-style: none; }

.the-content ul {
  padding: 0;
  margin: 0 0 20px;
  list-style: none; }
  .the-content ul li {
    padding-left: 1.5em;
    margin-bottom: 5px;
    list-style: none;
    position: relative; }
    .the-content ul li:before {
      content: '•';
      font-size: 25px;
      position: absolute;
      left: 0;
      top: 0; }
    .the-content ul li ul li:before {
      content: '○';
      font-size: 16px; }
  .the-content ol {
    padding: 0;
    margin: 0 0 20px;
    counter-reset: top-level-ol-counter;
    list-style: none; }
  .the-content ol > li {
    padding-left: 1.5em;
    margin-bottom: 5px;
    list-style: none;
    counter-increment: top-level-ol-counter;
    position: relative; }
    .the-content ol > li:before {
      content: counter(top-level-ol-counter);
      position: absolute;
      top: 0;
      left: 0; }
    .the-content ol > li ol {
      padding-top: 10px;
      padding-bottom: 0;
      counter-reset: child-level-ol-counter; }
    .the-content ol > li li {
      padding-left: 1.5em;
      position: relative;
      counter-increment: child-level-ol-counter; }
      .the-content ol > li li:before {
        content: counter(child-level-ol-counter,lower-roman); }
  .the-content .gallery {
    padding: 40px 0; }

.gfield.gform_validation_container {
  display: none; }
  .gfield.gfield_error input, .gfield.gfield_error textarea {
    color: darkred; }
  .gfield input, .gfield textarea {
    border: 0; }

.gform_confirmation_message {
  color: darkgreen; }

h1, h2, h3, h4, h5, h6, p {
  margin: 0; }

.alignright {
  float: right; }

.aligncenter {
  margin: 0 auto;
  display: block; }

.alignleft {
  float: left; }

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

.text-left {
  text-align: left; }

.text-right {
  text-align: right; }

.bold, strong, b {
  font-weight: bold; }

.undo-ul {
  padding: 0;
  margin: 0;
  list-style: none;
  list-style-type: none; }

.undo-li {
  margin-bottom: 0;
  list-style: none;
  list-style-type: none; }

.undo-p {
  margin: 0; }
/*a {
 outline: 0;
 text-decoration: none;
 }
 a:visited {
 outline: 0;
 color: inherit;
 text-decoration: none;
 }
 a:focus {
 outline: 0;
 color: inherit;
 text-decoration: none;
 }
 a:active {
 outline: 0;
 color: inherit;
 text-decoration: none;
 }
 a:hover {
 text-decoration: none;
 }*/
a {
  text-decoration: none; }
/*a:link {
 color: inherit;
 }
 a:visited {
 color: inherit;
 }*/
img {
  max-width: 100%;
  height: auto; }

svg {
  max-height: 100%; }

.clearfix:after, .cf:after {
  content: "";
  visibility: hidden;
  display: block;
  height: 0;
  clear: both; }

.flat-left {
  padding-left: 0; }

.flat-right {
  padding-right: 0; }

.flat-both {
  padding-left: 0;
  padding-right: 0; }

.flat-top {
  padding-top: 0; }

.flat-bottom {
  padding-bottom: 0; }

.flat-vertical {
  padding-top: 0;
  padding-bottom: 0; }

.flat-all {
  padding: 0; }

.fleft {
  float: left; }

.fright {
  float: right; }

.float-none {
  float: none !important; }

.mfp-arrow::after, .mfp-arrow::before {
  display: none !important; }

.mfp-arrow-right {
  background: url("../fw/core/assets/images/chevron-right.svg") no-repeat center center !important;
  background-size: 30px 30px !important; }

.mfp-arrow-left {
  background: url("../fw/core/assets/images/chevron-left.svg") no-repeat center center !important;
  background-size: 30px 30px !important; }

.r {
  display: flex;
  flex-wrap: wrap; }

.gallery-columns-1 dl {
  width: 100%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-2 dl {
  width: 50%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-3 dl {
  width: 33.3333333333%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-4 dl {
  width: 25%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-5 dl {
  width: 20%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-6 dl {
  width: 16.6666666667%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-7 dl {
  width: 14.2857142857%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-8 dl {
  width: 12.5%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

.gallery-columns-9 dl {
  width: 11.1111111111%;
  display: inline-block;
  vertical-align: middle;
  text-align: center; }

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

body {
  padding-top: 144px;
  font: 16px 'transat-text', sans-serif; }
  body.mobile-menu-open {
    overflow: hidden; }
  body.mobile-menu-open #mobile-nav {
    display: block; }
  body.mobile-menu-open .mobile-menu-btn .ham {
    display: none !important; }
    body.mobile-menu-open .mobile-menu-btn .x {
      display: block !important; }
  body.single-service footer {
    background: white; }

header {
  height: 144px;
  padding: 0 50px;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  justify-content: space-between;
  background: white;
  z-index: 100; }
  header > div {
    display: flex;
    align-items: center; }
  header .logo img {
    width: 300px; }
  header nav {
    height: 100%; }
  header nav ul {
    height: 100%;
    display: flex;
    align-items: center; }
  header nav li {
    margin-right: 30px;
    position: relative; }
    header nav li:last-of-type {
      margin-right: 0; }
    header nav li.current_page_item a {
      color: #bd2f2c; }
    header nav li:hover .sub-menu {
      display: block; }
    header nav li a {
      font: 800 20px 'transat-text', sans-serif;
      color: black;
      transition: color 200ms; }
      header nav li a:hover {
        color: #bd2f2c; }
    header nav li .sub-menu {
      width: 270px;
      height: auto;
      padding: 15px;
      border-radius: 4px;
      position: absolute;
      top: 100%;
      left: 0;
      right: 0;
      display: flex;
      flex-wrap: wrap;
      box-shadow: 0 0 12px -2px #eaeaea;
      background: white;
      display: none;
      z-index: 90; }
      header nav li .sub-menu li {
        width: 100%;
        margin-bottom: 15px; }
        header nav li .sub-menu li a {
          font: 600 16px 'transat-text', sans-serif; }
          header nav li .sub-menu li a:hover {
            text-decoration: underline; }
  header .right {
    justify-content: flex-end; }
  header .header-contact {
    width: 220px;
    display: flex;
    flex-wrap: wrap; }
  header .header-contact span {
    width: 100%;
    justify-content: flex-end;
    text-align: right; }
    header .header-contact span a {
      font: 600 16px 'transat-text', sans-serif;
      color: black; }
  header .header-contact .email a {
    font-size: 15px; }
  header .header-contact .tel a {
    font-size: 25px; }
  header .mobile-menu-btn {
    width: 30px;
    height: 30px;
    cursor: pointer;
    display: none; }
  header .mobile-menu-btn .x {
    display: none; }

.wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 15px; }

.wrap-s {
  max-width: 675px;
  margin: 0 auto;
  padding: 0 15px; }

.btn, header nav li.bouton a, #mobile-nav nav li.bouton a, .formy input[type="submit"], .formy button[type="submit"] {
  padding: 14px 20px;
  display: inline-block;
  font: 600 18px 'transat-text', sans-serif;
  color: white;
  border-radius: 4px;
  background: #bd2f2c;
  transition: background-color 200ms; }
  .btn:hover, header nav li.bouton a:hover, #mobile-nav nav li.bouton a:hover, .formy input[type="submit"]:hover, .formy button[type="submit"]:hover {
    background: #942522; }
  .btn.white, header nav li.bouton a.white, #mobile-nav nav li.bouton a.white, .formy input[type="submit"].white, .formy button[type="submit"].white {
    background: transparent;
    border: 1px solid white; }
  .btn.white.solid, header nav li.bouton a.white.solid, #mobile-nav nav li.bouton a.white.solid, .formy input[type="submit"].white.solid, .formy button[type="submit"].white.solid {
    color: #bd2f2c;
    background: white; }
  .btn.black, header nav li.bouton a.black, #mobile-nav nav li.bouton a.black, .formy input[type="submit"].black, .formy button[type="submit"].black {
    color: white;
    background: black; }
  .btn.black:hover, header nav li.bouton a.black:hover, #mobile-nav nav li.bouton a.black:hover, .formy input[type="submit"].black:hover, .formy button[type="submit"].black:hover {
    background: #1a1a1a; }

.link {
  font: 800 16px 'transat-text', sans-serif;
  color: #bd2f2c; }
  .link:hover {
    text-decoration: underline; }

h1 {
  margin-bottom: 30px;
  font: 800 60px 'transat-text', sans-serif; }

h2 {
  margin-bottom: 30px;
  font: 800 38px 'transat-text', sans-serif; }

h3 {
  margin-bottom: 30px;
  font: 800 28px 'transat-text', sans-serif; }

.wow {
  visibility: hidden; }

.the-content .btn-box {
  display: inline-block;
  margin-right: 20px; }
  .the-content p {
    margin-bottom: 20px;
    font: 18px/1.6em 'transat-text', sans-serif;
    color: #545454; }
  .the-content a {
    color: #bd2f2c; }
  .the-content a:link {
    color: #bd2f2c; }

#flex .flex-banner {
  padding: 50px 200px;
  height: calc(100vh - 144px);
  position: relative;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center; }
  #flex .flex-banner h1, #flex .flex-banner h2, #flex .flex-banner h3, #flex .flex-banner h4, #flex .flex-banner h5, #flex .flex-banner h6, #flex .flex-banner p, #flex .flex-banner li, #flex .flex-banner a {
    color: white; }
  #flex .flex-services {
    padding: 130px 0; }
  #flex .flex-services h2 {
    margin-bottom: 100px;
    text-align: center; }
  #flex .flex-services .service-list {
    display: flex; }
  #flex .flex-services .service-item {
    width: 33.3333%;
    padding: 0 10px; }
    #flex .flex-services .service-item .icon {
      margin-bottom: 20px;
      text-align: center; }
      #flex .flex-services .service-item .icon img {
        width: 85px; }
    #flex .flex-services .service-item h3 {
      text-align: center; }
    #flex .flex-services .service-item .the-content {
      margin-bottom: 20px;
      text-align: center; }
    #flex .flex-services .service-item .linkbox {
      text-align: center; }
  #flex .flex-services .btn-outer {
    padding-top: 50px;
    text-align: center; }
  #flex .flex-text {
    padding: 150px 0; }
  #flex .flex-services-list {
    padding: 150px 0;
    background-color: #f0f0f0; }
  #flex .flex-c2a {
    padding: 115px 0;
    background: #bd2f2c; }
  #flex .flex-c2a h1, #flex .flex-c2a h2, #flex .flex-c2a h3, #flex .flex-c2a h4, #flex .flex-c2a h5, #flex .flex-c2a h6, #flex .flex-c2a p, #flex .flex-c2a li {
    color: white !important; }
  #flex .flex-c2a .controls {
    text-align: center; }
  #flex .flex-left-text-right-image {
    position: relative; }
  #flex .flex-left-text-right-image .the-content {
    width: 50%;
    padding: 100px; }
  #flex .flex-left-text-right-image .image {
    position: absolute;
    top: 0;
    left: 50%;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat; }
  #flex .flex-icon-blocks {
    padding: 150px 15px;
    background: #f0f0f0; }
  #flex .flex-icon-blocks .block-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; }
  #flex .flex-icon-blocks .block {
    width: 33.3333%;
    margin-bottom: 50px;
    padding: 0 15px; }
    #flex .flex-icon-blocks .block .icon {
      margin-bottom: 30px;
      text-align: center; }
      #flex .flex-icon-blocks .block .icon img {
        height: 67px; }
    #flex .flex-icon-blocks .block .name {
      display: flex;
      justify-content: center;
      align-items: center;
      text-align: center; }
    #flex .flex-icon-blocks .block .the-content {
      text-align: center; }
  #flex .flex-icon-blocks .controls {
    text-align: center; }
  #flex .flex-red-boxes {
    padding: 150px 15px; }
  #flex .flex-red-boxes .title {
    text-align: center; }
  #flex .flex-red-boxes .box-list {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -15px; }
  #flex .flex-red-boxes .controls {
    text-align: center; }
  #flex .flex-red-boxes .red-box {
    width: calc(50% - 30px);
    padding: 20px;
    height: 275px;
    margin: 0 15px 30px;
    position: relative;
    display: flex;
    align-items: center;
    border-radius: 4px;
    justify-content: center;
    overflow: hidden; }
    #flex .flex-red-boxes .red-box:hover .bg {
      transform: scale(1.1); }
    #flex .flex-red-boxes .red-box:after {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1;
      background: rgba(189, 47, 44, 0.8); }
    #flex .flex-red-boxes .red-box .bg {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 1;
      transition: all 300ms;
      background-size: cover;
      background-repeat: no-repeat;
      background-position: center center; }
    #flex .flex-red-boxes .red-box .name {
      margin-bottom: 0;
      font: 800 24px 'transat-text', sans-serif;
      color: white;
      position: relative;
      z-index: 2;
      text-align: center; }
    #flex .flex-red-boxes .red-box a {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      z-index: 3; }

.service-cat-name {
  padding-left: 15px;
  margin-bottom: 30px;
  display: flex;
  align-items: center; }
  .service-cat-name img {
    width: 60px;
    margin-right: 10px; }

.service-boxes {
  margin-bottom: 50px;
  display: flex;
  flex-wrap: wrap; }
  .service-boxes:last-of-type {
    margin-bottom: 0; }
  .service-boxes .service-box {
    width: 326px;
    height: 275px;
    margin: 0 15px 30px;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden; }
  .service-boxes .service-box:hover .bg {
    transform: scale(1.1); }
  .service-boxes .service-box:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    background: rgba(189, 47, 44, 0.8); }
  .service-boxes .service-box .bg {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
    transition: all 300ms;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center; }
  .service-boxes .service-box .name {
    margin-bottom: 0;
    font: 800 24px 'transat-text', sans-serif;
    color: white;
    position: relative;
    z-index: 2;
    text-align: center; }
  .service-boxes .service-box a {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3; }

footer {
  padding: 100px 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #f0f0f0; }
  footer.white {
    background: white; }
  footer.grey {
    background: #f0f0f0; }
  footer > div {
    height: 100%;
    display: flex;
    align-items: center; }
  footer .copyright {
    font: 800 18px 'transat-text', sans-serif;
    color: black; }

#mobile-nav {
  position: fixed;
  padding: 20px 15px;
  top: 60px;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: white;
  z-index: 95;
  display: none; }
  #mobile-nav nav li {
    margin-bottom: 20px; }
    #mobile-nav nav li.current_page_item a {
      color: #bd2f2c; }
    #mobile-nav nav li a {
      font: 800 22px 'transat-text', sans-serif;
      color: black; }
    #mobile-nav nav li .sub-menu {
      padding-top: 20px; }
      #mobile-nav nav li .sub-menu li {
        margin-bottom: 10px;
        padding-left: 10px; }
        #mobile-nav nav li .sub-menu li a {
          font: 600 14px 'transat-text', sans-serif;
          color: black; }

._404 {
  padding: 150px 0; }
  ._404 .the-content {
    margin-bottom: 30px; }

#single-service .service-banner {
  height: 445px;
  margin-bottom: 100px;
  justify-content: center;
  display: flex;
  align-items: center;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover; }
  #single-service .service-banner h1 {
    color: white; }
  #single-service .main-desc {
    margin-bottom: 100px; }
  #single-service .gallery {
    margin-bottom: 150px;
    display: flex;
    flex-wrap: wrap; }
  #single-service .gallery .image {
    width: calc(50% - 20px);
    margin: 0 10px 20px;
    padding-top: 25%;
    border-radius: 4px;
    position: relative;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover; }
    #single-service .gallery .image a {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0; }
  #single-service .related {
    padding: 150px 15px;
    background: #f0f0f0; }

.formy {
  margin-bottom: 150px; }
  .formy .gform_title {
    text-align: center; }
  .formy .gform_footer {
    text-align: center; }
  .formy .gfield {
    width: 100%;
    padding: 0 10px;
    margin-bottom: 20px; }
  .formy .gfield.gauche, .formy .gfield.droite {
    width: 50%;
    float: left; }
  .formy .ginput_container {
    width: 100%; }
  .formy label {
    display: none; }
  .formy input, .formy textarea {
    width: 100%;
    padding: 20px;
    border: 1px solid black;
    border-radius: 4px;
    font: 800 16px 'transat-text', sans-serif;
    color: black; }
  .formy input:focus, .formy textarea:focus {
    outline: none; }
  .formy input[type="submit"], .formy button[type="submit"] {
    width: auto !important;
    border: none; }
  .formy .gfield_radio {
    display: flex;
    justify-content: center; }
  .formy .gfield_radio input {
    display: none; }
    .formy .gfield_radio input:checked + label:after {
      content: '';
      width: 14px;
      height: 14px;
      position: absolute;
      top: 2px;
      left: 8px;
      background: black;
      border-radius: 100%; }
  .formy .gfield_radio label {
    margin: 0 10px;
    padding-left: 40px;
    display: block;
    position: relative;
    font: 800 16px 'transat-text', sans-serif;
    color: black; }
    .formy .gfield_radio label:before {
      content: '';
      width: 30px;
      height: 30px;
      position: absolute;
      top: -6px;
      left: 0;
      border: 1px solid black;
      border-radius: 100%; }
  .formy .validation_message {
    padding: 5px;
    color: #bd2f2c; }
  .formy .validation_error {
    display: none; }
  .formy .gform_confirmation_message {
    font: 800 18px 'transat-text', sans-serif;
    color: green; }

@media (max-width: 1300px) {
  header .right {
    flex-wrap: wrap;
    align-content: center; }
    header .right .header-contact {
      width: 100%;
      order: 1; }
    header .right nav {
      height: auto;
      order: 2; }

  #flex .flex-banner {
    padding: 50px 100px; }
    #flex .flex-left-text-right-image .the-content {
      width: 60%; }
    #flex .flex-left-text-right-image .image {
      left: 60%; }

  h1 {
    font-size: 48px; } }

@media (max-width: 1000px) {
  header nav {
    display: none; }
    header .mobile-menu-btn {
      display: block; }

  h1 {
    font-size: 40px; }

  #flex .flex-left-text-right-image {
    display: flex;
    flex-wrap: wrap; }
    #flex .flex-left-text-right-image .the-content {
      width: 100%;
      padding-left: 15px;
      padding-right: 15px;
      order: 2; }
    #flex .flex-left-text-right-image .image {
      width: 100%;
      height: 600px;
      position: static;
      order: 1;
      background-position: center 17%; } }

@media (max-width: 767px) {
  h1 {
    font-size: 30px; }

  h2 {
    font-size: 24px; }

  body {
    padding-top: 60px; }

  header {
    height: 60px;
    padding: 15px 15px; }
    header .logo img {
      max-width: 120px; }
    header .right {
      flex-wrap: nowrap; }
      header .right .header-contact {
        order: 1;
        padding-right: 15px; }
        header .right .header-contact .email a {
          font-size: 12px; }
        header .right .header-contact .tel a {
          font-size: 16px; }
      header .right .mobile-menu-btn {
        order: 2; }

  #flex .flex-banner {
    padding: 30px 15px; }
    #flex .flex-services {
      padding: 50px 15px; }
      #flex .flex-services .service-list {
        flex-wrap: wrap; }
        #flex .flex-services .service-list .service-item {
          width: 100%;
          margin-bottom: 50px; }
          #flex .flex-services .service-list .service-item:last-of-type {
            margin-bottom: 0; }
    #flex .flex-text {
      padding: 50px 15px; }
    #flex .flex-red-boxes {
      padding: 50px 15px; }
      #flex .flex-red-boxes .red-box {
        width: 100%;
        height: 200px; }
    #flex .flex-icon-blocks {
      padding: 50px 15px; }
      #flex .flex-icon-blocks .block {
        width: 100%; }
    #flex .flex-left-text-right-image .the-content {
      padding-top: 30px; }
      #flex .flex-left-text-right-image .image {
        height: 400px; }

  .the-content .btn-box {
    width: 100%;
    margin-bottom: 10px;
    display: block; }

  footer {
    padding: 30px 15px;
    flex-wrap: wrap; }
    footer > div {
      width: 100%;
      text-align: center;
      justify-content: center; }
    footer .copyright {
      font-size: 11px;
      margin-bottom: 20px; }

  #single-service .service-banner {
    height: 200px;
    margin-bottom: 30px; }
    #single-service .main-desc {
      margin-bottom: 30px; }
    #single-service .gallery {
      margin-bottom: 30px; }
      #single-service .gallery .image {
        margin: 0 5px;
        margin-bottom: 10px; }
    #single-service .related {
      padding: 30px 15px; }

  .formy .gfield {
    width: 100% !important; }
    .formy .gfield_radio {
      flex-wrap: wrap; }
      .formy .gfield_radio li {
        width: 100%;
        margin-bottom: 20px; } }
