@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

:root{
    --white: #f5f5f5;
    --black: #2b1f14;
    --grey: #6f6f6f;
    --blue: #0047AB;
    --brown-light: #f3e6d2;
    --brown-mid: #d6b892;
    --brown-dark: #7a5537;
}

/* RESET */
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* BODY */
body{
    background: linear-gradient(180deg,
        #f7efdf 0%,
        #e4cfa9 30%,
        #b68a5b 65%,
        #6b4528 100%);
    font-family: 'Montserrat', Arial, sans-serif;
    color: var(--black);
    line-height: 1.7;
    scroll-behavior: smooth;
}

/* LIENS */
a{
    color: var(--black);
    text-decoration: none;
    transition: color .3s ease;
}
a:hover{
    color: var(--blue);
}

/* TITRES */
h1{
    height:60px;
    font-size: 40px;
    color: var(--blue);
    text-transform: uppercase;
    text-align: center;
    letter-spacing: 4px;
}

h2{
    width: 100%;
    margin: 80px 0 25px;
    padding: 0 100px 10px;
    border-bottom: 1px solid rgba(0,71,171,.4);
    color: var(--blue);
    text-transform: uppercase;
    font-weight: 500;
    letter-spacing: 2px;
    scroll-margin-top: 120px;
}

h3{
    margin-bottom: 15px;
    font-weight: 600;
}

img{
    user-select: none;
    -webkit-user-drag: none;
    pointer-events: auto;
}

/* HEADER */
header{
    position: sticky;
    top: 0;
    z-index: 20;
    display: flex;
    flex-direction: column;
    gap: 10px;
    justify-content: space-between;
    align-items: center;
    padding: 20px 100px;
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(30px);
    text-align: center;
    font-size: 12px;
    color: rgba(0,0,0,.6);
    letter-spacing: .5px;
}

.informations{
    font-size: 12px;
}

/* CONTACT */
.contact{
    text-align: center;
    font-size: 12px;
    color: rgba(0,0,0,.6);
    letter-spacing: .5px;
}

/* NAV */
.nav-links{
    display: flex;
    gap: 30px;
    list-style: none;
}

.nav-links a{
    position: relative;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.nav-links a::after{
    content:"";
    position:absolute;
    bottom:-6px;
    left:0;
    width:0;
    height:1px;
    background:var(--blue);
    transition:.4s ease;
}

.nav-links a:hover::after{
    width:100%;
}

/* PRESENTATION */
.presentation{
    display: grid;
    align-items: center;
    gap: 50px;
    margin: 60px 0;
    padding: 0 100px;
    font-size: 12px;
    flex-wrap: wrap;
    grid-template-columns: 55% 40%;
}

/* GRID INTRO */
.image_presentation{
    display:flex;
    justify-content: center;
    gap:25px;
    grid-column: 1 / span 2;
}

.image_presentation img{
    width:200px;
    height:200px;
    object-fit:cover;
    border-radius:4px;
    box-shadow: 0 10px 25px rgba(0,0,0,.2);
}

/* TEXTE */
.whoami{
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(8px);
    padding:35px;
    color:#fff;
    text-align:justify;
    box-shadow: 0 20px 60px rgba(0,0,0,.35);
    border-radius:4px;
}

/* PORTRAIT */
.portrait{
    width:100%;
    max-width: 700px;
    height:75%;
    object-fit:cover;
    box-shadow: 0 25px 60px rgba(0,0,0,.4);
    border-radius:4px;
}

/* PORTFOLIO */
.section{
    width:100%;
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 220px));
    grid-auto-rows: 220px;
    grid-auto-flow: dense;
    gap:30px;
    margin:40px 0;
    padding: 0 100px;
    scroll-margin-top:120px;
    justify-content: center;
}

.section img{
    width:100%;
    height:100%;
    object-fit:cover;
    border-radius:4px;
    background: #fff;
    box-shadow: 0 10px 25px rgba(0,0,0,.2);
    opacity:0;
    transform: scale(.94) translateY(30px);
    animation: fadeInImage linear forwards;
    animation-timeline: view();
    animation-range: entry 0% cover 35%;

    transition: transform .5s ease, box-shadow .5s ease;
}

.section img:hover{
    transform: scale(1.05);
    box-shadow: 0 25px 70px rgba(0,0,0,.45);
    z-index:5;
}

/* TAILLES */
.medium{ grid-column: span 2; }
.high{ grid-row: span 2; }
.large{
    grid-column: span 2;
    grid-row: span 2;
}

/* CONTACT + PARTENAIRES */
.contact-section{
    /*display: grid;*/
    grid-template-columns: 520px 1fr;
    gap: 80px;
    align-items: center;
    align-items: flex-start;
    margin: 20px 0;
    padding: 0 100px;
}

/* PARTNERS */
.partners{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    grid-auto-flow: dense;   /* remplit les trous */
    gap: 40px;
    align-items: center;
}

.partners img{
    width: 100%;
    height: 80px;
    object-fit: contain;
    padding: 15px;
    background: #fff;
    border-radius: 6px;
    transition: .4s ease;
}

.partners img:hover{
    filter: grayscale(0%) opacity(1);
    transform: scale(1.08);
    box-shadow: 0 10px 30px rgba(0,0,0,.2);
}

/* FORM */
form{
    margin:0 auto;
    display:none;
    flex-direction:column;
    gap:20px;
    width:520px;
}

input, textarea{
    border-radius:6px;
    border:1px solid rgba(0,0,0,.2);
    padding:14px;
    font-family:inherit;
    font-size:14px;
}

input:focus, textarea:focus{
    outline:none;
    border-color: var(--blue);
}

textarea{
    min-height:220px;
}

input[type="submit"]{
    background:var(--blue);
    color:white;
    border:none;
    cursor:pointer;
    text-transform:uppercase;
    letter-spacing:2px;
    transition:.4s ease;
}

input[type="submit"]:hover{
    background:#002f78;
}

/* FOOTER */
footer{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    background: rgba(255,255,255,.3);
    backdrop-filter: blur(30px);
    text-align: center;
    padding: 10px 100px;
}

footer svg{
    width: 32px;
    height: 32px;
}

.social_media{
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
    font-size: 40px;
}

/* ANIMATION */
@keyframes fadeInImage{
    to{
        opacity:1;
        transform: scale(1) translateY(0);
    }
}

@media only screen and (max-width: 992px) {
    .presentation{
        display:flex;
        flex-direction: column;
    }
}

@media only screen and (max-width: 840px) {
    .contact-section{
        display:flex;
        flex-direction: column-reverse;
    }

    form{
        width: 100%;
    }
}

@media only screen and (max-width: 768px) {
    header{
        padding: 20px;
    }
    .presentation, .section{
        padding: 0 10px;
    }
}

@media only screen and (max-width: 576px) {
    h1{
        font-size:20px;
        height: auto;
    }
    nav{
        display:none;
    }
    .image_presentation{
        display:flex;
        flex-direction: column;
    }
    .section{
        display: flex;
        flex-direction: column;
    }
    footer{
        flex-direction: column;
    }
}
