@import"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";

:root {
    --noir: #000;
    --blanc: #fff;
    --vert: #839F91;
    --beige: #F3EFE5
}

html {
    scroll-behavior: smooth
}

.wrap {
    padding: 0 106px
}

h1,
.h1 {
    font-family: Poppins;
    font-size: 110px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    letter-spacing: -2px
}

.home-page h2,
.home-page .h2 {
    font-family: Poppins;
    font-size: 100px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%;
    overflow-wrap: break-word
}

.page h2,
.page .h2 {
    font-family: Poppins;
    font-size: 70px;
    font-style: normal;
    font-weight: 600;
    line-height: 80px;
    overflow-wrap: break-word
}

h3,
.h3 {
    font-family: Poppins;
    font-size: 38px;
    font-style: normal;
    font-weight: 600;
    line-height: 48px;
    text-transform: uppercase
}

h4,
.h4 {
    font-family: Poppins;
    font-size: 70px;
    font-style: normal;
    font-weight: 400;
    line-height: 85px;
    letter-spacing: -1.4px
}

h5,
.h5 {
    font-family: Poppins;
    font-size: 25px;
    font-style: normal;
    font-weight: 400;
    line-height: 32px;
    text-transform: none
}

.display {
    font-family: Poppins;
    font-size: 300px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: -6px
}

p,
.text,
div.text p {
    font-family: Poppins;
    font-size: 20px;
    font-style: normal;
    font-weight: 300;
    line-height: 33px
}

.text-small,
div.text-small p {
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 25px
}

div.text p,
div.text-small p {
    margin-bottom: 8px
}

.caption {
    font-family: Poppins;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 12px
}

.blocks>* {
    max-width: 1500px
}

.blocks>div:first-child {
    margin-top: 80px
}

.filtre {
    background: linear-gradient(180deg, rgba(0, 0, 0, .2) 0%, rgba(0, 0, 0, 0) 100%), linear-gradient(0deg, rgba(121, 66, 81, .15) 0%, rgba(121, 66, 81, .15) 100%), lightgray 0px -61.435px/100% 154.329% no-repeat
}

@media screen and (max-width: 1024px) {
    .wrap {
        padding: 0 80px
    }

    h1,
    .h1 {
        font-size: 104px
    }

    h4,
    .h4 {
        font-size: 48px;
        line-height: 120%;
        letter-spacing: -.44px
    }
}

@media screen and (max-width: 768px) {
    .wrap {
        padding: 0 50px
    }

    h1,
    .h1 {
        font-size: 64px
    }

    h4,
    .h4 {
        font-size: 32px;
        line-height: 40px;
        letter-spacing: -.44px
    }

    .blocks>div:first-child {
        margin-top: 20px
    }
}

@media screen and (max-width: 640px) {

    h1,
    .h1 {
        font-size: 45px
    }

    .home-page h2,
    .home-page .h2 {
        font-size: 40px
    }

    .page h2,
    .page .h2 {
        font-size: 32px;
        line-height: 32px
    }

    h3,
    .h3 {
        font-size: 25px;
        line-height: 100%
    }

    h4,
    .h4 {
        font-size: 22px;
        line-height: 32px;
        letter-spacing: -.44px
    }

    p,
    .text,
    div.text p {
        font-size: 13px;
        font-weight: 300;
        line-height: 25px
    }

    .wrap {
        padding: 0 30px
    }
}

html {
    box-sizing: border-box;
    -ms-overflow-style: scrollbar
}

* {
    margin: 0;
    padding: 0
}

*,
*:before,
*:after {
    box-sizing: inherit
}

label.h1 span:after,
label.h2 span:after,
label.h3 span:after {
    display: none
}

button:focus,
input:focus,
textarea:focus {
    outline: none !important;
    box-shadow: none !important
}

button {
    -webkit-appearance: none;
    padding: 0;
    background-color: transparent;
    border: none
}

img {
    max-width: inherit
}

a,
img,
span,
button {
    display: inline-block
}

a {
    text-decoration: none
}

ul {
    margin: 0;
    padding: 0
}

ul li {
    list-style-type: none
}

@font-face {
    font-family: graphik;
    src: url(../fonts/graphik/Graphik-Light.eot);
    src: url(../fonts/graphik/Graphik-Light.eot?#iefix) format("embedded-opentype"), url(../fonts/graphik/Graphik-Light.woff2) format("woff2"), url(../fonts/graphik/Graphik-Light.woff) format("woff"), url(../fonts/graphik/Graphik-Light.ttf) format("truetype");
    font-weight: 200;
    font-style: normal;
    font-stretch: normal
}

@font-face {
    font-family: graphik;
    src: url(../fonts/graphik/Graphik-Regular.eot);
    src: url(../fonts/graphik/Graphik-Regular.eot?#iefix) format("embedded-opentype"), url(../fonts/graphik/Graphik-Regular.woff2) format("woff2"), url(../fonts/graphik/Graphik-Regular.woff) format("woff"), url(../fonts/graphik/Graphik-Regular.ttf) format("truetype");
    font-weight: 400;
    font-style: normal;
    font-stretch: normal
}

@font-face {
    font-family: graphik;
    src: url(../fonts/graphik/Graphik-Medium.eot);
    src: url(../fonts/graphik/Graphik-Medium.eot?#iefix) format("embedded-opentype"), url(../fonts/graphik/Graphik-Medium.woff2) format("woff2"), url(../fonts/graphik/Graphik-Medium.woff) format("woff"), url(../fonts/graphik/Graphik-Medium.ttf) format("truetype");
    font-weight: 500;
    font-style: normal;
    font-stretch: normal
}

@font-face {
    font-family: graphik;
    src: url(../fonts/graphik/Graphik-Bold.eot);
    src: url(../fonts/graphik/Graphik-Bold.eot?#iefix) format("embedded-opentype"), url(../fonts/graphik/Graphik-Bold.woff2) format("woff2"), url(../fonts/graphik/Graphik-Bold.woff) format("woff"), url(../fonts/graphik/Graphik-Bold.ttf) format("truetype");
    font-weight: 700;
    font-style: normal;
    font-stretch: normal
}

a,
.a {
    font-family: Poppins;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    text-transform: uppercase
}

a.bouton {
    display: inline-flex;
    padding: 22px 25px;
    justify-content: center;
    align-items: center;
    color: var(--blanc);
    font-family: Poppins;
    font-size: 21px;
    font-style: normal;
    font-weight: 300;
    line-height: 100%;
    letter-spacing: .63px;
    text-transform: uppercase;
    border-radius: 40px;
    border: 1px solid var(--blanc);
    background-color: var(--noir)
}

@media screen and (max-width: 640px) {

    a,
    .a {
        font-size: 12px;
        font-weight: 500;
        line-height: 175%
    }

    a.bouton {
        font-size: 14px
    }
}

.footer {
    background-color: var(--noir);
    border-top-left-radius: 40px;
    border-top-right-radius: 40px;
    margin-top: -30px;
    z-index: 2;
    position: relative
}

.footer a {
    color: var(--blanc);
    margin-bottom: 20px
}

.footer a:hover {
    color: var(--vert)
}

.footer .a {
    font-family: Poppins;
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    text-transform: uppercase
}

.footer p {
    color: var(--blanc);
    font-size: 16px;
    font-weight: 300;
    line-height: 23px
}

.footer .rs a {
    margin-top: 12px
}

.footer_wrapper {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    padding: 80px 80px 30px;
    gap: 80px
}

.footer-logo img {
    width: 100%;
    mix-blend-mode: difference
}

.footer_first-column li,
.footer_second-column li {
    list-style-type: none
}

.footer_first-column li img,
.footer_second-column li img {
    mix-blend-mode: difference
}

.footer_three * {
    margin-bottom: 8px
}

.footer_back-to-top {
    mix-blend-mode: difference;
    display: flex;
    justify-content: end;
    align-items: center
}

.footer_Copyright {
    grid-column: 1/6;
    text-align: center
}

.footer_Copyright p,
.footer_Copyright a {
    font-size: 16px;
    font-weight: 300;
    line-height: 23px
}

@media screen and (max-width: 1024px) {
    .footer_wrapper {
        grid-template-columns: 1fr 1fr;
        align-content: center;
        text-align: center;
        gap: 40px;
        padding: 40px 40px 30px
    }

    .footer-logo {
        grid-column: 1/3;
        grid-row: 1/1
    }

    .footer-logo img {
        width: 100%
    }

    .footer-logo a {
        margin: 0
    }

    .footer_first-column {
        grid-column: 1/2;
        grid-row: 2/2
    }

    .footer_second-column {
        grid-column: 2/3;
        grid-row: 2/2
    }

    .footer_second-column li.rs p {
        font-size: 12px;
        font-weight: 500;
        line-height: 175%
    }

    .footer_second-column li.rs a {
        margin-bottom: 0
    }

    .footer_second-column li.rs a img {
        width: 32px;
        height: auto
    }

    .footer_three {
        grid-column: 1/3;
        grid-row: 3/3
    }

    .footer_back-to-top {
        display: none
    }

    .footer_Copyright {
        grid-column: 1/3;
        grid-row: 4/4
    }
}

.page-template-page-client footer,
.page-template-page-black footer {
    background-color: var(--blanc)
}

.page-template-page-client footer a,
.page-template-page-client footer p,
.page-template-page-black footer a,
.page-template-page-black footer p {
    color: var(--noir)
}

header {
    background-color: var(--blanc);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
    padding: 35px 60px;
    border-radius: 20px;
    position: absolute;
    top: 35px;
    left: 30px;
    right: 30px
}

header .logo .header__logo {
    display: inline-block;
    width: 176px
}

header .logo .header__logo .logo-mobile {
    display: none
}

header .logo .header__logo .logo-desktop {
    display: block;
    width: 176px
}

header .nav-main {
    display: flex;
    gap: 40px
}

header .nav-main li a {
    color: var(--noir)
}

header .nav-main li a:hover {
    color: var(--vert)
}

header .burger {
    display: none
}

header .burger #cross {
    display: none
}

.burger-open header {
    position: fixed;
    background: var(--noir);
    border-radius: 0;
    padding: 30px;
    align-items: baseline;
    height: 100vh;
    flex-direction: column-reverse;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden
}

.burger-open header .logo .header__logo {
    display: none
}

.burger-open header .nav-main {
    display: flex;
    flex-direction: column;
    width: 100%;
    align-items: center;
    justify-content: center;
    gap: 24px
}

.burger-open header .nav-main li a {
    color: var(--blanc);
    font-size: 32px;
    line-height: 80px;
    text-align: center
}

.burger-open header .burger #cross {
    display: block
}

.burger-open header .burger #burger {
    display: none
}

@media screen and (max-width: 1024px) {
    header {
        background-color: transparent;
        top: 40px;
        padding: 0
    }

    header .logo .header__logo img {
        width: 180px
    }

    header .logo .header__logo .logo-mobile {
        display: block
    }

    header .logo .header__logo .logo-desktop {
        display: none
    }

    header .nav-main {
        display: none
    }

    header .burger {
        display: block
    }
}

.home-header {
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    height: 105vh;
    padding-bottom: 18vh;
    max-width: none
}

.home-header_content {
    display: flex;
    flex-direction: column;
    gap: 50px;
    max-width: 55%
}

.home-header_content h1 {
    color: var(--blanc)
}

.home-header_content a {
    color: var(--blanc);
    display: flex;
    gap: 25px;
    align-items: center
}

.home-header_content a:hover {
    color: var(--vert)
}

.home-header_content a:hover svg * {
    stroke: var(--vert)
}

.home-header_content a svg * {
    stroke: var(--blanc)
}

.blocks {
    border-top-left-radius: 40px;
    border-top-right-radius: 40px;
    background-color: var(--blanc);
    margin-top: -5vh;
    padding-top: 40px
}

.blocks>* {
    margin: 0 auto
}

.blocks>div:last-child {
    margin-bottom: 0
}

.home .blocks>div:last-child {
    margin-bottom: 0
}

.home .contact {
    padding-bottom: 30px
}

@media screen and (max-width: 1024px) {
    .home-header {
        flex-direction: column;
        align-items: center;
        height: 106vh;
        padding-bottom: 18vh
    }

    .home-header_content {
        margin-top: 130px;
        max-width: 100%;
        gap: 25px
    }

    .home-header_content a {
        gap: 10px
    }

    .home-header_content a svg {
        width: 12px;
        height: auto
    }

    .blocks {
        margin-top: -12vh;
        border-top-left-radius: 30px;
        border-top-right-radius: 30px
    }
}

.page-template-page-white .page-white-header {
    height: 70vh;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 12vh;
    max-width: none;
    color: var(--blanc);
    width: 100%;
    gap: 40px
}

.page-template-page-white .page-white-header_content {
    max-width: 40%
}

.page-template-page-white .blocks>div:last-child {
    margin-bottom: 180px
}

.page-template-page-white a.bouton {
    color: var(--noir);
    background-color: var(--blanc);
    border: 1px solid var(--noir)
}

@media screen and (max-width: 640px) {
    .page-template-page-white .page-white-header {
        flex-direction: column;
        align-items: baseline;
        padding-top: 22vh;
        padding-bottom: 20vh
    }

    .page-template-page-white .page-white-header_content {
        max-width: none;
        font-size: 11px;
        line-height: 20px;
        max-width: 68%
    }
}

.page-template-page-black main {
    background-color: var(--noir)
}

.page-template-page-black .page-black-header {
    height: 70vh;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 12vh;
    max-width: none;
    color: var(--blanc);
    width: 100%;
    gap: 40px
}

.page-template-page-black .page-black-header_content {
    max-width: 40%
}

.page-template-page-black .blocks>div:last-child {
    margin-bottom: 180px
}

.page-template-page-black .blocks {
    background-color: var(--noir)
}

.page-template-page-black .blocks h1,
.page-template-page-black .blocks h2,
.page-template-page-black .blocks h3,
.page-template-page-black .blocks h4,
.page-template-page-black .blocks h5,
.page-template-page-black .blocks h6,
.page-template-page-black .blocks p,
.page-template-page-black .blocks a {
    color: var(--blanc)
}

.page-template-page-black a.bouton {
    color: var(--blanc);
    background-color: var(--noir);
    border: 1px solid var(--blanc)
}

.page-template-page-black a.bouton:hover {
    background-color: var(--vert);
    border: 1px solid var(--vert);
    color: var(--noir)
}

@media screen and (max-width: 640px) {
    .page-template-page-black .blocks>div:last-child {
        margin-bottom: 65px
    }

    .page-template-page-black .page-black-header {
        flex-direction: column;
        align-items: baseline;
        padding-top: 22vh;
        padding-bottom: 20vh
    }

    .page-template-page-black .page-black-header_content {
        max-width: none;
        font-size: 11px;
        line-height: 20px;
        max-width: 68%
    }
}

.page-template-page-client .main {
    background-color: var(--noir)
}

.page-template-page-client .page-client-header {
    height: 70vh;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 12vh;
    max-width: none;
    color: var(--blanc);
    width: 100%;
    gap: 40px
}

.page-template-page-client .page-client-header .page-client_right {
    max-width: 40%
}

.page-template-page-client .page-client_back a {
    color: var(--blanc);
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 50px
}

.page-template-page-client .page-client_back a:hover {
    color: var(--vert)
}

.page-template-page-client .page-client_back a:hover svg * {
    stroke: var(--vert)
}

.page-template-page-client a.bouton {
    color: var(--blanc);
    background-color: var(--noir);
    border: 1px solid var(--blanc);
    margin: 0 auto 180px;
    grid-column: 1/4
}

.page-template-page-client a.bouton:hover {
    background-color: var(--vert);
    border: 1px solid var(--vert);
    color: var(--noir)
}

.page-template-page-client .blocks {
    background-color: var(--noir)
}

.page-template-page-client .blocks>div:last-child {
    padding-bottom: 80px
}

.page-template-page-client .page-client_wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 80px;
    z-index: 1;
    position: relative
}

.page-template-page-client .page-client_wrapper .page-client_mission {
    border-top: solid 1px var(--blanc);
    padding-top: 35px
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_top {
    margin-bottom: 20px
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_top img {
    width: 77px;
    height: 77px;
    margin-bottom: 30px
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_top h3,
.page-template-page-client .page-client_wrapper .page-client_mission .mission_top svg {
    color: var(--blanc)
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_top svg {
    display: none
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_bottom {
    display: block
}

.page-template-page-client .page-client_wrapper .page-client_mission .mission_bottom p.text-small {
    color: var(--blanc);
    line-height: 30px;
    font-weight: 300
}

@media screen and (max-width: 1024px) {
    .page-template-page-client .page-client_wrapper {
        grid-template-columns: repeat(2, 1fr);
        margin-top: 0
    }

    .page-template-page-client a.bouton {
        grid-column: 1/3
    }
}

@media screen and (max-width: 640px) {
    .page-template-page-client .page-client-header {
        flex-direction: column;
        align-items: baseline;
        padding-top: 12vh;
        padding-bottom: 20vh
    }

    .page-template-page-client .page-client-header .page-client_right {
        max-width: none
    }

    .page-template-page-client .page-client-header .page-client_right .text-small {
        font-size: 11px;
        line-height: 20px;
        max-width: 68%
    }

    .page-template-page-client .page-client_back {
        margin-bottom: 25px
    }

    .page-template-page-client div.page-client_wrapper {
        grid-template-columns: 1fr;
        gap: 30px;
        margin-top: 0
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission {
        padding-top: 20px
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_top {
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 15px;
        cursor: pointer
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_top img {
        width: 22px;
        height: auto;
        margin-bottom: 0
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_top h3 {
        font-size: 20px;
        line-height: 25px;
        margin-left: 10px;
        width: 100%
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_top svg {
        display: block
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_bottom {
        display: none
    }

    .page-template-page-client div.page-client_wrapper .page-client_mission .mission_bottom p.text-small {
        line-height: 25px
    }

    .page-template-page-client a.bouton {
        grid-column: 1/2;
        margin-top: 30px;
        margin-bottom: 65px
    }
}

.active_accordeon .mission_top svg {
    transform: rotate(180deg)
}

.active_accordeon .mission_bottom {
    display: block !important
}

@media screen and (max-width: 1024px) {
    .page-contact header .logo .header__logo .logo-mobile {
        display: none
    }

    .page-contact header .logo .header__logo .logo-desktop {
        display: block
    }
}

.page-contact .burger #burger * {
    stroke: var(--noir)
}

div.page-contact {
    padding-top: 200px;
    padding-bottom: 100px;
    background-color: var(--beige);
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: 0
}

div.page-contact .page-contact_top {
    display: flex;
    gap: 120px;
    align-items: center
}

div.page-contact .page-contact_top .img {
    width: 50%;
    position: relative;
    height: max-content
}

div.page-contact .page-contact_top .img div {
    border-radius: 40px;
    overflow: hidden;
    max-height: 700px;
    line-height: 0
}

div.page-contact .page-contact_top .img div img {
    width: 100%;
    max-height: 700px;
    object-fit: cover
}

div.page-contact .page-contact_top .img p {
    position: absolute;
    top: 50px;
    left: 50px;
    right: 50px;
    bottom: 50px;
    color: var(--blanc);
    font-weight: 500;
    max-width: 70%
}

div.page-contact .page-contact_top .form h1.h3 {
    letter-spacing: .64px
}

div.page-contact .page-contact_top .form p.text-small {
    color: #818181;
    margin-bottom: 40px
}

div.page-contact .page-contact_bottom {
    margin-top: 100px;
    width: 100%
}

div.page-contact .page-contact_bottom iframe {
    width: 100%;
    height: 500px
}

div.page-contact .page-contact_bottom a {
    margin-top: 40px;
    color: var(--noir);
    text-transform: none
}

@media screen and (max-width: 1024px) {
    div.page-contact {
        padding-top: 128px;
        padding-bottom: 80px
    }

    div.page-contact .page-contact_top {
        flex-direction: column-reverse;
        gap: 65px
    }

    div.page-contact .page-contact_top .img {
        width: 100%;
        height: 100vw
    }

    div.page-contact .page-contact_top .img p {
        display: none
    }

    div.page-contact .page-contact_bottom {
        margin-top: 65px
    }

    div.page-contact .page-contact_bottom a {
        margin-top: 30px
    }
}

.page-construction-header {
    height: 70vh;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-bottom: 12vh;
    max-width: none;
    color: var(--blanc);
    width: 100%;
    gap: 40px
}

.page-construction-header_content {
    max-width: 40%
}

.blocks>div:last-child {
    margin-bottom: 80px
}

.page-construction-page {
    padding-bottom: 100px
}

.page-construction-page .bloc-text h2 {
    color: var(--noir);
    text-align: center;
    font-family: Poppins;
    font-size: 70px;
    font-style: normal;
    font-weight: 400;
    line-height: 85px;
    letter-spacing: -1.4px
}

.page-construction_bouton {
    margin-top: 80px
}

.page-construction_bouton a {
    color: var(--noir);
    display: flex;
    gap: 15px;
    align-items: center;
    justify-content: center
}

.page-construction_bouton a:hover {
    color: var(--vert)
}

.page-construction_bouton a:hover svg * {
    stroke: var(--vert)
}

@media screen and (max-width: 640px) {
    .page-construction-header {
        flex-direction: column;
        align-items: baseline;
        padding-top: 22vh;
        padding-bottom: 20vh
    }

    .page-construction-header_content {
        max-width: none;
        font-size: 11px;
        line-height: 20px;
        max-width: 68%
    }

    .page-construction-page {
        padding-bottom: 0
    }

    .page-construction-page .bloc-text h2 {
        font-size: 22px;
        line-height: 32px;
        letter-spacing: -.44px
    }

    .page-construction_bouton {
        margin-top: 30px
    }
}

.error404 .main {
    height: 100vh;
    overflow: hidden
}

.error404 .main .error_wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background-color: var(--noir);
    height: 100vh;
    margin-bottom: 200px
}

.error404 .main .display {
    color: var(--vert);
    text-align: center
}

.error404 .main .h2 {
    color: #818181;
    text-align: center;
    font-family: Poppins;
    font-size: 60px;
    font-weight: 400;
    line-height: 100%;
    letter-spacing: -1.2px;
    margin-top: 35px
}

.error404 .main a {
    color: var(--blanc);
    display: flex;
    align-items: center;
    gap: 15px;
    margin-top: 100px
}

.error404 .main a:hover {
    color: var(--vert)
}

.error404 .main a:hover svg * {
    stroke: var(--vert)
}

@media screen and (max-width: 768px) {
    .error404 .error_wrapper .display {
        font-size: 180px
    }

    .error404 .error_wrapper .h2 {
        font-size: 30px
    }

    .error404 .error_wrapper a {
        margin-top: 40px
    }
}

.page-privacy-policy-header {
    height: 70vh;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 12vh;
    max-width: none;
    color: var(--blanc);
    width: 100%;
    gap: 40px;
    background-color: var(--vert)
}

.bloc-text {
    margin-top: 180px
}

.bloc-text h4 {
    max-width: 100%;
    text-align: center
}

.bloc-text h4 span {
    display: initial
}

.bloc-text h2 {
    font-weight: 400
}

@media screen and (max-width: 640px) {
    .bloc-text {
        margin-top: 65px
    }
}

.home .bloc-text h4 {
    max-width: 80%;
    text-align: left
}

.info {
    margin-top: 180px
}

.info img {
    height: 450px;
    width: 100%;
    border-radius: 40px;
    object-fit: cover;
    margin-top: 80px
}

.info-repeat {
    margin-top: 80px
}

.info-repeat span {
    height: 1px;
    width: 100%;
    background-color: var(--noir)
}

.info-repeat_content {
    display: flex;
    gap: 80px;
    margin-top: 35px
}

.info-repeat_content-title {
    flex: none;
    min-width: 40%
}

.info-repeat_content-main {
    flex: 1
}

.info-repeat_content h3 {
    flex: none;
    min-width: 40%;
    max-width: 33%
}

.info-repeat_content p {
    flex: 1
}

.info-repeat_content:nth-child(2n) {
    margin-bottom: 35px
}

.info-repeat_centent:last-child {
    margin-bottom: 0
}

@media screen and (max-width: 784px) {
    .info {
        margin-top: 65px
    }

    .info img {
        height: 300px;
        margin-top: 30px;
        border-radius: 30px
    }

    .info-repeat {
        margin-top: 30px
    }

    .info-repeat_content {
        flex-direction: column;
        gap: 15px
    }

    .info-repeat_content p {
        width: 100%
    }

    .info-repeat_content h3 {
        max-width: 100%
    }
}

.slider {
    margin-top: 180px
}

.slider .swiper-wrapper {
    padding-top: 80px;
    padding-bottom: 80px
}

.slider-swiper {
    overflow: initial
}

.slider_content {
    overflow: hidden
}

.slider-content {
    overflow: hidden;
    width: 300px;
    height: initial;
    border-radius: 20px;
    background: var(--blanc);
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    box-shadow: 0 4px 30px #00000026
}

.slider-content_img {
    width: 100%;
    line-height: 0
}

.slider-content_img img {
    width: 100%;
    height: 180px;
    object-fit: cover
}

.slider-content_content {
    display: flex;
    padding: 25px;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    flex: 1 0 0;
    gap: 14px;
    align-self: stretch
}

.slider-content_content .h5 {
    width: 100%;
    color: var(--noir)
}

.slider-arrow {
    height: 40px;
    width: 40px;
    background-color: var(--vert);
    border-radius: 24px;
    display: inline-flex;
    justify-content: center;
    align-items: center
}

@media screen and (max-width: 640px) {
    .slider {
        margin-top: 65px
    }

    .slider .swiper-wrapper {
        padding-top: 30px;
        padding-bottom: 30px
    }
}

.contact {
    background-color: var(--beige);
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
    margin-top: 180px;
    max-width: none
}

.contact-wrapper {
    display: flex;
    flex-direction: row;
    max-width: 1070px;
    gap: 100px;
    padding: 120px 40px;
    margin: 0 auto;
    justify-content: space-between
}

.contact-form {
    width: 100%
}

.contact-form_formulaire {
    margin-top: 40px
}

.contact-form h2.h6 {
    color: var(--noir);
    font-family: Poppins;
    font-size: 32px;
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    letter-spacing: .64px
}

.contact-form p.text-small {
    color: #818181;
    font-family: Poppins;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: normal;
    letter-spacing: .32px
}

.contact-info,
.contact-info_map {
    width: 100%
}

.contact-info_map iframe {
    width: 100%;
    border-radius: 40px
}

.contact-info a {
    color: var(--noir);
    font-size: 20px;
    font-weight: 300;
    line-height: 33px;
    text-transform: none;
    margin-top: 40px
}

.contact .input-container {
    position: relative;
    margin-bottom: 25px
}

.contact .input-container label {
    position: absolute;
    top: 0;
    left: 0;
    color: var(--noir);
    transition: all .5s ease-in-out;
    font-family: Poppins;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: .32px
}

.contact .input-container span {
    width: 100%
}

.contact .input-container textarea {
    height: 80px
}

.contact .input-container input,
.contact .input-container textarea {
    border: 0;
    border-bottom: 1px solid var(--noir);
    background: transparent;
    width: 100%;
    padding: 8px 0 5px;
    font-size: 16px;
    color: var(--noir)
}

.contact .input-container input:focus,
.contact .input-container textarea:focus {
    border: none;
    outline: none;
    border-bottom: 1px solid var(--vert)
}

.contact input[type=submit] {
    color: var(--blanc);
    background-color: var(--noir);
    outline: none;
    border: 0;
    padding: 18px 20px;
    margin-top: 40px;
    border-radius: 10px;
    cursor: pointer;
    position: relative;
    width: 100%;
    font-size: 20px;
    font-weight: 300;
    line-height: 33px;
    text-transform: none
}

.contact input[type=submit]:hover {
    background-color: var(--vert)
}

.contact .input-container input:focus~label,
.contact .input-container input:valid~label {
    top: -12px;
    font-size: 12px
}

.contact .wpcf7-not-valid-tip {
    transition: all .5s ease-in-out;
    font-family: Poppins;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: .32px
}

.contact .wpcf7 form .wpcf7-response-output {
    padding: 1rem 2rem;
    border-radius: 8px;
    background-color: #00a0d2;
    font-family: Poppins;
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    letter-spacing: .32px
}

@media screen and (max-width: 1024px) {
    .contact {
        margin-top: 65px
    }

    .contact .contact-wrapper {
        flex-direction: column;
        padding: 55px 30px;
        gap: 65px
    }

    .contact-info_map iframe {
        border-radius: 30px
    }
}

.text-image {
    margin-top: 180px
}

.text-image_wrapper {
    display: flex;
    gap: 65px
}

.text-image_wrapper--reversed {
    flex-direction: row-reverse
}

.text-image_wrapper--reversed div.text-image_left {
    padding-left: 0;
    padding-right: 106px
}

.text-image_wrapper--reversed div.text-image_right img {
    border-radius: 0 30px 30px 0
}

.text-image_wrapper .text-image_left {
    width: 50%;
    padding-left: 106px
}

.text-image_wrapper .text-image_left h2 {
    margin-bottom: 55px
}

.text-image_wrapper .text-image_left p.text {
    margin-bottom: 8px;
    font-weight: 500
}

.text-image_wrapper .text-image_left div.text-small {
    margin-bottom: 45px
}

.text-image_wrapper .text-image_right {
    width: 50%
}

.text-image_wrapper .text-image_right img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 30px 0 0 30px
}

@media screen and (min-width: 1440px) {

    .text-image_wrapper .text-image_right img,
    .text-image_wrapper--reversed div.text-image_right img {
        border-radius: 30px
    }
}

@media screen and (max-width: 1024px) {
    .text-image_wrapper {
        flex-direction: column;
        gap: 30px
    }

    .text-image_wrapper--reversed div.text-image_left {
        padding-left: 80px;
        padding-right: 80px
    }

    .text-image_wrapper--reversed div.text-image_right img {
        border-radius: 30px;
        width: 100%
    }

    .text-image_wrapper .text-image_left {
        padding-left: 80px;
        padding-right: 80px;
        width: 100%
    }

    .text-image_wrapper .text-image_left h2.h2 {
        margin-bottom: 30px
    }

    .text-image_wrapper .text-image_left p.text {
        font-size: 16px
    }

    .text-image_wrapper .text-image_left div.text-small {
        margin-bottom: 30px
    }

    .text-image_wrapper .text-image_right {
        width: 100%;
        padding: 0 80px
    }

    .text-image_wrapper .text-image_right img {
        border-radius: 30px;
        height: 500px
    }
}

@media screen and (max-width: 1024px) and (max-width: 768px) {
    .text-image {
        margin-top: 65px
    }

    .text-image_wrapper--reversed div.text-image_left {
        padding-left: 50px;
        padding-right: 50px
    }

    .text-image_wrapper--reversed div.text-image_right img {
        border-radius: 30px;
        width: 100%
    }

    .text-image_wrapper .text-image_right {
        padding: 0 50px
    }

    .text-image_wrapper .text-image_right img {
        height: 300px
    }
}

@media screen and (max-width: 1024px) and (max-width: 640px) {
    .text-image_wrapper--reversed div.text-image_left {
        padding-left: 30px;
        padding-right: 30px
    }

    .text-image_wrapper--reversed div.text-image_right img {
        border-radius: 30px;
        width: 100%
    }

    .text-image_wrapper .text-image_left {
        padding-left: 30px;
        padding-right: 30px
    }

    .text-image_wrapper .text-image_right {
        padding: 0 30px
    }
}

.block-cards {
    margin-top: 180px
}

.block-cards h2 {
    text-align: center
}

.block-cards .cards {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 70px;
    margin-top: 50px
}

.block-cards .cards .card {
    max-width: 500px
}

.block-cards .cards .card .h5 {
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 16px;
    font-weight: 600
}

.block-cards .cards .card .h5 a {
    line-height: 0
}

.block-cards .cards .card .subtitle-caption {
    margin-bottom: 20px;
    color: #818181;
    font-family: Poppins;
    font-size: 16px;
    font-style: normal;
    font-weight: 300;
    line-height: 16px
}

.block-cards .cards .card .desc p {
    font-weight: 300;
    line-height: 29px
}

.block-cards .cards .card_img {
    width: 100%;
    margin-bottom: 40px
}

.block-cards .cards .card_img img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 20px
}

@media screen and (max-width: 640px) {
    .block-cards {
        margin-top: 65px
    }

    .block-cards h2 {
        text-align: left
    }

    .block-cards .cards {
        gap: 30px
    }

    .block-cards .cards .card_img {
        margin-bottom: 25px
    }

    .block-cards .cards .card_img img {
        height: auto
    }

    .block-cards .cards .card .h5 {
        font-size: 22px;
        line-height: 22px
    }

    .block-cards .cards .card .subtitle-caption {
        font-size: 11px;
        line-height: 11px;
        margin-bottom: 15px
    }
}

.timeline {
    margin-top: 180px
}

.timeline_wrapper {
    margin-top: 50px;
    width: 100%;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    border-radius: 40px
}

.timeline_items {
    max-width: 850px;
    padding: 140px 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 0 auto
}

.timeline_content {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding-bottom: 8%
}

.timeline_content:last-child svg {
    display: block;
    position: absolute;
    right: -6px;
    top: 0;
    transform: translate(-50%, -50%)
}

.timeline_content .caption {
    text-align: center;
    color: var(--noir) !important;
    background-color: var(--blanc);
    width: 40px;
    height: 40px;
    border-radius: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    z-index: 2
}

.timeline_content .text-small {
    flex: 1;
    color: var(--blanc);
    padding-right: 8%
}

.timeline_content span {
    position: absolute;
    margin-top: 18px;
    border: solid 1px var(--blanc);
    width: 100%;
    height: 1px;
    top: 0;
    z-index: 1
}

.timeline_content span svg {
    display: none
}

@media screen and (max-width: 768px) {
    .timeline {
        margin-top: 65px
    }

    .timeline_wrapper {
        margin-top: 30px
    }

    .timeline_items {
        grid-template-columns: 1fr;
        padding: 75px 18px;
        border-radius: 30px
    }

    .timeline_items .caption {
        width: 35px;
        height: 35px
    }

    .timeline_items span {
        width: 1px;
        height: 100%;
        left: 16px
    }

    .timeline_content {
        flex-direction: row;
        align-items: center
    }

    .timeline_content:last-child svg {
        top: 100%;
        left: 0;
        transform: translate(-50%, -50%) rotate(90deg)
    }
}

.grille-photo {
    margin-top: 180px;
    padding-bottom: 100px
}

.grille-photo .grid-img {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 65px
}

.grille-photo .grid-img_item {
    flex: 0 0 calc(20% - 65px)
}

.grille-photo .grid-img_item a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%
}

.grille-photo .grid-img_item img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: auto;
    max-height: 140px;
    object-fit: contain;
    mix-blend-mode: multiply
}

@media screen and (max-width: 1024px) {
    .grille-photo .grid-img_item {
        flex: 0 0 calc(25% - 65px)
    }
}

@media screen and (max-width: 784px) {
    .grille-photo {
        margin-top: 65px
    }

    .grille-photo .grid-img_item {
        flex: 0 0 calc(33.33% - 65px)
    }
}

@media screen and (max-width: 640px) {
    .grille-photo .grid-img {
        gap: 40px
    }

    .grille-photo .grid-img_item {
        flex: 0 0 calc(50% - 40px)
    }
}

.privacy-policy .blocks>div {
    margin-top: 80px
}

.privacy-policy .bloc-text h4 {
    text-align: left;
    font-size: 25px;
    font-style: normal;
    font-weight: 500;
    line-height: 39px
}

.privacy-policy .block_text-enrichi {
    margin-top: 180px
}

.privacy-policy .block_text-enrichi h2.h3 {
    font-size: 40px;
    line-height: 100%;
    text-transform: none;
    margin-bottom: 20px
}

.privacy-policy .block_text-enrichi p,
.privacy-policy .block_text-enrichi li {
    color: var(--noir);
    font-family: Poppins;
    font-size: 16px;
    font-weight: 300;
    line-height: 30px
}

.privacy-policy .block_text-enrichi li {
    list-style: inside
}

.privacy-policy .block_text-enrichi p {
    margin-top: 15px
}

@media screen and (max-width: 768px) {
    .privacy-policy {
        margin-top: 65px
    }
}