@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,700;1,300&display=swap');
*{
    margin: 0;
    padding: 0;
}
:root{
    /*--main-bg-color: #E9E9E9;*/
    --main-bg-color: #FFF;
    /*--main-bg-color: #9fd5e6; <- Bleu très joli */
    /*--second-bg-color: #F0EADC;*/
    /*--third-bg-color: #E3EBEE;*/
    /*--second-bg-color: #FFE7AB;*/
    /*--third-bg-color: #C4EFFF;*/
    /*--second-bg-color: #40A7CC;*/
    --second-bg-color: #57EFFF;
    --third-bg-color: #FFE7AB;;
    --second-bg-color-flash: #FCF6E8;
    --third-bg-color-flash: #F0FBFF;
    --main-color: #3E688F;
    --medium-color: #48A0BD;
    /*--main-color: #273F88;*/
    --content-width: 1160px;
    --border-radius: 4px;
}
.degrade{

}
html, body{
    width: 100%;
    min-height: 100%;
    font-family: 'Open Sans', sans-serif;
    scroll-behavior: smooth;
}
body{
    background-color: var(--main-bg-color);
    font-size: 18px;
}

/* --- COMPOSANTS --- */

a{
    color: var(--main-color);
    transition: color 250ms;
}
a:hover{
    color: var(--medium-color);
    transition: color 0ms;
}
.bouton{
    padding: 0.75rem 1.5rem;
    background: var(--main-color);
    color: white;
    border-radius: var(--border-radius);
    text-decoration: none;
    font-style: normal;
    transition: background-color 250ms, filter 250ms, transform 250ms, box-shadow 250ms;
    width: fit-content;
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    box-shadow: rgba(0, 0, 0, .1) 0 2px 4px 0;
    position: relative;

    background: linear-gradient(172deg, var(--main-color) -40%, var(--second-bg-color) 120%);
}
.bouton:hover{
    color: white;
    /*background-color: #6090ca;*/
    filter: brightness(1.1);
    /*transition: background-color 0ms, filter 250ms;*/
    /*filter: drop-shadow(0px 3px 3px #22222270);*/
    /*transition: background-color 0ms, filter 250ms, transform 250ms;*/
    /*transform: translate(0px, -3px);*/
    box-shadow: rgba(0, 0, 0, .15) 0 3px 9px 0;
    transform: translateY(-2px);
    transition: background-color 250ms, filter 250ms, transform 250ms, box-shadow 250ms;
}
.bouton_sec{
    background: #CBCBCB;
    color: black;
}
.bouton_sec:hover{
    color: black;
    /*background-color: #a9a9a9;*/
    /*transition: background-color 250ms;*/
}
.bouton .SVG{
    margin-left: 0.5rem;
}

p{
    text-align: justify;
}

.SVG{
    height: 1.6rem !important;
    width: auto !important;
    padding: 0;
    margin: 0;
}

/* --- NAV --- */
header{
    background-color: rgba(223, 223, 223, 0.5);
    width: 100%;
    position: fixed;
    backdrop-filter: blur(7px);
    z-index: 100;
    border-bottom: solid 1px #48A0BD;
}

nav{
    width: var(--content-width);
    margin: auto;
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: space-between;
}
nav ul{
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    list-style-type: none;
    gap: 0.5rem;
}
nav ul li{
    flex: 1;
    max-height: 5.5rem;
}
nav ul li a{
    text-decoration: none;
    font-style: normal;
    padding: 1.5rem;
    /*line-height: 5rem;*/
    color: black;
    position: relative;
    z-index: 10;
    display: block;
    width: calc(100% - 3rem);
    text-align: center;
}
nav ul li#espace_client a{
    padding: 0.75rem;
    width: calc(100% - 1.5rem);
}
nav ul li a:hover{
    color: white;
}
nav ul li a:before{
    content: "";
    position: absolute;
    top: -0.5rem;
    bottom:5rem;
    left: 0;
    right: 0;
    /*height: 2px;*/
    background-color: #48A0BD;
    z-index: -1;
    transition: bottom 250ms ease-out;
}
nav ul li a:hover:before, nav ul li a.selected:before{
    top: -0.5rem;
    bottom: -0.5rem;
    left: 0;
    right: 0;
}
nav ul li a.alogo{
    padding: 0;
    line-height: 0;
    display: block;
}
nav ul li a.alogo:before{
    content: none;
}
nav ul li a.selected{
    color: var(--main-color);
    color: white;
}
nav ul li.sep {
    /*background-color: #A1A1A1;*/
    height: 1.5rem;
    width: 1px;
}
nav ul li img{
    height: 4rem;
    margin: 12px 0.5rem;
}

/* --- MAIN --- */
main{
    width: 100%;
    min-height: calc(100vh - 11rem);
}
section{
    width: var(--content-width);
    margin: auto;
}

/* --- HERO --- */
h1{
    /*color: var(--main-color);*/
    font-size: 6.3rem;
    white-space: nowrap;

    background: var(--main-color);
    background: linear-gradient(176deg, var(--main-color), var(--second-bg-color));
    position: relative;

    /*Pour le dégradé*/
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    animation: hueBreath 3s infinite ease-in-out;
    filter: brightness(1);

}
h1:before{
    background-image: url("/styles/noise.png");
    height: 100%;
    position: absolute;
    bottom: 0;
    content: "forger vos idées";
    display: block;
    left: 0;
    opacity: .3;
    right: 0;
    top: 0;
    width: 100%;
    /*Pour le dégradé*/
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
    pointer-events: none;
}
@keyframes hueBreath {
    0%, 100% {
        filter: brightness(0.9);
    }
    50% {
        filter: brightness(1.1);
    }
}
h2{
    color: white;
    font-size: 4rem;
    line-height: 1rem;
    padding-top: 2rem;
    white-space: nowrap;
}
h3{
    /*color: var(--main-color);*/
    font-size: 2.5rem;
    white-space: nowrap;
    font-weight: 600;
    text-align: center;
    margin: 3rem 0;
    width: 100%;

    background: var(--main-color);
    background: linear-gradient(176deg, var(--main-color), var(--second-bg-color) 110%);

    /*Pour le dégradé*/
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}
h4{
    color: var(--medium-color);
    font-size: 1.8rem;
    white-space: nowrap;
    font-weight: 600;
}
#hero{
    width: 100%;
    padding-top: 6rem;
    display: flex;
    flex-flow: column wrap;
    align-items: center;

    background-image: url("hero_large.webp");
    background-position: top;
    background-size: cover;

    min-height: calc(100vh - 6rem);
    min-height: calc(100svh - 6rem);
    height: fit-content;
    justify-content: center;
    position: relative;
}
#hero .container{
    width: min-content;
    display: flex;
    flex-flow: column nowrap;
    gap: 2rem;
    margin-top: 0;
    padding-bottom: 10rem; //6 avant
}
#hero .container .boutons{
    display: flex;
    flex-flow: row wrap;
    align-items: center;
    gap: 2rem;
}
#hero .en_savoir_plus{
    color: white;
    font-size: 1.2rem;
    display: flex;
    flex-flow: column nowrap;
    justify-content: center;
    align-items: center;

    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
}

/* --- SERVICES --- */

#services{
    display: flex;
    flex-flow: row wrap;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 4rem;
    position: relative;
}
#services:before{

    background-image: url(/styles/noise.png);
    /*height: 100%;*/
    position: absolute;
    bottom: 0;
    content: "";
    display: block;
    left: calc(0px - (100vw - var(--content-width)) / 2);
    opacity: .15;
    top: 0;
    width: 100vw;
    pointer-events: none;
}
#services h3{
    margin-bottom: 1rem;
}
#services h4{
    width: 100%;
    color: white;
}
#services .service .titre{
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

#services .service{
    padding: 1rem;
    display: flex;
    flex-flow: column wrap;
    gap: 1rem;
    background: var(--second-bg-color);
    width: calc(50% - 3rem);
    border-radius: var(--border-radius);
    /*filter: drop-shadow(4px 4px 7px #1e1e1e47);*/
    box-shadow: 4px 4px 7px #1e1e1e47;
    justify-content: space-between;
    text-decoration: none;
    font-style: normal;
    color: white;
    z-index: 18;
    transition: transform 250ms, box-shadow 250ms, background-color 250ms;

    position: relative;


    background: linear-gradient(-90deg, var(--main-color) -50%, var(--second-bg-color) 170%);

}
.texture:before {
    background-image: url("/styles/noise.png");
    height: 100%;
    position: absolute;
    bottom: 0;
    content: "";
    display: block;
    left: 0;
    opacity: .25;
    right: 0;
    top: 0;
    width: 100%;
    pointer-events: none;
}

*#services .service:nth-child(even){
    background: linear-gradient(90deg, var(--main-color) -50%, var(--second-bg-color) 170%);
}

#services .service:hover{
    z-index: 20;
    transform: scale(1.025);
    transition: transform 250ms, box-shadow 250ms, background-color 250ms;
    background-color: var(--second-bg-color-flash);
    box-shadow: 8px 8px 7px #1e1e1e47;
}
#services .service {
    flex-flow: row wrap;
    align-items: center;
    /*width: calc(32% - 3rem);*/
}


#services .service .bouton{
    align-self: end;
}
#services .service .SVG{
    filter: brightness(1000%);
}
#services .service .service_plus{
    font-weight: bold;
    padding: 0.2rem 0.8rem;
    background-color: var(--main-color);
    color: white;
    border-radius: var(--border-radius);
}
#services .service .service_plus img{
    height: 1rem;
    width: auto;
}
#services .service:hover .service_plus img{
    display: none;
}
#services .service .service_plus i{
    display: none;
    font-size: 1rem;
    white-space: nowrap;
}
#services .service:hover .service_plus i{
    display: block;
}


#services .service:nth-child(2){
    filter: hue-rotate(-30deg);
}
#services .service:nth-child(3){
    filter: hue-rotate(-15deg);
}
#services .service:nth-child(4){
    filter: hue-rotate(0deg);
}
#services .service:nth-child(5){
    filter: hue-rotate(15deg);
}
#services .service:nth-child(6){
    filter: hue-rotate(30deg);
}
#services .service:nth-child(7){
    filter: hue-rotate(45deg);
}

/* --- QUI SUIS JE --- */

#quiSuisJe{
    background-color: #12120F;
    width: 100%;
}

#quiSuisJe .container{
    width: var(--content-width);
    display: flex;
    flex-flow: row wrap;
    gap: 2rem;
    margin: auto;
    align-items: center;
    justify-content: space-between;
}

#quiSuisJe .container h4{
    background: var(--main-color);
    background: linear-gradient(176deg, var(--main-color), var(--second-bg-color) 110%);

    /*Pour le dégradé*/
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

#quiSuisJe .QSJcarte{
    background-color: var(--main-bg-color);
    color: #12120F;
    padding: 1rem;
    display: flex;
    flex-flow: column wrap;
    gap: 1rem;
    border-radius: var(--border-radius);
    width: calc(50% - 3rem);
    height: fit-content;
    position: relative;
}
#quiSuisJe img{
    width: calc(50% - 2rem);
    height: auto;
}

/* --- STUDIO MCONAN --- */

#mconanstudio{
    background: linear-gradient(176deg, var(--main-color), var(--second-bg-color) 200%);
    width: 100%;
    position: relative;
}
#mconanstudio:before{

    background-image: url(/styles/noise.png);
    /*height: 100%;*/
    position: absolute;
    bottom: 0;
    content: "";
    display: block;
    left: calc(0px - (100vw - var(--content-width)) / 2);
    opacity: .35;
    top: 0;
    width: 100vw;
    pointer-events: none;
}

#mconanstudio .container{
    width: var(--content-width);
    display: flex;
    flex-flow: row wrap;
    gap: 2rem;
    margin: auto;
    align-items: center;
    justify-content: space-between;
}

#mconanstudio .container h4{
    background: var(--main-color);
    background: linear-gradient(176deg, var(--main-color), var(--second-bg-color) 110%);

    /*Pour le dégradé*/
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -moz-background-clip: text;
    -moz-text-fill-color: transparent;
}

#mconanstudio .QSJcarte{
    /*background-color: var(--main-bg-color);*/
    color: #FFF;
    padding: 1rem;
    display: flex;
    flex-flow: column wrap;
    gap: 1rem;
    border-radius:var(--border-radius);
    /*width: calc(50% - 3rem);*/
    flex: 1;
    height: fit-content;
    margin: 4rem 0;
    position: relative;
}
#mconanstudio img{
    height: auto;
    width: 10rem;
    margin: 4rem 0;
}

/* --- PORTFOLIO --- */

#portfolio{
    display: flex;
    flex-flow: column wrap;
    gap: 2rem;
    justify-content: space-between;
    margin-bottom: 4rem;
    position: relative;
}
#portfolio:before{

    background-image: url(/styles/noise.png);
    /*height: 100%;*/
    position: absolute;
    bottom: -4rem;
    content: "";
    display: block;
    left: calc(0px - (100vw - var(--content-width)) / 2);
    opacity: .25;
    top: 0;
    width: 100vw;
    pointer-events: none;
}
#portfolio h3{
    margin-bottom: -1rem;
}
#portfolio > p{
    text-align: center;
}

#portfolio .portfolio{
    padding: 1rem;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    gap: 1rem;

    /*background-color: var(--second-bg-color-flash);*/
    background-color: #959595f5;
    color: white;

    width: calc(100% - 2rem - 4px);
    border-radius: var(--border-radius);
    filter: drop-shadow(4px 4px 7px #1e1e1e47);

    transition: width 750ms, padding 750ms;
    order: 0;

    position: relative;
    border: 2px solid rgb(165 165 165 / 39%);
    border-radius: var(--border-radius);
}

/*#portfolio .portfolio:nth-child(even){*/
/*    background-color: var(--third-bg-color);*/
/*}*/
#portfolio .portfolio h4{
    min-width: 70%;
    text-align: center;
    /*color: #48A0BD;*/
    color: #fff;
}
#portfolio .color_black, #portfolio .color_black h4{
    color: black;
}
#portfolio .color_black .SVG{
    filter: brightness(0) !important;
}
#portfolio .portfolio > h4,
#portfolio .portfolio > a,
#portfolio .portfolio > .section{
    opacity: 1;
    transition: opacity 500ms, width 500ms, height 500ms;
}
#portfolio .portfolio .img{
    width: calc(70% - 1rem);
    object-fit: cover;
    border-radius: var(--border-radius);
}
#portfolio .portfolio img.SVG{
    filter: brightness(8.5);
}
#portfolio .portfolio .infos{
    width: calc(30% - 1rem);
    display: flex;
    flex-flow: column wrap;
    justify-content: space-between;
    gap: 1rem;
}
#portfolio .portfolio .infos .info{
    display: flex;
    flex-flow: row nowrap;
    align-items: center;
    gap: 1.5rem;
}
#portfolio .portfolio .infos .bouton{
    margin-left: auto;
}
#portfolio .portfolio .infos i{
    color: var(--main-color);
}

#portfolio .pf_tri{
    display: flex;
    flex-flow: row nowrap;
    width: 100%;
    justify-content: space-evenly;
    border-bottom: 2px var(--medium-color) solid;
}
#portfolio .pf_tri li{
    padding: 0.2rem 2rem;
    background-color: #C5C5C5;
    list-style: none;
    cursor: pointer;
    color: white;
    border-radius: var(--border-radius) var(--border-radius) 0 0;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
}
#portfolio .pf_tri li.selected{
    background-color: var(--medium-color);
}

.portfolio_container{
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    gap: 1rem;
}
#portfolio .vignette{
    padding: 0;
    width: calc(33.33333% - 0.70rem);
    /*width: calc(25% - 0.5rem);*/
    transition: width 750ms, margin-left 750ms; //, opacity 1s
    opacity: 1;
    /*flex: 1;*/
    margin-left: 0;
    cursor: pointer;
    overflow: hidden;

    border: unset;
}
#portfolio .vignette .img{
    transform: scale(1);
    transition: transform 500ms;
}
#portfolio .vignette:hover .img{
    transform: scale(1.1);
    transition: transform 500ms;
}
#portfolio .vignette-cache{
    padding: 0;
    opacity: 0;
    /*flex: 1;*/
    width: 0;
    margin-left: -1rem;
    transition: width 750ms, margin-left 750ms, opacity 750ms;
    border: unset;
}
#portfolio .vignette-cache .img,
#portfolio .vignette .img{
    width: 100%;
}
#portfolio .vignette h4,
#portfolio .vignette-cache h4,
#portfolio .vignette .infos,
#portfolio .vignette-cache .infos,
#portfolio .vignette .bouton,
#portfolio .vignette-cache .bouton{
    display: none;
}


#portfolio .portfolio_bg_img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -2;
    border-radius: var(--border-radius);
    filter: opacity(0.5) blur(15px);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}
/*#portfolio .portfolio_bg_img_overlay{*/
/*    position: absolute;*/
/*    top: 0;*/
/*    left: 0;*/
/*    width: 100%;*/
/*    height: 100%;*/
/*    backdrop-filter: blur(16px);*/
/*    z-index: -1;*/
/*    opacity: 1!important;*/
/*    border-radius: var(--border-radius);*/
/*}*/



#portfolio .efface{
    opacity: 0 !important;
    transition: opacity 500ms, width 500ms, height 500ms;
    width: 0;
    overflow: hidden;
}

/* --- ARTICLES --- */
#en_tete{
    width: 100%;
    height: 10rem;
    padding-top: 6rem;
    display: flex;
    flex-flow: column wrap;
    align-items: center;
    justify-content: space-around;
    background-image: url("hero_large.webp");
    background-position: center;
}
.corps_article{
    padding-bottom: 2rem;
}
.corps_article h4{
    margin-top: 2rem;
}
.corps_article p{
    margin: 1rem 0;
    flex: 1;
}
.corps_article li{
    margin: 0.25rem;
    margin-left: 2rem;
    flex: 1;
}
.corps_article img{
    margin: 1rem 0;
    border-radius: var(--border-radius);
}
.article_col{
    display: flex;
    flex-flow: row nowrap;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}
.article_col > div{
    flex: 1;
}
.article_col img{
    max-width: 100%;
    height: auto;
}
.h4_top0{
    margin-top: 0;
}


#notice{
    width: calc(100% - 2rem);
    background-color: #d95050;
    color: white;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-evenly;
    align-items: center;
    padding: 1rem;
    position: fixed;
    bottom: 0;
    left: 0;
    z-index: 50;

    transform: translateY(0);
    transition: transform 1s;
}
#notice.cache{
    transform: translateY(100%);
    transition: transform 1s;
}
#notice p{
    text-align: center;
}
#notice i{
    font-style: normal;
    font-weight: bold;
}
#notice img{
    position: absolute;
    right: 2.5rem;
    top: 0.5rem;
    width: 2rem;
    height: 2rem;
    cursor: pointer;
}


/* --- FOOTER --- */
footer{
    background-color: #12120F;
    color: white;
    padding: 2rem;
    font-size: 0.8rem;
    display: flex;
    flex-flow: row wrap;
    justify-content: space-evenly;
    gap: 2rem;
}
footer .col{
    display: flex;
    flex-flow: column wrap;
}
footer a{
    filter: brightness(120%);
    color: var(--medium-color);
    text-decoration: none;
}
footer a:hover{
    filter: brightness(150%);
}