@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@700&family=Roboto:wght@100;300;400;700&display=swap);
@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@700&display=swap);

* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    color: #fff;
}

body {
    font-family: Roboto, sans-serif
}

@media (min-width: 768px) {
    body {
        overflow: hidden
    }
}

@media (max-width: 767px) {
    body {
        overflow: scroll
    }
}

body.no-scroll {
    overflow: hidden
}

body a, body a:visited {
    text-decoration: none;
    color: #fff
}

.nav-container {
    background: #000;
    height: 65px;
    border-bottom: .5px solid #fff;
    -webkit-transition: all .6s;
    -o-transition: all .6s;
    -moz-transition: all .6s;
    transition: all .6s
}

.nav-container nav {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    height: 65px
}

@media (max-width: 767px) {
    .nav-container nav {
        position: relative
    }
}

.nav-container nav .logo {
    line-height: 65px;
    padding-left: 5vw;
    height: inherit;
    font-style: normal;
    font-weight: 900;
    font-size: 17px;
    color: #fff;
    letter-spacing: .33rem
}

@media (max-width: 767px) {
    .nav-container nav .logo {
        width: 100%
    }
}

@media (min-width: 768px) {
    .nav-container nav .logo {
        border-right: .5px solid #fff
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .nav-container nav .logo {
        width: 33.3vw
    }
}

@media (min-width: 1200px) {
    .nav-container nav .logo {
        width: 66.6vw
    }
}

.nav-container nav .logo span {
    color: #767676
}

.nav-container nav .mobile-nav-toggle {
    background: 0 0;
    height: 65px;
    padding-right: 5vw;
    padding-left: 5vw;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    border-top: none;
    border-right: none;
    border-left: none;
    border-bottom: .5px solid #fff;
    outline: 0
}

@media (min-width: 768px) {
    .nav-container nav .mobile-nav-toggle {
        display: none
    }
}

.nav-container nav .mobile-nav-toggle > span {
    position: relative;
    width: 33px;
    height: 14px
}

.nav-container nav .mobile-nav-toggle > span:after, .nav-container nav .mobile-nav-toggle > span:before {
    position: absolute;
    content: "";
    height: 2px;
    background-color: #fff;
    -webkit-transition: all .2s;
    -o-transition: all .2s;
    -moz-transition: all .2s;
    transition: all .2s
}

.nav-container nav .mobile-nav-toggle > span:before {
    top: 0;
    left: 3px;
    width: 28px
}

.nav-container nav .mobile-nav-toggle > span:after {
    top: 14px;
    left: 3px;
    width: 28px
}

.nav-container nav .mobile-nav-toggle:focus > span:after, .nav-container nav .mobile-nav-toggle:focus > span:before, .nav-container nav .mobile-nav-toggle:hover > span:after, .nav-container nav .mobile-nav-toggle:hover > span:before {
    width: 33px;
    left: 0
}

@media (max-width: 767px) {
    .nav-container nav .nav-items-wrapper {
        background-color: #fff;
        display: none;
        height: -webkit-calc(100vh - 65px);
        height: -moz-calc(100vh - 65px);
        height: calc(100vh - 65px);
        position: absolute;
        top: 100%;
        left: 0;
        width: 100vw;
        z-index: 100
    }
}

@media (max-width: 767px) {
    .nav-container nav .nav-items-wrapper ul.nav-items {
        padding-left: 0;
        height: 100%;
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: start;
        -webkit-justify-content: flex-start;
        -moz-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start
    }
}

@media (min-width: 768px) {
    .nav-container nav .nav-items-wrapper ul.nav-items {
        display: -webkit-box;
        display: -webkit-flex;
        display: -moz-box;
        display: -ms-flexbox;
        display: flex;
        height: 100%;
        -webkit-box-align: center;
        -webkit-align-items: center;
        -moz-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        padding: 0;
        margin: 0
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .nav-container nav .nav-items-wrapper ul.nav-items {
        width: 66.7vw
    }
}

@media (min-width: 1200px) {
    .nav-container nav .nav-items-wrapper ul.nav-items {
        width: 33.4vw
    }
}

.nav-container nav .nav-items-wrapper ul.nav-items li {
    list-style: none
}

@media (min-width: 768px) {
    .nav-container nav .nav-items-wrapper ul.nav-items li {
        height: 100%;
        border-right: .5px solid #fff
    }
}

@media (max-width: 767px) {
    .nav-container nav .nav-items-wrapper ul.nav-items li:first-child {
        margin-top: 15px
    }
}

.nav-container nav .nav-items-wrapper ul.nav-items li a {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    width: 100%;
    padding: 0 35px;
    color: #fff;
    font-size: 12px;
    text-decoration: none;
    height: 100%;
    line-height: 65px
}

@media (max-width: 767px) {
    .nav-container nav .nav-items-wrapper ul.nav-items li a {
        color: #000;
        font-weight: 700;
        line-height: 50px;
        padding: 0 5vw
    }
}

.nav-container.mobile-open {
    background-color: #fff
}

.nav-container.mobile-open nav .logo {
    border-bottom: .5px solid #000;
    color: #000
}

.nav-container.mobile-open nav .logo a {
    color: #000
}

.nav-container.mobile-open nav .mobile-nav-toggle {
    border-bottom: .5px solid #000
}

.nav-container.mobile-open nav .mobile-nav-toggle > span {
    height: 0
}

.nav-container.mobile-open nav .mobile-nav-toggle > span:after, .nav-container.mobile-open nav .mobile-nav-toggle > span:before {
    background-color: #000;
    top: 0;
    right: 0;
    width: 28px
}

.nav-container.mobile-open nav .mobile-nav-toggle > span:after {
    -webkit-transform: rotate(-45deg);
    -moz-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    transform: rotate(-45deg)
}

.nav-container.mobile-open nav .mobile-nav-toggle > span:before {
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    transform: rotate(45deg)
}

.header-container {
    background: #000;
    background-repeat: no-repeat;
    background-position: right;
    -moz-background-size: contain;
    background-size: contain;
    width: 100vw
}

@media (min-width: 768px) {
    .header-container {
        height: -webkit-calc(100vh - 65px);
        height: -moz-calc(100vh - 65px);
        height: calc(100vh - 65px)
    }
}

@media (max-width: 767px) {
    .header-container {
        min-height: -webkit-calc(100vh - 65px);
        min-height: -moz-calc(100vh - 65px);
        min-height: calc(100vh - 65px)
    }
}

.header-container.home-header {
    height: -webkit-calc(100vh - 65px);
    height: -moz-calc(100vh - 65px);
    height: calc(100vh - 65px)
}

.header-container .hero-back button {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: #000;
    text-align: left;
    height: 44px;
    width: 100%;
    padding: 0;
    border: none;
    border-bottom: .5px solid #fff
}

.header-container .hero-back button span.arrow {
    display: block;
    height: 44px;
    width: 55px;
    line-height: 44px;
    margin-left: 5vw;
    font-size: 20px;
    background-image: url(../../image/fleche-gauche.png);
    background-position: left center;
    background-repeat: no-repeat
}

@media (max-width: 767px) {
    .header-container .hero-back button span.arrow {
        margin-left: 5vw
    }
}

.header-container .hero-back button span.text {
    font-family: Roboto, sans-serif;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 1px
}

@media (min-width: 768px) {
    .header-container .hero-back button span.text {
        display: none
    }
}

.header-container .hero-back.hero-back--bottom {
    border-bottom: none;
    border-top: .5px solid #fff
}

@media (min-width: 768px) {
    .header-container .hero-back.hero-back--bottom {
        display: none
    }
}

.hero-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    height: inherit
}

@media (max-width: 767px) {
    .hero-container.hero-home {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

@media (min-width: 768px) {
    .hero-container.projet-container {
        height: -webkit-calc(100vh - 65px - 44px);
        height: -moz-calc(100vh - 65px - 44px);
        height: calc(100vh - 65px - 44px)
    }
}

@media (max-width: 767px) {
    .hero-container.projet-container {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap
    }
}

@media (min-width: 768px) {
    .hero-container.projet-container > div {
        border-right: .5px solid #fff;
        height: inherit
    }
}

.hero-container.projet-container > div:last-child {
    border-right: none;
    height: inherit
}

.hero-container.projet-container .projet {
    -webkit-transition: width .6s cubic-bezier(1, 0, .68, .35), min-width .6s cubic-bezier(1, 0, .68, .35);
    -o-transition: width .6s cubic-bezier(1, 0, .68, .35), min-width .6s cubic-bezier(1, 0, .68, .35);
    -moz-transition: width .6s cubic-bezier(1, 0, .68, .35), min-width .6s cubic-bezier(1, 0, .68, .35);
    transition: width .6s cubic-bezier(1, 0, .68, .35), min-width .6s cubic-bezier(1, 0, .68, .35)
}

@media (min-width: 768px) {
    .hero-container.projet-container .projet {
        min-width: 246px;
        width: 15vw;
        height: inherit
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-container .projet {
        width: 50vw
    }
}

@media (max-width: 575px) {
    .hero-container.projet-container .projet {
        width: 100vw
    }
}

.hero-container.projet-container .projet * {
    -webkit-transition: opacity .6s cubic-bezier(1, 0, .68, .35);
    -o-transition: opacity .6s cubic-bezier(1, 0, .68, .35);
    -moz-transition: opacity .6s cubic-bezier(1, 0, .68, .35);
    transition: opacity .6s cubic-bezier(1, 0, .68, .35)
}

@media (min-width: 768px) {
    .hero-container.projet-container .projet * {
        opacity: 70%
    }
}

.hero-container.projet-container .projet a {
    height: inherit;
    padding: 20px;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: end;
    -webkit-justify-content: flex-end;
    -moz-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a {
        position: relative;
        outline: 0;
        padding-bottom: 0
    }
}

.hero-container.projet-container .projet a span {
    font-family: 'IBM Plex Mono', monospace;
    font-size: 72px;
    line-height: 72px;
    opacity: 30%;
    margin-bottom: -webkit-calc(100vh - 65px - 44px - 321px - 20px);
    margin-bottom: -moz-calc(100vh - 65px - 44px - 321px - 20px);
    margin-bottom: calc(100vh - 65px - 44px - 321px - 20px);
    -webkit-transition: margin-bottom .3s cubic-bezier(.51, .01, .29, .99) .3s;
    -o-transition: margin-bottom .3s cubic-bezier(.51, .01, .29, .99) .3s;
    -moz-transition: margin-bottom .3s cubic-bezier(.51, .01, .29, .99) .3s;
    transition: margin-bottom .3s cubic-bezier(.51, .01, .29, .99) .3s
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a span {
        display: none
    }
}

.hero-container.projet-container .projet a h1 {
    margin-bottom: 10px;
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 23px
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a h1 {
        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
        -moz-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
        max-width: -webkit-calc(100% - 40px);
        max-width: -moz-calc(100% - 40px);
        max-width: calc(100% - 40px)
    }
}

.hero-container.projet-container .projet a h2 {
    margin-bottom: 16px;
    font-style: normal;
    font-weight: 100;
    font-size: 14px;
    line-height: 16px
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a h2 {
        position: absolute;
        right: 20px;
        top: 210px
    }
}

.hero-container.projet-container .projet a div {
    background-color: #000;
    margin-bottom: 12px;
    -moz-background-size: cover;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    -webkit-transition: width .6s cubic-bezier(1, 0, .68, .35), height .6s cubic-bezier(1, 0, .68, .35);
    -o-transition: width .6s cubic-bezier(1, 0, .68, .35), height .6s cubic-bezier(1, 0, .68, .35);
    -moz-transition: width .6s cubic-bezier(1, 0, .68, .35), height .6s cubic-bezier(1, 0, .68, .35);
    transition: width .6s cubic-bezier(1, 0, .68, .35), height .6s cubic-bezier(1, 0, .68, .35)
}

@media (min-width: 768px) {
    .hero-container.projet-container .projet a div {
        width: 206px;
        min-height: 116px;
        height: 116px
    }
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a div {
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -moz-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        min-height: 170px;
        height: 170px
    }
}

.hero-container.projet-container .projet a p {
    font-style: normal;
    font-weight: 300;
    font-size: 12px;
    line-height: 14px;
    min-height: 42px;
    height: 56px;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-wrap: wrap;
    -webkit-transition: height .2s linear .6s;
    -o-transition: height .2s linear .6s;
    -moz-transition: height .2s linear .6s;
    transition: height .2s linear .6s
}

@media (max-width: 767px) {
    .hero-container.projet-container .projet a p {
        -webkit-box-ordinal-group: 4;
        -webkit-order: 3;
        -moz-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3
    }
}

@media (min-width: 768px) {
    .hero-container.projet-container .projet.projet-active {
        min-width: 452px;
        width: 30vw
    }

    .hero-container.projet-container .projet.projet-active * {
        opacity: 100%
    }

    .hero-container.projet-container .projet.projet-active span {
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -moz-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        margin-bottom: 30px
    }

    .hero-container.projet-container .projet.projet-active h1 {
        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
        -moz-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2
    }

    .hero-container.projet-container .projet.projet-active h2 {
        -webkit-box-ordinal-group: 5;
        -webkit-order: 4;
        -moz-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
        opacity: 50%
    }

    .hero-container.projet-container .projet.projet-active div {
        -webkit-box-ordinal-group: 5;
        -webkit-order: 4;
        -moz-box-ordinal-group: 5;
        -ms-flex-order: 4;
        order: 4;
        height: 232px;
        width: 412px
    }

    .hero-container.projet-container .projet.projet-active p {
        margin-bottom: 10px;
        width: 80%;
        -webkit-box-ordinal-group: 4;
        -webkit-order: 3;
        -moz-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
        height: auto;
        overflow: visible
    }
}

.hero-container.projet-infos {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column
}

.hero-container.projet-infos header {
    width: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between
}

@media (min-width: 768px) {
    .hero-container.projet-infos header {
        padding: 30px 85px
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos header {
        -webkit-box-ordinal-group: 2;
        -webkit-order: 1;
        -moz-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1;
        border-bottom: 1px solid #fff;
        -webkit-box-align: end;
        -webkit-align-items: flex-end;
        -moz-box-align: end;
        -ms-flex-align: end;
        align-items: flex-end
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-infos header {
        padding: 50px 40px 20px
    }
}

@media (max-width: 575px) {
    .hero-container.projet-infos header {
        padding: 40px 25px 20px;
        min-height: 150px
    }
}

.hero-container.projet-infos header h1 {
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 23px
}

@media (max-width: 767px) {
    .hero-container.projet-infos header h1 {
        font-size: 44px;
        line-height: 44px;
        max-width: 50%
    }
}

.hero-container.projet-infos header h2 {
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 23px
}

@media (max-width: 767px) {
    .hero-container.projet-infos header h2 {
        display: none
    }
}


.hero-container.projet-infos main.images-projet {
    width: 100%;
    display: flex;
    overflow-x: auto; /* Ensure horizontal scrolling is possible */
    flex-wrap: nowrap; /* Ensure items don't wrap */
    padding: 0 85px; /* Adjust for desktop */
}

@media (min-width: 768px) {
    .hero-container.projet-infos main.images-projet {
        padding: 0 85px;
        -webkit-flex-wrap: nowrap;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos main.images-projet {
        -webkit-box-ordinal-group: 4;
        -webkit-order: 3;
        -moz-box-ordinal-group: 4;
        -ms-flex-order: 3;
        order: 3;
        padding: 25px 25px 20px
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-infos main.images-projet {
        -webkit-flex-wrap: wrap;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: start;
        -webkit-align-items: flex-start;
        -moz-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start
    }
}

@media (max-width: 575px) {
    .hero-container.projet-infos main.images-projet {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-pack: center;
        -webkit-justify-content: center;
        -moz-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center
    }
}

@media (max-width: 575px) {
    .hero-container.projet-infos main.images-projet > * {
        max-width: 400px;
        padding-bottom: 10px
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-infos main.images-projet > * {
        width: 50%;
        padding-bottom: 10px
    }

    .hero-container.projet-infos main.images-projet > :nth-child(2n+1) {
        padding-right: 5px
    }

    .hero-container.projet-infos main.images-projet > :nth-child(2n) {
        padding-left: 5px
    }
}

@media (min-width: 768px) {
    .hero-container.projet-infos main.images-projet > * {
        max-height: -webkit-calc(100vh - 65px - 44px - 286px);
        max-height: -moz-calc(100vh - 65px - 44px - 286px);
        max-height: calc(100vh - 65px - 44px - 286px);
        height: fit-content;
        margin-right: 85px;
        padding: 0 0 20px 0
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos main.images-projet > div {
        display: none
    }
}

@media (min-width: 768px) {
    .hero-container.projet-infos main.images-projet > div {
        height: -webkit-calc(100vh - 65px - 44px - 286px);
        height: -moz-calc(100vh - 65px - 44px - 286px);
        height: calc(100vh - 65px - 44px - 286px);
        display: block;
        width: 100px
    }
}

.hero-container.projet-infos footer {
    width: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex
}

@media (min-width: 768px) {
    .hero-container.projet-infos footer {
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        padding: 30px 85px
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos footer {
        -webkit-box-ordinal-group: 3;
        -webkit-order: 2;
        -moz-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

.hero-container.projet-infos footer > p {
    font-style: normal;
    max-width: 500px;
    font-weight: 300;
    font-size: 16px;
    line-height: 19px;
    overflow: hidden
}

@media (min-width: 768px) {
    .hero-container.projet-infos footer > p {
        max-height: 133px
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .hero-container.projet-infos footer > p {
        max-width: 450px
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos footer > p {
        font-size: 14px
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-infos footer > p {
        padding: 20px 40px
    }
}

@media (max-width: 575px) {
    .hero-container.projet-infos footer > p {
        padding: 20px 25px
    }
}

.hero-container.projet-infos footer div {
    font-style: normal;
    font-weight: 300;
    font-size: 16px;
    line-height: 19px
}

@media (min-width: 768px) {
    .hero-container.projet-infos footer div {
        text-align: right;
        max-width: 400px
    }
}

@media (max-width: 767px) {
    .hero-container.projet-infos footer div {
        border-top: 1px solid #fff;
        border-bottom: 1px solid #fff
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.projet-infos footer div {
        padding: 20px 40px
    }
}

@media (max-width: 575px) {
    .hero-container.projet-infos footer div {
        padding: 15px 25px
    }
}

.hero-container.projet-infos footer div h2 {
    font-style: normal;
    font-weight: 700;
    font-size: 16px;
    line-height: 19px;
    text-transform: uppercase
}

@media (min-width: 768px) {
    .hero-container.projet-infos footer div h2 {
        text-align: right
    }
}

.hero-container.projet-infos footer div p {
    font-style: normal;
    font-weight: 300;
    font-size: 14px;
    line-height: 19px
}

@media (max-width: 767px) {
    .hero-container.projet-infos footer div p {
        margin-top: 15px;
        display: none
    }
}

@media (min-width: 768px) {
    .hero-container.projet-infos footer div p span {
        display: none
    }
}

@media (max-width: 767px) {
    .hero-container.hero-reference {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

.hero-container.hero-reference .reference-container {
    overflow-y: hidden
}

@media (min-width: 768px) {
    .hero-container.hero-reference .reference-container {
        width: 75vw
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .hero-container.hero-reference .reference-container {
        padding: 30px 50px 0
    }
}

@media (min-width: 992px) {
    .hero-container.hero-reference .reference-container {
        padding: 30px 120px 0
    }
}

.hero-container.hero-reference .reference-container .reference {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    border-bottom: .5px solid #fff
}

@media (min-width: 768px) {
    .hero-container.hero-reference .reference-container .reference {
        opacity: .5;
        -webkit-transition: opacity .2s ease-in-out;
        -o-transition: opacity .2s ease-in-out;
        -moz-transition: opacity .2s ease-in-out;
        transition: opacity .2s ease-in-out;
        padding: 25px 0
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.hero-reference .reference-container .reference {
        padding: 25px 40px 25px 0
    }
}

@media (max-width: 575px) {
    .hero-container.hero-reference .reference-container .reference {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        padding: 15px 25px
    }
}

@media (min-width: 768px) {
    .hero-container.hero-reference .reference-container .reference:last-child {
        margin-bottom: 90px
    }
}

@media (max-width: 767px) {
    .hero-container.hero-reference .reference-container .reference:last-child {
        border-bottom: none
    }
}

.hero-container.hero-reference .reference-container .reference:hover {
    opacity: 1
}

.hero-container.hero-reference .reference-container .reference .logo {
    -moz-background-size: cover;
    background-size: cover;
    background-repeat: no-repeat;
    height: 71px;
    width: 120px
}

@media (min-width: 576px) {
    .hero-container.hero-reference .reference-container .reference .logo {
        display: block;
        margin: 0 40px
    }
}

@media (max-width: 575px) {
    .hero-container.hero-reference .reference-container .reference .logo {
        -webkit-align-self: center;
        -ms-flex-item-align: center;
        align-self: center;
        margin: 15px 0 10px
    }
}

.hero-container.hero-reference .reference-container .reference .text h1 {
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 23px;
    margin-bottom: 9px
}

@media (max-width: 575px) {
    .hero-container.hero-reference .reference-container .reference .text h1 {
        font-size: 17px;
        margin-bottom: 3px
    }
}

.hero-container.hero-reference .reference-container .reference .text h2 {
    font-style: normal;
    font-weight: 400;
    font-size: 12px;
    line-height: 14px;
    opacity: .28;
    margin-bottom: 9px
}

@media (max-width: 575px) {
    .hero-container.hero-reference .reference-container .reference .text h2 {
        margin-bottom: 3px
    }
}

.hero-container.hero-reference .reference-container .reference .text h3 {
    font-style: normal;
    font-weight: 100;
    font-size: 14px;
    line-height: 16px
}

.hero-container.hero-reference .reference-container .reference .plus-minus {
    font-style: normal;
    font-weight: 400;
    font-size: 20px;
    line-height: 23px
}

@media (min-width: 576px) {
    .hero-container.hero-reference .reference-container .reference .plus-minus {
        display: none
    }
}

@media (max-width: 575px) {
    .hero-container.hero-reference .reference-container .reference .slide-content {
        display: none
    }
}

@media (max-width: 767px) {
    .hero-container.hero-about {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -webkit-flex-direction: column;
        -moz-box-orient: vertical;
        -moz-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }
}

.hero-container.hero-about .about-container {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex
}

@media (min-width: 768px) {
    .hero-container.hero-about .about-container {
        width: 75vw;
        height: -webkit-calc(100vh - 65px - 44px);
        height: -moz-calc(100vh - 65px - 44px);
        height: calc(100vh - 65px - 44px);
        padding: 80px 0
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.hero-about .about-container {
        padding: 30px 40px;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between
    }
}

@media (max-width: 575px) {
    .hero-container.hero-about .about-container {
        padding: 20px 25px;
        -webkit-box-pack: justify;
        -webkit-justify-content: space-between;
        -moz-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        position: relative
    }
}

.hero-container.hero-about .about-container .text {
    display: block;
    height: 100%
}

@media (min-width: 768px) {
    .hero-container.hero-about .about-container .text {
        margin: 0 10%;
        width: 55%
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.hero-about .about-container .text {
        width: 60vw
    }
}

@media (max-width: 575px) {
    .hero-container.hero-about .about-container .text {
        width: 80vw;
        z-index: 10
    }
}

.hero-container.hero-about .about-container .text h1 {
    font-style: normal;
    font-weight: 700;
    font-size: 24px;
    margin-bottom: 20px
}

.hero-container.hero-about .about-container .text p {
    font-style: normal;
    font-weight: 300;
    font-size: 16px;
    line-height: 19px;
    margin-bottom: 20px
}

.hero-container.hero-about .about-container .text p:last-child img {
    margin: 10px 15px 10px 0;
    height: 20px;
    width: 20px
}

@media (max-width: 399px) {
    .hero-container.hero-about .about-container .text p span.arrow {
        display: none
    }
}

.hero-container.hero-about .about-container .text a {
    text-decoration: underline
}

.hero-container.hero-about .about-container .photo {
    display: block;
    background-position: center;
    -moz-background-size: cover;
    background-size: cover;
    background-repeat: no-repeat
}

@media (min-width: 768px) {
    .hero-container.hero-about .about-container .photo {
        margin-right: 10%;
        height: 100%;
        width: 15%
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.hero-about .about-container .photo {
        height: 500px;
        width: 130px
    }
}

@media (max-width: 575px) {
    .hero-container.hero-about .about-container .photo {
        position: absolute;
        top: 0;
        right: 25px;
        width: 100px;
        opacity: .5;
        height: 450px
    }
}

.hero-container.hero-about .portail, .hero-container.hero-reference .portail, .hero-container.projet-container .portail {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -moz-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

@media (min-width: 1200px) {
    .hero-container.hero-about .portail, .hero-container.hero-reference .portail, .hero-container.projet-container .portail {
        padding: 0 80px;
        min-width: 25vw;
        width: 25vw
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .hero-container.hero-about .portail, .hero-container.hero-reference .portail, .hero-container.projet-container .portail {
        padding: 0 40px;
        width: 265px
    }
}

@media (min-width: 576px) and (max-width: 767px) {
    .hero-container.hero-about .portail, .hero-container.hero-reference .portail, .hero-container.projet-container .portail {
        padding: 50px 40px 20px
    }
}

@media (max-width: 575px) {
    .hero-container.hero-about .portail, .hero-container.hero-reference .portail, .hero-container.projet-container .portail {
        padding: 40px 25px 20px;
        min-height: 150px
    }
}

.hero-container.hero-about .portail h1, .hero-container.hero-reference .portail h1, .hero-container.projet-container .portail h1 {
    text-align: left;
    text-transform: uppercase;
    font-size: 22px;
    font-weight: 600;
    margin-bottom: 15px
}

.hero-container.hero-about .portail h2, .hero-container.hero-reference .portail h2, .hero-container.projet-container .portail h2 {
    text-align: left;
    margin-top: 15px;
    font-size: 14px;
    font-weight: 200
}

@media (max-width: 767px) {
    .hero-container.projet-container .portail {
        display: none
    }
}

.hero-container .portail {
    height: inherit
}

@media (min-width: 768px) {
    .hero-container .portail {
        border-right: .5px solid #fff
    }
}

@media (max-width: 767px) {
    .hero-container .portail {
        width: 100vw;
        height: -webkit-calc((100vh - 65px) / 3);
        height: -moz-calc((100vh - 65px) / 3);
        height: calc((100vh - 65px) / 3);
        border-bottom: .5px solid #fff
    }
}

.hero-container .portail:last-child {
    border-right: none
}

@media (min-width: 768px) {
    .hero-container .portail:last-child {
        width: 33.4vw
    }
}

@media (min-width: 768px) {
    .hero-container.hero-home .portail {
        min-width: 33.3vw;
        width: 33.3vw
    }
}

@media (max-width: 399px) {
    .hero-container.hero-home .portail a h1 {
        font-size: 14px
    }
}

.portail a {
    height: 100%;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -moz-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center
}

.portail a, .portail h1 {
    color: #fff;
    width: 100%;
    font-style: normal;
    letter-spacing: .33rem;
    font-size: 17px;
    line-height: 100%;
    text-decoration: none;
    text-align: center
}

.portail > a > h1 {
    color: #fff;
    width: 100%;
    height: 20px;
    vertical-align: middle;
    font-style: normal;
    letter-spacing: .33rem;
    font-size: 17px;
    line-height: 20px;
    text-decoration: none;
    text-align: center
}

.plus-minus {
    position: relative
}

.plus-minus:after, .plus-minus:before {
    position: absolute;
    content: '';
    background-color: #fff;
    right: 0;
    top: 50%;
    -webkit-transition: all .5s ease-in-out;
    -o-transition: all .5s ease-in-out;
    -moz-transition: all .5s ease-in-out;
    transition: all .5s ease-in-out
}

@media (min-width: 768px) {
    .plus-minus:after, .plus-minus:before {
        display: none
    }
}

.plus-minus:before {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    width: 15px;
    height: 2px
}

.plus-minus:after {
    width: 15px;
    height: 2px;
    -webkit-transform: rotate(-90deg);
    -moz-transform: rotate(-90deg);
    -ms-transform: rotate(-90deg);
    -o-transform: rotate(-90deg);
    transform: rotate(-90deg);
    opacity: 1
}

.plus-minus.plus-minus-open:before {
    -webkit-transform: rotate(180deg);
    -moz-transform: rotate(180deg);
    -ms-transform: rotate(180deg);
    -o-transform: rotate(180deg);
    transform: rotate(180deg)
}

.plus-minus.plus-minus-open:after {
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    transform: rotate(90deg);
    opacity: 0
}

body a, body a:visited {
    text-decoration: none;
    color: white;

}

a,
body,
button,
a:visited {
    cursor: url('/image/curseur-plein_1.svg'), auto;
}

img,
.hero-container .projet div {
    cursor: url('/image/curseur-vide_1.svg'), auto;
}
.scroll-container {
    background-color: black;
    overflow-x: auto;
    overflow-y: hidden; /* Hide vertical scroll on desktop */
    white-space: nowrap;
    padding: 10px;
    display: flex;
    align-items: center;
    height: calc(100vh - 65px); /* Adjust according to your header height */
}

.scroll-container img {
    display: inline-block;
    padding-left: 85px; /* Space between images */
    max-height: 65vh; /* Adjust according to your needs */
}

/* Media query for mobile devices */
@media (max-width: 768px) {
    .scroll-container {
        overflow-x: hidden; /* Hide horizontal scroll on mobile */
        overflow-y: auto; /* Enable vertical scroll */
        white-space: normal; /* Allow wrapping of images */
        flex-direction: column; /* Stack images vertically */
    }

    .scroll-container img {
        display: block;
        width: 100%; /* Ensure images take full width */
        padding: 10px 0; /* Space between images */
        max-height: none; /* No height constraint on mobile */
    }
}
