/* =======================================
   RESET
======================================= */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    scroll-behavior:smooth;
}

body{

    font-family:'Poppins',sans-serif;
    background:#090909;
    color:white;
    overflow-x:hidden;
}

img{
    max-width:100%;
    display:block;
}

a{
    text-decoration:none;
    color:white;
}

ul{
    list-style:none;
}

.container{

    width:90%;
    max-width:1300px;
    margin:auto;

}

/* =======================================
   HEADER
======================================= */

header{

    position:fixed;
    width:100%;
    top:0;
    left:0;
    z-index:999;
    backdrop-filter:blur(12px);
    background:rgba(0,0,0,.55);
    transition:.4s;

}

.navbar{

    height:90px;

    display:flex;

    justify-content:space-between;

    align-items:center;

}

.logo{

    font-size:32px;
    font-weight:700;
    color:#d8a13c;
    line-height:1.1;

}

.logo span{

    display:block;
    color:white;
    font-size:14px;
    letter-spacing:3px;
    font-weight:300;

}

.nav-links{

    display:flex;
    gap:45px;

}

.nav-links a{

    position:relative;
    font-weight:500;
    transition:.3s;

}

.nav-links a:hover{

    color:#d8a13c;

}

.nav-links a::after{

    content:"";
    position:absolute;
    bottom:-8px;
    left:0;

    width:0;
    height:2px;

    background:#d8a13c;

    transition:.4s;

}

.nav-links a:hover::after{

    width:100%;

}

/* =======================================
 HERO
======================================= */

.hero{

    height:100vh;

    background:url("hero.jpg") center center/cover no-repeat;

    display:flex;

    justify-content:center;

    align-items:center;

    position:relative;

}

.hero::before{

    content:"";

    position:absolute;

    inset:0;

    background:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.75));

}

.hero-content{

    position:relative;

    z-index:2;

    text-align:center;

    width:900px;

}

.hero h1{

    font-size:74px;

    line-height:1.1;

    margin-bottom:25px;

    text-transform:uppercase;

}

.hero h1 span{

    color:#d8a13c;

}

.hero p{

    font-size:23px;

    color:#ddd;

    margin-bottom:40px;

}

.btn{

    display:inline-block;

    background:#d8a13c;

    color:black;

    padding:18px 45px;

    border-radius:40px;

    font-weight:600;

    transition:.4s;

}

.btn:hover{

    transform:translateY(-4px);

    box-shadow:0 0 30px rgba(216,161,60,.45);

}

/* =======================================
 TITRES
======================================= */

section{

    padding:120px 0;

}

h2{

    font-size:48px;

    margin-bottom:50px;

    text-align:center;

}

h2 span{

    color:#d8a13c;

}

/* =======================================
 BACKGROUND
======================================= */

.about,
.portfolio,
.services,
.contact{

    background:#0f0f0f;

}

.portfolio{

    background:#090909;

}

/* petite animation */

.fade{

    opacity:0;
    transform:translateY(50px);
    transition:1s;

}

.fade.visible{

    opacity:1;
    transform:none;

}

/* =======================================
   À PROPOS
======================================= */

.about .container{
    display:grid;
    grid-template-columns:420px 1fr;
    gap:80px;
    align-items:center;
}

.photo{
    display:flex;
    justify-content:center;
}

.photo img{
    width:360px;
    height:360px;
    object-fit:cover;
    border-radius:25px;
    border:4px solid #d8a13c;
    box-shadow:0 20px 60px rgba(0,0,0,.6);
    transition:.4s;
}

.photo img:hover{
    transform:scale(1.03);
}

.texte h2{
    text-align:left;
    margin-bottom:25px;
}

.texte p{
    font-size:18px;
    line-height:1.9;
    color:#d2d2d2;
    margin-bottom:20px;
}

.texte .btn{
    margin-top:20px;
}

/* =======================================
   RÉALISATIONS
======================================= */

.portfolio h2{
    margin-bottom:60px;
}

.grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(340px,1fr));
    gap:35px;

}

.video{

    background:#141414;

    border-radius:20px;

    overflow:hidden;

    transition:.35s;

    border:1px solid rgba(255,255,255,.05);

}

.video:hover{

    transform:translateY(-12px);

    box-shadow:0 30px 70px rgba(0,0,0,.45);

}

.video iframe{

    width:100%;

    aspect-ratio:16/9;

    border:none;

}

.video h3{

    padding:22px;

    font-size:22px;

}

.video p{

    color:#c9c9c9;

    padding:0 22px 25px;

    line-height:1.6;

}

/* miniature YouTube */

.video img{

    width:100%;
    display:block;

}

/* =======================================
   PRESTATIONS
======================================= */

.services h2{

    margin-bottom:70px;

}

.services{

    text-align:center;

}

.services .services{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(260px,1fr));

    gap:30px;

}

.services .services div{

    background:#141414;

    border-radius:20px;

    padding:45px 35px;

    transition:.4s;

    border:1px solid rgba(255,255,255,.06);

}

.services .services div:hover{

    transform:translateY(-10px);

    border-color:#d8a13c;

    box-shadow:0 20px 60px rgba(216,161,60,.15);

}

.services h3{

    font-size:24px;

    margin-bottom:18px;

    color:#d8a13c;

}

.services p{

    color:#d2d2d2;

    line-height:1.8;

}

/* =======================================
   EFFETS
======================================= */

.video,
.services .services div,
.photo img{

    transition:all .4s ease;

}

.video:hover h3{

    color:#d8a13c;

}

.btn{

    cursor:pointer;

}

/* séparation élégante */

.portfolio{

    position:relative;

}

.portfolio::before{

    content:"";

    position:absolute;

    top:0;

    left:50%;

    transform:translateX(-50%);

    width:120px;

    height:4px;

    background:#d8a13c;

    border-radius:10px;

}

/* =======================================
   CONTACT
======================================= */

.contact{
    background:#111;
}

.contact h2{
    margin-bottom:50px;
}

.contact form{

    max-width:850px;
    margin:auto;

    display:flex;
    flex-direction:column;
    gap:20px;

}

.contact input,
.contact textarea{

    width:100%;

    background:#1a1a1a;

    border:1px solid #2a2a2a;

    color:#fff;

    padding:18px 20px;

    font-size:16px;

    border-radius:12px;

    transition:.3s;

    font-family:'Poppins',sans-serif;

}

.contact input:focus,
.contact textarea:focus{

    outline:none;

    border-color:#d8a13c;

    box-shadow:0 0 15px rgba(216,161,60,.2);

}

.contact textarea{

    resize:vertical;
    min-height:180px;

}

.contact button{

    width:220px;
    margin:auto;
    border:none;

}

/* =======================================
   FOOTER
======================================= */

footer{

    background:#050505;

    padding:35px;

    text-align:center;

    color:#999;

    font-size:15px;

    border-top:1px solid rgba(255,255,255,.05);

}

/* =======================================
   SCROLLBAR
======================================= */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#111;

}

::-webkit-scrollbar-thumb{

    background:#d8a13c;
    border-radius:20px;

}

::-webkit-scrollbar-thumb:hover{

    background:#f2bd57;

}

/* =======================================
   ANIMATIONS
======================================= */

@keyframes fadeUp{

    from{

        opacity:0;
        transform:translateY(60px);

    }

    to{

        opacity:1;
        transform:none;

    }

}

.hero-content{

    animation:fadeUp 1.2s ease;

}

.video{

    animation:fadeUp .8s ease;

}

.services .services div{

    animation:fadeUp .8s ease;

}

/* =======================================
   RESPONSIVE TABLETTE
======================================= */

@media(max-width:1100px){

.about .container{

    grid-template-columns:1fr;

    text-align:center;

}

.texte h2{

    text-align:center;

}

.photo{

    margin-bottom:40px;

}

.hero h1{

    font-size:58px;

}

}

/* =======================================
   RESPONSIVE MOBILE
======================================= */

@media(max-width:768px){

.navbar{

    flex-direction:column;

    height:auto;

    padding:20px;

}

.nav-links{

    flex-direction:column;

    gap:20px;

    margin-top:20px;

}

.hero{

    height:85vh;

}

.hero h1{

    font-size:42px;

}

.hero p{

    font-size:18px;

}

.btn{

    padding:15px 30px;

}

.grid{

    grid-template-columns:1fr;

}

.services .services{

    grid-template-columns:1fr;

}

.photo img{

    width:260px;
    height:260px;

}

section{

    padding:80px 20px;

}

h2{

    font-size:34px;

}

.contact button{

    width:100%;

}

}

/* =======================================
   GRAND ÉCRAN
======================================= */

@media(min-width:1600px){

.hero h1{

    font-size:90px;

}

.container{

    max-width:1450px;

}

}

/* =======================================
   EFFET HEADER AU SCROLL
======================================= */

header.scrolled{

    background:#000;

    box-shadow:0 10px 40px rgba(0,0,0,.5);

}