/* ---------------------------------------------------------------------------- */
/* Imports */
/* ---------------------------------------------------------------------------- */
@media (min-width: 0) {
  .display-xs-block {
    display: block;
  }
}
@media (min-width: 576px) {
  .display-sm-block {
    display: block;
  }
}
@media (min-width: 768px) {
  .display-md-block {
    display: block;
  }
}
@media (min-width: 992px) {
  .display-lg-block {
    display: block;
  }
}
@media (min-width: 1200px) {
  .display-xl-block {
    display: block;
  }
}
@media (min-width: 1400px) {
  .display-xxl-block {
    display: block;
  }
}
@media (min-width: 0) {
  .display-xs-none {
    display: none;
  }
}
@media (min-width: 576px) {
  .display-sm-none {
    display: none;
  }
}
@media (min-width: 768px) {
  .display-md-none {
    display: none;
  }
}
@media (min-width: 992px) {
  .display-lg-none {
    display: none;
  }
}
@media (min-width: 1200px) {
  .display-xl-none {
    display: none;
  }
}
@media (min-width: 1400px) {
  .display-xxl-none {
    display: none;
  }
}
@media (min-width: 0) {
  .display-xs-flex {
    display: flex;
  }
}
@media (min-width: 576px) {
  .display-sm-flex {
    display: flex;
  }
}
@media (min-width: 768px) {
  .display-md-flex {
    display: flex;
  }
}
@media (min-width: 992px) {
  .display-lg-flex {
    display: flex;
  }
}
@media (min-width: 1200px) {
  .display-xl-flex {
    display: flex;
  }
}
@media (min-width: 1400px) {
  .display-xxl-flex {
    display: flex;
  }
}
@media (min-width: 768px) {
  .justify-content-md-start {
    justify-content: start;
  }
}
@media (min-width: 992px) {
  .justify-content-lg-start {
    justify-content: start;
  }
}
@media (min-width: 768px) {
  .justify-content-md-end {
    justify-content: end;
  }
}
@media (min-width: 992px) {
  .justify-content-lg-end {
    justify-content: end;
  }
}
.col-holder--100 {
  width: 100%;
}

.col-holder--55 {
  width: 55%;
}

.col-holder--45 {
  width: 45%;
}

.spacer-8-bottom {
  padding-bottom: clamp(4px, 0.4166666667vw, 8px);
}

.spacer-8-top {
  padding-top: clamp(4px, 0.4166666667vw, 8px);
}

.spacer-8-y {
  padding-top: clamp(4px, 0.4166666667vw, 8px);
  padding-bottom: clamp(4px, 0.4166666667vw, 8px);
}

.spacer-16-bottom {
  padding-bottom: clamp(12px, 0.8333333333vw, 16px);
}

.spacer-16-top {
  padding-top: clamp(12px, 0.8333333333vw, 16px);
}

.spacer-16-y {
  padding-top: clamp(12px, 0.8333333333vw, 16px);
  padding-bottom: clamp(12px, 0.8333333333vw, 16px);
}

.spacer-24-bottom {
  padding-bottom: clamp(16px, 1.25vw, 24px);
}

.spacer-24-top {
  padding-top: clamp(16px, 1.25vw, 24px);
}

.spacer-24-y {
  padding-top: clamp(16px, 1.25vw, 24px);
  padding-bottom: clamp(16px, 1.25vw, 24px);
}

.spacer-32-bottom {
  padding-bottom: clamp(16px, 1.6666666667vw, 32px);
}

.spacer-32-top {
  padding-top: clamp(16px, 1.6666666667vw, 32px);
}

.spacer-32-y {
  padding-top: clamp(16px, 1.6666666667vw, 32px);
  padding-bottom: clamp(16px, 1.6666666667vw, 32px);
}

.spacer-48-bottom {
  padding-bottom: clamp(32px, 2.5vw, 48px);
}

.spacer-48-top {
  padding-top: clamp(32px, 2.5vw, 48px);
}

.spacer-48-y {
  padding-top: clamp(32px, 2.5vw, 48px);
  padding-bottom: clamp(32px, 2.5vw, 48px);
}

.spacer-64-bottom {
  padding-bottom: clamp(40px, 3.3333333333vw, 64px);
}

.spacer-64-top {
  padding-top: clamp(40px, 3.3333333333vw, 64px);
}

.spacer-64-y {
  padding-top: clamp(40px, 3.3333333333vw, 64px);
  padding-bottom: clamp(40px, 3.3333333333vw, 64px);
}

.spacer-80-bottom {
  padding-bottom: clamp(48px, 4.1666666667vw, 80px);
}

.spacer-80-top {
  padding-top: clamp(48px, 4.1666666667vw, 80px);
}

.spacer-80-y {
  padding-top: clamp(48px, 4.1666666667vw, 80px);
  padding-bottom: clamp(48px, 4.1666666667vw, 80px);
}

.spacer-112-bottom {
  padding-bottom: clamp(64px, 5.8333333333vw, 112px);
}

.spacer-112-top {
  padding-top: clamp(64px, 5.8333333333vw, 112px);
}

.spacer-112-y {
  padding-top: clamp(64px, 5.8333333333vw, 112px);
  padding-bottom: clamp(64px, 5.8333333333vw, 112px);
}

:root {
  --color-red: #CE0E2D;
  --color-light-grey: #E6E6E6;
  --color-white: #ffffff;
  --color-dark-grey: #070404;
  --color-black: #000000;
  --color-main: var(--color-dark-grey);
  --color-secondary: var(--color-red);
  --fw-thin: 100;
  --fw-extralight: 200;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;
  --fw-black: 900;
  --width-full: 100%;
  --width-container: 1360px;
  --width-large: 1170px;
  --width-medium: 780px;
  --width-small: 465px;
  --font-main: "Helvetica Neue LT Std", sans-serif;
  --font-secondary: "Akrobat", sans-serif;
}

/* ---------- Content text ---------- */
/* ---------- Base ---------- */
/* ---------- Breadcrumb ---------- */
/* ---------- Nav mobile ---------- */
/* ---------- Footer ---------- */
.style-h1,
h1 {
  font-size: clamp(38px, 3.3333333333vw, 64px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h1,
  h1 {
    line-height: 1.2;
  }
}

.style-h2,
h2 {
  font-size: clamp(32px, 2.9166666667vw, 56px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h2,
  h2 {
    line-height: 1.2;
  }
}

.style-h3,
h3 {
  font-size: clamp(28px, 2.5vw, 48px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h3,
  h3 {
    line-height: 1.2;
  }
}

.style-h4,
h4 {
  font-size: clamp(24px, 2.0833333333vw, 40px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h4,
  h4 {
    line-height: 1.2;
  }
}

.style-h5,
h5 {
  font-size: clamp(20px, 1.6666666667vw, 32px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h5,
  h5 {
    line-height: 1.2;
  }
}

.style-h6,
h6 {
  font-size: clamp(18px, 1.25vw, 24px);
  line-height: 1.2;
}
@media (min-width: 768px) {
  .style-h6,
  h6 {
    line-height: 1.2;
  }
}

.style-font-menu-mobile,
font-menu-mobile {
  font-size: clamp(24px, 1.4583333333svh, 28px);
  line-height: 1;
}
@media (min-width: 768px) {
  .style-font-menu-mobile,
  font-menu-mobile {
    line-height: 1;
  }
}

.style-font-24 {
  font-size: clamp(20px, 1.25vw, 24px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .style-font-24 {
    line-height: 1.5;
  }
}

.style-font-20 {
  font-size: clamp(18px, 1.0416666667vw, 20px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .style-font-20 {
    line-height: 1.5;
  }
}

.style-font-18, .suptitle {
  font-size: clamp(17px, 0.9375vw, 18px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .style-font-18, .suptitle {
    line-height: 1.5;
  }
}

.style-font-16 {
  font-size: clamp(15px, 0.8333333333vw, 16px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .style-font-16 {
    line-height: 1.5;
  }
}

.style-font-14 {
  font-size: clamp(14px, 0.7291666667vw, 14px);
  line-height: 1.5;
}
@media (min-width: 768px) {
  .style-font-14 {
    line-height: 1.5;
  }
}

/* Font Weight */
.fw-thin {
  font-weight: 100 !important;
}

.fw-extralight {
  font-weight: 200 !important;
}

.fw-light {
  font-weight: 300 !important;
}

.fw-regular {
  font-weight: 400 !important;
}

.fw-medium {
  font-weight: 500 !important;
}

.fw-semibold {
  font-weight: 600 !important;
}

.fw-bold {
  font-weight: 700 !important;
}

.fw-extrabold, .suptitle {
  font-weight: 800 !important;
}

.fw-black, h1, h2, h3, h4, h5, h6,
.style-h1, .style-h2, .style-h3, .style-h4, .style-h5, .style-h6 {
  font-weight: 900 !important;
}

/* Titles */
h1, h2, h3, h4, h5, h6,
.style-h1, .style-h2, .style-h3, .style-h4, .style-h5, .style-h6 {
  font-family: var(--font-secondary);
  text-transform: uppercase;
  letter-spacing: 0.09px;
}

.suptitle {
  font-family: var(--font-secondary);
  text-transform: uppercase;
  letter-spacing: 0.09px;
}

.style-font-main {
  font-family: var(--font-main);
}

.style-font-secondary {
  font-family: var(--font-secondary);
}

/* Paragraphes */
.style-p strong,
p strong {
  font-weight: 700;
}

b, strong {
  font-weight: bold;
}

i, em {
  font-style: italic;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sup {
  top: -0.4rem;
}

sub {
  bottom: -0.25rem;
}

.text-uppercase {
  text-transform: uppercase;
}

hr {
  margin: 16px 0;
  background: none;
  border: 0;
  border-top: 1px solid var(--color-secondary);
}

.content-text {
  /* ---------- Paragraphs ---------- */
  /* ---------- Separators ---------- */
  /* ---------- Blockquote ---------- */
  /* ---------- Lists ---------- */
  /* ---------- Images ---------- */
}
.content-text > *:first-child {
  margin-top: 0;
}
.content-text > *:last-child {
  margin-bottom: 0;
}
.content-text p {
  margin-top: 25px;
}
.content-text p strong {
  font-weight: 700;
}
.content-text p + *:not(p):not(.wp-caption) {
  margin-top: 25px;
}
.content-text p:last-of-type {
  margin-bottom: 0 !important;
}
.content-text p img {
  margin-top: 25px;
}
.content-text p a {
  font-weight: 700;
  text-decoration: underline;
  transition: color 0.3s ease;
}
.content-text p a:hover {
  color: var(--color-secondary);
}
.content-text hr {
  height: 1px;
  display: block;
  margin-top: 45px !important;
  margin-bottom: 45px;
  background: var(--color-main);
  border: none;
  clear: both;
}
.content-text blockquote {
  padding: 1.5rem;
  border-left: 4px solid var(--color-secondary);
  background: rgba(0, 0, 0, 0.1);
}
.content-text blockquote p:first-child {
  margin-top: 0;
}
.content-text ul {
  list-style: disc;
}
.content-text ul ul {
  list-style: circle;
  margin-top: 8px;
}
.content-text ol {
  list-style: decimal;
}
.content-text ol ul {
  list-style: circle;
  margin-top: 8px;
}
.content-text ul,
.content-text ol {
  padding-left: 20px;
  margin-top: 25px;
  margin-bottom: 25px;
}
.content-text ul li,
.content-text ol li {
  line-height: 1.6;
}
.content-text ul li + li,
.content-text ol li + li {
  margin-top: 8px;
}
.content-text img {
  border-radius: 2px;
}
.content-text .alignleft {
  float: left;
  max-width: 45%;
  margin: 5px 35px 15px 0;
}
.content-text .alignleft.wp-caption {
  margin-right: 2rem;
}
.content-text .alignright {
  float: right;
  max-width: 45%;
  margin: 5px 0 15px 35px;
}
.content-text .alignright.wp-caption {
  margin-left: 2rem;
}
.content-text .aligncenter {
  padding: 10px 0;
  margin: 0 auto 2rem;
  clear: both;
}
.content-text .aligncenter.wp-caption {
  max-width: 100%;
}
.content-text .wp-caption {
  margin-bottom: 25px;
}
.content-text .wp-caption p {
  color: #888;
  font: italic 12px/16px var(--font-main);
  text-align: center;
  padding: 0 5px;
  margin: 10px 10px 0 0;
}

.single-project .gallery-holder {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 1.6666666667vw, 32px);
}
.single-project .gallery-holder .row {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(24px, 1.6666666667vw, 32px);
  width: 100%;
}
.single-project .gallery-holder .row.portrait picture {
  padding-top: 112.5%;
}
.single-project .gallery-holder .row.landscape picture {
  padding-top: 56.25%;
}
.single-project .gallery-holder .row .img {
  flex: 1;
}
.single-project .gallery-holder .row .img a {
  display: block;
}
.single-project .gallery-holder .row .img picture {
  display: block;
  position: relative;
  width: 100%;
}
.single-project .gallery-holder .row .img picture img {
  position: absolute;
  top: 0;
  left: 0;
  object-position: center;
  object-fit: cover;
  height: 100%;
  width: 100%;
}
.single-project .return-all-projects .buttons-holder {
  justify-content: center;
}

.nav-mobile {
  position: fixed;
  z-index: 111;
  top: 0;
  left: 0;
  background: var(--color-main);
  text-align: left;
  padding-top: var(--app-headerHeight);
  overflow-y: scroll;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  width: 100%;
  height: 100%;
  transition: all 0.3s cubic-bezier(0.15, 0.65, 0.25, 1);
}
.nav-mobile.is-active {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder {
  margin-top: 10.4166666667vh;
  margin-top: 10.4166666667svh;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li {
  position: relative;
  margin: 4.1666666667vh 0 0 0;
  margin: 4.1666666667svh 0 0 0;
  width: 100%;
  transition: all 0.3s ease;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li:first-of-type {
  margin-top: 0;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li a {
  display: inline-flex;
  align-items: center;
  position: relative;
  text-transform: uppercase;
  font-size: clamp(32px, 2.5vw, 48px);
  color: var(--color-white);
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li a svg {
  margin-left: 8px;
  transform: rotate(45deg);
  height: clamp(32px, 2.5vw, 48px);
  width: auto;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li a svg path {
  fill: var(--color-secondary);
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li.current-section > a {
  text-decoration: underline;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li.current-section > a:before {
  opacity: 1;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li.active .dropdown-toggle svg {
  transform: rotate(180deg);
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li ul {
  margin: 15px 0 0 0;
  display: none;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li ul li {
  margin: 3px 0;
  border-top: none !important;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li ul li:first-of-type {
  margin-top: 0;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li ul li:last-of-type {
  margin-bottom: 0;
}
.nav-mobile .nav-mobile-holder .nav-menu-holder li ul li a {
  display: inline-flex;
  font-family: var(--font-main);
  font-size: 0.8em;
  font-weight: var(--fw-regular);
  text-transform: initial;
  padding: 6px 0;
  margin: 3px 0;
}

.footer .logo-holder {
  display: flex;
  justify-content: center;
}
.footer .logo-holder img {
  width: clamp(240px, 20.3125vw, 390px);
}
@media (min-width: 992px) {
  .footer .contact-infos {
    display: flex;
    gap: clamp(16px, 1.6666666667vw, 32px);
  }
}
.footer .contact-infos .col-infos {
  flex: 1;
  border-bottom: 1px solid var(--color-secondary);
  text-align: center;
  padding-bottom: 24px;
  margin-bottom: 24px;
}
@media (min-width: 992px) {
  .footer .contact-infos .col-infos {
    margin-bottom: 0 !important;
    border: 0;
    text-align: left;
  }
}
.footer .contact-infos .col-infos:last-child {
  margin-bottom: 0;
}
.footer .contact-infos .col-infos hr {
  opacity: 0;
}
@media (min-width: 992px) {
  .footer .contact-infos .col-infos hr {
    opacity: 1;
  }
}
.footer .contact-infos .col-infos a:hover span svg {
  left: calc(100% + 8px);
  opacity: 1;
  transform: rotate(45deg);
}
.footer .contact-infos .col-infos a span {
  display: inline-flex;
  align-items: center;
  position: relative;
}
.footer .contact-infos .col-infos a span svg {
  position: absolute;
  left: calc(100% - 8px);
  height: clamp(16px, 0.9375vw, 18px);
  width: auto;
  opacity: 0;
  transition: all ease 0.3s;
}
.footer .contact-infos .col-infos a span svg path {
  fill: var(--color-secondary);
}
.footer .contact-infos .col-infos .socials {
  display: flex;
  justify-content: center;
  gap: 16px;
}
@media (min-width: 992px) {
  .footer .contact-infos .col-infos .socials {
    justify-content: start;
  }
}
.footer .contact-infos .col-infos .socials a {
  color: var(--color-secondary);
  transition: color 0.3s ease;
}
.footer .contact-infos .col-infos .socials a:hover {
  color: var(--color-main);
}
.footer .contact-infos .col-infos .buttons-holder {
  justify-content: center;
}
@media (min-width: 992px) {
  .footer .contact-infos .col-infos .buttons-holder {
    justify-content: start;
  }
}
@media (min-width: 992px) {
  .footer .bottom-infos {
    display: flex;
    flex-direction: row-reverse;
    justify-content: space-between;
    align-items: flex-end;
  }
}
@media (min-width: 992px) {
  .footer .bottom-infos .bottom-col-holder {
    display: flex;
  }
}
@media (min-width: 992px) {
  .footer .bottom-infos .bottom-col-holder .licences {
    display: flex;
    align-items: flex-end;
  }
}
.footer .bottom-infos .bottom-col-holder .licences .single-licence + .single-licence {
  margin-top: 16px;
}
@media (min-width: 992px) {
  .footer .bottom-infos .bottom-col-holder .licences .single-licence + .single-licence {
    margin-top: 0;
    margin-left: clamp(16px, 1.6666666667vw, 32px);
  }
}
.footer .bottom-infos .bottom-col-holder .licences .single-licence p {
  text-align: center;
  line-height: 1.15;
}
@media (min-width: 992px) {
  .footer .bottom-infos .bottom-col-holder .licences .single-licence p {
    text-align: right;
  }
}
.footer .bottom-infos .bottom-col-holder .certifications {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: clamp(16px, 1.6666666667vw, 32px);
  margin-top: 24px;
}
@media (min-width: 992px) {
  .footer .bottom-infos .bottom-col-holder .certifications {
    justify-content: start;
    margin-top: 0;
    margin-left: clamp(16px, 1.6666666667vw, 32px);
  }
}
.footer .bottom-infos .bottom-col-holder .certifications img {
  height: 35px;
  width: auto;
}
.footer .bottom-infos .copyright {
  text-align: center;
  margin-top: 32px;
}
@media (min-width: 992px) {
  .footer .bottom-infos .copyright {
    display: flex;
    align-items: center;
    text-align: start;
    margin-top: 0;
  }
}
.footer .bottom-infos .copyright p, .footer .bottom-infos .copyright a, .footer .bottom-infos .copyright span, .footer .bottom-infos .copyright div {
  line-height: 1;
}
.footer .bottom-infos .menu-footer {
  margin-top: 1rem;
}
@media (min-width: 992px) {
  .footer .bottom-infos .menu-footer {
    margin-top: 0;
    margin-left: 2.5rem;
  }
}
.footer .bottom-infos .menu-footer ul li {
  display: flex;
  align-items: center;
  justify-content: center;
}
.footer .bottom-infos .menu-footer ul li a {
  font-size: 14px;
  transition: color 0.3s ease;
}
.footer .bottom-infos .menu-footer ul li a:hover {
  color: var(--color-secondary);
}
.footer .bottom-infos .menu-footer ul li a svg {
  display: none;
}
.footer .bottom-infos .credit {
  position: relative;
  display: inline-block;
  margin-top: 1rem;
}
@media (min-width: 992px) {
  .footer .bottom-infos .credit {
    margin-top: 0;
    margin-left: 4.375rem;
  }
}
.footer .bottom-infos .credit:hover .credit-logo {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.footer .bottom-infos .credit .credit-logo {
  background: #0f1616;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  padding: 10px 15px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.3s ease;
}
.footer .bottom-infos .credit .credit-logo svg {
  display: block;
  width: 100px;
  height: auto;
}