html {
    background: var(--black);
}

body {
    font-family: 'PT Sans', sans-serif;
    color: var(--font_2);
    background: var(--grey_5)
}

table {
    width: 100%;
    table-layout: fixed;
}

header {

    display: block;
    position: relative;
    width: 100%;
    height: 55vh;
    text-align: center;
    background: var(--font);
    background-size: cover;
    overflow: hidden;
    border-bottom: 3px solid var(--bleu);
    font-family: 'Roboto', sans-serif;
}

header .displayer {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: max-content;
    width: max-content;
    margin: auto;
    font-size: clamp(2.5em, 8vw, 4.2em);
    line-height: 0.9;
    letter-spacing: -0.05em;
    text-shadow: 0 4px 8px var(--text_shadow);
    color: white;
    animation: rise_up_pc 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.25s forwards;
}

.folder {
    display: block;
    position: relative;
    height: max-content;
    width: 100%;
    max-width: 1028px;
    margin: auto auto 50px auto;
    border-radius: 5px;
    overflow: hidden;
    background: white;
    top: 0;
    transform: translateY(-140px);
    box-shadow: 0 2px 3px var(--box_shadow);
    z-index: 2;
}

.item-menu {
    position: relative;
    width: 250px;
}

.item-menu span {
    display: block;
    position: relative;
    width: 100%;
    height: 65px;
    background-color: #458CFF;
    color: #fff;
    text-align: center;
    cursor: pointer;
    font-weight: bold;
    overflow: hidden;
}

.item-menu span:before {
    content: attr(data-code);
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    line-height: 65px;
    text-transform: uppercase;
    color: white;
    transition: all 0.3s ease-out;
}

.item-menu span:after {
    content: attr(data-code);
    display: block;
    position: absolute;
    top: 0;
    left: -200%;
    width: 100%;
    bottom: 0;
    line-height: 65px;
    text-transform: uppercase;
    background: var(--font_2);
    color: white;
    transition: all 0.3s ease-out;
}

.item-menu span i {
    position: relative;
    display: none;
    line-height: 65px;
    z-index: 2;
}

.item-menu span:not(:first-of-type) {
    border-top: 1px solid var(--item_line_up);
}

.item-menu span:not(:last-of-type) {
    border-bottom: 1px solid var(--item_line_down);
}

.item-menu span:hover {
    border: 0;
    background: var(--bleu_2)
}

.item-menu span:hover + span {
    border-top: 0;
}

.item-menu span:hover:before {
    content: ''
}

.item-menu span:hover:after {
    left: 0
}

.item.off{
    opacity: 0;
    transform: translateX(100%);
}

.item {
    position: relative;
    padding: 20px 40px;
    vertical-align: top;
    font-family: 'Roboto', sans-serif;
    transition: 0.35s cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 1;
}

span[data-item="title"] {
    display: block;
    position: relative;
    font-size: clamp(1.2em, 3vw, 2em);
    margin-bottom: 12px;
    text-transform: uppercase;
    font-weight: bold;
    letter-spacing: -0.05em;
    line-height: 0.9;
}

span[data-item="title"] i {
    margin-right: 18px;
}

span[data-item="sub-title"] {
    display: block;
    position: relative;
    font-size: clamp(0.8em, 2vw, 1em);
    margin-bottom: 8px;
    color: var(--grey_font);
}

span[data-item="desc"] {
    display: block;
    position: relative;
    font-size: clamp(0.9em, 2vw, 1.1em);
    margin-bottom: 4px;
}

span[data-item="link"] {
    display: block;
    position: relative;
    font-size: clamp(18px, 2vw, 1em);
    line-height: 40px;
    cursor: pointer;
    color: var(--bleu)
}

span[data-item="link"]:after {
    content: attr(data-btn);
    font-weight: 900;
    line-height: 40px;
    vertical-align: middle;
    margin-left: 6px;
    font-family: 'Font Awesome 5 Free', sans-serif;
    transition: all 0.2s ease-out;
}

span[data-item="link"]:hover:after {
    animation: piston .8s ease-out infinite;
}

span[data-item="pic"] {
    display: block;
    position: absolute;
    width: 150px;
    height: 100px;
    background-size: cover;
    background-position: center;
    bottom: 20px;
}

span[data-item="cond-i"] {
    display: block;
    position: relative;
    font-size: clamp(12px, 2vw, 1em);
    width: max-content;
    color: var(--grey_font);
    margin-left: auto;
    margin-bottom: 3px;
}

span[data-item="cond-px"] {
    display: block;
    position: relative;
    letter-spacing: -0.025em;
    width: max-content;
    color: var(--bleu);
    font-size: 40px;
    font-weight: bold;
    margin-left: auto;
}

span[data-item="cond-px"] b {
    font-size: 20px;
    height: 40px;
    display: inline-block;
    vertical-align: middle;
}

span[data-item="cond-cmd"] {
    display: block;
    position: relative;
    font-size: clamp(12px, 2vw, 1em);
    text-transform: uppercase;
    width: max-content;
    margin-left: auto;
    color: var(--grey_font);
    border: 1px solid var(--grey_font);
    padding: 6px 12px;
    border-radius: 4px;
    cursor: pointer;
}

.cond-group {
    display: block;
    position: absolute;
    right: 40px;
    bottom: 20px
}

.banner {
    display: block;
    position: relative;
    padding: 20px 0;
    width: 100%;
    height: max-content;
    text-align: center;
    background: var(--grey_menu);
    background-size: cover;
    background-position: center;
    text-shadow: 0 1px 2px var(--text_shadow);
    font-family: 'Roboto', sans-serif;
}

.banner h1 {
    display: block;
    position: relative;
    font-size: 48px;
    color: white;
    padding: 0 15px;
}

.banner h1 .accent {
    color: var(--bleu)
}

.banner h5 {
    font-size: 21px;
    color: white;
    font-weight: normal;
}

.credo {
    display: flex;
    align-items: flex-start;
    position: relative;
    padding: 35px 0 15px 15px;
    font-family: 'Roboto', sans-serif;
    background: white
}

.credo-left,
.credo-right {
    flex: 1;
}

.credo-left {
    flex-basis: 50%;
    padding-right: 40px;
}

.credo-right {
    flex-basis: 50%;
}

.credo h2 {
    display: block;
    position: relative;
    text-transform: uppercase;
    font-size: 36px;
    letter-spacing: -0.01em;
    margin-bottom: 30px;
}

.credo h2::after {
    content: "";
    display: block;
    width: 75px;
    height: 4px;
    background-color: #ccc;
    position: relative;
    margin-top: 15px;
}

.credo li {
    position: relative;
    padding-left: 75px;
    margin-bottom: 15px;
}

.credo li h3 {
    font-size: 16px;
    margin-bottom: 5px;
}

.credo li i {
    position: absolute;
    left: 0;
    top: 0;
    width: 50px;
    line-height: 50px;
    border-radius: 25px;
    background-color: var(--bleu);
    color: white;
    font-size: 24px;
    text-align: center;
}

.credo .io {
    font-size: 150%;
    color: var(--io_credo);
}

.credo-form {
    background-color: var(--grey_5);
    padding: 50px;
    display: block;
    text-align: center;
}

.credo-form input {
    appearance: textfield;
    display: inline-block;
    position: relative;
    width: 48%;
    padding: 10px;
    border: 1px solid var(--grey_6);
}

.credo-form textarea {
    display: block;
    position: relative;
    width: 100%;
    padding: 10px;
    appearance: none;
    border: 1px solid var(--grey_6);
    resize: none;
    height: 100px;
}

.credo-form input::placeholder {
    /*text-transform: uppercase;*/
}
.credo-form textarea,.credo-form textarea::placeholder {
    font-family: 'Roboto', sans-serif;
}

.credo-form fieldset {
    display: block;
    margin-bottom: 20px;
}

.credo-form fieldset input:first-of-type {
    float: left;
}

.credo-form fieldset input:last-of-type {
    float: right;
}

fieldset[data-field="entete"] {
    color: var(--grey_font);
    margin-bottom: 30px;
}

fieldset[data-field="entete"] strong {
    text-transform: uppercase;
    font-size: 28px;
    letter-spacing: -0.01em;
    display: block;
    color: var(--font_2)
}

.credo form button {
    display: block;
    position: relative;
    width: 100%;
    padding: 10px;
    height: 55px;
    background-color: var(--bleu);
    color: white;
    border: 0;
    font-size: 18px;
    font-weight: bold;
    text-transform: uppercase;
    transition: 0.35s cubic-bezier(0.165, 0.84, 0.44, 1);
    cursor: pointer;
}

.footer {
    display: block;
    height: 100vh;
    position: relative;
    cursor: pointer;
    background: black;
    font-family: 'Roboto', sans-serif;
}

.footer div {
    float: left;
    position: relative;
}

.footer div span[data-src] {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    transition: 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: .6;

}

.footer div[data-style] {
    overflow: hidden;
}

.footer div[data-style="travel"] {
    height: 70%;
    width: 65%;
    font-size: 5em;
}

.footer div[data-style="life"] {
    width: 35%;
    height: 35%;
    font-size: 4em;
}

.footer div[data-style="corporate"] {
    width: 35%;
    height: 35%;
    font-size: 4em;
}

.footer div[data-style="immo"],
.footer div[data-style="deco"] {
    width: 32.5%;
    height: 30%;
    font-size: 4em;
}

.footer div[data-style="hotel"] {
    width: 35%;
    height: 30%;
    font-size: 4em;
}

.footer div[data-style]:hover span[data-src] {
    transform: scale3d(1.1, 1.1, 1.1);
    opacity: 1;
}

.footer div[data-style]:before {
    content: attr(data-theme);
    display: block;
    position: absolute;
    color: white;
    top: 50px;
    left: 50px;
    font-weight: bold;
    letter-spacing: -0.0525em;
    text-shadow: 0 2px 3px var(--text_shadow);
    z-index: 2;
}

.footer div[data-style]:after {
    content: 'discover';
    display: block;
    position: absolute;
    color: white;
    text-transform: uppercase;
    bottom: 100px;
    font-size: 18px;
    left: 50px;
    font-weight: bold;
    letter-spacing: -0.0525em;
    text-shadow: 0 2px 3px var(--text_shadow);
    z-index: 2;
}

.footer div[data-style]:not([data-style="travel"]):before {
    left: 25px;
    letter-spacing: unset;
    font-size: clamp(.8em, 2vw, 1em)
}

.footer div[data-style]:not([data-style="travel"]):after {
    left: 30px;
    letter-spacing: unset;
}

.footer div[data-style="life"]:before,
.footer div[data-style="corporate"]:before {
    top: 80px;
}

.footer div[data-style="travel"] span[data-dsc="main"] {
    text-shadow: 0 2px 3px var(--text_shadow);
    letter-spacing: 0;
    font-size: 16px;
    z-index: 2;
    color: white;
    line-height: 20px;
    display: block;
    position: absolute;
    bottom: 150px;
    width: 45%;
    left: 50px;
}

.footer div[data-style] hr {
    display: block;
    position: absolute;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-size: 14px;
    color: white;
    bottom: 90px;
    left: 50px;
    font-weight: bold;
    padding: 15px 0;
    text-shadow: 0 2px 3px var(--text_shadow);
    width: 24px;
    border-bottom: 2px solid white;
    transition: all 0.35s ease-in-out;
    z-index: 2;
}

.footer div[data-style]:hover hr {
    width: 85px
}

.footer div[data-style]:not([data-style="travel"]) hr {
    left: 30px;
    bottom: 90px;
}

.foot-ban {
    display: none;
    position: relative;
    background: var(--font);
    height: 60px;
    line-height: 60px;
    text-align: center;
    cursor: pointer;
    width: 100vw;
    border-bottom: 1px solid var(--bleu);
}

.foot-ban ul {
    display: inline-flex;
    align-items: center;
    height: 100%;
    margin: 0;
    padding: 0;

}

.foot-ban ul li {
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 15px;
    list-style: none;
    color: white;
    opacity: .5;
}

.foot-ban ul li:hover {
    opacity: 1;
}

.foot-ban ul li:last-child {
    margin-right: 0;
}


@media screen and (max-width: 1180px) {
    nav span .menu ul li {
        padding: 22px 14px;
    }

    body[data-device="pc"] nav[data-whide="true"] span .menu .logs ul li:last-of-type {
        display: none;
    }
}

@media screen and (max-width: 1028px) {

    header {
        height: 155px;
        background-position: bottom;
        border-bottom: 0;
        background-attachment: fixed;

    }

    header .displayer {
        left: 5vw;
        right: unset;
        bottom: 35px;
        font-size: 2.5em;
        animation: rise_up_mob 1s cubic-bezier(0.165, 0.84, 0.44, 1) 0.25s forwards;
    }

    .folder {
        transform: unset;
        margin-bottom: 0;
        border-radius: 0
    }

    .item {
        padding: 20px 15px;
    }

    .item-menu {
        width: 80px
    }

    .item-menu span:before {
        display: none
    }

    .item-menu span i {
        display: block
    }

    .item-menu span:before,
    .item-menu span:after {
        content: none;
        display: none
    }

    .item-menu span:hover,
    .item-menu span:active {
        background: var(--font_2)
    }

    .cond-group {
        right: 15px;
        bottom: 15px;
    }

    span[data-item="title"] {
        margin-bottom: 6px;
    }

    span[data-item="title"] i {
        display: none
    }

    span[data-item="pic"] {
        bottom: 15px;
    }

    span[data-item="cond-px"] {
        font-size: 28px;
    }

    span[data-item="cond-px"] b {
        font-size: 15px;
        height: 28px;
    }

    .credo {
        padding-left: 0;
        display: block;
        padding-top: 25px;
        padding-bottom: 0;
    }

    .credo-left,
    .credo-right {
        display: block;
        flex: unset;
        flex-basis: unset;
        padding: 0;
    }

    .credo-left {
        padding: 0 15px 15px 15px;
    }

    .credo li {
        height: 100px;
    }

    .credo-form {
        padding: 30px 40px 50px;
    }

    .credo-form input {
        width: 100%;
        margin-bottom: 12px;
    }

    .credo-form textarea {
        margin-bottom: 20px;
    }

    .credo-form fieldset[data-field="entete"] {
        margin-bottom: 20px;
    }

    .credo-form fieldset:not([data-field="entete"]) {
        margin-bottom: 0
    }

    .foot-ban {
        display: block
    }

    .footer {
        margin-bottom: 60px;
    }

    .footer div[data-style] {
        width: 100%;
        height: 215px;
        float: unset;
        display: block;
        font-size: 2.5em;
        background: black;
    }

    .footer div[data-style]:before {
        right: 25px;
        margin: auto;
        text-align: center;
        top: 60px;
    }

    .footer div[data-style]:after {
        right: 30px;
        margin: auto;
        text-align: center;
        bottom: 60px;
    }

    .footer div[data-style="travel"]:before,
    .footer div[data-style="travel"]:after {
        right: 50px;
        margin: auto;
        text-align: center;
        bottom: 60px;
    }

    .footer div[data-style] hr {
        left: 25px;
        bottom: 50px;
        right: 25px;
        margin: auto;
        text-align: center;
        transform-origin: center;
    }

    .footer div[data-style]:not([data-style="travel"]) hr {
        right: 30px;
        bottom: 50px;
    }

    .footer div[data-style="travel"] span[data-dsc="main"] {
        display: none
    }

    .footer div[data-style="corporate"],
    .footer div[data-style="immo"],
    .footer div[data-style="deco"],
    .footer div[data-style="hotel"] {
        float: left;
        width: 50%;
        height: 33.33%
    }

}

@media screen and (max-width: 460px) {

    .cond-group {
        bottom: 25px;
    }

    span[data-item="cond-cmd"] {
        padding: 6px
    }

    span[data-item="pic"] {
        height: 85px;
        width: 120px;
    }

}

@media screen and (min-width: 1028px) {
    .folder ~ section:not(.footer) {
        transform: translateY(-140px);
    }

    .credo {
        margin-bottom: -140px;
    }
}

